SlideShare a Scribd company logo
1 of 38
4- ALGORİTMA
4- ALGORİTMA

Program Oluşum Süreci - Adımları
ADIM-1 ) Problemin Belirlenmesi

ADIM-2 ) Problem Hakkında Veri Toplanması

ADIM-3 ) Verilerin Analiz Edilmesi

ADIM-4 ) Algoritma / Akış Diyagramı / Sözde Kod

ADIM-5 ) Herhangi bir Programlama Dilinde Kodlama

ADIM-6 ) Programın Test Edilmesi

ADIM-7 ) Lisanslama- Paketleme
4- ALGORİTMA
Algoritma: Bir Problemin çözümünün , günlük konuşma diliyle adım adım yazılmasıdır.


                               Algoritmanın özellikleri



            •Bir başlangıç noktası vardır
            •Her adımda tek bir iş yapılır
            •Mutlaka sonlanmalıdır
4- ALGORİTMA



Algoritma sözcüğü Ebu Abdullah Muhammed İbn Musa el
Harezmi adındaki Türkistan'lı alimden kaynaklanır.
 Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını
kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır.
"Hisab el-cebir ve el-mukabala kitabı dünyanın ilk cebir kitabı ve
aynı zamanda ilk algoritma koleksiyonunu oluşturur.
Latince çevirisi Avrupa'da çok ilgi görür - alimin ismini telaffuz
edemeyen Avrupalılar "algorizm" sözcüğünü "Arap sayıları
kullanarak aritmetik problemler çözme kuralları" manasında
kullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve genel
kapsamda kullanılır.




                                                                     http://tr.wikipedia.org/wiki/Algoritma
4- ALGORİTMA
4.1 - Algoritmada kullanılacak notasyonlar:

                           Algoritmada kullanılacak notasyonlar:




 Aritmetiksel                İlişkisel                 Mantıksal        Atama



+ topla             > büyük
- çıkar             >= büyük veya eşit                                   ←
                                                   VE    (AND)
* çarp              < küçük                        VEYA (OR)
/ böl               <= küçük veya eşit                             Örneğin :
                                                   DEĞİL (NOT)
                                                                   x←5
% Mod               <> farklı                                      x ‘ e 5 atanmıştır
^ üs al             = eşit
4- ALGORİTMA
4.2 – Atama işlemi ve bellek modeli .


     Değişken değer Atama :                            Bellek (RAM)



         X ← 4

                                                          4 9         x
     X ← X +5


                             İŞLEMCİ       4+5
4- ALGORİTMA

Örn: Klavyeden girilecek iki sayıyı toplayıp ekrandan
yazdıran algoritmayı yazalım:

10- Başla
20- X ve Y Oku
30- Z ← X + Y
40- Yaz Z
50- Bitir

Her satıra artan sırada bir satır numarası verilir. İlk satır
BAŞLA ve son satır BİTİR olmalıdır.
4- ALGORİTMA
Örn: Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit
olma durumunu hesaplayıp yazdıran algoritma.


10- Başla
20- OKU X
30- Eğer(x>0) YAZ “Pozitif”
40- Eğer(x<0) YAZ “Negatif”
50- Eğer(x=0) YAZ “Sıfır”
60- Bitir
4- ALGORİTMA

Örn: Klavyeden girilecek iki sayıdan büyük olanını bulup
ekrandan yazdıran algoritmayı yazalım:

10- Başla
20- X ve Y Oku
30- Eğer (X > Y) ise YAZ “Büyük” X
40- Değil ise YAZ “Büyük” Y
50- Bitir
4- ALGORİTMA
4.3 – Karşılaştırma

Eğer ( x>5 ) ise işlem(ler)


Eğer ( x>5 )ise işlem-I
Değilse        işlem-II


Eğer ( x>5 ve x<8 ) ise işlem(ler)


Eğer ( x>5 ve x<8 ) ise
  Eğer (z > 6) işlem-I
   Değilse işlem-II
Değilse işlem-III
4- ALGORİTMA
4.3 – Karşılaştırma

Örnek : vize notları 1 ile 100 arasında olmalıdır.

Eğer (vize>=0 VE vize<=100 ) ise YAZ “vize geçerli”
Değilse YAZ ‘vize notu *0-100+ aralığında olmalıdır.’


Örnek : sıcaklık 30 dereceden fazla, 40 dereceden az ve pencere kapalı ise ise
pencereyi aç , pencere açık ise fanı çalıştır.

Eğer (sıcaklık>30 VE sıcaklık <=40 ) ise
  Eğer (pencere kapalı) ise Pencereyi aç
  Değilse Fanı Çalıştır

Eğer (sıcaklık>30 VE sıcaklık <=40 VE pencere kapalı) ise
   Pencereyi aç
Değilse Eğer (pencere açık ise) Fanı Çalıştır
4- ALGORİTMA
4.3 – Karşılaştırma

Eğer (x<30) ise
  Eğer ( x<20)
       Eğer ( x>15) YAZ “A”
       Değilse YAZ “B”
  Değilse YAZ “C”
Değilse YAZ “D”


Soru-1 : Yukarıdaki algoritmada x=30 değeri için ne Yazar ?
a)A b)B c)C d)D e) Hiçbiri

Soru-2 : Yukarıdaki algoritmada x=12 değeri için ne Yazar ?
a)A b)B c)C d)D e) Hiçbiri

Soru-3 : Yukarıdaki algoritmada x=20 değeri için ne Yazar ?
a)A b)B c)C d)D e) Hiçbiri
4- ALGORİTMA
4.3 – Karşılaştırma

