C++.

Slides:



Advertisements
Benzer bir sunumlar
Nesneye Yönelik Programlama
Advertisements

C# İsim uzayları(namespace)
SINIFLAR Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
void medyan(int cevap[]) { int j; siralama(cevap);
Nesneye Dayalı Programlama
Bölüm 2 C Dilinin Temelleri
C Programlama Diline Giriş
Nesneye Dayalı Programlama
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
C++’A GİRİŞ Yılmaz Kılıçaslan.
C++ STACK SINIFI.
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
INPUT/OUTPUT FORMATİNG
SINIFLAR GİRİŞ Yılmaz Kılıçaslan.
Nesneye Dayalı Programlama
Derleyici Araçları FLEX & BISON
Fonksiyonlar.
C++ Yapısı Giriş-Çıkış Komutları Döngü Komutları
İSİM UZAYLARI (NAMESPACE)
Bilgisayar Programlama
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
Paralel Programlamaya Giriş
FONKSİYONLAR.
SABİT NESNE VE ELEMAN FONKSİYONLAR VE ELEMAN NESNELER
Derleyici Teorisine Giriş
Bilgisayar Programlama
Fonksiyonlar Fonksiyon Tanımı
Nesneye Dayalı Programlama
Programlama Ortamı ve Araçlar
C++’a Giriş Yılmaz Kılıçaslan.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Bölüm 2 - C ile Programlamaya Giriş Başlıklar 2.1Giriş.
SANAL FONKSİYONLAR VE ÇOKBİÇİMLİLİK Yılmaz Kılıçaslan.
C++ Ders Notları 2.Ders (Dilin Yapısı)
C++ Ders Notları 3.Ders (String İşlemleri)
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Paralel Programlamaya Giriş 2
Paralel Programlamaya Giriş
The if statement. if Şartlı kontrol Koşul değimi doğru (1) yada yanlış (0) değeri üretir. Şartın doğru olması durumunda if satırından sonraki değimler.
VERİ YAPILARI İşaretçi Nedir? Nesne Tabanlı Programlama.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
2. HAFTA 2. Hafta.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
3. HAFTA 3. Hafta.
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Veri yapıları Hafta3 Dizi Yapıları.
C Programlamada, benzer tipte tanımlaman değişkenleri kontrol etmede bize en çok yardım eden dostlarımız dizilerdir. Örneğin: 100 Öğrencinin bilgilerini.
BİLGİSAYAR programlama II
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bilgisayar Programlama III C
Hafta2 Rekürsif Algoritmalar
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
Algoritma ve Programlama
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
C Programlama Dili Bilgisayar Mühendisliği.
Bölüm 2 - C ile Programlamaya Giriş
C’de Fonsiyonlar Aslı Ergün.
BM-103 Programlamaya Giriş Güz 2016 (10. Sunu)
DİZİLER Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi (array) denir. Örneğin kullanıcıdan 7 kişinin not ortalamasını.
FONKSİYONLAR Programlamada fonksiyon kullanmanın en önemli sebebi kodların tekrar edilmesini engellemektir. Örneğin; karekök yada üsalma işlemi yapan bir.
Bölüm 2 C Dilinin Temelleri
Fonksiyonlar.
YAPISAL PROGRAMLAMA Hafta-6
YAPISAL PROGRAMLAMA Hafta-7
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
Sunum transkripti:

C++

C++ C++derlenen bir dildir Editör ve Compiler (Derleyici) gerekir Sıradan bir notepad bile editör olabilir. C++ için özel geliştirilmiş olan editörler hatalarımızı kolay bulmamızı sağlar İkisini birden sunan yazılımlar vardır. Örneğin Dev-C++ ya da CodeBlocks

C++ PROGRAMLAMA DİLİ YAPISI Bir C++ programı en basit şekilde aşağıdaki gibidir. Buprogram hiçbir şey yapmaz, ancak hata vermez. int main(){ return 0; }

C++ PROGRAMLAMA DİLİ YAPISI Bir C++ programı en genel anlamda şu şekildedir. //Eklemek istediğiniz yorumlar Eklenmesi gereken Kütüphaneler; tanımlanması gereken kullanıcı fonksiyonları; int main(){ icra Bloğu; return 0; } //İlk C++ Programım #include<iostream> using namespace std; int main() { cout<<"Merhaba Dunya";

C++ PROGRAMLAMA DİLİ YAPISI //İlk C++ Programım #include<iostream> using namespace std; int main() { cout<<"Merhaba Dunya"; return 0; } cout komutu için kullanmamız zorunludur. cout komutunu bu şekilde kullanabilmemiz için gereklidir. Eklenmemesi halinde programın çalışabilmesi için bu satırı: std::cout<<"Merhaba Dunya"; şeklinde yamamız gerekirdi.

C++ PROGRAMLAMA DİLİ YAPISI  Eklemek istediğiniz yorumlar :  Bir C++ programının herhangi bir bölümünde // ile başlayarak program hakkında bilgi yazabilirsiniz  Eklenmesi gereken Kütüphaneler  # işareti ile başlayan satırlar direk olarak önişlemciye yollanır.  Örneğin #include <iostream> komutu önişlemciye program için iostream standart dosyasının eklenmesi gerektiğini söyler  Böylelikle standart input/output komutlarını programımızda kullanabilme imkanımız olur. o Ekrana yazdırma, klavyeden okuma yapma v.s.  using namespace std  Standart C++ kütüphanelerinin tüm elemanları bir isim uzayında (namespace) tanımlıdır.  Kullanmak istediğimiz komutları belli bir alan içerisinde kullanmamız için gereklidir  Kullanılmaması durumunda tüm komutların kullanım alanı program içerisinde tek tek belirtilmelidir (ki bu çok zahmetli bir iştir)  Bu satırı pek çok (belki de tüm) yazılan programlarda kullanacağız.

C++ PROGRAMLAMA DİLİ YAPISI int main(){ Bu satır C++programının ana fonksiyonunun başladığını gösterir. Programda ilk işlenecek olan fonksiyon budur. Programdaki yerinin önemi yoktur. Hangi satırda yazılmış olursa olsun ilk işlenecek bölümdür Her program main() fonksiyona sahip olmalıdır. main, bir fonksiyon olduğu için () tarafından izlenir. Fonksiyon içerisindeki kodlar { } arasına yazılır.

C++ PROGRAMLAMA DİLİ YAPISI cout<<"Merhaba Dunya"; Bu satır C++ ifadesidir (statement). Statement: Bir sonuç üretilmesini sağlayan basit bir deyimdir. Bu satır ekrana bir bilgi yazılmasını sağlar. cout: C++ için standart output komutudur. Amacı output’a istenilen karakterleri yazdırmayı sağlamaktır o Bu örnekte ekrana yazılacak olan karakterler: Merhaba Dunya Satırın sonuna eklenen ; karakteri bu komut satırını bittiğini yeni ifadeye geçildiğini gösterir. En sık rastlanan hata, ifadelerin sonuna ; konulmamasıdır. return 0; Bu statement main fonksiyonun bittiğini gösterir. Bu komuttan sonra main program ı bitirileceği için bu noktadan sonra yazılan komutların hiçbir önemi yoktur.

cout (Biraz Daha Bilgi) cout programımızdan output’a bilgi akışını sağlayan nesnedir. Kullanılan operatör : >> Her türlü output’a bilgi yazdırmak amacıyla kullanılması zorunlu olan bir komuttur. using namespace std kullanıldığında, cout standart (std) output’a (ekran) bilgi yazar. ostream (output stream) sınıfına ait bir nesnedir Program içinde kullanılabilmesi için bu sınıfın programa eklenmesi gereklidir: #include<ostream> iostream sınıfı istream ve ostream sınıflarının tüm özelliklerini kalıtım yoluyla aldığı için, iostream sınıfı dahil edilerek istream ve ostream sınıfları dahilindeki tüm komutlar kullanılabilir.

C++ PROGRAMLAMA DİLİ YAPISI //İlk C++ Programım #include<iostream> using namespace std; int main() { cout<<"Merhaba Dunya"; return 0; } ; komutun bittiğini gösterir, bu nedenle diğer ifadeyi yazmak için alt satıra geçme zorunluluğu yoktur. //İlk C++ Programım #include using namespace std; int main(){ cout<<"Merhaba Dunya"; return 0;}

Örnek Kod Çalışması-Dev Cpp //İlk C++ Programım #include<iostream> using namespace std; int main() { cout<<"Merhaba Dunya"; return 0; }

C++ PROGRAMLAMA DİLİ YAPISI //İlk C++ Programım #include<iostream> using namespace std; int main() { cout<<"Merhaba Dunya";cout<<"Programlamayı cok seviyorum"; return 0; }

C++ PROGRAMLAMA DİLİ YAPISI //İlk C++ Programım #include<iostream> using namespace std; int main() { cout<<"Merhaba Dunya"<<"Programlamayı cok seviyorum"; return 0; }

C++ PROGRAMLAMA DİLİ YAPISI //İlk C++ Programım #include<iostream> using namespace std; int main() { cout<<"Merhaba Dunya"<<endl;cout<<"Programlamayı cok seviyorum"; return 0; }

C++ PROGRAMLAMA DİLİ YAPISI //İlk C++ Programım #include<iostream> using namespace std; int main(){ cout<< "Merhaba Dunya" <<endl; cout <<"Programlamayi cok seviyorum"; return 0; }

C++ PROGRAMLAMA DİLİ YAPISI //İlk C++ Programım #include<iostream> using namespace std; int main(){ cout<< "Merhaba Dunya"; //Ekrana Merhaba Dunya yaz cout<< endl; //Alt satıra geç cout<<"Programlamayi cok seviyorum"; return 0; }

Klavyeden Okuma : cin deyimi Dışarıdan programa bilgi akışı sağlayabilmek için cin deyimi kullanılması zorunludur. using namespace std kullanıldığında, cin standart (std) inpt’tan (klavye) bilgi okumamızı sağlar. istream (input stream) sınıfına ait bir nesnedir ve kullanılabilmesi için #include<istream> kütüphanesinin programın başına eklenmesi gereklidir. iostream sınıfı istream ve ostream sınıflarının tüm özelliklerini kalıtım yoluyla aldığı için, iostream sınıfı dahil edilerek istream ve ostream sınıfları dahilindeki tüm komutlar kullanılabilir.

Klavyeden Okuma : cin deyimi cin ile klavyeden bilgi girişi yapılabilir kullanılacak operatör : >> Örnek: cin >> yas; yas adlı değişkene klavyeden alınacak bilginin atanmasını sağlar Bu şekilde kullanım için değişkenin öncelikle tanımlanması gerekir.

Değişkenler Daha önce yazdığımız "merhaba dünya" programı sadece ekrana bilgi yazdırmak içindi Asıl programların hemen hemen tümünde değişkenlerle çalışmak zorundayız. Programlarımızda işlemlerimizi yaparken verileri kullanırız. Mesela herhangi iki sayıyı toplarız veya iki tane karakter dizisini (string) karşılaştırırız. Bu işlemler için kullandığımız verilerimizi değişkenler içinde tutarız. Değişkenler bilgisayar hafızasında verileri depolayan ve isimleri olan, programlamanın en temel elementleridir. Değişkenlere ulaşabilmemiz için isimlerinin olması gerekir. Ancak gerçekte değişkenler sadece hafızada belli bir adreste tutulan bilgilerdir. Değişken isimleri, bizim bilgiye ulaşmak için bakmamız gereken adreslere ulaşmamızı sağlayan araçlardır. C++ dilinde bir değişkeni kullanmadan önce onu tanımlamak zorundayız. Tanımlamayı değişkene uygun bir isim verme ve değişkenin hangi tipten olduğunu bildirmeyle yaparız.

Değişkenler Değişken isimlerini verirken C++'ın bir takım sıkı kurallarına uymamız gerekir. Değişkenlerin isimleri, alfabede bulunan karakterlerle başlamalı. İlk harf hariç diğer karakterler sayı olabilir. İçerisinde Türkçe karakterler bulunmamalı C++ büyük ve küçük harf duyarlıdır. Yani Sayi, sayi ve SAYI hepsi ayrı değişken olarak algılanırlar. Değişkenlerin isimleri !, ?, {, ] ve boşluk gibi karakterler içeremezler. _ değişken isimlerinde kullanılabilir. C++'ın anahtar kelimelerini de değişken isimleri olarak kullanamayız.

Değişkenler sayi, tamsayi1, toplam, Fark, KullaniciAdi, isim, _Adres, sinif_ortalaması, kurallara göre adlandırılmış doğru değişken isimleridir. Diğer taraftan 1.sayi, tamsayi 1, fark!, 3.sinif_ortalamasi geçersiz değişken isimleridir. Yanlış adlandırılmış değişkenleri içeren programlar derlenmez! Anahtar kelimeler C++ dilinde bulunan komutların isimleridir. Bunları değişken ismi olarak kullanamayız. Ayrıca alt çizgi ile başlayan değişken tanımlamadan kaçınmalıyız. Çünkü genelde C++ kütüphanelerini yazan programcılar değişkenlerini alt çizgi ile başlayan isimler verirler. Bu da isimler arasında çakışma yaratabilir.

Veri Türleri Verileri bilgisayarda program çalışırken bellekte (RAM) depolanır. Bilgisayar belleği bitlerden oluşmuştur. Bir bit temel olarak 1 veya 0 değerini alır. Sekiz tane bit bir byte eder. Bilgisayarın hafızasında verilerin kapladıkları alanları byte türünden ifade ederiz. Değişkenleri ihtiyacımıza göre değişik tiplerde tanımlarız kullanırız.

Veri Türleri

Değişkenlerin Deklarasyonu C++ programında bir değişkeni kullanabilmek için öncelikle onu tanımlamalıyız (declaration). Data tipini ve değişken ismini belirtiriz. Örnekler: int a; a adında bir tamsayı tanımladık float sayi; sayi adında bir float (kesirli sayı) tanımladık Birden fazla aynı tipte değişken tanımlamak için: int a, b, c; her birini ayrı ayrı tanımlamak ile aynı int a; int b; int c;

Değişkenler ile çalışmak #include <iostream> using namespace std; int main () { // değişken deklarasyonu: int a, b; int result; // işlem: a = 5; b = 2; a = a + 1; result = a - b; // sonucu ekrana yaz: cout << result; //programı bitir: return 0; }

Değişken Alanları Tüm değişkenler kullanıldıkları noktadan önce tanımlanmalıdır Bir değişken global ya da lokal olabilir Global Değişken: Programın ana gövdesinde tanımlanır. Tüm fonksiyonların dışında (main de dahil) Lokal değişken: Bir fonksiyonun gövdesi içinde tanımlanır ve sadece bu fonksiyon içerisinde kullanılabilir. Global değişkenler programın herhangi bir yerinde çağırılabilirler. Tanımlanmasından sonra tüm fonksiyonlardan çağırılabilirler. Lokal değişkenler içinde tanımlandıkları {} ile sınırlıdır. Ancak bu aralıkta kullanılabilirler. Bu aralık bir kod bloğu da olabilir bir fonksiyon da. Bir fonksiyon içinde tanımlanan değişkene diğer fonksiyonlardan ulaşılamaz.

Değişken Alanları

Değişkenler: Karakterler ve Stringler Karakterler tek tırnak içine char a='z' char b='p' Stringler çift tırnak içine string a= "Hello world" string str="How do you do?"

Özel Karakterler Karakterler tek tırnak içine char a='z' char b='p' Stringler çift tırnak içine string a= "Hello world" string str="How do you do?"

Özel Karakterler \n Yeni Satır \r Yeni Satır \t Tab \v Dikey Tab \' Tek Tırnak (') \" Çift Tırnak (") \? Soru İşaret (?) \\ Ters Bölü (\)

