44
Programlama Temelleri «AKIŞ DİYAGRAMLARI» [email protected] Karabük Üniversitesi T.O.B.B. Teknik Bilimler Meslek Yüksekokulu Demir Çelik Kampüsü 78050 Karabük/TÜRKİYE KBÜ KARABÜK ÜNİVERSİTESİ Öğr. Gör. Dr. Abdullah ELEN https://www.elenium.net Belge No: TBP101/03 Revizyon: R-002 Yayın Tarihi: 06.10.2018 TBP101

TBP101 KBÜ Programlama Temelleri - elenium.net · 1 Programlama Temelleri Ders Notları, Erkan Hürnalı, Ankara Üniversitesi (10.09.2018) 2 Programlama Temelleri Ders Notları,

  • Upload
    others

  • View
    59

  • Download
    0

Embed Size (px)

Citation preview

Programlama Temelleri« A K I Ş D İ YA G R A M L A R I »

[email protected]ük Üniversitesi T.O.B.B. Teknik Bilimler Meslek YüksekokuluDemir Çelik Kampüsü 78050 Karabük/TÜRKİYE

KBÜKARABÜK ÜNİVERSİTESİ

Öğr. Gör. Dr. Abdullah ELEN

https://www.elenium.net

Belge No: TBP101/03Revizyon: R-002

Yayın Tarihi: 06.10.2018

TBP101

İçindekiler

2

➢Akış Diyagramı Tanımı ve Açıklamaları

➢Doğrusal Akış Diyagramları

➢Mantıksal Akış Diyagramları

➢Döngüsel Akış Diyagramları

➢ANSI Standartları

➢Örnek Uygulamalar

➢Alıştırma Soruları

Æ

3

Akış Diyagramı Nedir?

✓Bir problemin çözümünde izlenmesi gereken aritmetik ve mantıksal işlem adımlarının, belirli şekil ve sembollerle görsel olarak ifade edilmiş biçimine “Akış Diyagramı” veya “Flow-chart” adı verilir.

✓Akış diyagramında her adım birbirinden farklı anlamlar taşıyan şekillerden oluşur ve adımlar arasındaki ilişki oklar ile belirtilir.

✓Kodlanacak program için akış diyagramının oluşturulması, sürecin daha kolay çözümlenmesine yardımcı olur ve olası hataları önler.

Æ

4

Temel Akış Diyagramları

Başla/Bitir (Start/Stop)

▪ Algoritmanın başladığını ya da sona erdiğini belirtmek için kullanılır.

▪ Kenarları yuvarlatılmış dikdörtgen veya elips şekli ile gösterilir.

▪ Her akış diyagramı “Başla” şekli ile başlar, “Bitir” şekli ile sona erer.

▪ Akış diyagramında yer alan diğer bütün işlem basamaklarıbu iki şekil arasında yer alır.

Başla

Bitir

Æ

5

Temel Akış Diyagramları

Bilgi Girişi (Input)

▪ Bilgisayara dışarıdan (klavyeden) bilgi girişini temsil eder.

▪ Sol üst köşesi gedik olan bir dörtgen şekli ile gösterilir.

▪ Bu şeklin içerisine, dışarıdan girilen bilginin aktarılacağı değişkenin adı yazılır.

▪ Örneğin; şeklin içinde ‘N’ yazıyorsa ve program çalıştığında ’10’ girilirse, bu N=10 olacaktır anlamına gelir.

N

N

Æ

6

Temel Akış Diyagramları

İşlem (Process)

▪ Programın işlenmesi sırasında yapılacak işlemleri ifade etmek için kullanılır.

▪ Düz dikdörtgen şekli ile gösterilir.

▪ Şekil içerisine formül (eşitlik) aynen yazılır.

▪ İşlem akışı bu noktaya geldiğinde, şeklin içinde yazılı olan işlem(ler) gerçekleştirilir.

