Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

C++ Ders Notları 2.Ders (Dilin Yapısı) Yrd. Doç. Dr. Musa Ataş 1.

Benzer bir sunumlar


... konulu sunumlar: "C++ Ders Notları 2.Ders (Dilin Yapısı) Yrd. Doç. Dr. Musa Ataş 1."— Sunum transkripti:

1 C++ Ders Notları 2.Ders (Dilin Yapısı) Yrd. Doç. Dr. Musa Ataş 1

2 İlk Programımız  C++ da ilk basit programımız : HelloWorld isimli proje açıyoruz #include using namespace std; //ilk program int main() { cout << "Hello world!" << endl; return 0; } 2

3 Derleme ve Çalıştırma aşamaları 3  Kaynak kodu syntax (sözdizimi kuralları) bakımından kontrol edilir, e ğ er hata varsa derleme işlemi iptal edilerek hatalar rapor edilir, de ğ ilse object dosyası yapılır. Daha sonra, include ile programınıza dahil etti ğ iniz kütüphaneler (örne ğ imizde iostream kütüphanesi) obj dosyasına ba ğ lanarak, makine seviyesinde çalıştırılacak exe kodu (executable file) üretilir.  Not: C++ da ifadeler arasında “;” karakteri bulunmalıdır.

4 Dilin Yapısı 4  Programın başındaki #include ifadesi, kütüphane şeklinde tanımlanmış sınıfları ve fonksiyonları, kendi programımızda kullanabilmemizi sa ğ lar. (Reusability)  Standard C++ komutlarının kullanılabilmesi için ise programın başına using namespace std; yazıyoruz.  Programın çalışmaya başlaması main() fonksiyonu ile olur. Bu yüzden geliştirece ğ imiz uygulamalarda mutlaka main fonksiyonu olmalıdır.  main fonksiyonu geriye “return 0;” şeklinde de ğ er dönderir. 0 hatanın olmadı ğ ı anlamını taşır.

5 Dilin Yapısı 5  #include, using ve main fonksiyonları ile kod bloklarının dışındaki bütün ifadeler “;” ile bitmelidir.  C++ komutları arasında boşluk bırakmak zorunlu de ğ ildir, ancak yazdı ğ ınız kodun daha okunaklı ve anlaşılır olmasına yardımcı olaca ğ ından tercih edilir. cout << "Hello world!" << endl; cout<<"Hello world!”<

6 C++ Değişmezleri (Literals) 6  Sabit tanımlamaları(const) : sabitler tanımlandıktan sonra de ğ erleri de ğ iştirilmezler. const double pi=3.14; Veya const string sirket_adi=“UCLA”;  String de ğ işmezler : çift tırnak içerisine yerleştirilmiş, herhangi karakterlerden meydana gelir. Örn: " Merhaba! " veya " 10 > 22 $&*%? " gibi.  Nümerik de ğ işmezler:  Tamsayı: örn: gibi.  Ondalıklı: örn: e7 (2.33x10 7 )

7 Belirleyiciler (Identifiers) 7  Proje, Sınıf, De ğ işken, Sabit, fonksiyon ve parametre isimleri.  Uyulacak Temel Kurallar a. Rakamla başlamaz. örn: 2ogrenci (yanlış). b. Türkçe karakter içermemelidir. Örn: (ç, ğ,ö,ü,ı, İ,ş) c. Aralarında boşluk olmaz. Örn: int harf notu=45; (yanlış) d. Kelimeler arasında boşluk bırakmak yerine alt çizgi kullanılabilir. Programın okunurlulu ğ u artar. Örn: harf_notu (do ğ ru ifade) e. C++ dili harf duyarlı bir dil oldu ğ undan belirleyici ismi olarak atanan Kitap ile kitap farlı algılanacaktır. f. Belirleyici olarak tanımlanan isimler yeterince anlamlı olmalıdır. Bu şekilde programın okunurlulu ğ u ve anlaşılırlı ğ ı arttı ğ ı gibi, geliştirilmesi daha kolay olur. Örn: x, y, z isimleri yerine ogrencinin_adi, vize_notu, matematik_dersi_ortalamasi gibi.

8 Rezerve edilen kelimeler 8  C++ dilinde bazı kelimeler dilin kendi iç yapısında derleyici tarafından kullanıldı ğ ı için de ğ işken, sınıf, fonksiyon ve sabit adı olarak kullanılmazlar. Rezerve edilen kelimeler program geliştirme editöründe (visual stuido, eclipse, netbeans, codeblocks) genellikle mavi renkle yazılırlar. O yüzden rahat bir şekilde anlaşılırlar. Örn: 1. void 2. return 3. int 4. double 5. string 6. const 7. char 8. class 9. private 10. public