String Değişkenleri

String Değişkenleri String deklerasyonu farklı şekilde de yapılabilir: string mystring = "This is a string"; string mystring ("This is a string"); Değeri daha sonraki aşamalarda değiştirilebilir

Mantıksal Operatörler "!=" ---> eşit değildir; "||"---> veya operatörü "&&"---> ve operatörü "<="---> küçük eşit operatörü ">="---> büyük eşit operatörü "==" ---> eşittir operatörü "+" ---> toplama operatörü "-" ---> çıkarma operatörü "*" ---> çarpma operatörü "/" ---> bölme operatörü "%" ---> mod alma operatörü.

İf-else yapısı if-else komutu iki işlemden hangisinin uygulanacağına karar verir. Else kısmı seçimlidir, gerekmiyorsa kullanılmayabilir. Yazılım kuralı ile şöyledir; if ( ifade) komut1; else  komut2; daha genel sekliyle if ( ifade )  { komut1; komut2; ... } else  { komut1; komut2; ... }

Örnek //tekcift.cpp //sayi tekmi çiftmi? #include <iostream.h> main() { int sayi; cout<< "Bir sayi giriniz:"; cin >> sayi;  if (sayi %2==1 ) cout <<"tek"; else cout << "çift" ; }

Switch-Case Yapısı Switch Case deyimi islev bakimindan if deyimine çok benzemektedir. Çok sayida if islem bloklari kullandigimizda programin okunurlugu azalacak ve programi izlemek zorlasacaktir. Programimizin bir degerini bir çok degerle karsilastirmak gerektiginde switch komutunu kullanacagiz. Switch seçenegi ile degiskenin durumuna göre bir çok durum içersinden bir tanesi gerçeklestirilir. Istersek de if deyimi ile switch case'' yi birlikte kullanabiliriz. Switch in yaptigi is kisaca, ifadenin degerini sirayla sabitlerle karsilastirarak ve her satiri islemektir. switch( Kontrol Degiskeni ) { case Sabit1 : komut1; case Sabit2 : komut2; . default : Komutson; }