Örnek : Bir öğrencinin bir derse ait Vize ve Final notları klavyeden girilecektir.
Buna göre öğrencinin geçme notunu bulup buna göre geçip kaldığını ekrandan
yazdıran algoritmayı yazalım:

 10- Başla

 20- Vize ve Final Oku

 30- N ← Vize * 0.3 + Final * 0.7

 40- Eğer (N >= 70) ise durum ← “BAŞARILI”
     Değil ise durum ← “Başarısız”

 50- Yaz durum

 60- Bitir
4- ALGORİTMA
Örn:Vize (%30) ve Final (%70) notuna göre harf notunu hesaplayıp yazdıran algoritmayı yazınız.

10- Başla
                                                                   ort >=90 ise   harf not ← “AA”
20- Vize ve Final Oku                                           90>ort >=85 ise   harf not ← “BA”
30- ort ← Vize * 0.3 + Final * 0.7                              85>ort >=80 ise   harf not ← “BB”
40- Eğer (ort >= 90) ise harfnot← “AA”                          80>ort >=75 ise   harf not ← “CB”
                                                                75>ort >=70 ise   harf not ← “CC”
50- Eğer (90> ort >= 85) ise harfnot← “BA”
                                                                70>ort >=60 ise   harf not ← “DC”
60- Eğer (85> ort >= 80) ise harfnot← “BB”                      60>ort >=50 ise   harf not ← “DD”
70- Eğer (80> ort >= 75) ise harfnot← “CB”                      50>ort >=40 ise   harf not ← “EF”
                                                                   ort < 40 ise   harf not ← “FF”
80- Eğer (75> ort >= 70) ise harfnot← “CC”
90- Eğer (70> ort >= 60) ise harfnot← “DC”
100- Eğer (60> ort >= 50) ise harfnot← “DD”
110- Eğer (50> ort >= 40) ise harfnot← “EF”
120- Eğer (ort < 40) ise harfnot← “FF”
130- YAZ harfnot
140- Bitir
4- ALGORİTMA

Örn: En az üç basamaklı bir tamsayının yüzler basamağındaki rakamı bulup
ekrandan yazdıran algoritmayı yazalım:


10- Başla
                                                           sayı
20- sayı Oku                                               1325

30- sayı ← sayı / 100                                       13

40- sayı ← sayı % 10                                        3

50- Yaz sayı                                                3

60- Bitir

      Çalışma: Onlar basamağındaki sayıyı bulup yazdıran algoritmayı siz yazınız ?
4- ALGORİTMA
Örn: Bir işçinin maaşı (m), mesai saati (ms) , bir saatlik mesai ücreti (mü), evli olup olmadığı (mh),
evli ise eşinin çalışıp çalışmadığı (eçd), çalışmıyor ise 89 TL eş yardımı verilecektir. Buna göre ay
sonunda işçinin eline geçecek net miktarı bulup yazdıran algoritmayı yazınız.




      1- BAŞLA
      2- OKU m, ms,mü
      3- T ← m + ms * mü
      4- OKU mh
      5- Eğer (mh = “ EVLİ” ) ise
          5.1- OKU eçd
          5.2- Eğer ( eçd = “ ÇALIŞMIYOR”) ise
                T ← T + 89
      6- Yaz T
      7- BİTİR
4- ALGORİTMA
4.4. DÖNGÜLER (LOOPS) :
Bir koşul sağlandığı sürece, bir grup işlemin tekrarlanması.


Döngünün devam şartı başta                         Döngünün devam şartı sonda

                 ŞART SAĞLANIRSA DEVAM ET                            DÖNGÜ BAŞI



       KOMUTLAR                                                KOMUTLAR




 DÖNGÜ BAŞINA GİT                                     ŞART SAĞLANIR İSE BAŞA GİT
4- ALGORİTMA
Örn: 1 den 5 ‘ e kadar olan sayıları sırayla ekrandan yazdıran algoritma :



          10- BAŞLA                                              EKRAN ÇIKTISI
          20- X ← 1                                              1 2 3 4 5
          30- YAZ X
          40- X ← X + 1
          50- EĞER ( X < 6 ) GİT 30
          60- BİTİR




             Soru-1 : 50. satırda GİT 30 yerine GİT 20 yaparsak ne olur ?
             Soru-2 : 50. satırı , EĞER ( x <= 6 ) GİT 30 yaparsak sonuç nasıl değişir ?
4- ALGORİTMA
Örn: 1 den 10 ‘ a kadar olan tek sayıların toplamını bulup ekrandan yazdıran algoritma :



      10- BAŞLA
      20- say ← 1 , top ← 0
      30- top ← top + say
      40- say ← say + 2
      50- EĞER ( say <= 10 ) GİT 30
      60- YAZ top
      70- BİTİR
4- ALGORİTMA
Örn: n! işlemini yapan algoritma :


                                                n=3 için yani 3! = …
  10- BAŞLA
  20- OKU n                                     n   say fakt
  30- say ← 1 , fakt ← 1                        3    1    1
  40- eğer (n = 0 VEYA n=1) ise fakt ← 1                  1
       GİT 80                                        2
  50- fakt ← fakt * say                                   2*1=2
  60- say ← say + 1                                   3

  70- EĞER ( say <= n ) GİT 50                            2*3=6

  80- YAZ fakt                                        4

  90- BİTİR
                                                           3!= 6
4- ALGORİTMA