▪ Birden fazla işlem varsa; aynı şekil içerisinde aralarına virgülkonularak veya alt alta yazılarak gösterilebilir.

X=Y+Z

a=b+1,c=a

Æ

7

Temel Akış Diyagramları

Karar (Decision)

▪ Karar verme (kontrol etme, karşılaştırma) işlemlerini temsil eden şekildir.

▪ Baklava dilimi şeklindeki bir dörtgenle gösterilir.

▪ Oluşması istenen koşul veya koşullar, aynen şeklin içine yazılır.

▪ Yandaki örnekte; bir öğrencinin not ortalaması50’den büyükse «Geçti», değilse «Kaldı» olarakekrana yazdıran kısmi bir diyagram verilmiştir.

KOŞUL

ORT>50

"Kaldı" "Geçti"

EvetHayır

Æ

8

Temel Akış Diyagramları

Döngü (Loop)

▪ Birçok algoritmada, bazı işlemlerin tekrarlı olarak hesaplanması gerekir. (Örnek: Çift sayıların bulunması)

▪ Döngü şeklinin içine; kontrol (döngü, çevrim) değişkeni, başlangıç değeri, bitiş değeri ve artım değeri yazılır.

▪ Yazım formatı:Kontrol Değişkeni = Başlangıç Değeri, Bitiş Değeri, Artımşeklindedir. Döngüler iki şekilde oluşturulabilir:▪ Artan Döngü: Başlangıç değeri, bitiş değerinden küçüktür (artım

değeri pozitiftir)

▪ Azalan Döngü: Başlangıç değeri, bitiş değerinden büyüktür (artım değeri negatiftir)

X = 0, N, 1

X = 10, 0, -2

X

Æ

9

Temel Akış Diyagramları

Çıktı İşlemi (Output)

▪ Ekrana veya yazıcıya bilgi çıkışı için kullanılır.

▪ Sağ alt köşesi gedik olan yazıcı çıktısı, diğeri ise ekran çıktısını temsil eder.

▪ Yazdırılacak olan mesaj ise, tırnak içinde yazılır.

▪ Bir değişken içeriği yazdırılacaksa, değişken adı yazılır.

▪ Birden fazla değişken içeriği aralarına virgülkonularak tek şekil içinde gösterilebilir.

"Merhaba Dünya"

ORT X, Y, Z

"Merhaba" A, B, ORT

Æ

10

Temel Akış Diyagramları

Bağlayıcı (Connector)

▪ Bağlantı şekli, genel anlamda birleştirici bir noktadır. Genel olarak aşağıdaki amaçlar için kullanılır:▪ Farklı yerlere dallanan işlem akışlarını tekrar toplamak.

▪ Akış diyagramı bir sayfaya sığmadığı zaman diğer sayfadaki akış diyagramı ile bağlantı yapmak.

▪ Parça parça çizilen akış diyagramları arasında bağlantı yapmak.

▪ Parça parça program yazılması veya diyagramın çizilen yere sığmadığı durumlarda; bağlantı yapılacak uçlara bağlantı şekli çizilir ve içine aynı ifade yazılır.

A1

Bitir

Æ

11

Temel Akış Diyagramları

Bağlayıcı (Connector)

▪ Bağlantı yapılacak uçlara bağlantı şekli çizilir ve içine aynı ifadeyazılır.

Æ

12

Temel Akış Diyagramları

Alt Yordam (Function, Procedure)

▪ Bağlantı şekli, genel anlamda birleştirici bir noktadır. Genel olarak aşağıdaki amaçlar için kullanılır:▪ Farklı yerlere dallanan işlem akışlarını tekrar toplamak.

▪ Akış diyagramı bir sayfaya sığmadığı zaman diğer sayfadaki akış diyagramı ile bağlantı yapmak.

▪ Parça parça çizilen akış diyagramları arasında bağlantı yapmak.

▪ Parça parça program yazılması veya diyagramın çizilen yere sığmadığı durumlarda; bağlantı yapılacak uçlara bağlantı şekli çizilir ve içine aynı ifade yazılır.

