Upload
others
View
68
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.
Æ
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
Æ
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!!!
Æ
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.
Æ
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.
Æ
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
Æ
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