Örnek /ucgen.cpp // Program girecegimiz ölçülere göre üçgenin Alan, Yükseklik ve Tabanini bulur #include <iostream.h> int main() { char secenek; float alan, yukseklik, taban; cout << "Program girecegimiz ölçülere göre üçgen''in Alan, Yükseklik ve Tabanini bulur!\n" << endl << " A ---> Alan : Bulmak için yükseklik ve tabani girecegiz:" << endl << " h ---> Yükseklik : Bulmak için alan ve tabani girecegiz:" << endl << " t ---> Taban : Bulmak için alan ve yüksekligi girecegiz:" << endl << endl << endl; cout<< "Seçeneginiz? ---> A, h, t :"; cin>> secenek;

Örnek (Devamı) switch(secenek) { case ''a'': case ''A'': cout<< endl <<endl <<"Yükseklik: "; cin>> yukseklik; cout<<endl << "Taban: "; cin >> taban; alan = 0.5 * taban * yukseklik; cout<<endl << endl << "Alani: " << alan << endl; break; }

Örnek (Devamı) case ''h'': case ''H'': { cout<< endl << endl <<"Alani: "; cin>> alan; cout<<endl << "Tanabi: "; cin >> taban; yukseklik = 2.0 * alan / taban; cout << endl << endl << "Yükselik: " << yukseklik << endl; break; }