FonksiyonAdi()

Æ

13

Temel Akış Diyagramları

Depolama (Storage)

▪ Girdi/Çıktı verisinin manyetik disk ortamında ya da veri tabanında bulunduğunu gösterir.

▪ Bir disk üzerine bilgilerin kaydedilmesi için kullanılır.

▪ Kaydedilmiş olan bilgileri/verileri temsil eder. Manyetik Disk

Depolanmış Veri

Doğrudan Erişimli

Depolama

Æ

14

Temel Akış Diyagramları

Gecikme (Delay)

▪ Süreçteki gecikmeye veya bekleme süresine işaret eder.

Gecikme Süresi

Başla

Bitir

Alarm çal

Uyandı mı?

5 dk.Evet Hayır

Æ

15

Temel Akış Diyagramları

İşlem Akış Yönleri (Direction)

▪ Akış diyagramlarında işlem akışının hangi yönde olduğunu gösteren oklardır.

▪ İşlem akış yönüne göre uygun olan ok işareti kullanılır.

Doğrusal Akış DiyagramlarıL i n e a r F l o w - c h a r t s

16

Æ

17

Doğrusal Akış Diyagramları

✓Diyagramın Giriş-İşlem-Çıkış şeklinde doğrusal bir yol izleyerek sonlandırıldığı en basit akış diyagramıdır.

Örnek:

Klavyeden girilen iki sayının toplamını bulan ve ekrana yazan programın akış diyagramını çiziniz.

Başla

Bitir

a, b

Toplam = a + b

Toplam

Æ

18

Doğrusal Akış Diyagramları

Örnek:

Klavyeden girilen bir derse ait vize sınavı notunun %40′ını, final sınavı notunun %60‘ını alarak ortalama notu hesaplayan programın akış diyagramını tasarlayınız.

Başla

Bitir

Vize, Final

Ortalama = Vize*0.4 + Final*0.6

Ortalama

Mantıksal Akış DiyagramlarıL o g i c a l F l o w - c h a r t s

19

Æ

20

Mantıksal Akış Diyagramları

✓İçerisinde karar kontrol mekanizmaları bulunan ve belirli koşullara göre dallanmış akış diyagramlarıdır.

Örnek:

Klavyeden girilen bir sayının tek mi çift mi olduğunu bulan ve ekrana yazdıran programın akış diyagramını tasarlayınız.

x ≡ y (mod m)

sayi ≡ 0 (mod 2)

Başla

sayi

x = (sayi % 2)

Bitir

x = 0

"ÇİFT" "TEK"

HayırEvet

Evet ve Hayırne tarafta !!!

Æ

21

Mantıksal Akış Diyagramları

Örnek:

Bir öğrencinin TBP101 dersinden aldığı Vize ve Final notları klavyeden girilerek, ortalamasını hesaplayan ve sonuç 50’den büyükse ekrana «GEÇTİ» değilse «KALDI» yazdıran ekrana yazdıran programın akış diyagramını tasarlayınız.

Başla

Bitir

Vize, Final

Ort = Vize*0.4 + Final*0.6

Ort > 50

"GEÇTİ" "KALDI"

YanlışDoğru

Tırnak işareti!!!

Döngüsel Akış DiyagramlarıL o g i c a l F l o w - c h a r t s

22

Æ

23

Döngüsel Akış Diyagramları

✓Problemin çözümünde, bazı işlem adımlarının birçok kez tekrar ettiği durumlardaki akış diyagramlarıdır. Misal, ardışık 10 sayının toplanması.

Örnek:

1’den 10’a kadar olan ardışık sayıların toplamını bulan ve ekrana yazan programın akış diyagramını çiziniz.

Başla

Bitir

x: 1, 10, 1

top

top = top + x

Æ

24

Sebze Yemeği Tarifi

Başla

Bitir

