4- algorİtma...4- algorİtma Örn: bir işçinin maaşı (m), mesai saati (ms) , bir saatlik mesai...

Post on 22-Jan-2021

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Algoritmada kullanılacak notasyonlar:

Aritmetiksel İlişkisel Mantıksal Atama

+ topla- çıkar* çarp/ böl% Mod^ üs al

> büyük>= büyük veya eşit

< küçük<= küçük veya eşit

<> farklı= eşit

VE (AND)VEYA (OR)DEĞİL (NOT)

=

Örneğin :x ← 5x = 5x ‘ e 5 atanmıştır

4.1 - Algoritmada kullanılacak notasyonlar:

4- ALGORİTMA

Değişken değer Atama :

X ← 4

X ← X + 5

Bellek (RAM)

x

4 + 5İŞLEMCİ

4 9

4.2 – Atama işlemi ve bellek modeli .

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

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

4.3 – Karşılaştırma

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

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

Eğer ( x>5 ve x<8 ) iseEğer (z > 6) işlem-I

Değilse işlem-IIDeğilse işlem-III

4- ALGORİTMA

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

4.3 – Karşılaştırma

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

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

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-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

Ö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

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

50- Yaz durum

60- Bitir

30- N ← Vize * 0.3 + Final * 0.7

4.3 – Karşılaştırma

4- ALGORİTMA

ort >=90 ise harf not ← “AA”90>ort >=85 ise harf not ← “BA”85>ort >=80 ise harf not ← “BB”80>ort >=75 ise harf not ← “CB”75>ort >=70 ise harf not ← “CC”70>ort >=60 ise harf not ← “DC”60>ort >=50 ise harf not ← “DD”50>ort >=40 ise harf not ← “EF”

ort < 40 ise harf not ← “FF”

10- Başla

20- Vize ve Final Oku

40- Eğer (ort >= 90) ise harfnot← “AA”

130- YAZ harfnot

140- Bitir

30- ort ← Vize * 0.3 + Final * 0.7

Örn:Vize (%30) ve Final (%70) notuna göre harf notunu hesaplayıp yazdıran algoritmayı yazınız.

50- Eğer (90> ort >= 85) ise harfnot← “BA”

60- Eğer (85> ort >= 80) ise harfnot← “BB”

70- Eğer (80> ort >= 75) ise harfnot← “CB”

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”

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

20- sayı Oku

40- sayı ← sayı % 10

50- Yaz sayı

60- Bitir

30- sayı ← sayı / 100

1325

sayı

13

3

3

Ç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ı.

KOMUTLAR

DÖNGÜ BAŞI

ŞART SAĞLANIR İSE BAŞA GİT

KOMUTLAR

ŞART SAĞLANIRSA DEVAM ET

DÖNGÜ BAŞINA GİT

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

4- ALGORİTMA

Örn: 1 den 5 ‘ e kadar olan sayıları sırayla ekrandan yazdıran algoritma :

10- BAŞLA

20- X ← 1

30- YAZ X

40- X ← X + 1

50- EĞER ( X < 6 ) GİT 30

60- BİTİR

1 2 3 4 5

EKRAN ÇIKTISI

Soru-2 : 50. satırı , EĞER ( x <= 6 ) GİT 30 yaparsak sonuç nasıl değişir ?

Soru-1 : 50. satırda GİT 30 yerine GİT 20 yaparsak ne olur ?

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 :

10- BAŞLA

20- OKU n

30- say ← 1 , fakt ← 1

40- eğer (n = 0 VEYA n=1) ise fakt ← 1

70- EĞER ( say <= n ) GİT 50

80- YAZ fakt

90- BİTİR

GİT 80

50- fakt ← fakt * say

60- say ← say + 1

n say fakt

3 1 1

1

2

2*1=2

3

2*3=6

4

3!= 6

n=3 için yani 3! = …

4- ALGORİTMA

Örn: xyişlemini yapan algoritma :

10- BAŞLA

20- OKU x , y

30- say ← 1 , us ← 1

40- eğer (y = 0 ) ise us ← 1

70- EĞER ( say <= y ) GİT 50

80- YAZ us

90- BİTİR

GİT 80

50- us ← us * x

60- say ← say + 1

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

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.

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

70- EĞER ( cevap =“E” ) GİT 30

80- YAZ eb

90- BİTİR

50- YAZ “Devam edilecek mi ? Evet *E+ ”

60- OKU cevap

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

4.6. SINIRI BELLİ OLMAYAN DÖNGÜLER

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

70- GİT 20

80- YAZ top

90- BİTİR

50- OKU x

60- top ← top + x

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”

70- EĞER ( r > tahmin) ise YAZ “YUKARI” GİT 40

90- YAZ say “ . Tahminde buldunuz”

100- BİTİR

50- OKU tahmin

60- say ← say + 1

80- EĞER ( r < tahmin) ise YAZ “AŞAĞI” GİT 40

4- ALGORİTMA

4.7. İÇ İÇE DÖNGÜLERI- içteki döngü, dıştaki döngünün bir komut satırı gibidir.II- Birbirlerini kesemezler

KOMUTLAR 2

DÖNGÜ n

DÖNGÜ k

KOMUTLAR 1

n kez çalışır

n X k kez çalışırKOMUTLAR 3

4- ALGORİTMA

İÇ İÇE DÖNGÜLER

KOMUTLAR 2

DÖNGÜ n

DÖNGÜ k

KOMUTLAR 1

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

40- sütun ← sütun + 1

50- YAZ “ * “

80- satır ← satır + 1

90- EĞER (satır <= 4) GİT 30

100- BİTİR

60- EĞER (sütun <= 4) GİT 40

70- satırbaşı YAP (YAZ)

30- sütun ← 1

Soru: Ekrandaki gibi çıktı vermesi için algoritmada ne gibi değişiklik yapılmalıdır.

* * * * * * * * * *

4- ALGORİTMA

11 2 1 2 31 2 3 4

Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ;

10- BAŞLA

20- satır ← 1

40- YAZ sütun

50- sütun ← sütun + 1

80- satır ← satır + 1

90- EĞER (satır <= 4) GİT 30

100- BİTİR

60- EĞER (sütun <= satir) GİT 40

70- satırbaşı YAP (YAZ)

30- sütun ← 1

12 2 3 3 34 4 4 4

Soru : Ekran çıktısı yandaki şekildeki gibi olması için algoritmada nasıl değişik yada değişiklikler yapılmalıdır ?

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.

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 kesinti3000>Toplam >= 2000 TL ise %15 kesintiToplam < 2000 TL ise % 10 kesinti

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- ALGORİTMAÇarpım Tablosu .

10-Başla

20- a ← 1

30- b ← 1

40- YAZ a*b

50- b ← b+1

80- a ← a+1

60- Eğer(b<=9) ise Git 40

90- Eğer(a<=9) ise Git 30

1 2 3 4 5 6 7 8 91 1 2 3 4 5 6 7 8 92 2 4 6 8 10 12 14 16 183 3 6 9 12 15 18 21 24 27...9 9 18 27 36 45 54 63 72 81

100- BİTİR

70- Satırbaşı Yap

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

50- sayi ← 100*a + 10*b + c

60- kup ← a*a*a + b*b*b + c*c*c

70- Eğer( sayı =kup ) ise YAZ sayı

80- c ← c+1

90- Eğer( c <=9) ise Git 50

100- b ← b+1

120- a ← a+1

110- Eğer(b<=9) ise Git 40

130- Eğer(a<=9) ise Git 30

153 370 371 407

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 ?

top related