Örnek (Devamı) case ''t'': case ''T'': { cout << endl <<endl <<"Alani: "; cin >> alan; cout << endl << "Yüksekligi: "; cin >> yukseklik; taban = 2.0 * yukseklik / alan; cout << endl << endl <<"Tabani: " << taban << endl; break; } return 0;

Döngüler for switch - case while, do-while

for Genel kullanılış biçimi: for( [ilk değerler], [durum testi] , [arttırım] ) [komut]; yada { [komut 1]; [komut 2]; [komut n]; }

For(Kullanım örnekleri) for(int i = 10; i<0 ; i--) for(int i = 10; i ; cout >> i-- >> endl); i>0 kontrolümüz sadece i'ye dönüşmüş. i 0 değerini aldığında kontrol yanlış olacaktır.

For(Kullanım örnekleri) #include<iostream> using namespace std; int main() { int i = 10; for( ; ; ) if( !i )//i değilsenin anlamı 0 değilse demektir. break; cout << i-- << endl; } return 0;

While Genel kullanılış biçimi : while ( [durum testi] ) [komut]; ya da { . }

While (örnek) // while1.cpp // Klavyeden girilen sayıdan 100e kadar olan sayıyı toplayan program #include <iostream.h> main() { int x, y; y= 0; cout<< " Bir Sayi Giriniz ( Sayi 100 den küçük olucak ) : "; cin>>x; while (x< 101) y =y+x; x =x+1; } cout<< "Toplam= "<< y;

While (örnek) //ortalama.cpp // while döngüsü ile girilen 6 adet notun ortalaması alındı #include <iostream.h> int main() { int toplam, sayac, not, ortalama; toplam = 0; sayac = 1; while ( sayac <= 6 ) cout << "Notu giriniz: "; cin >>not; toplam = toplam + not; sayac = sayac + 1; } ortalama = toplam / 6; cout << "Sinif ortalamasi = " << ortalama << endl; return 0;

Do-while döngüsü do { cümle cümle cümle ... } while ( kosul );

Do-while döngüsü //do.cpp //do-while döngüsünü kullandik #include <iostream.h> int main () { unsigned long x; do { cout<< "Bir sayi giriniz ( Durdurmak için 0 ) : "; cin>> x; cout<< "Girdiginiz sayi: " << x << "\n"; } while (x != 0); return 0;