Tencereyi ocağa yerleştir.

Tencereye bir miktar yağ dök.

Yağ Kızgın mı?

Biraz bekle

Soğanları tencereye koy.

✓ Tencere

✓ Kepçe

✓ Bıçak

✓ Ocak

✓ Sıvı Yağ

✓ Salça

✓ Tuz

✓ Soğan

✓ Su

✓ Çeşitli Sebzeler

Su: 1, N, 1

Yeterli mi?

Karıştır

E

……

Æ

25

ANSI Tavsiyeleri

ANSI (American National Standards Institute), akış diyagramları ile ilgili bazı tavsiyelerde bulunmuştur:

✓Akış diyagramındaki standart sembollerle programın mantığı sunulmalıdır.

✓Akış diyagramı basit, açık ve kolay takip edilebilir olmalıdır.

✓Her akış diyagramının bir adet başlangıç ve bitiş noktası bulunmalıdır.

✓Akış diyagramının takip yönü yukarıdan aşağıya, soldan sağa doğru olmalıdır.

✓Akış diyagramı çok karmaşık hale geldiyse, bağlantı noktaları ve alt yordam(program) kullanılmalıdır.

✓Test verisi ile diyagram denenmelidir. Değerleri bir tabloya aktarılmalıdır.

Örnek UygulamalarE x a m p l e s

26

Æ

27

Örnek UygulamalarBaşla

Bitir

Vize, Final

Ort = Vize*0.4 + Final*0.6

Ort > 50

GEÇTİ KALDI

HE

Bir öğrencinin TBP101 dersinden aldığı Vize ve Final notları klavyeden girilerek, ortalamasını hesaplayan ve sonuç 50’den büyükse ekrana «GEÇTİ» değilse «KALDI» yazdıran algoritmayı tasarlayınız.

Æ

28

Örnek Uygulamalar

Æ

29

Örnek UygulamalarAşağıdaki algoritma ve akış diyagramında x=6 için ekrana ne yazar?

Æ

30

Örnek UygulamalarIsıtıcı kontrol programının akış diyagramı.

Başla

Bitir

Sicaklik<0

"Don olayı var" "Don olayı yok"

HayırEvet

Sicaklik

Isıtıcıyı Çalıştır

Æ

31

Örnek UygulamalarYazılım tasarımı akış diyagramı.

Başla

Bitir

Hata var mı?

EvetHayır

Tasarım

Tasarım Hatası mı?

Kodlama

Test Et

Hayır

Evet

Æ

32

Örnek Uygulamalar

Lambanın çalışıp çalışmadığının kontrolü için akış diyagramı.

Başla

Bitir

Lamba çalışıyor

mu?

HayırEvet

Lamba takılı mı?

HayırEvet

Lamba bozuk mu?

EvetHayır

Lamba satın al

Lambayı tak

Æ

33

Örnek UygulamalarBaşla

a, b, c

a = b

b = c

a = c

"Eşkenar"

E

E

"Çeşitkenar"

E

Bir üçgene ait kenar büyüklükleri kullanıcı tarafından klavyeden girilsin. Buna göre kenar büyüklüklerini analize ederek, ne çeşit bir üçgen olduğunu bulan akış diyagramını çiziniz.

"İkizkenar"

H

H

H

a b

cBitir

A

A

Æ

34

Örnek Uygulamalar

1'den 5'e kadar olan sayıları, sırayla ekrana yazdıran akış diyagramı.

Başla

Bitir

x: 1, 5, 1

x

Æ

35

Örnek Uygulamalar1'den 10’a kadar olan tek sayıları ekrana yazdıran algoritma ve akış diyagramı. Başla

Bitir

x: 1, 10, 2

x

Æ

36

Örnek Uygulamalar

Klavyeden girilen üç sayıdan en büyüğünübulan programın akış diyagramı.

Başla

a, b, c

b > aE

max = a

max = bb > cE

max = cc > aE

Bitir

