4 Mayıs 2016 Çarşamba

Algoritma ve Akış Diyagramı Örnekleri ( Mantıksal Akış Diyagramları)

Mantıksal akış diyagramları herhangi bir duruma göre algoritmanın akış yönünün değiştiği durumlarda tasarlanır. Bu yön değişimi için belirli karar durumları ile sorgulamalar yapılır. Örneklerimizle konuyu anlatmaya çalışalım.

Örnek 1: Girilen 2 sayıdan büyük olanı ekrana yazdıran programın algoritmasını ve akış diyagramını tasarlayınız.
Şimdi bu örnekte doğrusal akış diyagramlarından farklı olarak bir karar verme söz konusu. girilen ilk sayı x olsun ikinciside y olsun. x sayısımı y den büyük yoksa y sayısı mı x den büyük yoksa iki sayı birbirine eşitmi. Bu durumda bir karar verme ve bu karar sonucunda büyük olan sayının ekrana yazdırılması söz konusudur.
DeğişkenlerBirinci sayı: x
İkinci sayı: y
AlgoritmaAdım 1: Başla
Adım 2:Birinci sayıyı gir.(x)
Adım 3:İkinci sayıyı gir.(y)
Adım 4:Eğer x>y ise ekrana 1. sayı büyüktür yaz.
Adım 5:Eğer y>x ise ekrana 2. sayı büyüktür yaz.
Adım 6:Ekrana sayılar birbirine eşittir yaz.
Adım 7:Bitir
Akış Diyagramı
algo6
Örnek 2: Girilen bir sayının tek mi çift mi olduğunu tespit eden programın algoritmasını ve akış diyagramını tasarlayınız.
Şimdi böyle bir soruda bir  sayının 2 ye bölündüğü zaman 0 kalanını verirse sayı çift 1 kalanını verirse sayı tek olduğu bilgisini hatırlatmamız lazım. Yani burda yine bir karar verme söz konusudur. Mesala
5 sayısı tek mi çift mi ?               5    i 2 ye bölersek kalan 1            Tek
18 sayısı tek mi çift mi ?             18 i 2 ye bölersek kalan 0           Çift
Bir sayının bölümden kalanını bulan matematiksel bir fonksiyon mevcuttur. Birçok programlama dilinde de bu fonksiyon tanımlanmıştır. Mod fonksiyonu denilen bu fonksiyonun kullanılışı:
6 mod 2        anlamı  6 nın 2 ye bölümünden kalan sonuç değeri sıfır.
7 mod 2        anlamı   7 nin 2 ye bölümünden kalan sonuç değeri birdir.
DeğişkenGirilen sayı : x
Algoritma
Adım 1:Başla
Adım 2:Herhangi bir sayı giriniz.(x)
Adım 3:Eğer x mod 2 =0 ise ekrana çift yaz değilse tek yaz.
Adım 4:Bitir
algo8
Örnek 3: Girilen sıcaklık değerine göre bir suyun katı, sıvı ve gaz olma durumunu gösteren programın algoritmasını ve akış şemasını tasarlayınız.
Şimdi soruyu çözmeden önce kimya konularını biraz hatırlayalım. Su sıfır derecenin altında katı, 0-100 derece arasında ise sıvı, 100 dereceden fazla ise gaz halinde bulunur. Dolayısı ile bu soruda kullanıcı su sıcaklığını girdikten sonra belirli karşılaştırmalar yaparak karar vermemiz lazım.
DeğişkenlerSıcaklık değeri: t
AlgoritmaAdım 1:Başla
Adım 2:Sıcaklık değerini giriniz.(t)
Adım 3: Eğer t<0 ise Ekrana katı yaz.
Adım 4: Eğer t>0 ve t<100 ise ekrana sıvı yaz değilse gaz yaz.
Adım 5: Bitir.
Akış Diyagramı
algo9
Yukarıdaki akış diyagramından da anlaşılacağı gibi t değeri giriliyor. önce 0 dan küçük mü ona bakıyoruz. eğer küçükse ekran katı yazıyor ve programı bitiyor değilse diğer karar verme durumu oluşuyor. bu sefer 0 ile 100 arasında olup olmadığı sorgulanıyor. evet ise ekrana sıvı yazıyor değil ise girilen değer 100 ve 100 den büyük değere sahip olduğu için direkt olarak ekrana gaz yazılıyor ve program sonlandırılıyor.
Örnek 4: Bir dersten 3 sınav notu alan bir  öğrencinin :
a- ortalamasını
b-5 li sistemdeki not karşılığını
c-harfli sistemdeki not karşılığını
yazdıran programın algoritmasını ve akış diyagramını tasarlayınız.
Şimdi bu programı çözmeden önce matematiksel işlemler ve not verme sisteminden bahsedelim.
Öncelikle alınan üç not sırasıyla x,y,z olsun ortalaması (x+y+z)/3 değerinden çıkar.
5 li sistemde verilen notlar:
100-85 dahil aralığı not 5 olur. Harfli sistemde A olur.
84-70   dahil aralığı not 4 olur. Harfli sistemde B olur.
69-55   dahil aralığı not 3 olur. Harfli sistemde C olur.
54-45   dahil aralığı not 2 olur. Harfli sistemde D olur.
44-25   dahil aralığı not 1 olur. Harfli sistemde E olur.
24-0     dahil aralığı not 0 olur. Harfli sistemde F olur.
Değişkenlergirilen not değerleri:  a,b,c
derslerin ortalaması: ort
0-5 arasındaki rakamsal notu: r
A-F aralığındaki harfsel notu: h
AlgoritmaAdım 1: Başla
Adım 2: Ders notlarını al.(a,b,c)
Adım 3: ortalama değerini hesapla ort=(a+b+c)/3
Adım 4: eğer ort>84  r=5 h=a adım10 a git.
Adım 5:eğer ort>69 r=4 h=b adım 10 a git.
Adım 6:eğer ort>54 r=3 h=c adım 10 a git.
Adım 7:eğer ort>44 r=2 h=d adım 10 a git.
Adım 8:eğer ort>24 r=1 h=e adım 10 a git.
Adım 9:r=0 h=f
Adım 10: r ve h değerlerini ekrana yaz.
Adım 11: Bitir.
Şimdi adımları incelersek ort değeri bulunduktan sonra eğer ifadeleri ile bulunan ort değeri teker teker sınanıyor ve h ve r değişkenleri değerlerini alıyorlar. Adım 10 da ise bulunan değerler ekrana yazılıp program sonlandırılıyor.
Akış Diyagramı
algo101
Bir hatırlatma yapmak gerekirse bir sorunun çözümünde farklı algoritmalar oluşabilir. Yani bir sorunun farklı şekillerde çözümlemesi yapılabilir. Örneğin bu soruda tersten de gidilebilirdi. Yani alınan not 5 den 0 a değilde 0 dan 5 mi şeklinde sorgulanabilirdi.
Örnek 5: Bir fabrikada sabit maaşla çalışan işçiler aile durumlarına ve ürettikleri parça sayısına görede ek maaş almaktadır. Aşağıda verilen yönergelere göre işçilerin maaşlarını hesaplayan programın algoritmasını ve akış diyagramını tasarlayınız.
Çocuk sayısı1 ise maaşın %5 i
Çocuk sayısı 2 ise maaşın %10 u
Çocuk sayısı 3 ve 3 den fazla ise maaşın %15 i kadar aile yardımı.
Üretilen parça sayısı 50-100 arasında ise maaşın %10 u
Üretilen parça sayısı 100-150 arasında ise maaşın %15 i
Üretilen parça sayısı 150-200 arasında ise maaşın %20 si
Değişkenlerİşçinin sabit maaşı:m
Çocuk sayısı:c
Ürettiği parça sayısı:p
Çocuk yardımı:  cy
Parça yardımı: py
Ödenecek toplam maaş: t
AlgoritmaAdım 1: Başla
Adım 2: Sabit maaş, Çocuk sayısı,Üretilen Parça sayısını gir.(s,c,p)
Adım 3: Eğer c=1 ise cy=m*0.05
Adım 4: Eğer c=2 ise cy=m*0.1
Adım 5: Eğer c>2 ise cy=m*0.15
Adım 6: Eğer (p>=50 ve p<100)  ise py=m*0.1
Adım 7: Eğer (p>=100 ve p<150)  ise py=m*0.15
Adım 8: Eğer(p>=150) ise py=m*0.2
Adım 9: t=m+cy+py
Adım 10: t değerini ekrana yaz.
Adım 11: Bitir
Akış Diyagramı
algo11
Örnek 6: Klavyeden 3 adet kenar uzunluğu giriliyor. Girilen kenar uzunlukları ile :
a-Üçgenin çizilip çizilemiyeceğini
b-Eğer üçgen çizilirse Üçgenin çeşidini(ikizkenar, çeşitkenar, eşkenar)
c- çizilen üçgenin alan ve çevresini bulup ekrana yazan programın algoritmasını ve akış diyagramını tasarlayınız.
Şimdi bu soruyu çözmeden önce biraz geometrik işlemlerden bahsedelim :
Birincisi üçgenin üçgen olabilmesi için bir kenarı diğer iki kenarının toplamından küçük ve yine diğer iki kenarın farkından büyük olmak zorundadır. Bu özellik tüm kenarlar için doğru olursa belirtilen ölçülerde bir üçgen çizilebilir demektir.
Üçgen tiplerinde eşkenar üçgen tüm kenarları eşittir, ikizkenar üçgen de herhangi iki kenar birbirine eşittir, çeşitkenar üçgende ise tüm kenar uzunlukları birbirinden farklıdır.
Üçgenin çevresi tüm kenar uzunlukları toplamına eşittir. Alan formüllerinden biri ise Alan=U*((U-a)*(U-b)*(U-c))^1/2 U burada çevrenin yarısı kadardır. Yani yarı çevrede denilebilir. Bu bilgilerin ışığında algoritmamız aşağıdaki şekilde düzenlenmiştir.
Algoritma
Adım 1 :  Başla
Adım 2:  Üç kenar uzunluğunu giriniz.(a,b,c)
Adım 3:  Eğer( (a+b>c) ve (a-b<c))  veya ( (a+c>b) ve (a-c<b)) veya ((b+c>a) ve (b-c<a))değilse ekrana “Bir üçgen çizilemez.” yaz ve Adım 10 a git.
Adım 4:  Eğer ((a=b) ve (b=c) ve (a=c))  ise ekrana “Eşkenar üçgen” yaz.
Adım 5:  Eğer ((a<>b) ve (a<>c)  ve (b<>c)) ise ekrana “Çeşitkenar üçgen” yaz.
Adım 6:  Eğer ((a=b) ve (b<>c)) veya ((a=c) ve (c<>b)) veya ((b=c) ve (c<>a)) ise ekrana “İkizkenar Üçgen”  yaz.
Adım 7: Üçgenin çevresini bul.  (C=a+b+c)
Adım 9: Üçgenin yarım çevresini bul. (U=C/2)
Adım 8: Üçgenin alanını bul. (A=U*((U-a)*(U-b)*(U-c))^1/2
Adım 9: Çevre ve alan değerlerini ekrana yaz.(C,A)
Adım 10: Bitir

Akış Diyagramı


Evet bu makalede sizlere programların vazgeçilmezi eğer (if) kalıbının algoritma ve akış diyagramları ile ifade edilmesini anlattık. Umarım herkes için güzel bir çalışma olmuştur. İyi çalışmalar diliyorum tüm bilişim severlerimize hoşçakalın…

Hiç yorum yok:

Yorum Gönder