c_ders_notlari
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
İÇİNDEKİLER<br />
FONKSİYONLAR (ALT PROGRAMLAR, METOTLAR) ........................................................................................... 2<br />
C++`DA KULLANILAN PARANTEZLER; ...................................................................................................................... 2<br />
FONKSİYON NASIL TANIMLANIR ? ............................................................................................................... 2<br />
POİNTERLAR (İŞARETÇİLER) VE REFERANS (ADRES) OPERATÖRLERİ ...................................................................... 6<br />
NEDEN POİNTER KULLANIRIZ? ....................................................................................................................... 6<br />
Asal sayılar ................................................................................................................................................... 10<br />
FONKSİYONLAR VE POİNTERLAR .......................................................................................................................... 13<br />
Tam sayı dizisine yer ayırma işlemi ............................................................................................................. 17<br />
Tam sayı dizisine yer ayırma ve dizinin eleman sayısını belirleme .............................................................. 17<br />
işlemi ........................................................................................................................................................... 17<br />
---------Sınav sorularından-------- .................................................................................................................. 18<br />
SINIFLAR ............................................................................................................................................ 19<br />
VİZE ÖNCESİ SON ÖDEV VE CEVAPLARI ........................................................................................................ 22
Fonksiyonlar (Alt Programlar, metotlar)<br />
10.02.2015 Salı<br />
C++`da kullanılan parantezler;<br />
[]: Dizilerde<br />
{}: Blok yapı<br />
for(int i=1;i
using namespace std;<br />
int f(int x,int y) return x+y; //{return x+y;}olmalıydı<br />
void main()<br />
{f(2,3);}<br />
//doğrusu<br />
#include<br />
using namespace std;<br />
int f(int x,int y) {return x+y;}<br />
void main()<br />
{f(2,3);} //program çalışır ama ekrana birşey yazdırmaz.<br />
#include<br />
using namespace std;<br />
int f(int x,int y) {return x+y;}<br />
void main()<br />
{int a,b; coutb;} //hatalı<br />
#include<br />
using namespace std;<br />
int f(int x,int y) {return x+y;}<br />
void main()<br />
{int a,b; cin>>a>>b; coutb; coutb; coutb; cout
using namespace std;<br />
int f(int x) {return x+2;}<br />
void g(double x) {cout
Bir tam sayının karesi reel sayının ise 2 katını alan programı aşırı yükleme ile yapınız.<br />
#include<br />
using namespace std;<br />
double islem(int x) {return x*x;}<br />
double islem(double x) {return 2*x;}<br />
void main()<br />
{<br />
double a;<br />
int b;<br />
cin>>a>>b;<br />
cout
Pointerlar (İşaretçiler) ve Referans (Adres) operatörleri<br />
24.02.2015 Salı<br />
Bilgisayar hafızasında bir bölgeyi isimlendirip orada belirli<br />
tipte bilgi depolanmasını sağlayan değişkenler vardır.<br />
Her c++ değişkeni bilgisayarın<br />
hafızasındaki bir yere kaydedilmektedir.<br />
Değişkenin adresi, aynı evinizin adresi gibi tekdir.<br />
Bir değişkenin içeriği ya klavyeden girilir ya da<br />
girilen diğer değerlerin kullanımıyla hesaplanır.<br />
C++ da başka türde bir değişken daha vardır.<br />
Programın gücünü ve esnekliğini arttıran bu<br />
değişken tipine pointer (işaretçi)denir.<br />
Pointer belirli tipteki başka bir değişkenin<br />
adresini depolayan int tipinde bir değişkendir.<br />
Pointerları önüne yıldız işareti koyarak tanımlanır.<br />
Örneğin tipi int olan bir p sayısı için pointer tanımlaması şu şekildedir:<br />
int* p; // * işareti değişken tipine de yakın olabilir.<br />
Ya da<br />
int *p; // * işareti değişkene yakında olabilir.<br />
Bir pointerın kendisine bir değer atanamaz,<br />
fakat pointerın gösterdiği bellek adresine bir değer atanabilir.<br />
int* i;<br />
i = 3; // yanlış<br />
int* i;<br />
*i = 3; // doğru<br />
NEDEN POİNTER KULLANIRIZ?<br />
Öncelikle değişkenin adresini alıp bunu bir pointera atarız.<br />
Bir diziye aktarılan değerler üzerinde işlem yaparken pointer<br />
kullanımı işlemin hızını arttırır.<br />
Ayrıca,program çalışırken değişkenlere dinamik olarak yer tahsis eder.<br />
Bu özellik sayesinde program,girdilerine<br />
bağlı hafızasının kullanımını ayarlar.<br />
Çünkü önceden kaç değişken kullanacağınızı bilemezsiniz.<br />
Referanslar yani adres operatörleri<br />
değişkenin değeri ile birlikte<br />
adresinide tutarlar.<br />
Değişkenlerin bellekteki adreslerini bulmak<br />
için adres(referans) operatörü yani & kullanılır.<br />
6
#include <br />
using namespace std;<br />
void main()<br />
{<br />
int x=4,y=16;<br />
double z=9.3;<br />
cout
v1*=2;<br />
cout
p=&i;<br />
q=&j;<br />
r=q;<br />
cout
*(p+i); p nin gösterdiği adresten i blok ötedeki sayıyı hesaplar<br />
#include<br />
using namespace std;<br />
void main()<br />
{<br />
int yas[3],*p,toplam=0,i,n;<br />
p=yas;//dizinin ilk terimi işaretlendi<br />
yas[0]=5;<br />
yas[1]=4;<br />
yas[2]=8;<br />
for(i=0;i
{<br />
}<br />
const int n=150;//kaç tane asal sayı hesaplanacak<br />
long asal[n]={2,3,5};//İlk üç asal sayı<br />
long deneme=5;//hedef asal sayı<br />
int sayac=3;//bulunan asal sayı adedi<br />
int kontrol=0;//sayı asalsa elde edilecek değer<br />
do<br />
{ deneme+=2;//Asallığı araştırılacak sayı<br />
kontrol=0;//<br />
for(int i=0;i
setlocale(LC_ALL,"turkish");<br />
int sayi;<br />
bas:cout>sayi;<br />
switch(sayi)<br />
{<br />
case 5:cout
}<br />
char *isim3="galatasaray";<br />
char *isim4="besiktas";<br />
char *isim5="trabzon";<br />
int ad;<br />
cout
cout
eturn (toplam/n);<br />
}<br />
void main()<br />
{<br />
double a[10000];<br />
int n;<br />
cin>>n;<br />
for(int i=0;i
Program çalıştırıldığında, programcı tarafından tanımlanmış değişkenler<br />
için bellekte yeteri kadar yer ayrılır.<br />
Program işletildiği sürece bu değişkenler için ayrılan bellek alanları,<br />
ister kullanılsın ister kullanılmasın,<br />
sadece program için tanımlanmış değişkenlere aktarılacak değerleri tutmak<br />
için kullanılır.<br />
İyi ve işlevsel bir otomasyon yazılımı hazırlanmak istendiğinde<br />
çok sayıda değişkene ve çok uzun dizilere ihtiyaç duyulabilir.<br />
Böyle bir program için normal mantıkla yapılan değişken tanımlamaları<br />
sonucunda belleğin kapasitesinin dolarak programın yavaş çalışmasına,<br />
kilitlenmelere ve bu kilitlenmeler sonucu verilerin kaybolmasına yol<br />
açabilir.<br />
Bu gibi problemlerin yaşanmaması için dinamik bellek yönetimi<br />
geliştirilmiştir.<br />
new ve delete komutunun kullanımı<br />
C++ da belleği new komutu kullanarak ayırabilir ve<br />
delete kullanarak geri verebilirsiniz.<br />
Bu operatörlerin kullanımları:<br />
p-var=new tip<br />
delete p-var<br />
Burada tip: bellekte yer ayırmak istediğimiz nesnenin tipi;<br />
p-var: o tipe olan işaretçidir.<br />
#include<br />
using namespace std;<br />
void main()<br />
{<br />
int *p;<br />
p=new int;//tamsayı için bellekte yer ayırır.<br />
*p=15;<br />
cout
cout
---------Sınav sorularından--------<br />
#include<br />
using namespace std;<br />
double f(double x,double y) {return x+y;}<br />
double f(double x) {return f(x,x);}<br />
void main()<br />
{<br />
cout
Sınıflar<br />
Nesneye dayalı programlama (object oriented programming ) güçlü bir programlama dilidir ve<br />
günümüzde birçok<br />
programlama dili tarafından desteklenmektedir. C++ diğer diller içinde en temel olduğundan<br />
burada öğrenilecek<br />
olan nesneye dayalı programlama teknikleri ileride işimizi oldukça kolaylaştıracaktır.<br />
C++ nesneye dayalı bir programlama dilidir ve en önemli özelliği sınıflardır.<br />
Sınıflar nesne oluşturmaya yarayan bir mekanizmadır.<br />
Bir sınıf (class) elemanları farklı tiplerle tanımlanmış bir diziye benzer. Dolayısıyla sınıflarda dizilerin<br />
aksine elemanlar<br />
farklı tiplerde olabilirler. Sınıfın elemanları hatta fonksiyonlar bile olabilir.<br />
Sınıflar tanılayarak program parçalara bölünebilir ve bu sayede program yazmak kolaylaşabilir.<br />
Sınıflar şu şekilde tanımlanır:<br />
class sinif_adi //sinif_adi için geçerli olan kurallar değişkenler için geçerli kurallarla aynıdır.<br />
{<br />
private :<br />
üye veriler//değişkenler vs tanımlanabilir.<br />
public:<br />
üye veriler<br />
üye fonksiyonlar // fonksiyonlar ile ilgili kurallar geçerlidir.<br />
yapıcı ve yıkıcı fonksiyonlar<br />
}; //bitiş parantezinden sonra ; kullanılmak zorundadır.<br />
private: sınıf yapısına özeldir. Sınıf dışından buraya erişim olmaz.<br />
public: public`de tanımlanan değişkenlere, üye fonksiyonlara kurallara uymak kaydıyla sınıf<br />
dışından erişim<br />
olabilir. Özellikle de ana programdan erişim yapılabilir.<br />
Sınıf içindeki üye veriler ve üye fonksiyonlara erişim için nesne tanımlanmalıdır. Nesne iki türlü<br />
tanımlanabilir.<br />
1) Ana programda sinif_adi nesne_adi ; şeklinde<br />
2) Sınıf blok yapısının bittiği }; kısmında noktalı virgülden önce direkt yani }nesne_adi; şeklinde<br />
tanımlanabilir.<br />
Örnek: Aşağıdaki programı inceleyiniz;<br />
#include<br />
using namespace std;<br />
class prog<br />
{<br />
public:<br />
void f(int n )<br />
{<br />
cout
sınıf ,soyadınızda nesne ve doğum yeriniz adında üye fonksiyonla yazınız.<br />
#include<br />
using namespace std;<br />
class mustafa<br />
{<br />
public:<br />
double gop(double a,double b)<br />
{<br />
return a+b;<br />
}<br />
};<br />
void main()<br />
{<br />
double x,y;<br />
cin>>x>>y;<br />
mustafa bicer;<br />
couty>>z;<br />
islemler islem;<br />
cout
Sınıfta yaşı 20 ile 22 (dahil) arasında olanların sayısını bulan program.<br />
#include<br />
using namespace std;<br />
class sinif<br />
{<br />
public:<br />
void yas_araligi()<br />
{<br />
int yas,syc=0;<br />
coutn;<br />
for (int i=0;i20 && yas
VİZE ÖNCESİ SON ÖDEV VE CEVAPLARI<br />
//soru2.a<br />
#include<br />
using namespace std;<br />
class mustafa<br />
{<br />
public:<br />
double topla(int n)<br />
{<br />
double toplam=0;<br />
if(n%2==0)<br />
{<br />
for(double i=1;i
}<br />
else<br />
{<br />
for(double i=1;i
using namespace std;<br />
class islemler<br />
{<br />
public:<br />
void f()<br />
{<br />
int n; coutn;<br />
double x,enb;<br />
coutx;<br />
enb=x;<br />
for(int i=2;i
for(int i=0;i
void main()<br />
{<br />
double n;<br />
giris:cout
soru8.b<br />
#include<br />
using namespace std;<br />
class mustafa<br />
{<br />
public:<br />
double f(double x,double y,double z) {return x+y+z;}<br />
double f(double x,double y) {return x-y;}<br />
};<br />
void main()<br />
{<br />
double a,b,c;<br />
cin>>a>>b>>c;<br />
mustafa islem;<br />
cout
soru10<br />
#include<br />
using namespace std;<br />
class islemler<br />
{<br />
public:<br />
double fonksiyon(int n)<br />
{<br />
int syc=0;<br />
double *dizi=new double[n];<br />
for(int i=0;i
};<br />
void main()<br />
{<br />
islemler islem;<br />
int n;<br />
cin>>n;<br />
islem.f(n);<br />
system("pause");<br />
}<br />
//soru12<br />
#include<br />
using namespace std;<br />
class islemler<br />
{<br />
public:<br />
void hesap(int n,int m)<br />
{<br />
int kontrol=0;<br />
for(int i=n+1;;i++)<br />
{<br />
if(i%m==0)<br />
{<br />
cout