H

H

H

adım a b c max

I) 1 2 3 3

II) 3 2 1 3

III) 1 3 2 3

Tablodaki değerlere göre test ediniz.

Æ

37

Örnek Uygulamalar

Klavyeden girilen üç sayıdan en büyüğünübulan programın akış diyagramı.

Başla

a, b, c

b > maxE

max = a max = b

max = cc > maxE

Bitir

H

H

Æ

38

Örnek Uygulamalar

N Faktöriyel hesaplama işlemini yapan ve sonucu ekrana yazdıran akış diyagramı.

Başla

Bitir

x: 1, N, 1

N

top = top * x

top = 1

top

𝑁! = 1 × 2 ×⋯× 𝑁

Æ

39

Örnek Uygulamalar

Üslü sayı (xy) hesaplama yapan akış diyagramı.

Başla

Bitir

n: 1, y, 1

x, y

top = top * x

top = 1

top

𝑥1 × 𝑥2 ×⋯× 𝑥𝑦

Æ

40

Örnek Uygulamalar

Akış diyagramı x = 20, x = 40 ve x = 1değerleri için ekrana ne yazar?

Başla

x

x >= 20H

x < 40E

x = x + 4

x = x + 5

x = x + 6

Bitir

x

Alıştırma SorularıE x e r c i s e s

41

Æ

42

Alıştırma Soruları

1) Klavyeden girilen üç sayıyı toplayan ve ortalamasını alıp sonuçları ekrana yazdıran akış diyagramını çiziniz.

2) Bir üçgene ait yükseklik ve taban uzunluğu değerlerini klavyeden girerek, alanını hesaplayan ve sonucu ekranda gösteren akış diyagramını çiziniz.

3) Klavyeden girilen suyun sıcaklık derecesine göre katı, sıvı veya gaz halinde olduğunu bulan ve sonucu ekranda gösteren akış diyagramını çiziniz.

4) Klavyeden girilen bir tamsayının pozitif, negatif veya sıfır olduğunu bulan akış diyagramını çiziniz.

5) Klavyeden girilen pozitif bir tamsayının tek ya da çift olduğunu bulan akış diyagramını çiziniz.

Æ

43

Alıştırma Soruları

6) Bir fabrikada sabit maaşla çalışan işçiler aile durumlarına göre ek maaşalmaktadırlar. Çocuk sayısı 1 ise maaşının %5’i kadar, çocuk sayısı 2 ise %10’u kadar, 3 ve daha fazla ise %15’i kadar aile yardımı almaktadır. Buna göre kullanıcıdan işçinin maaşı ve çocuk sayısı istenerek gerekli hesaplamayı yapan akış diyagramını çiziniz.

7) Bir ürüne ait alış fiyatı, vergi oranı ve kar oranı parametreleri klavyeden girilerek satış fiyatını hesaplayan akış diyagramını çiziniz.

8) Klavyeden girilen iki sayı için, dört işlem (1:Topla, 2:Çıkar, 3:Çarp, 4:Böl) yapabilen bir akış diyagramını çizilmesi istenmektedir. Kullanıcı 1 ve 4 arasında bir işlem numarası girerek bu işlemleri gerçekleştirir. Bunlardan farklı bir rakam girildiğinde program sonlanır.

Æ

1 Programlama Temelleri Ders Notları, Erkan Hürnalı, Ankara Üniversitesi (10.09.2018)

2 Programlama Temelleri Ders Notları, Yasin Şahin, Gümüşhane Üniversitesi (10.09.2018)

3 Programlama Temelleri Ders Notları, M. İlkuçar, Mehmet Akif Ersoy Üniversitesi (10.09.2018)

4

5

6

7

8

9

10

B u d e r s n o t u h a z ı r l a n ı r k e n a ş a ğ ı d a b e l i r t i l e n k a y n a k l a r d a n y a r a r l a n ı l m ı ş t ı r.

44

Kaynaklar