Algoritma
Upcoming SlideShare
Loading in...5
×
 

Algoritma

on

  • 1,402 views

 

Statistics

Views

Total Views
1,402
Views on SlideShare
1,402
Embed Views
0

Actions

Likes
1
Downloads
26
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Algoritma Algoritma Presentation Transcript

    • 4- ALGORİTMA
    • 4- ALGORİTMAProgram Oluşum Süreci - AdımlarıADIM-1 ) Problemin BelirlenmesiADIM-2 ) Problem Hakkında Veri ToplanmasıADIM-3 ) Verilerin Analiz EdilmesiADIM-4 ) Algoritma / Akış Diyagramı / Sözde KodADIM-5 ) Herhangi bir Programlama Dilinde KodlamaADIM-6 ) Programın Test EdilmesiADIM-7 ) Lisanslama- Paketleme
    • 4- ALGORİTMAAlgoritma: 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İTMAAlgoritma sözcüğü Ebu Abdullah Muhammed İbn Musa elHarezmi adındaki Türkistanlı 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ı veaynı zamanda ilk algoritma koleksiyonunu oluşturur.Latince çevirisi Avrupada çok ilgi görür - alimin ismini telaffuzedemeyen Avrupalılar "algorizm" sözcüğünü "Arap sayılarıkullanarak aritmetik problemler çözme kuralları" manasındakullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve genelkapsamda kullanılır. http://tr.wikipedia.org/wiki/Algoritma
    • 4- ALGORİTMA4.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İTMA4.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 ekrandanyazdıran algoritmayı yazalım:10- Başla20- X ve Y Oku30- Z ← X + Y40- Yaz Z50- BitirHer satıra artan sırada bir satır numarası verilir. İlk satırBAŞ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şitolma durumunu hesaplayıp yazdıran algoritma.10- Başla20- OKU X30- 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ı bulupekrandan yazdıran algoritmayı yazalım:10- Başla20- X ve Y Oku30- Eğer (X > Y) ise YAZ “Büyük” X40- Değil ise YAZ “Büyük” Y50- Bitir
    • 4- ALGORİTMA4.3 – KarşılaştırmaEğer ( x>5 ) ise işlem(ler)Eğer ( x>5 )ise işlem-IDeğilse işlem-IIEğ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-IIDeğilse işlem-III
    • 4- ALGORİTMA4.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 isepencereyi 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ırEğ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İTMA4.3 – KarşılaştırmaEğ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çbiriSoru-2 : Yukarıdaki algoritmada x=12 değeri için ne Yazar ?a)A b)B c)C d)D e) HiçbiriSoru-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İTMA4.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ı ekrandanyazdı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 harfnot140- Bitir
    • 4- ALGORİTMAÖrn: En az üç basamaklı bir tamsayının yüzler basamağındaki rakamı bulupekrandan yazdıran algoritmayı yazalım:10- Başla sayı20- sayı Oku 132530- sayı ← sayı / 100 1340- sayı ← sayı % 10 350- Yaz sayı 360- 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 aysonunda 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İTMA4.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İTMA4.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 tekkarşılaştırılır. Karşılaştırma esnasında elimizdekinden daha büyük bir değer bulursakonu en büyük olarak alıp karşılaştırma işlemine kaldığımız yerden devam edilir. Tümveriler 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 yaparkendaha 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ü bulupekrandan 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İTMA4.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 edilipedilmeyeceğ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ĞIveya YUKARI şeklinde bizi uyarır. Bu şekilde sistemin tutuğu sayıyı bulduğumuzda kaç kezdeneyerek 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İTMA4.7. İÇ İÇE DÖNGÜLERI- 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 2Soru : Ekran çıktısı yandaki şekildeki gibi olması için algoritmada nasıl 3 3 3değ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 SORULARI1- Ç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şla20- a ← 1 1 2 3 4 5 6 7 8 930- b ← 1 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 1840- YAZ a*b 3 3 6 9 12 15 18 21 24 2750- b ← b+1 . .60- Eğer(b<=9) ise Git 40 .70- Satırbaşı Yap 9 9 18 27 36 45 54 63 72 8180- a ← a+190- Eğer(a<=9) ise Git 30100- BİTİR
    • 4- ALGORİTMAKlavyeden 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şla20- a ← 130- b ← 140- c ← 1 15350- sayi ← 100*a + 10*b + c 37060- kup ← a*a*a + b*b*b + c*c*c 37170- Eğer( sayı =kup ) ise YAZ sayı 40780- c ← c+190- Eğer( c <=9) ise Git 50100- b ← b+1110- Eğer(b<=9) ise Git 40120- a ← a+1130- Eğer(a<=9) ise Git 30140- 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=2971 ile 1000 arasındaki tamsayılar içinde kaprekar olanlarını bulacak algoritmayı yazınız ?