Örn:   xy       işlemini yapan algoritma :



 10- BAŞLA
 20- OKU x , y
 30- say ← 1 , us ← 1
 40- eğer (y = 0 ) ise us ← 1
       GİT 80
 50- us ← us * x
 60- say ← say + 1
 70- EĞER ( say <= y ) GİT 50
 80- YAZ us
 90- BİTİR
4- ALGORİTMA
4.5. EN BÜYÜK veya EN KÜÇÜK Bulma:

Bir grup veri içerisinden en büyüğünü veya en küçüğünü bulma işlemidir.


            EN BÜYÜK bulunurken; herhangi biri en büyük kabul edilip diğerleri ile tek tek
karşılaştırılır. Karşılaştırma esnasında elimizdekinden daha büyük bir değer bulursak
onu en büyük olarak alıp karşılaştırma işlemine kaldığımız yerden devam edilir. Tüm
veriler karşılaştırıldığında elimizdeki veri EN BÜYÜK veridir.

         EN KÜÇÜK bulma işlemi de aynı şekilde yapılır. Tek fark karşılaştırma yaparken
daha küçüğü var mı diye bakılır.
4- ALGORİTMA
Örn: Klavyeden Hayır (H) cevabı girilene kadar , klavyeden girilecek sayılardan en büyüğünü bulup
ekrandan yazdıran algoritma :



   10- BAŞLA
   20- eb ← 0
   30- OKU x
   40- eğer ( x > eb ) ise eb ← x
   50- YAZ “Devam edilecek mi ? Evet *E+ ”
   60- OKU cevap
   70- EĞER ( cevap =“E” ) GİT 30
   80- YAZ eb
   90- BİTİR
4- ALGORİTMA

4.6. SINIRI BELLİ OLMAYAN DÖNGÜLER



          Döngünün kaç kez döneceği belli değildir. Döngünün devam koşulu döngü
içerisinde döngü şartını değiştirecek bir duruma bağlıdır ya da döngüye devam edilip
edilmeyeceği sorusan göre şekillenecektir.
4- ALGORİTMA
Örn: Klavyeden Hayır (H) cevabı girilene kadar , klavyeden girilecek sayıların toplamını
bulup ekrandan yazdıran algoritma :


   10- BAŞLA
   20- YAZ “Devam edilecek mi ? Evet *E+ ”
   30- OKU cevap
   40- EĞER ( cevap <> “E” ) ise GİT 80
   50- OKU x
   60- top ← top + x
   70- GİT 20
   80- YAZ top
   90- BİTİR
4- ALGORİTMA
Örn: Sayı tahmin oyunu. Sitem rastgele bir sayı tutar. Biz bu sayıyı tahmin etmeye çalışırız.
Bunun için bir sayı gireriz. Girdiğimiz sayı ile sistemin tuttuğu sayı karşılaştırılarak AŞAĞI
veya YUKARI şeklinde bizi uyarır. Bu şekilde sistemin tutuğu sayıyı bulduğumuzda kaç kez
deneyerek bulduğumuzu ekrandan yazdırır.


       10- BAŞLA
       20- say ← 0
       30- r ← rastgele sayı türet
       40- YAZ “Tahmin Giriniz”
       50- OKU tahmin
       60- say ← say + 1
       70- EĞER ( r > tahmin) ise YAZ “YUKARI” GİT 40
      80- EĞER ( r < tahmin) ise YAZ “AŞAĞI” GİT 40
      90- YAZ say “ . Tahminde buldunuz”
      100- BİTİR
4- ALGORİTMA
4.7. İÇ İÇE DÖNGÜLER
I- içteki döngü, dıştaki döngünün bir komut satırı gibidir.
II- Birbirlerini kesemezler


                      DÖNGÜ    n
         KOMUTLAR 1

                      DÖNGÜ     k
             KOMUTLAR 2                                  n kez çalışır

         KOMUTLAR 3
                                                        nXk         kez çalışır
4- ALGORİTMA

İÇ İÇE DÖNGÜLER



                  DÖNGÜ n

        KOMUTLAR 1

                  DÖNGÜ k

           KOMUTLAR 2
                                       !!!
                            DÖNGÜLER BİRBİRİNİ KESEMEZ

          KOMUTLAR 3
4- ALGORİTMA
Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ;


   10- BAŞLA                                                  ****
                                                              ****
   20- satır ← 1                                              ****
  30- sütun ← 1                                               ****
   40- sütun ← sütun + 1
   50- YAZ “ * “
  60- EĞER (sütun <= 4) GİT 40
   70- satırbaşı YAP (YAZ)
   80- satır ← satır + 1
   90- EĞER (satır <= 4) GİT 30
   100- BİTİR

                                                                        *
                                                                        **
Soru: Ekrandaki gibi çıktı vermesi için algoritmada ne gibi
                                                                        ***
değişiklik yapılmalıdır.
                                                                        ****
4- ALGORİTMA
Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ;


  10- BAŞLA                                                1
  20- satır ← 1                                            1 2
                                                           1 2 3
  30- sütun ← 1                                            1 2 3 4
  40- YAZ sütun
  50- sütun ← sütun + 1
  60- EĞER (sütun <= satir) GİT 40
   70- satırbaşı YAP (YAZ)
   80- satır ← satır + 1
   90- EĞER (satır <= 4) GİT 30
   100- BİTİR

                                                                            1
                                                                            2 2
Soru : Ekran çıktısı yandaki şekildeki gibi olması için algoritmada nasıl   3 3 3
değişik yada değişiklikler yapılmalıdır ?                                   4 4 4 4
4- ALGORİTMA




           Soru işaretidir