9 Türler ve Değişkenler 9  Farklı farklı verileri saklayabilmek için de ğ işik türler geliştirilmiştir. Örn : int, char, string, float, double  Türlerden de ğ işkenler tanımlanarak veriler bu de ğ işkenlere aktarılır. Program içerisinde bu de ğ işkenler yardımıyla çeşitli işlemler yapılarak programın istenilen çıktı vermesi sa ğ lanır. De ğ işkenler kullanılmadan önce belirli bir türden tanımlanmış olmaları gerekir. Örn: int a=234; double d=0, e=5.6, f; string kullanici_adi=“hmyo”;  Genel yapısı : Tür degisken=ilk_deger; şeklindedir. Ancak e ğ er istenirse degiskene ilk de ğ er verilmeyebilir. Bu durumda derleyici alakasız bir de ğ er yükleyecektir. Genellikle C/C++ programcıları tanımlanan de ğ işkenlere ilk de ğ er vermeyi tavsiye etmektedirler.

10 Semboller 10  Sayı ve harf olmayan ama C++ dilinde özel anlam taşıyan karakterlerdir. SembolAnlamıÖrnek +Toplamaa ++; a=a+1; a+=3; a=21+23; -Çıkarmaa--; d=b-c; *Çarpmaa=b*c; /Bölmea=b/c; %Kalan / Moduluskalan=b%2; =Atama (Sol taraf hesaplanır sa ğ taraftaki tek de ğ işkenin üzerine yazılır yani atanır) A=B+C+2*D-F*F; <, <=Küçüktür, Küçük eşittira=(a<=22)?78:b-c; >, >=Büyüktür, Büyük Eşittirdurum=(ort>=60)?”geçti”:”kaldı”; ==, !=Eşit midir?, Eşit De ğ il midir?d=(a==11 && b!=11)?2:3; /*, */Açıklama satırı başla, bitir {, }Blok başla, blok bitir <>cin ile Input bilgi girişicin >> “kullanıcı adı:” >> user_id ; #include ifadesinin başına getirilir#include &&, ||Mantıksal ve, veya ifadelerid=((a==44 && b!=44) || b

11 Veri Türleri (string,char,bool) 11  string  Karakterler grubu veya dizisi olarak tanımlanabilir.  Çift tırnak içerisinde yazılan bilgileri tutar. Örn: string ad=“Siirt” ;  Gerçekte bir sınıftır çünkü “.” notasyonu ile ilgili metodlarına erişilebilmektedir. C dilindeki char * türünün alternatifi kullanımı kolay ve daha az problemli bir türdür.  cout ile ekrana basılabildi ğ i gibi cin ile de konsoldan bilgi alınıp ilgili de ğ işkene aktarılabilir. Örn: string isim; cin >> isim ;  İ leride daha detaylı işlenecektir.  char  Tek bir karakter bilgiyi tutmak için kullanılır. Tek tırnak kullanılır. Örn: char h=‘A’, d=‘3’;  Bellekte bir byte yer kaplar. 1byte=2 8 =256, yani arasındaki 256 sayının her birisine bir karakter düşmektedir (ASCII tablosu). Mesela A harfinin ASCII sayısal karşılı ğ ı 65 tir. Örn: char h=‘A’; int n=(int)h; cout<

12 Veri Türleri (int,short,long) 12  signed vs unsigned (işaretli / işaretsiz) :  Varsayılan olarak en başa unsigned yazılmadı ğ ı müddetçe işaretli kabul edilir, eksi ile artı arasında de ğ erler alırlar. Örn: int a; unsigned int b;  int  Tamsayıları içerir.  Kullanılan bilgisayar ve derleyici mimarisine göre (16 bit veya 32 bit), 2 byte yada 4 byte yer kaplar.  4 byte lık sistemlerde – arasında tamsayı de ğ eri alabilirler. Örn: cout << sizeof(int) << endl;  short  Her zaman için 2 byte yer kaplar. Örn: cout << sizeof(short) << endl;  long  Her zaman için 4 byte yer kaplar. Örn: cout << sizeof(long) << endl;

13 Veri Türleri ( float, double ) 13  float  Ondalıklı sayıları içerir.  Bellekte 4 byte yer kaplar.  [ e– e+38 ] aralı ğ ındaki sayılar float türünde bir de ğ işkenle gösterilebilir  cout << sizeof(int) << endl;  double  Her zaman için 8 byte yer kaplar. Örn:  [ e– e+308] aralı ğ ındaki sayıları göstermek mümkündür.  Karmaşık ve büyük matematiksel hesaplamalarda işe yarar. cout << sizeof(short) << endl;  Not: Bellekte daha fazla yer kaplayan bir de ğ işkene daha küçük bir de ğ işken atanabilir, mesela: double d; int a; d=a;  Tersini yapmak veri kayıplarına neden olaca ğ ından dikkatlice yapılması önerilmektedir.

