Algoritma ve Programlama Ders1

Embed Size (px)

Citation preview

  • 8/14/2019 Algoritma ve Programlama Ders1

    1/41

    Bilgisayar Programcl ve nternetTeknolojileri Sertifika Program

    Algoritma & ProgramlamaDers 1

    Prof. Dr. Alp KutDr. Derya Birant

    http://aa/http://aa/http://aa/http://aa/http://aa/http://aa/
  • 8/14/2019 Algoritma ve Programlama Ders1

    2/41

    Algoritma nedir?

    Tanm 1: Algoritma, bir problemin mantksal zmnn,sembolik olarak anlatmdr.

    Tanm 2: Bir sorunu zebilmek iin gerekli olan sral mantksaladmlarn tmne denir.

    Algoritmalarn yazm dili deiik olabilir.

    Gnlk konuma diline yakn bir dil olabilecei gibi simgelere

    dayal da olabilir.

  • 8/14/2019 Algoritma ve Programlama Ders1

    3/41

    Algoritma zellikleri

    Her algoritma aadaki zellikleri iermelidir :

    Input / Girdi Sfr veya daha fazla

    Output / kt En azndan bir

    Definiteness / Aklk Her ilem (komut) ak olmal ve farkl anlamlar iermemeli. Mesela: NetGelir = BrtGelir Kesintiler

    Finiteness / Sonluluk Her trl olaslk iin algoritma sonlu admda bitmeli. Her algoritmann bir sonu olmaldr, sonsuza kadar devam edecek yapda

    olmamaldr.

    Effectiveness / Etkinlik

    Algoritma etkin olmaldr. Algoritmada tekrar anlatmlar olmamaldr.Bnyesinde en az tekrar bulunduran algoritmalara en etkin algoritma denir.

  • 8/14/2019 Algoritma ve Programlama Ders1

    4/41

    Program nedir?

    Bilgisayarn donanm ksmna yaam veren komutlardr.

    Bir program bilgisayara ne yapmas gerektiini syleyen bir dizi komuttur.

    kt(Output)

    >lem(Process)

    >Girdi(Input)

    Veri(Data)

    Bilgi(Information

    )

  • 8/14/2019 Algoritma ve Programlama Ders1

    5/41

    Program Gelitirme Admlar

    Program gelitirirken izlenmesi gereken admlar:

    Problemin Tanmlanmas

    zmn gelitirilmesi algoritmann yazlmas

    zmn kodlanmas algoritmann bir programlama diliyle yazlmas

    Programn Test Edilmesi and Derlenmesi mantksal ve biimsel hatalarnnayklanmas

    Program Dkmannn Hazrlanmas

  • 8/14/2019 Algoritma ve Programlama Ders1

    6/41

    Algoritma ve Program

    20

    Ekran kts

    sayi1 = 8sayi2 = 12toplam = sayi1 + sayi2PRINT toplam

    Birinci sayya 8 atakinci sayya 12 ataToplaToplam ekrana yazdr

    Program KoduAlgoritma

    8 ve 12 saylarn toplayan ve sonucu ekrana yazdran program yaznz.

    ki saynn toplanp, sonucun ekrana yazdrlmas

  • 8/14/2019 Algoritma ve Programlama Ders1

    7/41

    Programlama Dilleri

    Yksek Seviyeli DillerSembolik DillerMakina Dili

    Toplam = Sayi1 + Sayi2Mov AX, Sayi1Mov BX, Sayi2Add AX, BXMov Toplam, AX

    10101010111011111010010111011111100111111....

    Fortran (FORmula TRANslator, 1957)

    Cobol (Common Business Oriented

    Language, 1959)

    Basic (Beginners All purpose SymbolicInstructional Code, 1964)

    Pascal, 1968

    C, 1972

    11000111101101101010101010110111

    MerhabaDnya...

  • 8/14/2019 Algoritma ve Programlama Ders1

    8/41

    Quick Basic

    BASIC (Beginners All-Purpose Symbolic Instruction Code)

    Genel amal, yeni balayanlar iin bir programlama dilidir.

    renmesi kolay, yksek seviyeli bir dildir.

    En nemli zelliklerinden biri ngilizce kelimeler ile yazlabiliyorolmasdr.

    Basic kodlar (.BAS) bir derleyici ile altrlabilir (.EXE) yedntrlebilir.

  • 8/14/2019 Algoritma ve Programlama Ders1

    9/41

    Ak emas Nedir?

    Bir problemin mantksal zmnn ekilsel olarak anlatmdr.

    Her ak emas bir balang eleman ile balar.

    Her ak emas en az bir biti eleman ile biter.

    Bir ak emasnda ak ulu oklar bulunmaz.

  • 8/14/2019 Algoritma ve Programlama Ders1

    10/41

    BALA

    BT Biti eleman, akm emasnn biti noktasn belirtir. (Enaz 1 girdi, 0 kt)

    Balang eleman, akm emasna balang noktasnbelirtmek iin kullanlr. (0 girdi, 1 kt)

    Balang Biti Eleman

    Algoritma iindeki ilemleri ifade etmekte kullanlr. (En az1 girdi, 1 kt)

    lem Grubu Eleman

    Algoritmaya yaplacak bilgi girilerinde ve algoritmadanyaplacak bilgi klarnda simge olarak kullanlr.(En az 1 girdi, 1 kt)

    Girdi kt Eleman

    Sonucu Olumlu veya Olumsuz olabilecek soruya verilecekyanta gre ak ikiye ayrabilecek elemandr. (En az 1girdi, 2 kt)

    Sorgu Eleman

    Yanl Doru

    Oklar iin ak ynn

    Oklar Ak diyagramnda iki noktaaras ilikiyi gsterir. Burada iherhangi bir sembol olabilir.

    Etiket (Balayc)

  • 8/14/2019 Algoritma ve Programlama Ders1

    11/41

  • 8/14/2019 Algoritma ve Programlama Ders1

    12/41

    rnek

    En ve boy bilgileri verilen bir tarlann alannn bulunmas :

    Bala

    Alan = en * boy

    Eni oku (en)

    Biti

    Boyu oku (boy)

    Alan yaz

    En oku Boy oku

    Alan en * boy

    Alan yaz

    Dur

  • 8/14/2019 Algoritma ve Programlama Ders1

    13/41

    rnek

    kenar verilen genin evresinin bulunmas :

    Bala

    Cevre = A + B + C

    1. Kenar oku (A)

    Biti

    2. Kenar oku (B)

    3. Kenar oku (C)

    Cevre yaz

    Birinci kenar oku (A) kinci kenar oku (B)

    nc kenar oku (C)

    Cevre A + B + C

    Cevre yaz

    Dur

  • 8/14/2019 Algoritma ve Programlama Ders1

    14/41

    rnek

    Verilen saynn ortalamasn bulan ak emasn iziniz.

    Bala

    Ortalama = (A + B + C) / 3

    1. say oku (A)

    Biti

    2. say oku (B)

    3. say oku (C)

    Ortalama yaz

    Birinci sayy oku (A) kinci sayy oku (B)

    nc sayy oku (C)

    Ortalama (A + B + C) / 3

    Ortalama yaz

    Dur

  • 8/14/2019 Algoritma ve Programlama Ders1

    15/41

  • 8/14/2019 Algoritma ve Programlama Ders1

    16/41

  • 8/14/2019 Algoritma ve Programlama Ders1

    17/41

    Soru

    Girilen iki saynn hangisinin kk olduunu bulan akemasn iziniz.

  • 8/14/2019 Algoritma ve Programlama Ders1

    18/41

    Soru

    Girilen renci notunun hangi harfe karlk geldiini bulanak emasn iziniz.

    90 - 100 A

    80 - 89 B70 - 79 C

    60 - 69 D

    50 - 59 E

    0 - 49

    F

  • 8/14/2019 Algoritma ve Programlama Ders1

    19/41

    rnek

    1 - 100 arasndaki saylarn toplamnn bulunmasBala

    Toplam=0

    Adet =0

    Toplam = Toplam + Adet

    Adet = Adet +1

    Adet=100? Yanl

    Doru

    Toplam Yaz

    Biti

  • 8/14/2019 Algoritma ve Programlama Ders1

    20/41

    rnek

    11 - 50 arasndaki saylarn ortalamasnn bulunmas

    Bala

    Toplam=0

    Adet =10

    Toplam = Toplam + Adet

    Adet = Adet +1

    Adet=50? YanlDoruA

    A

    Ortalama = Toplam / 40

    Ortalamay Yaz

    Biti

  • 8/14/2019 Algoritma ve Programlama Ders1

    21/41

    rnek

    Ekrandan okunan 5 adet saynn ortalamas

    Bala

    Toplam=0

    Adet =0

    Sayi oku

    Toplam = Toplam + sayi

    Adet = Adet +1

    Adet

    =5?YanlDoruA

    A

    Ortalama = Toplam / 5

    Ortalamay yaz

    Biti

  • 8/14/2019 Algoritma ve Programlama Ders1

    22/41

    Soru

    Girilen 10 saynn ift say m, tek saym olduunu bulan akemasn iziniz.

  • 8/14/2019 Algoritma ve Programlama Ders1

    23/41

    Soru

    Girilen 10 saynn 3n kat olup olmadn bulan ak emasniziniz.

  • 8/14/2019 Algoritma ve Programlama Ders1

    24/41

    Deikenler

    Tanm 1: Deeri programn almas boyunca deiiklik gsterenbellek birimlerine deiken denir.

    Tanm 2: Bir isimle anlabilen deerlere de deiken denilir.

    Deikenler kullanm amacna uygun olarak anlaml isimlendirilmelidir.

    Deiken isimlerinde Trke harfler bulunmamaldr. (,,,,,,,,...)

  • 8/14/2019 Algoritma ve Programlama Ders1

    25/41

    Deikenler

    Deikenler kullanlmadan nce tantlmaldr.

    QBasicte deikenler DIM komutuyla tanmlanmaktadr.

    DIM komutu ngilizcede boyut anlamna gelen Dimensionkelimesinin ksaltmasdr.

    rnek

    DIM isim AS STRING yada isim$ = Aye"

    isim = Aye"

    DIM yas AS INTEGER yada yas% = 23

    yas = 23

  • 8/14/2019 Algoritma ve Programlama Ders1

    26/41

    Veri Tipleri

    variable length string0..16384String$

    1.8E .. 3088Double#

    3.4E ... 38 (3.4 * 10 ^ 38)4Single!

    -2,147,483,648 .. 2,147,483,6474Long&

    -32,768 .. 32,7672Integer%

    Say AralBytesTipiSuffix

    varsaylan

  • 8/14/2019 Algoritma ve Programlama Ders1

    27/41

    Deikenlere Deer Atama

    QBasicde deikenlere deer atama ilemi = iaretiyleyaplmaktadr.

    Deikenlere bilgisayar iinden deer atama

    adet = 0 (integer) isim = aye (string) Pi = 3.14 (double)

    Deikenlere bilgisayar dndan (kullancdan alarak) bilgiatama INPUT komutu ile yaplabilmektedir.

    INPUT "Yar ap ka?", yaricap

  • 8/14/2019 Algoritma ve Programlama Ders1

    28/41

    Deikenlerin Deerlerini Ekrana Yazdrma

    Deikenlerin deerleri PRINT komutu kullanlarak ekrana yazdrlmaktadr.

    rnek:PRINT Program Completed

    DIM isim AS STRING

    isim = Aye

    PRINT isim

    12PRINT 5 + 7

    5 + 7PRINT "5 + 7"

    Monitor Printer

  • 8/14/2019 Algoritma ve Programlama Ders1

    29/41

    lemler 1

    Normal Aritmetik lemler + : Toplama ilemini ifade eder. : karma ilemini ifade eder. * : arpma ilemini ifade eder. / : Blme ilemini ifade eder. \ : Tam say blen sonulu blme ilemini ifade eder. mod : Mod ilemini ifade eder. ^: s alma

    Kullanlabilecek mantksal operatrler aadaki gibidir: AND: Ve ilemini ifade eder. OR : Veya ilemini ifade eder. NOT : Ters ilemini ifade eder.

  • 8/14/2019 Algoritma ve Programlama Ders1

    30/41

    lemler 2

    Kullanlabilecek kontrol iaretleri aadaki gibidir: X < Y : X kktr Yden ifadesini anlatr. X > Y : X byktr Yden ifadesini anlatr. X = Y : X eittir Yye ifadesini anlatr.

    X Y : X eit deildir Y ifadesini anlatr. X = Y : X byk veya eittir Yye ifadesini anlatr.

  • 8/14/2019 Algoritma ve Programlama Ders1

    31/41

    rnek

    En ve boy bilgileri verilen bir tarlann alann bulunuz.

    DIM en AS INTEGERDIM boy AS INTEGERDIM alan AS INTEGER

    Input tarlann enini giriniz, en

    Input tarlann boyunu giriniz, boy

    alan=en * boy

    PRINT Tarlann alan =, alan

    END

    Bala

    Alan = en * boy

    Eni oku (en)

    Biti

    Boyu oku (boy)

    Alan yaz

  • 8/14/2019 Algoritma ve Programlama Ders1

    32/41

    rnek

    kenar verilen genin evresinin bulunmas :

    Bala

    Cevre = A + B + C

    1. Kenar oku (A)

    Biti

    2. Kenar oku (B)

    3. Kenar oku (C)

    Cevre yaz

    DIM A AS INTEGERDIM B AS INTEGERDIM C AS INTEGERDIM Cevre AS INTEGER

    Input birinci kenar giriniz, A

    Input ikinci kenar giriniz, B

    Input nc kenar giriniz, C

    Cevre=A + B + C

    PRINT Ucgenin cevresi =, Cevre

    END

  • 8/14/2019 Algoritma ve Programlama Ders1

    33/41

    rnek

    Girilen iki saynn toplamn, farkn, arpmn ve blmn ekranayazdran QBASIC programn yaznz.

    DIM sayi1 as INTEGERDIM sayi2 as INTEGER

    INPUT birinci sayy giriniz, sayi1INPUT ikinci sayy giriniz, sayi2

    Print Toplam = , sayi1 + sayi2Print Fark = , sayi1 - sayi2Print arpm = , sayi1 * sayi2Print Blm = , sayi1 / sayi2

  • 8/14/2019 Algoritma ve Programlama Ders1

    34/41

    rnek

    Girilen saynn kareler ortalamasn bulunuz.

    DIM s1, s2, s3 AS INTEGER

    DIM ortalama AS SINGLE

    CLSINPUT "1. sayy giriniz ", s1

    INPUT "2. sayiyi giriniz ", s2

    INPUT "3. sayy giriniz ", s3

    ortalama = (s1 * s1 + s2 * s2 + s3 * s3) / 3PRINT "Bulunan Kareler Ortalamas = "; ortalama

  • 8/14/2019 Algoritma ve Programlama Ders1

    35/41

    Soru

    Girilen Dereceyi (C) Fahrenheita (F) eviren programyaznz.

    F = 9/5C +32

  • 8/14/2019 Algoritma ve Programlama Ders1

    36/41

  • 8/14/2019 Algoritma ve Programlama Ders1

    37/41

    rnek

    Snav notu girilen rencinin snav geip gemediini bulma

    Bala

    Biti

    Sinavnotu oku

    Sinavnotu

  • 8/14/2019 Algoritma ve Programlama Ders1

    38/41

    rnek

    Verilen saynn 200den kk, byk veya eit olduunun bulunmas

    DIM a AS INTEGER

    INPUT bir say giriniz ", a

    IF a < 200 THEN

    PRINT a says 100'den kktr.

    END IF

    IF a = 200 THEN

    PRINT a says 100'e eittir.

    END IF

    IF a > 200 THENPRINT a says 100'den byktr.

    END IF

    END

    Bala

    Biti

    Sayi oku

    Sayi200?

    Yanl

    DoruSayi 200den byktr yaz

  • 8/14/2019 Algoritma ve Programlama Ders1

    39/41

    rnek

    Bu program verilen saynn ift mi tek mi olduunu bulur.

    INPUT "sayy giriniz", sayiIF sayi MOD 2 = 1 THENPRINT "say tektir"

    ELSEPRINT "say ifttir"

    END IFEND

  • 8/14/2019 Algoritma ve Programlama Ders1

    40/41

    DEV

    Girilen iki saynn kk olann bulan program yaznz.

  • 8/14/2019 Algoritma ve Programlama Ders1

    41/41

    QBasic Komutlari

    PRINT : Bir karakterin, rakamn, deiken ieriinin, ilem sonucununekrana yazlmasn salar.

    INPUT : Klavyeden girilen deerin bir deikene atlmasn salar. END : Programn bitmesini salar.

    IF THEN ELSE : If konumundaki art gerekleiyorsa Then ksmndaki,gereklemiyorsa Else ksmndaki olay gerekletirir.

    CLS: Ekrann temizlenmesini salar. DIM: Deikenlerin tanmlanmasn salar.