4- ALGORİTMA
4- ALGORİTMA
ÇALIŞMA SORULARI

1- Çarpım Tablosunu veren algoritmayı yazınız .

2- Klavyeden girilecek N sayısına kadar olan ASAL sayıları ekrana yazdıran algoritmayı yazınız.

3- Üç basamaklı, basamaklarının küpleri toplamı kendisine eşit olan tam sayılara Armstrong sayı denir.
Buna göre 100-1000 arasındaki Armstrong sayılarını bulan algoritmayı yazınız.


 4-Bir işçinin maaşı (m), mesai saati (ms) , bir saatlik mesai ücreti (mü), evli olup olmadığı (mh), evli
 ise eşinin çalışıp çalışmadığı (eçd), çalışmıyor ise 89 TL eş yardımı verilecektir. Evli ise çocuk sayısına
 (çs) göre en çok iki çocuğa çocuk başı 15 TL verilir. Aşağıdaki kriterler de göz önüne alınarak ay
 sonunda işçinin eline geçecek net miktarı bulup yazdıran algoritmayı yazınız.

 Toplam >= 3000 TL       ise       %20 kesinti
 3000>Toplam >= 2000 TL ise        %15 kesinti
 Toplam < 2000 TL       ise        % 10 kesinti
4- ALGORİTMA
Çarpım Tablosu .


10-Başla
20- a ← 1                             1   2   3   4    5    6    7    8    9
30- b ← 1                           1 1   2   3   4    5    6    7    8    9
                                    2 2   4   6   8    10   12   14   16   18
40- YAZ a*b                         3 3   6   9   12   15   18   21   24   27
50- b ← b+1                         .
                                    .
60- Eğer(b<=9) ise Git 40           .
70- Satırbaşı Yap                   9 9   18 27 36 45 54 63 72 81
80- a ← a+1
90- Eğer(a<=9) ise Git 30
100- BİTİR
4- ALGORİTMA
Klavyeden girilecek N sayısına kadar olan ASAL sayıları ekrana yazdıran algoritma.

    10-Başla
    20-OKU N
    30-Eğer (N=2) ise YAZ N Git 130
    40- k ← 3
    50- asal ← true
    60- y ← 2
    70- Eğer( (k%y)=0 ) ise asal ← false
    80- y ← y+1
    90- Eğer( y < k) ise Git 70
    100- Eğer( asal=true) ise YAZ k
    110- k ← k+1
    120- Eğer( k < N) ise Git 50
    130- BİTİR
4- ALGORİTMA
Üç basamaklı, basamaklarının küpleri toplamı kendisine eşit olan tam sayılara Armstrong sayı denir.
Örneğin: 371 = 3^3 + 7^3 + 1^3.
Bu program İç-içe geçmiş 3 döngü ile bütün Aramstrong sayıları bulur.

10-Başla
20- a ← 1
30- b ← 1
40- c ← 1
                                                                                153
50- sayi ← 100*a + 10*b + c
                                                                                370
60- kup ← a*a*a + b*b*b + c*c*c                                                 371
70- Eğer( sayı =kup ) ise YAZ sayı
                                                                                407
80- c ← c+1
90- Eğer( c <=9) ise Git 50
100- b ← b+1
110- Eğer(b<=9) ise Git 40
120- a ← a+1
130- Eğer(a<=9) ise Git 30
140- BİTİR
4- ALGORİTMA
Çalışma Sorusu: Karesi sağdan n dijit, soldan n-1 dijitin toplamına eşi olan sayılara Kaprekar Sayıları
denir.
Örneğin: 92 = 81 8 + 1 = 9, 2972 = 88209 88+209=297

1 ile 1000 arasındaki tamsayılar içinde kaprekar olanlarını bulacak algoritmayı yazınız ?

More Related Content

What's hot (20)

Halil Arıkan
Halil ArıkanHalil Arıkan
Halil Arıkan
 
Türev 07
Türev 07Türev 07
Türev 07
 
POLİNOMLAR
POLİNOMLARPOLİNOMLAR
POLİNOMLAR
 
Halil Arıkan
Halil  ArıkanHalil  Arıkan
Halil Arıkan
 
Türev 05
Türev 05Türev 05
Türev 05
 
Türev 02
Türev 02Türev 02
Türev 02
 
LİSE - SAYILAR
LİSE - SAYILARLİSE - SAYILAR
LİSE - SAYILAR
 
Türev Sorulari
Türev SorulariTürev Sorulari
Türev Sorulari
 
Eğim konu anlatım sunusu
Eğim konu anlatım sunusuEğim konu anlatım sunusu
Eğim konu anlatım sunusu
 
Fonksi̇yonlarin li̇mi̇ti̇ 02
Fonksi̇yonlarin li̇mi̇ti̇ 02Fonksi̇yonlarin li̇mi̇ti̇ 02
Fonksi̇yonlarin li̇mi̇ti̇ 02
 
Türev 01
Türev 01Türev 01
Türev 01
 
Türev 04
Türev 04Türev 04
Türev 04
 
Fonksi̇yonlarin li̇mi̇ti̇ 03
Fonksi̇yonlarin li̇mi̇ti̇ 03Fonksi̇yonlarin li̇mi̇ti̇ 03
Fonksi̇yonlarin li̇mi̇ti̇ 03
 
Olasılık
OlasılıkOlasılık
Olasılık
 
LİSE - POLİNOMLAR 1
LİSE - POLİNOMLAR 1LİSE - POLİNOMLAR 1
LİSE - POLİNOMLAR 1
 
