201113112037 MUSTAFA KÜRKCÜ
200813112021 SALİH GÜNDÖNER
ALLAH RAHMET EYLESİN!..
TÜRKİYE CUMHURİYETİ
DUMLUPINAR ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
İNŞAAT MÜHENDİSLİĞİ BÖLÜMÜ
YAPI MÜHENDİSLİĞİNDE BİLGİSAYAR UYGULAMALARI
( Teknik Seçmeli Ders VII )
08
Yrd. Doç. Dr. Mustafa Halûk SARAÇOĞLU
İnşaat Mühendisliği Bölümü
2014 – 2015 GÜZ
FONKSİYONLAR
• Genelde kullanılan programlar şimdiye kadar gördüklerimizden
çok daha büyük programlardır ve bunların kolay yazılabilmesi ve
yönetilebilmesi için alt programlara bölünmeleri gerekir.
• İşte bu küçük alt programlara fonksiyon denir.
• Bu fonksiyonlar programlardan ayrı derlenebilir ve değişik
programlarda kullanılabilirler.
• Diğer bir tanımla fonksiyonlar bir takım girdiler alan, bunları
işleyen ve sonucu geri döndüren ifadeler grubudur. Bu gruba
fonksiyon gövdesi denir ve { } parantezleri arasına yazılır.
Fonksiyonlar kullanılarak yazılan programlar modüler bir yapı
kazanır ve bu bize programın daha rahat okunmasını ve hataların
daha kolay bulunmasını sağlar.
Tipik olarak fonksiyonların program
içerisinde görünümü:
fonksiyon1
{
...
fonksiyon gövdesi
...
}
fonksiyon2
{
...
fonksiyon gövdesi
...
}
C++ kütüphanelerinde hazır olarak bulunan fonksiyonlar olduğu gibi kullanıcı
tarafından da yazılabilirler. C++ da kullanılan standart bazı fonksiyonlar
vardır. <cmath> başlık dosyasında bulunan bazı fonksiyonlar şunlardır:
cos
kosinüs
cos(3.1415)
exp
ex
exp(3.5)
sqrt
karekök alma
sqrt(6.9)
pow
kuvvet alma ( 3.25.7 )
power(3.2,5.7)
Örnek 8.
Kullanıcıdan aldığı tamsayı değişkeninin mutlak değerini, fonksiyon
yardımıyla hesaplayan bir bilgisayar programı geliştiriniz.
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int mutlak_deger(int a)
{
if(a<0) return -a;
else return a;
}
int mutlak_deger(int );
VEYA 
int main()
{
int x,y;
cout << "Sayi: "; cin>>x;
y=mutlak_deger(x);
cout <<endl;
cout <<x<<" sayisinin mutlak degeri: "<<y;
return 0;
}
int main()
{
int x,y;
cout << "Sayi: "; cin>>x;
y=mutlak_deger(x);
cout <<endl;
cout <<x<<" sayisinin mutlak degeri: "<<y;
return 0;
}
int mutlak_deger(int a)
{
if(a<0) return -a;
else return a;
}
Örnek 9.
Klavyeden hızı, kütlesi ve yerden yüksekliği girilen maddenin
kinetik enerjisini ve potansiyel enerjisini fonksiyon ile hesaplayan
program geliştirelim:
Algoritma :
1. Başla
2. Maddenin hızını gir (v)
3. Maddenin kütlesini gir (m)
4. Maddenin yerden yüksekliğini gir (h)
5. Kinetik enerjiyi hesapla (ke)
6. Potansiyel enerjiyi hesapla (pe)
7. Kinetik enerjiyi ve potansiyel enerjiyi ekrana yaz
8. Bitir
Akış şeması :
Başla
m,v,h
ke=m*v*v/2
pe=m*9.81*h
ke,pe
Bitir
başlık dosyaları
#include <iostream>
using namespace std;
bildirim ve tanımlar
float m,v,h, pe,ke;
potansiyel enerji fonksiyonu
kinetik enerji fonksiyonu
float potansiyel_enerji(float kutle, float yukseklik)
{
float potansiyel;
potansiyel=kutle*9.81*yukseklik;
return potansiyel;
}
float kinetik_enerji(float hiz, float kutle)
{
float kinetik;
kinetik=0.5*kutle*hiz*hiz;
return kinetik;
}
int main()
{
cout <<"Maddenin kutlesini giriniz :"; cin>>m;
cout <<"Maddenin hizini giriniz
:"; cin>>v;
cout <<"Maddenin yuksekligini giriniz:"; cin>>h;
main()
ana fonksiyonu
pe=potansiyel_enerji(m,h);
ke=kinetik_enerji(v,m);
cout <<endl<<endl<<"Maddenin potansiyel enerjisi:"<<pe;
cout <<endl<<"Maddenin kinetik enerjisi :"<<ke<<endl<<endl;
return 0;
}
DİZİLER
Dizi, bellekte belirli bir türden belirli sayıda değişken için yer ayrılmasını
sağlayan ve bu değişkenlere adı ve bir indis ile erişilmesine olanak sağlayan
bileşke bir veri tipidir. Diziyi oluşturan elemanlar mantıksal bellekte kesinlikle
ardışık bloklarda saklanırlar. C++’da dizinin ilk elemanının indisi [0]’dır.
Örnek 10.
6 elemanlı bir yapı sisteminde; her elemanın kesit alanı özelliğini
kullanıcıdan alıp bir diziye depolayan, daha sonra da ekrana yazdıran
bilgisayar programı geliştiriniz.
#include <iostream>
using namespace std;
int main()
{
double kesit[6];
int i;
for(i=0;i<6;i++)
{
cout<<i+1<<". elemanin kesit alani = "; cin>>kesit[i];
}
cout<<"\n\nkesit alanlari: \n";
for(i=0;i<6;i++)
{
cout<<kesit[i]<<"\t";
}
return 0;
}
İKİ BOYUTLU DİZİLER (MATRİSLER)
Matrisler, çok boyutlu diziler olarak düşünülebilir. C++’da matrisin ilk
elemanının indisi [0][0]’dır.
Tamsayılardan oluşan m x n boyutundaki (A) matrisinin tanımlanması şu
şekildedir:
int A[m][n];
Burada m satır sayısını, n kolon sayısını göstermektedir.
Örnek 11.
4 elemanlı bir yapı sisteminde; her elemanın sırasıyla eleman numarasını,
elastisite modülünü ve kesit alanı özelliğini kullanıcıdan alıp bir matrise
depolayan, daha sonra da ekrana yazdıran bilgisayar programı geliştiriniz.
#include <iostream>
using namespace std;
int main()
{
double matris[4][3];
int i,j;
for(i=0;i<4;i++)
{
cout<<i+1<<". elemanin eleman numarasi = "; cin>>matris[i][0];
cout<<i+1<<". elemanin elastisite modulu = "; cin>>matris[i][1];
cout<<i+1<<". elemanin kesit alani
= "; cin>>matris[i][2];
cout<<endl;
}
cout<<"\n\nozellikler: \n";
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
cout<<matris[i][j]<<"\t";
}
cout<<endl;
}
return 0;
}
DİZİLER ve MATRİSLER için DİNAMİK BELLEK
Buraya kadar kullanılan dizi ve matris tanımlamaları program başlarken
dizinin veya matrisin boyutunun belirli olması ve programın çalışma
süresince
bunlar
için
ayrılan
bellek
alanının
başka
bir
amaçla
kullanılamaması şeklinde idi. Oysa bazı durumlarda diziler veya matrisler
programın belirli bir bölümünde kullanılıp daha sonra onlara olan gereksinim
ortadan kalkabilmektedir. Böyle durumlarda C++ dinamik bellek kullanıp
gereksinimin ortadan kalktığı noktadan sonra dizi veya matrisin kullandığı
bellek alanını boşaltıp başka amaçlar için kullanmaya izin vermektedir.
Dinamik bellek kullanan bir dizi veya matris oluşturmak için new, kullanılan
belleği boşaltmak için delete kullanılır.
Örnek 12.
Eleman sayısı kullanıcıdan alınan bir yapı sisteminde; her elemanın
elastisite modülü özelliğini yine kullanıcıdan alıp bir diziye depolayan, daha
sonra da ekrana yazdıran bilgisayar programı geliştiriniz.
#include <iostream>
using namespace std;
int main()
{
double *elastisite;
int eleman_sayisi,i;
cout<<"Yapi kac elemanlidir? ";
cin>>eleman_sayisi;
cout<<endl;
elastisite=new double [eleman_sayisi];
for(i=0;i<eleman_sayisi;i++)
{
cout<<i+1<<". elemanin elastisite modulu = ";
cin>>elastisite[i];
}
cout<<"\n\nelastisite modulleri: \n";
for(i=0;i<eleman_sayisi;i++)
{
cout<<elastisite[i]<<"\t";
}
return 0;
}
Örnek 13.
Eleman sayısı ve özellik sayısı kullanıcıdan alınan bir yapı sisteminde; her
elemanın sırasıyla özelliklerini kullanıcıdan alıp bir matrise depolayan, daha
sonra da ekrana yazdıran bilgisayar programı geliştiriniz.
#include <iostream>
using namespace std;
int main()
{
double **matris;
int i,j,eleman_sayisi,ozellik_sayisi;
cout<<"Yapi kac elemanlidir? ";
cin>>eleman_sayisi;
cout<<"Yapi icin kac ozellik girilecek? ";
cin>>ozellik_sayisi;
cout<<endl;
matris=new double *[eleman_sayisi]; //SATIRLAR
for(i=0;i<eleman_sayisi;i++)
matris[i]=new double[ozellik_sayisi]; //KOLONLAR
for(i=0;i<eleman_sayisi;i++)
{
for(j=0;j<ozellik_sayisi;j++)
{
cout<<i+1<<". elemanin "<<j+1<<". ozelligi = "; cin>>matris[i][j];
}
cout<<endl;
}
cout<<"\n\nozellikler: \n";
for(i=0;i<eleman_sayisi;i++)
{
for(j=0;j<ozellik_sayisi;j++)
{
cout<<matris[i][j]<<"\t";
}
cout<<endl;
}
return 0;
}
Download

yambu08