14 Aritmetik işlemler 14  7 / 3  2 (int / int dolayısıyla sonuçta int olmalı)  7 / 3.0  2.33 (en az biri double sonuc double)  double a=10 / 2  sonuc 5.0 neden?   İ şlem Öncelikleri :  En büyük öncelik parantezlerindir. İ ç içe parantezlerde ise en büyük öncelik en içteki parantezindir.  *,/ nin önceli ğ i +, - den fazladır. Örn int a=5+4*3-2*10; a=?  Aynı seviyedeki önceliklerde işlem soldan sa ğ a do ğ ru yürütülür.  Örn: (55 – 32.0) * 4 / 23 işleminin sonucu=?

15 Aritmetik işlemler (precision) 15 #include using namespace std; int main() { int i_fahr; double d_fahr; cout << "enter a Fahrenheit temperature: "; cin >> i_fahr; cout << i_fahr << " F = " << (i_fahr - 32) * 5/9 << " Celsius" << endl; cout << "enter another temperature: "; cin >> d_fahr; cout << d_fahr << " F = " << (d_fahr - 32) * 5/9 << " Celsius" << endl; } Yukarıdaki kod blo ğ u çalıştırıldı ğ ında, girilen aynı fahrenheit de ğ erleri için santigrat derecelerinin farklı çıktı ğ ına dikkat ediniz. Bunun nedeni ne olabilir?

16 Atama işlemleri 16  C++ programlama dilinde atama işlemi için “=“ kullanılır.  Her zaman için sa ğ taraftaki ifade hesaplandıktan sonra sol taraftaki tek de ğ ere atama yapılır yani bellekteki adresinde tutulan de ğ erin üzerine atanan de ğ er yazılır.  De ğ işkenler tanımlandıkları zaman ilk de ğ er verilebilir. Örn: int a = 55;  Birden fazla de ğ işken varsa ve hepsine de aynı de ğ er set edilecekse (yazılacaksa, atanacaksa) int x,y,z,t; x=y=z=t=55; yazılabilir. Bu durumda x, y, z,t de ğ işkenlerine 55 de ğ eri atanmış olur.  NOT:  Aynı de ğ işken üzerinde basit aritmetiksel işlemler yapıldı ğ ında C++ da daha kısa gösterim yapılabilir. Mesela; a sayısını bir arttırmak istedi ğ imizde normalde:  a=a+1; yazarız. Bunun yerine a+=1; veya kısaca a++ da denilebilir. Bu kural di ğ er aritmetik operatörler (-, *, /, %) için de do ğ rudur.  E ğ er 1 den büyük bir de ğ er ile artırım yapılacaksa mesela 3 eklenecekse a=a+3; yerine kısaca a+=3; yazılabilir. Di ğ er operatörler için de geçerlidir.  ++ operatörü de ğ işkenin sa ğ ında veya solunda olması durumuna göre öncelik derecesi de ğ işir. E ğ er de ğ işkenin solunda ise önceli ğ i daha yüksektir. Örn: int a=33; cout << “a:” << a++ << endl; cout << “a:” << ++a << endl;  Bu programın çıktısı ne olur? (33, 35)

17 Örnek Programlar : Örnek-1 17 /* Kullanıcıdan alınan yarıçap de ğ eri ile bir dairenin alanı ve çevresini hesaplayan program */ #include using namespace std; int main() { const float pi=3.14; int r=0; float alan=0, cevre=0 ; cout << “**** Alan ve Cevre Hesaplama Programı ****" << endl; cout > r; alan = 3.14 * r * r; cevre = 2 * pi *r ; cout << “alan: " << alan << “ cevre:” << cevre << endl; return 0; }

18 Örnek Programlar : Örnek-2 18 /* Bir ö ğ rencinin adını soyadını, vize, final bilgisini alıp ekrana ortalamasını basan programı kodlayalım. */ #include using namespace std; int main() { string isim; int vize=0,final=0; double ortalama=0; cout << “**** Ortalama Hesaplama Programi ****" << endl; cout > isim; cout > vize; cout > final; ortalama = vize* final * 0.6; cout << isim << “ ortalama notunuz:” << ortalama << endl; return 0; }


"C++ Ders Notları 2.Ders (Dilin Yapısı) Yrd. Doç. Dr. Musa Ataş 1." indir ppt

Benzer bir sunumlar


Google Reklamları