Olasilik
OlasilikOlasilik
Olasilik
 
LİSE - POLİNOMLAR 2
LİSE - POLİNOMLAR 2LİSE - POLİNOMLAR 2
LİSE - POLİNOMLAR 2
 
Fonksi̇yonlarin li̇mi̇ti̇ 06
Fonksi̇yonlarin li̇mi̇ti̇ 06Fonksi̇yonlarin li̇mi̇ti̇ 06
Fonksi̇yonlarin li̇mi̇ti̇ 06
 
Türev 06
Türev 06Türev 06
Türev 06
 
Sayi si̇stemi̇
Sayi si̇stemi̇Sayi si̇stemi̇
Sayi si̇stemi̇
 

Similar to Algoritma mi 4 (10)

6. Sınıf Matematik 1. Ünite 1. Konu Doğal Sayılarda İşlemler
6. Sınıf Matematik 1. Ünite 1. Konu Doğal Sayılarda İşlemler6. Sınıf Matematik 1. Ünite 1. Konu Doğal Sayılarda İşlemler
6. Sınıf Matematik 1. Ünite 1. Konu Doğal Sayılarda İşlemler
 
Zihinsel Matematik
Zihinsel MatematikZihinsel Matematik
Zihinsel Matematik
 
6 sayı teorisinin temelleri
6 sayı teorisinin temelleri6 sayı teorisinin temelleri
6 sayı teorisinin temelleri
 
7. Sınıf Matematik Ünite 2 Tam Sayıların Kuvveti
7. Sınıf Matematik Ünite 2 Tam Sayıların Kuvveti7. Sınıf Matematik Ünite 2 Tam Sayıların Kuvveti
7. Sınıf Matematik Ünite 2 Tam Sayıların Kuvveti
 
7. Sınıf Matematik Ünite 1 Tam Sayılar
7. Sınıf Matematik Ünite 1 Tam Sayılar7. Sınıf Matematik Ünite 1 Tam Sayılar
7. Sınıf Matematik Ünite 1 Tam Sayılar
 
5. Sınıf Matematik 1. Ünite Doğal Sayılar
5. Sınıf Matematik 1. Ünite Doğal Sayılar5. Sınıf Matematik 1. Ünite Doğal Sayılar
5. Sınıf Matematik 1. Ünite Doğal Sayılar
 
Algoritma Ödevi 4
Algoritma Ödevi 4Algoritma Ödevi 4
Algoritma Ödevi 4
 
H4 blm221 boole cebi̇ri̇ uygulamalari
H4 blm221  boole cebi̇ri̇ uygulamalariH4 blm221  boole cebi̇ri̇ uygulamalari
H4 blm221 boole cebi̇ri̇ uygulamalari
 
İşlem ve modüler ari̇tmeti̇k 1
İşlem ve modüler ari̇tmeti̇k 1İşlem ve modüler ari̇tmeti̇k 1
İşlem ve modüler ari̇tmeti̇k 1
 
SAYILAR
SAYILARSAYILAR
SAYILAR
 

