cplusplusdersi_2_temelleri

38
Bölüm 2: C++ Dilinin Temelleri C++ Dersi: Programlamaya Giriş Ramazan YAŞAR

Upload: merveceylan

Post on 16-Dec-2015

2 views

Category:

Documents


0 download

DESCRIPTION

C++

TRANSCRIPT

  • Blm 2: C++ Dilinin Temelleri

    C++ Dersi:Programlamaya Giri

    Ramazan YAAR

  • erik

    Giri

    kt Yazdrma cout

    Girdi Alma cin

    Deiken Tanm

    Veri Tipleri

    sim Sabitleri

    Atama Komutu

    2

  • Giri

    C++ ile yazlm bir program, bir veya birden fazla fonksiyondan oluur.

    Fonksiyonlar bir grevi yapan komutlar grubudur.

    Her C++ program mutlaka main() fonksiyonu iermelidir nk programn altrlmas bu fonksiyon ile balar.

    Yazdmz her komut, noktal virgl (;) ile sonlandrlmaldr.

    3

  • lk Programmz

    #include using namespace std;// lk programmzint main(){

    cout

  • 5#include

    Girdi/kt komutlarn ieren hazr ktphanelere eriimi salar.

    Bu ktphanede bulunan fonksiyonlar kullanlarak, kullancdan veri okunabilir ve sonular ekrana yazdrlabilir.

  • 6using namespace std;

    Bu komut, programa dahil edilen ktphaneleri ayrt etmek iin kullanlmaktadr.

    // lk programmz

    Aklama satr (comment)

    Aklama satrlar programn akn etkilemez ve sadece program hakknda bilgi vermek iin kullanlr.

    Aklama satr yazmak iin /* */ iaretleri de

    kullanlabilir. rn. /* lk programmz */

  • int main(){ ...}

    7

    main() bir fonksiyondur

    int tamsay (integer) tipinde bir deer dndrr.

    Her fonksiyonun ba ve sonu { } ayralar ile belirtilir.

  • cout
  • return 0;

    main() fonksiyonunu bitirir.

    Programn baarl bir ekilde bittiini gsteren 0 deerini iletim sistemine dndrr.

    ANSI/ISO C++ standardna gre bu komutu yazmamz art deildir.

    9

  • kt Yazdrma - cout Standart kt nesnesi olan cout,

    ktphanesinde bir veri yolu nesnesi (stream object) olarak tanmlanmtr.

    Buradaki veri yolunu, kt ekran ile program arasnda bir yol olarak dnebiliriz. Bu yola aktarlan her veri kt ekranna yanstlacaktr.

    cout nesnesini takip eden

  • #include

    using namespace std;

    int main()

    {

    cout

  • #include

    using namespace std;

    int main()

    {

    cout

  • #include

    using namespace std;

    int main()

    {

    cout

  • Girdi Alma - cin

    14

    Standart girdi nesnesi olan cin, cout gibi ktphanesinde bir veri yolu nesnesi olarak tanmlanmtr.

    cinden sonra yazdmz >> operatr ise veri yolu elde etme (stream extraction) operatr olarak adlandrlr.

    Bu operatrn sa tarafna yazlan deiken veya deikenlerin iine, kullanc tarafndan girilen veriler okunur.

  • 15

    #include

    using namespace std;

    int main()

    {

    int yil;

    cout >yil;

    cout

  • 16

    Bir programda verileri bellekte tutmak, saklanan verileri ilemlerde kullanmak iin bellek hcreleri kullanlr.

    Bu bellek hcrelerinde saklanan veriler deiebilecei iin bellek hcrelerine verilen isimlere deiken(variable) ad verilir.

    rnek: int yil;

    Bu komutla yil adl deikeni int (tamsay) tipinde tanmlam oluyoruz.

  • cin >> yil;

    17

    Bu komut yil deikenine kullanc tarafndan klavye kullanarak girilen tamsay deerini atar.

    cin>>isim>>yil;

    Bu komut ile hem isim hem de yil deikenlerine kullancdan veri okunacaktr.

  • Deiken Tanm

    18

    Deiken isimleri anlaml ve C++ dilinde kullanlan anahtar szcklerden farkl olmal ve aadaki kurallara uygun bir ekilde seilmelidir: lk harf alfabetik (a-z, A-Z) veya alt izgi ( _ ) karakteri olmaldr. Dier harfler a-z, A-Z, 0-9 veya _ karakterleri olabilir. Byk harf/kk harf ayrm vardr (numara, Numara, NUMARA birbirlerinden farkl deikenlerdir).

  • 19

    Deiken ismi Geerli/Geersiz

    Aklama

    hangiGun Geerli

    2sayi Geersiz rakam ile balanmaz.

    Mart2001 Geerli

    _sinif_mevcudu Geerli

    sinif# Geersiz # gibi zel karakterler kullanlamaz.

  • VeriTipi deiskensmi;

    20

    rnek: int x;

    Bu durumda bellekte x iin int (tamsay) boyutunda bir yer alr.

    rnek: int x=10;

    x deikenini tanmladktan sonraxin bellek hcresine 10 deeriatanr.

    Deer

    x

    Adres

    999997

    999998

    999999

    1000000

    0

    0

    0

    00

    0

    0

    ............

    ............

    1000001

    1000002

    BELLEK

    10

    Bellek Hcresi

  • C++ dilinde deikenler, programn

    farkl blmlerinde tanmlanabilir.

    #include using namespace std;int main(){

    int x=2;cout

  • Veri Tipleri

    22

    Veri Tipi Aklama Bayt Aralk

    short Ksa tamsay 2 bayt -32768 32768

    int Tamsay 4 bayt -2,147,483,648 +2,147,483,647

    long Uzun tamsay 4 bayt -2,147,483,648 +2,147,483,647

    unsigned int

    aretsiz tamsay 4 bayt 0 4,294,967,295

    float Reel say 4 bayt -3.4x10-38 3.4x1038

    double ift duyarl reel say 8 bayt -1.7x10-308 1.7x10308

    long double Uzun ift duyarl reel say

    10 bayt -3.4x10-4932 1.1x104832

    char Karakter 1 bayt

    bool Mantksal 1 bayt true false

  • Tamsay (int) : 2 -32 0

    Reel say (float, double): 2.35 -0.4567 0.0

    Karakter (char): 'A' '!' '9'

    Mantksal (bool): true false

    rnek:bool b;b = 3 > 1;

    23

    3 1den byk olduu iin bye true atanr.

  • 24

    int ay; // tamsayi tipinde ayunsigned yil; // pozitif tamsayi tipinde yilshort gun; // ksa tamsayi tipinde gundouble ucret; // ift duyarl reel say tipinde ucretchar cinsiyet; // karakter tipinde cinsiyetbool cevap; // mantksal veri tipinde cevap

    DeerAdres

    999997

    999998

    999999

    1000000

    1000003

    1000004

    1000001

    1000002

    BELLEK

    ay

    yil

    gun

    ucret

    cinsiyet

    cevap

    1000005

    1000006

    1000007

    1000008

    1000009

    10000101000011

    10000121000013

    Her bir bellek

    hcresinin 2 bayt

    deer tadn

    varsayalm

  • string tipinde tanmlanm deikenler

    birden fazla karakteri tutabilirler.

    #include

    #include

    using namespace std;

    int main()

    {

    string kelime="Merhaba";

    cout

  • sim Sabitleri

    isim sabiti (constant) olarak tanmlanan budeikenin deeri, program aknda bir dahadeitirilemez.

    const veriTipi sabitsmi = ifade;

    rnek:const int sinif = 50;const float pi = 3.14;

  • #include using namespace std;// Dairenin yarapn okuyup evresini hesaplar.int main(){

    //Kullancdan girdiyi isteyelim.cout > yaricap;// pi saysn isim sabiti olarak tanmlayalm.const float pi = 3.14;// Daire evresini hesaplayp ekrana yazdralm.cout

  • Atama Komutu

    Deikenlerin sakladklar verileri deitirmek iin atama komutu (assignment statement) kullanlr.

    Deikensmi = ifade;

    rnek:

    a = 10;

  • Temel Aritmetik Operatrleri

    Operatr Anlam rnek

    + Toplama toplam = toplam + 20;

    - kartma ucret = maas vergi;

    * arpma toplamMaas = maas * 12;

    / Blme yarim = tam / 2;

    % Kalan birlik = sayi % 10;

    - Tekli eksi x = -5;

  • x= 7 / 2; // cevap: 3 (tamsay blme)

    y= 7.0 / 2.0 // cevap: 3.5 (reel say blme)

    x = 14 % 3; // cevap: 2 (kalan bulur)

    Aritmetik Operatrlerin ncelik Sras

    Yksek

    Dk

    Operatr ncelik Birleme zellii

    Parantez ( ) ten da

    Tekli eksi (-) Sadan sola

    * / % Soldan saa

    + - Soldan saa

  • x = 3 + 5 * 4 / 2 (1 + 2); // ncelik srasna gre nce ( ) uygulanr

    x = 3 + 5 * 4 / 2 3; // ncelik srasna gre * ilemi yaplr

    x = 3 + 20 / 2 3; // ncelik srasna gre / ilemi yaplr

    x = 3 + 10 - 3; // birleme zellii ile nce + ilemi yaplr

    x = 13 - 3;

    x = 10;

  • Sralanm Veri Tipi enum

    Programc tarafndan tanmlanabilen, sral birekilde verilmi sabit deerlerden oluan veritiplerine sralanm veri tipi (enumerated datatype) ismi verilir.

    enum tipAd { deerler };

    rnek:enum Mevsim {ILKBAHAR,YAZ,SONBAHAR, KIS };

    Mevsim birMevsim;

  • Yukardaki tanmda verilen sabit deerler ILKBAHAR, YAZ, SONBAHAR, KIS, otomatikolarak bir tamsay ile eletirilir. ILKBAHAR : 0 YAZ : 1 SONBAHAR : 2 KIS : 3

    cout

  • Sabit deerlere kendimiz de eletirme yapabiliriz.

    enum Mevsim { ILKBAHAR=25, YAZ=36, SONBAHAR=18,KIS=-3 };

    Mevsim birMevsim = ILKBAHAR;

    cout

  • Bloklar

    { } ayralar arasnda yer alan komut dizisine blok(block) ad verilir.

    { int x;cin>>x;cout

  • Her deikenin bir kapsam (scope) vardr. Deikenlerin nerede tanmland, bu deikenlerin program ierisinde nerede

    kullanlabileceini deikenin kapsam belirler.

    {

    int i;

    {

    char i;

    {

    float i;

    i=3.5;

    }

    i = A;

    }

    i = 5;

    }

    Blok1

    Blok2

    i5

    i'A'

    i3.5

    Blok3

  • sim Alanlar sim alanlar (namespaces), snflar, nesneler ve fonksiyonlar gibi tanmlamalar tek bir isim altnda gruplamay salayan alanlardr. namespace alansmi{

    // tanmlamalar}

    rnek:namespace sayilar {int a, b;

    }sayilar::asayilar::b

  • #include using namespace std;namespace alan1{

    int x = 9;float y = 3.1;

    }namespace alan2{

    double x = 29;char y = 'a';

    }int main () {

    using namespace alan1;cout