Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi
Sözde kod, algoritmalar ve programlar oluşturulurken kullanılan, günlük konuşma diline benzer ve belli bir programlama dilinin detaylarından uzak anlatımlardır. Sözde Kod 2
Algoritma tasarlanırken problem bütün olarak çözülmeye çalışılmaz. Kendi içinde alt problemlere ayrılır ve bunlar ayrı ayrı çözülerek esas problem çözülür. Problem Çözümü 3
Bir program küçük parçaların birleştirilmesi ile oluşturulur. Her bir parçayı kendi içinde yönetmek programın tümünü yönetmekten daha basit ve kolaydır. Bundan dolayı bir bilgisayar programı tasarlanırken küçük modüllere ayrılır ve her modül kendi içinde tasarlanır. Daha sonra modüllerin bir biri ile bağlantısı sağlanır. Böl ve Yönet 4
Tasarımını yaptığımız algoritma için çözümleme aşaması önemlidir. Öncelikle probleme ilişkin olarak analiz yapılmalıdır; Girdiler nedir? Çıktılar nedir? Girdiler ve çıktılar arasındaki ilişkiler (formül v.b.) nedir? Tasarımda Analiz Aşaması 5
Başla/Dur Yazıcı / Yazdır İşlem Döngü Karar Bağlantı Görüntüle Giriş / Çıkış Dışarıdan Veri Girişi Akış Şeması - Semboller 6
Soru 1: Girilen 3 sayının toplamını yazan algoritma. A1: Başla A2: K = 0 (Kontrol sayımız) A3: Oku sayi A4: T = T + sayi A5: K = K + 1 A6: Eğer K < 3 ise İzle A3 (A3 adımına yönlendirme) A7: Yaz T A8: Dur Örnek Toplama - Döngü 7
İzleme K Sayi Toplam 1 3 3 2 5 8 3 7 15 Örnek Toplama - Döngü 8
Örnekler için analiz çalışmasını yapalım. Girdiler Çıktılar İlişki Örnekler için sözde kod çalışmasını yapalım. Çözüm Yöntemimiz 9
Soru 2: Verilen sayının 200 den küçük, büyük veya eşit olduğunun bulunması Örnek Büyük, Küçük, Eşit 10
Soru 2: Verilen sayının 200 den küçük, büyük veya eşit olduğunun bulunması Örnek Büyük, Küçük, Eşit 11
Soru 3: Girilen iki sayının hangisinin küçük olduğunu bulalım. Örnek Sayı Karşılaştırma 12
Soru 3: Girilen iki sayının hangisinin küçük olduğunu bulalım. A1: Başla A2: Oku sayi1 A3: Oku sayi2 A4: Eğer sayi1 < sayi2 ise Yaz «sayi1 küçük» A5: Eğer sayi2 < sayi1 ise Yaz «sayi2 küçük» A6: Dur Akış şemasını çizelim algoritmayı değerlendirelim. Örnek Sayı Karşılaştırma 13
Soru 3: Girilen iki sayının karşılaştırmasını yapalım. A1: Başla A2: Oku sayi1 A3: Oku sayi2 A4: Eğer sayi1 = sayi2 ise Yaz «İki sayı eşit» İzle A7 A5: Eğer sayi1 > sayi2 ise Yaz «sayi2 küçük» İzle A7 A6: Yaz «sayi1 küçük» A7: Dur Örnek Sayı Karşılaştırma 14
Soru 3: Girilen iki sayının karşılaştırmasını yapalım. Örnek Sayı Karşılaştırma 15
Soru 4: Çalıştığı gün sayısı ve yevmiyesi girilen işçinin maaşını hesaplayan algoritmayı ve akış diyagramını yapalım. Örnek İşçi Maaşı 16
Soru 4: Çalıştığı gün sayısı ve yevmiyesi girilen işçinin maaşını hesaplayan algoritmayı ve akış diyagramını yapalım. A1: Başla A2: Oku gün A3: Oku yevmiye A4: maas = gün x yevmiye A5: Yaz maas A6: Dur Örnek İşçi Maaşı 17
Soru 5: 1-100 arasındaki sayıların toplamını bulalım. Örnek Sayıların Toplamı 18
Soru 5: 1-100 arasındaki sayıların toplamının bulalım. Örnek Sayıların Toplamı 19
Soru 6: Ekrandan okunan 5 adet sayının ortalamasını bulalım. Örnek Ortalama 20
Soru 6: Ekrandan okunan 5 adet sayının ortalamasını bulalım. Örnek Ortalama 21
Soru 7: 11-50 arasındaki sayıların ortalamasını bulalım. Örnek Ortalama - 2 22
Soru 7: 11-50 arasındaki sayıların ortalamasını bulalım. Örnek Ortalama - 2 23
Soru 8: Arasınav ve final sınavı notlarına göre dersten geçip geçmediğini yorumlayan algoritmayı yapalım. (arasınav: %40 final: %60) Örnek Sınavlar ve Oranlar 24
Soru 8: Arasınav ve final sınavı notlarına göre dersten geçip geçmediğini yorumlayan algoritmayı yapalım. (arasınav: %40 final: %60) A1: Başla A2: Oku arasınav, final A3: ortalama = arasınav x 0,40 + final x 0,60 A4: Eğer ortalama >= 60 ise yaz «Geçti» değilse yaz «kaldı» A5: Dur Örnek Sınavlar ve Oranlar 25
Soru 9: Girilen 3 farklı sayıdan orta değer olanını bulalım. Örnek Orta Değer 26
Soru 9: Girilen 3 farklı sayıdan orta değer olanını bulalım. (Yöntem: A < B < C) A1: Başla A2: Oku a,b,c A3: k1 = b, k2 = c (kontrol değerleri) A4: Eğer a < b ise k1 = a, k2 = b A5: Eğer c < k1 ise yaz «ortadeğer» k1 A6: Eğer k2 < c ise yaz «ortadeğer» k2 değilse yaz «ortadeğer» c A7: Dur Örnek Orta Değer 27
1: Ardışık (doğrusal, sıralı) işlem Bütün işlemlerin sırayla birbirini takip ettiği akışlar Daha önceki işlemlere geri dönülmez Karşılaştırma yapılmaz Örnekler: İki sayının çarpımı, Alan hesabı v.b. Algoritmada İşlem Türleri 28
2: Koşullu (mantıksal) işlem Algoritmanın yürütülme şekli yapılan işlemler sonucu alınan değere bağlıdır. Mantıksal kararlar içerir. Örnekler: 200 ile girilen sayıyı karşılaştırma, Girilen nota göre dersten geçti/kaldı mesajı. Algoritmada İşlem Türleri - 2 29
Soru: Üç kenarının uzunluğu girilen bir üçgenin eşkenar olup olmadığını test edecek akış şemasını çizelim. Koşullu İşlem Örnekleri 30
Soru: Girilen sayının pozitif, negatif veya sıfıra eşit olma durumunu yorumlayan akış şemasını çizelim. Koşullu İşlem Örnekleri - 2 31
3: Döngülü (yineli, iteratif) işlem Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da adımların birden fazla kullanıldığı akışlardır. Aynı işlemleri birçok defa tekrar eden akış akışladır. kontrol=1,n İşlem Algoritmada İşlem Türleri - 3 32
Ön Sınamalı Döngü Son Sınamalı Döngü Sayaç Döngüsü Döngülü İşlem Türleri - 4 33
Soru: 1 den 100 e kadar sayıları yazdıran programın akış şemasını çizelim. Döngülü İşlem Örnekleri 34
Soru: Yeni takılan bir sayaçtan her saat 2 m3 su geçmektedir. 4 saat sonunda, her saat başı sayaç hangi değeri gösterir? Sayaç 35
Soru: Yeni takılan bir sayaçtan her saat 2 m 3 su geçmektedir. 4 saat sonunda, her saat başı sayaç hangi değeri gösterir? A1: SU = 0 (saat 0, başlangıç) A2: SU = SU + 2 (2 m 3, 1. saat, 2 artma değeri) A3: SU = SU + 2 (4 m 3, 2. saat, 2 artma değeri) A4: SU = SU + 2 (6 m 3, 3. saat, 2 artma değeri) A5: SU = SU + 2 (8 m 3, 4. saat, 2 artma değeri) Sayaç - Çözüm 36
Soru: Girilen 10 sayının çift sayı mı, tek sayı mı olduğunu bulalım. Çift Sayı Tek Sayı 37
Soru: Girilen 10 sayının çift sayı mı, tek sayı mı olduğunu bulalım. Tek Sayı: A1: Başla A2: Oku sayi A3: Eğer sayi mod 2 = 0 ise yaz «Çift» değilse yaz «Tek» A4: Dur Çift Sayı Tek Sayı 38
Soru: Girilen 10 sayının çift sayı mı, tek sayı mı olduğunu bulalım. Son Sınamalı: A1: Başla A2: kontrol = 0 A3: kontrol = kontrol + 1 A4: Oku sayi A5: Eğer sayi mod 2 = 0 ise yaz «Çift» değilse yaz «Tek» A6: Eğer kontrol < 10 ise izle A3 A7: Dur Çift Sayı Tek Sayı 39
Soru: Girilen 10 sayının çift sayı mı, tek sayı mı olduğunu bulalım. Ön Sınamalı: A1: Başla A2: kontrol = 0 A3: Eğer kontrol = 10 ise izle A8 A4: kontrol = kontrol + 1 A5: Oku sayi A6: Eğer sayi mod 2 = 0 ise yaz «Çift» değilse yaz «Tek» A7: izle A3 A8: Dur Çift Sayı Tek Sayı 40
Soru: Yaş bilgisi girilen 4 kişiden yaşı 20 olanların sayısını bulalım. Yaş ve Kontrol 41
Soru: Yaş bilgisi girilen 4 kişiden yaşı 20 olanların sayısını bulalım. A1: Başla A2: kontrol = 0, yas = 0, sayi = 0 A3: Eğer kontrol = 4 ise izle A8 A4: kontrol = kontrol + 1 A5: Oku yas A6: Eğer yas = 20 ise yaz sayi = sayi + 1 A7: izle A3 A8: Yaz «yasi 20 olanların sayısı=» sayi A9: Dur Yaş ve Kontrol 42
Soru: Girilen 10 sayının 3 ün katı olup olmadığını bulalım. 3 ün Katı Olanlar 43
Soru: Girilen 3 basamaklı sayının basamakları toplamını bulalım. Basamaklar Toplamı 44
Soru: Girilen 3 basamaklı sayının basamakları toplamını bulalım. A1: Başla A2: Oku sayi A3: birler = sayi mod 10 A4: onlar = (sayi mod 100 birler) / 10 A5: yuzler = (sayi sayi mod 100) / 100 A6: toplam = birler + onlar + yuzler A7: Yaz «basamakların toplamı» toplam A8: Dur Basamaklar Toplamı 45
Soru: Girilen 4 adet sayıdan kaç tanesinin pozitif olduğunu bulalım. Pozitif Sayılar 46
Soru: Girilen 4 adet sayıdan kaç tanesinin pozitif olduğunu bulalım. A1: Başla A2: pozitif = 0, adet = 0 A3: Oku sayi A4: adet = adet + 1 A5: Eğer sayi >= 0 ise pozitif = pozitif + 1 A6: Eğer adet < 4 ise İzle A3 A7: Yaz «pozitif sayısı sayısı» pozitif A8: Dur Pozitif Sayılar 47
Soru: 4 ile 17 arasındaki tek ve çift sayıların toplamını bulalım. Ayrı Ayrı Toplamlar 48
Soru: 4 ile 17 arasındaki tek ve çift sayıların toplamını bulalım. A1: Başla A2: cift = 4, tek = 5, tekler = 0, ciftler = 0 A3: tekler = tekler + tek A4: ciftler = ciftler + cift A5: tek = tek + 2 A6: cift = cift + 2 A7: Eğer tek < 17 ise İzle A3 A8: Yaz «tekler»tek, Yaz «ciftler»cift A9: Dur Ayrı Ayrı Toplamlar 49
Teşekkürler. 50