Algoritma mi 4

  • 2.
  • 3. 4- ALGORİTMA Program Oluşum Süreci - Adımları ADIM-1 ) Problemin Belirlenmesi ADIM-2 ) Problem Hakkında Veri Toplanması ADIM-3 ) Verilerin Analiz Edilmesi ADIM-4 ) Algoritma / Akış Diyagramı / Sözde Kod ADIM-5 ) Herhangi bir Programlama Dilinde Kodlama ADIM-6 ) Programın Test Edilmesi ADIM-7 ) Lisanslama- Paketleme
  • 4. 4- ALGORİTMA Algoritma: Bir Problemin çözümünün , günlük konuşma diliyle adım adım yazılmasıdır. Algoritmanın özellikleri •Bir başlangıç noktası vardır •Her adımda tek bir iş yapılır •Mutlaka sonlanmalıdır
  • 5. 4- ALGORİTMA Algoritma sözcüğü Ebu Abdullah Muhammed İbn Musa el Harezmi adındaki Türkistan'lı alimden kaynaklanır. Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır. "Hisab el-cebir ve el-mukabala kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa'da çok ilgi görür - alimin ismini telaffuz edemeyen Avrupalılar "algorizm" sözcüğünü "Arap sayıları kullanarak aritmetik problemler çözme kuralları" manasında kullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve genel kapsamda kullanılır. http://tr.wikipedia.org/wiki/Algoritma
  • 6. 4- ALGORİTMA 4.1 - Algoritmada kullanılacak notasyonlar: Algoritmada kullanılacak notasyonlar: Aritmetiksel İlişkisel Mantıksal Atama + topla > büyük - çıkar >= büyük veya eşit ← VE (AND) * çarp < küçük VEYA (OR) / böl <= küçük veya eşit Örneğin : DEĞİL (NOT) x←5 % Mod <> farklı x ‘ e 5 atanmıştır ^ üs al = eşit
  • 7. 4- ALGORİTMA 4.2 – Atama işlemi ve bellek modeli . Değişken değer Atama : Bellek (RAM) X ← 4 4 9 x X ← X +5 İŞLEMCİ 4+5
  • 8. 4- ALGORİTMA Örn: Klavyeden girilecek iki sayıyı toplayıp ekrandan yazdıran algoritmayı yazalım: 10- Başla 20- X ve Y Oku 30- Z ← X + Y 40- Yaz Z 50- Bitir Her satıra artan sırada bir satır numarası verilir. İlk satır BAŞLA ve son satır BİTİR olmalıdır.
  • 9. 4- ALGORİTMA Örn: Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu hesaplayıp yazdıran algoritma. 10- Başla 20- OKU X 30- Eğer(x>0) YAZ “Pozitif” 40- Eğer(x<0) YAZ “Negatif” 50- Eğer(x=0) YAZ “Sıfır” 60- Bitir
  • 10. 4- ALGORİTMA Örn: Klavyeden girilecek iki sayıdan büyük olanını bulup ekrandan yazdıran algoritmayı yazalım: 10- Başla 20- X ve Y Oku 30- Eğer (X > Y) ise YAZ “Büyük” X 40- Değil ise YAZ “Büyük” Y 50- Bitir
  • 11. 4- ALGORİTMA 4.3 – Karşılaştırma Eğer ( x>5 ) ise işlem(ler) Eğer ( x>5 )ise işlem-I Değilse işlem-II Eğer ( x>5 ve x<8 ) ise işlem(ler) Eğer ( x>5 ve x<8 ) ise Eğer (z > 6) işlem-I Değilse işlem-II Değilse işlem-III
  • 12. 4- ALGORİTMA 4.3 – Karşılaştırma Örnek : vize notları 1 ile 100 arasında olmalıdır. Eğer (vize>=0 VE vize<=100 ) ise YAZ “vize geçerli” Değilse YAZ ‘vize notu *0-100+ aralığında olmalıdır.’ Örnek : sıcaklık 30 dereceden fazla, 40 dereceden az ve pencere kapalı ise ise pencereyi aç , pencere açık ise fanı çalıştır. Eğer (sıcaklık>30 VE sıcaklık <=40 ) ise Eğer (pencere kapalı) ise Pencereyi aç Değilse Fanı Çalıştır Eğer (sıcaklık>30 VE sıcaklık <=40 VE pencere kapalı) ise Pencereyi aç Değilse Eğer (pencere açık ise) Fanı Çalıştır
  • 13. 4- ALGORİTMA 4.3 – Karşılaştırma Eğer (x<30) ise Eğer ( x<20) Eğer ( x>15) YAZ “A” Değilse YAZ “B” Değilse YAZ “C” Değilse YAZ “D” Soru-1 : Yukarıdaki algoritmada x=30 değeri için ne Yazar ? a)A b)B c)C d)D e) Hiçbiri Soru-2 : Yukarıdaki algoritmada x=12 değeri için ne Yazar ? a)A b)B c)C d)D e) Hiçbiri Soru-3 : Yukarıdaki algoritmada x=20 değeri için ne Yazar ? a)A b)B c)C d)D e) Hiçbiri
  • 14. 4- ALGORİTMA 4.3 – Karşılaştırma Örnek : Bir öğrencinin bir derse ait Vize ve Final notları klavyeden girilecektir. Buna göre öğrencinin geçme notunu bulup buna göre geçip kaldığını ekrandan yazdıran algoritmayı yazalım: 10- Başla 20- Vize ve Final Oku 30- N ← Vize * 0.3 + Final * 0.7 40- Eğer (N >= 70) ise durum ← “BAŞARILI” Değil ise durum ← “Başarısız” 50- Yaz durum 60- Bitir
  • 15. 4- ALGORİTMA Örn:Vize (%30) ve Final (%70) notuna göre harf notunu hesaplayıp yazdıran algoritmayı yazınız. 10- Başla ort >=90 ise harf not ← “AA” 20- Vize ve Final Oku 90>ort >=85 ise harf not ← “BA” 30- ort ← Vize * 0.3 + Final * 0.7 85>ort >=80 ise harf not ← “BB” 40- Eğer (ort >= 90) ise harfnot← “AA” 80>ort >=75 ise harf not ← “CB” 75>ort >=70 ise harf not ← “CC” 50- Eğer (90> ort >= 85) ise harfnot← “BA” 70>ort >=60 ise harf not ← “DC” 60- Eğer (85> ort >= 80) ise harfnot← “BB” 60>ort >=50 ise harf not ← “DD” 70- Eğer (80> ort >= 75) ise harfnot← “CB” 50>ort >=40 ise harf not ← “EF” ort < 40 ise harf not ← “FF” 80- Eğer (75> ort >= 70) ise harfnot← “CC” 90- Eğer (70> ort >= 60) ise harfnot← “DC” 100- Eğer (60> ort >= 50) ise harfnot← “DD” 110- Eğer (50> ort >= 40) ise harfnot← “EF” 120- Eğer (ort < 40) ise harfnot← “FF” 130- YAZ harfnot 140- Bitir
  • 16. 4- ALGORİTMA Örn: En az üç basamaklı bir tamsayının yüzler basamağındaki rakamı bulup ekrandan yazdıran algoritmayı yazalım: 10- Başla sayı 20- sayı Oku 1325 30- sayı ← sayı / 100 13 40- sayı ← sayı % 10 3 50- Yaz sayı 3 60- Bitir Çalışma: Onlar basamağındaki sayıyı bulup yazdıran algoritmayı siz yazınız ?
  • 17. 4- ALGORİTMA Örn: Bir işçinin maaşı (m), mesai saati (ms) , bir saatlik mesai ücreti (mü), evli olup olmadığı (mh), evli ise eşinin çalışıp çalışmadığı (eçd), çalışmıyor ise 89 TL eş yardımı verilecektir. Buna göre ay sonunda işçinin eline geçecek net miktarı bulup yazdıran algoritmayı yazınız. 1- BAŞLA 2- OKU m, ms,mü 3- T ← m + ms * mü 4- OKU mh 5- Eğer (mh = “ EVLİ” ) ise 5.1- OKU eçd 5.2- Eğer ( eçd = “ ÇALIŞMIYOR”) ise T ← T + 89 6- Yaz T 7- BİTİR
  • 18. 4- ALGORİTMA 4.4. DÖNGÜLER (LOOPS) : Bir koşul sağlandığı sürece, bir grup işlemin tekrarlanması. Döngünün devam şartı başta Döngünün devam şartı sonda ŞART SAĞLANIRSA DEVAM ET DÖNGÜ BAŞI KOMUTLAR KOMUTLAR DÖNGÜ BAŞINA GİT ŞART SAĞLANIR İSE BAŞA GİT
  • 19. 4- ALGORİTMA Örn: 1 den 5 ‘ e kadar olan sayıları sırayla ekrandan yazdıran algoritma : 10- BAŞLA EKRAN ÇIKTISI 20- X ← 1 1 2 3 4 5 30- YAZ X 40- X ← X + 1 50- EĞER ( X < 6 ) GİT 30 60- BİTİR Soru-1 : 50. satırda GİT 30 yerine GİT 20 yaparsak ne olur ? Soru-2 : 50. satırı , EĞER ( x <= 6 ) GİT 30 yaparsak sonuç nasıl değişir ?
  • 20. 4- ALGORİTMA Örn: 1 den 10 ‘ a kadar olan tek sayıların toplamını bulup ekrandan yazdıran algoritma : 10- BAŞLA 20- say ← 1 , top ← 0 30- top ← top + say 40- say ← say + 2 50- EĞER ( say <= 10 ) GİT 30 60- YAZ top 70- BİTİR
  • 21. 4- ALGORİTMA Örn: n! işlemini yapan algoritma : n=3 için yani 3! = … 10- BAŞLA 20- OKU n n say fakt 30- say ← 1 , fakt ← 1 3 1 1 40- eğer (n = 0 VEYA n=1) ise fakt ← 1 1 GİT 80 2 50- fakt ← fakt * say 2*1=2 60- say ← say + 1 3 70- EĞER ( say <= n ) GİT 50 2*3=6 80- YAZ fakt 4 90- BİTİR 3!= 6
  • 22. 4- ALGORİTMA Örn: xy işlemini yapan algoritma : 10- BAŞLA 20- OKU x , y 30- say ← 1 , us ← 1 40- eğer (y = 0 ) ise us ← 1 GİT 80 50- us ← us * x 60- say ← say + 1 70- EĞER ( say <= y ) GİT 50 80- YAZ us 90- BİTİR
  • 23. 4- ALGORİTMA 4.5. EN BÜYÜK veya EN KÜÇÜK Bulma: Bir grup veri içerisinden en büyüğünü veya en küçüğünü bulma işlemidir. EN BÜYÜK bulunurken; herhangi biri en büyük kabul edilip diğerleri ile tek tek karşılaştırılır. Karşılaştırma esnasında elimizdekinden daha büyük bir değer bulursak onu en büyük olarak alıp karşılaştırma işlemine kaldığımız yerden devam edilir. Tüm veriler karşılaştırıldığında elimizdeki veri EN BÜYÜK veridir. EN KÜÇÜK bulma işlemi de aynı şekilde yapılır. Tek fark karşılaştırma yaparken daha küçüğü var mı diye bakılır.
  • 24. 4- ALGORİTMA Örn: Klavyeden Hayır (H) cevabı girilene kadar , klavyeden girilecek sayılardan en büyüğünü bulup ekrandan yazdıran algoritma : 10- BAŞLA 20- eb ← 0 30- OKU x 40- eğer ( x > eb ) ise eb ← x 50- YAZ “Devam edilecek mi ? Evet *E+ ” 60- OKU cevap 70- EĞER ( cevap =“E” ) GİT 30 80- YAZ eb 90- BİTİR
  • 25. 4- ALGORİTMA 4.6. SINIRI BELLİ OLMAYAN DÖNGÜLER Döngünün kaç kez döneceği belli değildir. Döngünün devam koşulu döngü içerisinde döngü şartını değiştirecek bir duruma bağlıdır ya da döngüye devam edilip edilmeyeceği sorusan göre şekillenecektir.
  • 26. 4- ALGORİTMA Örn: Klavyeden Hayır (H) cevabı girilene kadar , klavyeden girilecek sayıların toplamını bulup ekrandan yazdıran algoritma : 10- BAŞLA 20- YAZ “Devam edilecek mi ? Evet *E+ ” 30- OKU cevap 40- EĞER ( cevap <> “E” ) ise GİT 80 50- OKU x 60- top ← top + x 70- GİT 20 80- YAZ top 90- BİTİR
  • 27. 4- ALGORİTMA Örn: Sayı tahmin oyunu. Sitem rastgele bir sayı tutar. Biz bu sayıyı tahmin etmeye çalışırız. Bunun için bir sayı gireriz. Girdiğimiz sayı ile sistemin tuttuğu sayı karşılaştırılarak AŞAĞI veya YUKARI şeklinde bizi uyarır. Bu şekilde sistemin tutuğu sayıyı bulduğumuzda kaç kez deneyerek bulduğumuzu ekrandan yazdırır. 10- BAŞLA 20- say ← 0 30- r ← rastgele sayı türet 40- YAZ “Tahmin Giriniz” 50- OKU tahmin 60- say ← say + 1 70- EĞER ( r > tahmin) ise YAZ “YUKARI” GİT 40 80- EĞER ( r < tahmin) ise YAZ “AŞAĞI” GİT 40 90- YAZ say “ . Tahminde buldunuz” 100- BİTİR
  • 28. 4- ALGORİTMA 4.7. İÇ İÇE DÖNGÜLER I- içteki döngü, dıştaki döngünün bir komut satırı gibidir. II- Birbirlerini kesemezler DÖNGÜ n KOMUTLAR 1 DÖNGÜ k KOMUTLAR 2 n kez çalışır KOMUTLAR 3 nXk kez çalışır
  • 29. 4- ALGORİTMA İÇ İÇE DÖNGÜLER DÖNGÜ n KOMUTLAR 1 DÖNGÜ k KOMUTLAR 2 !!! DÖNGÜLER BİRBİRİNİ KESEMEZ KOMUTLAR 3
  • 30. 4- ALGORİTMA Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ; 10- BAŞLA **** **** 20- satır ← 1 **** 30- sütun ← 1 **** 40- sütun ← sütun + 1 50- YAZ “ * “ 60- EĞER (sütun <= 4) GİT 40 70- satırbaşı YAP (YAZ) 80- satır ← satır + 1 90- EĞER (satır <= 4) GİT 30 100- BİTİR * ** Soru: Ekrandaki gibi çıktı vermesi için algoritmada ne gibi *** değişiklik yapılmalıdır. ****
  • 31. 4- ALGORİTMA Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ; 10- BAŞLA 1 20- satır ← 1 1 2 1 2 3 30- sütun ← 1 1 2 3 4 40- YAZ sütun 50- sütun ← sütun + 1 60- EĞER (sütun <= satir) GİT 40 70- satırbaşı YAP (YAZ) 80- satır ← satır + 1 90- EĞER (satır <= 4) GİT 30 100- BİTİR 1 2 2 Soru : Ekran çıktısı yandaki şekildeki gibi olması için algoritmada nasıl 3 3 3 değişik yada değişiklikler yapılmalıdır ? 4 4 4 4
  • 32. 4- ALGORİTMA Soru işaretidir
  • 34. 4- ALGORİTMA ÇALIŞMA SORULARI 1- Çarpım Tablosunu veren algoritmayı yazınız . 2- Klavyeden girilecek N sayısına kadar olan ASAL sayıları ekrana yazdıran algoritmayı yazınız. 3- Üç basamaklı, basamaklarının küpleri toplamı kendisine eşit olan tam sayılara Armstrong sayı denir. Buna göre 100-1000 arasındaki Armstrong sayılarını bulan algoritmayı yazınız. 4-Bir işçinin maaşı (m), mesai saati (ms) , bir saatlik mesai ücreti (mü), evli olup olmadığı (mh), evli ise eşinin çalışıp çalışmadığı (eçd), çalışmıyor ise 89 TL eş yardımı verilecektir. Evli ise çocuk sayısına (çs) göre en çok iki çocuğa çocuk başı 15 TL verilir. Aşağıdaki kriterler de göz önüne alınarak ay sonunda işçinin eline geçecek net miktarı bulup yazdıran algoritmayı yazınız. Toplam >= 3000 TL ise %20 kesinti 3000>Toplam >= 2000 TL ise %15 kesinti Toplam < 2000 TL ise % 10 kesinti
  • 35. 4- ALGORİTMA Çarpım Tablosu . 10-Başla 20- a ← 1 1 2 3 4 5 6 7 8 9 30- b ← 1 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 40- YAZ a*b 3 3 6 9 12 15 18 21 24 27 50- b ← b+1 . . 60- Eğer(b<=9) ise Git 40 . 70- Satırbaşı Yap 9 9 18 27 36 45 54 63 72 81 80- a ← a+1 90- Eğer(a<=9) ise Git 30 100- BİTİR
  • 36. 4- ALGORİTMA Klavyeden girilecek N sayısına kadar olan ASAL sayıları ekrana yazdıran algoritma. 10-Başla 20-OKU N 30-Eğer (N=2) ise YAZ N Git 130 40- k ← 3 50- asal ← true 60- y ← 2 70- Eğer( (k%y)=0 ) ise asal ← false 80- y ← y+1 90- Eğer( y < k) ise Git 70 100- Eğer( asal=true) ise YAZ k 110- k ← k+1 120- Eğer( k < N) ise Git 50 130- BİTİR
  • 37. 4- ALGORİTMA Üç basamaklı, basamaklarının küpleri toplamı kendisine eşit olan tam sayılara Armstrong sayı denir. Örneğin: 371 = 3^3 + 7^3 + 1^3. Bu program İç-içe geçmiş 3 döngü ile bütün Aramstrong sayıları bulur. 10-Başla 20- a ← 1 30- b ← 1 40- c ← 1 153 50- sayi ← 100*a + 10*b + c 370 60- kup ← a*a*a + b*b*b + c*c*c 371 70- Eğer( sayı =kup ) ise YAZ sayı 407 80- c ← c+1 90- Eğer( c <=9) ise Git 50 100- b ← b+1 110- Eğer(b<=9) ise Git 40 120- a ← a+1 130- Eğer(a<=9) ise Git 30 140- BİTİR
  • 38. 4- ALGORİTMA Çalışma Sorusu: Karesi sağdan n dijit, soldan n-1 dijitin toplamına eşi olan sayılara Kaprekar Sayıları denir. Örneğin: 92 = 81 8 + 1 = 9, 2972 = 88209 88+209=297 1 ile 1000 arasındaki tamsayılar içinde kaprekar olanlarını bulacak algoritmayı yazınız ?