ALGORİTMA VE PROGRAMLAMA I · PDF fileALGORİTMA VE PROGRAMLAMA I Celal Bayar Üniversitesi Hasan Ferdi Turgutlu YZM 1101 Teknoloji Fakültesi

Embed Size (px)

Citation preview

  • ALGORTMA VE PROGRAMLAMA I

    Celal Bayar niversitesi Hasan Ferdi Turgutlu

    Teknoloji FakltesiYZM 1101

  • C Programlama Dili Tarihesi

    C Programlama Dili Tercih Nedeni

    lk C Program

    C Kodlarnn Temel zellikleri

    Code::Blocks

    Code:Blocks ile lk C Program

    C Programlama Dili Elemanlar

    Tanmlayclar

    Anahtar Szckler

    Veri Trleri

    Deikenler

    Sabitler

    Operatrler

    Genel Bak2

    YZM 1101 Algoritma ve Programlama I

  • 1. BLM

    C PROGRAMLAMA DLNE GR

    3

    YZM 1101 Algoritma ve Programlama I

  • C programlama dili, geni amal, orta

    seviyeli, yapsal bir programlama dilidir.

    C, temelde iki eski dile dayanr : BCPL ve B.

    BCPL, 1967 ylnda Martin Richards

    tarafndan iletim sistemleri ve derleyiciler

    yazmak iin gelitirilmitir.

    C Programlama Dilinin Tarihesi4

    YZM 1101 Algoritma ve Programlama I

    C programlama dili 1972 ylnda Bell Laboratuvarlarnda Dennis

    Ritchie tarafndan gelitirilmitir.

    C programlama dili, UNIX iletim sisteminin kodlama ve

    gelitirilmesinde kullanlarak poplerliini arttrmtr.

  • 1970'lerin sonunda C, u anda geleneksel C olarak bilinen

    haline geldi. 1978 ylnda Kernighan ve Ritchie tarafndan

    yazlan, The C Programming Language adl kitabn

    yaynlanmasndan sonra, C'ye olan ilgi artmtr.

    ANSI C, C programlama dilinin, 1989 ylnda Amerika'da

    American National Standards Institute (ANSI) ve tm

    dnyada Internationals Standards Organization (ISO)

    tarafndan standart hale getirilmi srmdr.

    ANSI C standard, 1989 ylnda onaylanm, 1999 ylnda

    gzden geirilmi ve Mart 2000'de C99: ISO/IEC 9899:1999

    standard Standart C olarak kabul edilmitir

    C Programlama Dilinin Tarihesi (devam)5

    YZM 1101 Algoritma ve Programlama I

  • C, en popler dillerdin birisidir.

    C, gl ve esnek bir dildir. C ile iletim sistemi veyaderleyici yazabilir, kelime ilemciler oluturabilir veyagrafikler izebilirsiniz.

    C, yazlm gelitirme ortamlar olduka fazladr.

    C, zel komut ve veri tipi tanmlamasna izin verir.

    C, tanabilir bir dildir.

    C, geliimini tamamlam ve standard olumu bir dildir.

    C, yapsal bir dildir. C kodlar fonksiyon olarak adlandrlanalt programlardan olumutur.

    C++, Java, JavaScript, JavaApplet, PHP, C# gibi diller Cdilinden esinlenmitir.

    C Programlama Dili Tercih Nedeni6

    YZM 1101 Algoritma ve Programlama I

  • C dili, donanmdan ve iletim sisteminde bamszdr.

    C dili ile dikkatli bir biimde yazlm bir program, her

    bilgisayara tanabilir.

    Yani herhangi bir C program hibir deiiklie uramadan, veya

    ok az bir deiimle, baka bir derleyicide ve/veya iletim

    sisteminde derlenebilir.

    Sonu olarak Windows iletim sistemlerinde yazlan bir C

    kodu, Linux, UNIX veya VAX gibi iletim sistemlerinde de

    derlenebilir.

    C Dili Tanabilirdir (Portable) !!!7

    YZM 1101 Algoritma ve Programlama I

  • C sistemleri ksmda oluur:

    1. Programlama ortam

    2. C programlama dili

    3. C standart ktphaneleri

    C programlar fonksiyon ad verilen paralardan ya da

    modllerden oluur.

    Fonksiyonlar C bloklarndan oluur.

    Her fonksiyon/blok bir veya daha fazla deyimi ierir.

    Her bir deyim program altrldnda belirli bir eylemi yerine

    getirir. Deyimler ilemleri yerine getiren komutlardr.

    C Sistemleri ve Ktphaneleri8

    YZM 1101 Algoritma ve Programlama I

  • C Yazlm erii9

    YZM 1101 Algoritma ve Programlama I

    n ilemci Direktifleri

    (Preprocessor Directives)

    Genel Tanmlamalar

    (Global Declarations)

    int main (void)

    {

    }

    Deyimler ve fadeler (Statements)

    Yerel Tanmlamalar (Local Declarations)

  • Program altrlmas sonucunda ekrana Hello World!

    yazmaktadr.

    lk C Program10

    YZM 1101 Algoritma ve Programlama I

  • 11

    YZM 1101 Algoritma ve Programlama I

    1.Satr: Yorumlar /* . */ Comments

    1.satr /* ile balayp */ ile bitmektedir. Bu iaretler arasna

    yorum satrlar yazlr.

    Yorumlar, okunabilirlii artrmak amacyla kullandmz bir

    zelliktir. Programc notlar olarak da dnlebilirler.

    Yorum satrlarnda bilgisayar hibir ilem yapmaz nk C

    derleyicileri bu satrlar atlar.

    Dolaysyla, yorum satrlar iin makine diline evrilmi

    kodlar oluturulmaz.

  • 12

    YZM 1101 Algoritma ve Programlama I

    1.Satr: Yorumlar /* . */ Comments (devam...)

    Yorumlar, dier yazlmclarn programnz anlamasnda

    yardmc olur ancak ok fazla yorum satr programn ve

    kodun okunabilirliini azaltr.

    Tek satr olan yorumlar iin // karakteri de kullanlabilir.

    Yorumlar programn herhangi bir yerinde olabilirler.

    ie aklamalara izin verilmez.

    /* yorum deneme /* . */ ..*/

    Program balangcnn; programn yazlma amac, yazar,

    yazlma tarihi vb. yorumlarla olmas programlama srecine

    adaptasyon noktasnda yararl olabilir.

  • 13

    YZM 1101 Algoritma ve Programlama I

    Yorum Satr rnekleri

    /* Tek satr yorum */

    // Tek satr yorum

    /* ki satr yorum

    rnei */

    /* Birden fazla

    satr yorum

    rnei */

    Toplam = X + Y; // X ve Y toplanarak Toplam deikenine atanr

  • 14

    YZM 1101 Algoritma ve Programlama I

    2. ve 3. Satr: n ilemci Direktifleri (#include)

    # iaretiyle balayan satrlar, program derlenmeden nce C n

    ilemcisi tarafndan ilenirler.

    Bu satr, n ilemciye standart giri/k balk dosyasnn

    yani stdio.h dosya ieriinin programa eklemesini syler.

    Bu balk dosyas, derleyicinin printf gibi standart

    giri/k ktphane fonksiyonlarnn (STandarD-Input-

    Output) derlerken kullanabilecei bilgi ve bildirimleri ierir.

    Balk dosyalarnn uzants .h dir.

  • 15

    YZM 1101 Algoritma ve Programlama I

    2. ve 3. Satr: n ilemci Direktifleri (#include) (devam)

    Balk dosyalar, derleyicinin ktphane fonksiyonu

    arlarnn doru yaplp yaplmadn anlamasnda

    yardmc olan bilgiler ierir.

    ANSI C'deki standart balk dosyalar unlardr:

    assert.h

    ctype.h

    errno.h

    float.h

    limits.h

    locale.h

    math.h

    setjmp.h

    signal.h

    stdarg.h

    stddef.h

    stdio.h

    stdlib.h

    string.h

    time.h

  • 16

    YZM 1101 Algoritma ve Programlama I

    2. ve 3. Satr: n ilemci Direktifleri (#include) (devam)

    stdio.h balk dosyasnn eklenmesi tercihe baldr fakat

    standart giri/k fonksiyonlarnn kullanld programlara

    eklenmelidir.

    Bu sayede, derleyici, hatalar derleme annda bulabilecektir.

    Aksi takdirde, hatalar programn altrld anda ortaya

    kar. Bu tr hatalarn dzeltilmesi olduka g olur.

  • 17

    YZM 1101 Algoritma ve Programlama I

    5. Satr: main( ) fonksiyonu

    C programlarnn ana fonksiyonu olarak tabir edilir.

    main() kelimesinden sonraki parantezler ( ) main'in

    fonksiyon ad verilen program oluturma bloklarndan biri

    olduunu gsterir.

    Programn yrtlmesi ilk olarak bu fonksiyonun

    arlmasyla gerekleir.

    C programlar bir veya birden fazla fonksiyon ierebilir

    ancak bunlardan biri mutlaka main() olmaldr.

  • 18

    YZM 1101 Algoritma ve Programlama I

    5. Satr: main( ) fonksiyonu (devam)

    Kme parantezi, { , her fonksiyonun gvdesinin bana

    yazlr.

    Dier kme parantezi , } , ise her fonksiyonun sonuna

    yazlmaldr.

    Bu iki parantez arasnda kalan program paracna blok

    denir.

    Bloklar C'de nemli program birimleridir.

  • 19

    YZM 1101 Algoritma ve Programlama I

    7. Satr: printf("Hello World!\n"); fonksiyonu

    printf standart ktphanede bulunan ekrana formatl bilgi

    yazdrma fonksiyondur. ift trnak iareti arasndaki

    karakterleri ekrana yazdrr.

    Yazdrlacak karakterlerin tmne karakter dizesi string,

    mesaj ya da hazr bilgi literal denir.

    printf, parantezler iindeki bamsz deikenler (argument)

    ve noktal virglden oluan bu satra ifade denir.

    Her ifade ; (noktal virgl) ile bitmelidir. Noktal virgle ifade

    sonlandrc da denir.

  • 20

    YZM 1101 Algoritma ve Programlama I

    7. Satr: printf("Hello World!\n"); fonksiyonu (devam)

    printf ifadesindeki trnak iaretleri arasndaki karakterler

    aynen ekrana yazdrlr. Ancak \n karakterlerinin

    yazdrlmamaktadr.

    Ters eik izgi ( \ ), k karakteri olarak adlandrlr ve

    printf'in farkl bir i yapmas gerektiini belirtir.

    printf, ters izgi iaretiyle karlatnda, bu iaretten sonraki

    karaktere bakar ve bu karaktere gre baz zel iler yapar.

    Ters izgi iareti ( \ ) ve bu iaretten sonra gelen karaktere

    k sras denir.

    \n k sras, yeni satr anlamna gelir ve imlecin yeni satra

    gemesine sebep olur.

  • 21

    YZM 1101 Algoritma ve Programlama I

    7. Satr: printf("Hello World!\n"); fonksiyonu (devam)

    k karakterleri (escape sequence) aadaki gibidir:

    k Anlam

    \0 null karakteri temsil eder (sonlandrc karakter)

    \n Yeni satr

    \r Satrba

    \t Yatay sekme

    \v Dey sekme

    \f leri besleme

    \b Geri boluk (space)

    \a Alarm karakteri

    \" ift trnak

    \\ Ters bl

  • 22

    YZM 1101 Algoritma ve Programlama I

    7. Satr: printf("Hello World!\n"); fonksiyonu (devam)

    Ekran kts

    Ne Olacak

  • 23

    YZM 1101 Algoritma ve Programlama I

    C Kodlarnn Temel zellikleri - zet

    Yazlmda kullanlacak olan her fonksiyon iin ilgili balk

    dosyas programn bana ilave edilmelidir.

    Her C program main() fonksiyonunu iermelidir.

    Program iinde kullan