Algoritma ve Akýþ Diyagramlarý
Algoritma ve Akýþ Diyagramlarý Resimli Anlatým için týklayýnýz.
ALGORÝTMANIN HAZIRLANMASI
Algoritma,herhangi bir sorunun çözümü için izlenecek yol anlamýna gelmektedir.Çözüm için yapýlmasý gereken iþlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir.Diðer bir deyiþle algoritma verilerin bilgisayara hangi çevre biriminden girileceðinin,problemin nasýl çözüleceðinin,hangi basamaklardan geçirilerek sonuç alýnacaðýnýn,sonucun nasýl ve nereye yazýlacaðýnýn sözel olarak ifade edilmesi biçiminde tanýmlanabilir.
Algoritma hazýrlanýrken,çözüm için yapýlmasý gerekli iþlemler,öncelik sýralarý gözönünde bulundurularak ayrýntýlý bir biçimde tanýmlanmalýdýrlar.Aþaðýda algoritma hazýrlanmasýna iliþkin örnekler yer almaktadýr.
ÖRNEK 1:Verilen iki sayýnýn toplamýnýn bulunmasýnýn algoritmasý aþaðýdaki gibi yazýlýr:
Algoritma
Adým 1-Baþla
Adým 2-Birinci sayýyý oku
Adým 3-Ýkinci sayýyý oku
Adým 4-Ýki sayýyý topla
Adým 5-Dur
Algoritmaya dikkat edilirse iþlemlerin sýralanmasýnda,iþlem önceliklerinin gözönünde bulundurulduðu görülür.Ayrýca algoritma yazýmý sorun çözümünün baþladýðýný gösteren "BAÞLA" ifadesi ile baþlamakta ve iþlemlerin bittiðini belirten "DUR" ifadesi ile sona ermektedir.
AKIÞ ÞEMALARI(DÝYAGRAMLARI)
Herhangi bir sorunun çözümü için izlenmesi gerekli olan aritmetik ve mantýksal adýmlarýn söz veya yazý ile anlatýldýðý algoritmanýn,görsel olarak simge ya da sembollerle ifade edilmiþ þekline "akýþ þemalarý" veya FLOWCHART adý verilir.Akýþ þemalarýnýn algoritmadan farký,adýmlarýn simgeler þeklinde kutular içine yazýlmýþ olmasý ve adýmlar arasýndaki iliþkilerin ve yönünün oklar ile gösterilmesidir.
Programýn saklanacak esas belgeleri olan akýþ þemalarýnýn hazýrlanmasýna,sorun çözümlenmesi sürecinin daha kolay anlaþýlýr biçime getirilmesi, iþ akýþýnýn kontrol edilmesi ve programýn kodlanmasýnýn kolaylaþtýrýlmasý gibi nedenlerle baþvurulur.Uygulamada çoðunlukla, yazýlacak programlar için önce programýn ana adýmlarýný(bölümlerini) gösteren genel bir bakýþ akýþ þemasý hazýrlanýr.Daha sonra her adým için ayrýntýlý akýþ þemalarýnýn çizimi yapýlýr.
Akýþ þemalarýnýn hazýrlanmasýnda aþaðýda yer alan simgeler kullanýlýr.
|
Algoritmanýn baþladýðýný ya da sona erdiðini belitmek için kullanýlýr.
|
|
Klavye aracýlýðý ile giriþ ya da okuma yapýlacaðýný gösterir.
|
|
Yazýcý(printer) aracýlýðý ile çýkýþ yapýlacaðýný gösterir.
|
|
Kart okuyucu aracýlýðýyla giriþ yapýlacaðýný gösterir.
|
|
Araç belirtmeden giriþ ya da çýkýþ yapýlacaðýný gösterir.
|
|
Hesaplama ya da deðerlerin deðiþkenlere aktarýmýný gösterir.
|
|
Aritmetik ve mantýksal ifadeler için karar verme ya da karþýlaþtýrma durumunu gösterir.
|
|
Diskten okuma ya da diskete yazmayý gösterir.
|
|
Disketten okuma ya da diskete yazmayý gösterir.
|
|
Teyp kütüðünü gösterir.
|
|
Yapýlacak iþler birden fazla sayýda yinelenecek ise diðer bir deyiþle iþ akýþýnda çevrim(döngü) var ise bu sembol kullanýlýr.
|
|
Akýþ diyagramýnda iki nokta arasý iliþkiyi gösterir.Döngü sonunu göstermek için ya da diyagramýn çizilemediði durumlarda kulllanýlýr. Burada i herhangi bir sembol olabilir.
|
|
Oklar iþin akýþ yönünü gösterir.
|
Akýþ þemalarý içerik ve biçimlerine göre genel olarak üç grupta sýnýflandýrýlabilirler.
DOÐRUSAL AKIÞ ÞEMALARI
Ýþ akýþlarý,giriþ,hesaplama,çýkýþ biçiminde olan akýþ þemalarý bu grup kapsamýna girer.
ÖRNEK 2:Ýki sayýnýn çarpýmýnýn bulunmasýyla ilgili algoritma þöyledir.
Deðiþkenler
|
A:Birinci sayýyý,
B:Ýkinci sayýyý,
C:Ýki sayýnýn çarpýmýný(A*B)göstersin.
|
Algoritma
|
Adým 1-Baþla
Adým 2-A'yý oku
Adým 3-B'yi oku
Adým 4-C=A*B yi hesapla
Adým 5-C'yi yaz
Adým 6-Dur
|
Algoritma adýmlarýnda kullanýlmasý gereken semboller yukarýdaki þekilde görülmektedir.Örneðin "DUR" ve "BAÞLA" iþlemleri için ayný sembol kullanýlmaktadýr.Adým 2 ve 3 için kullanýlan sembol,bilgisayara deðerlerin dýþarýdan girildiðini gösterir.Oklar ise iþin akýþ yönünü gösterir. Adým 4'te kullanýlan sembol C=A*B gibi aritmetik iþlemler iþlemler için kullanýlýr.
Örnek 3:Ýki sayýnýn farkýný ve bölümünü bulup yazýcý ile yazan algoritma ve akýþ þemasý þöyledir.
Deðiþkenler
|
A:Birinci sayý
B:Ýkinci sayý
D:Ýki sayýnýn farkýný (A-B)
E:Ýki sayýnýn bölümünü(A-B)
|
Algoritma
|
Adým 1-Baþla
Adým 2-A'yý oku
Adým 3-B'yi oku
Adým 4-D=A-B
Adým 5-E=A/B
Adým 6-D'yi yaz
Adým 7-E'yi yaz
Adým 8-Dur
|
ÖRNEK 4:Ýki sayýnýn toplamlarýnýn karesini ve küpününü hesaplayýp yazan akýþ þemasý þöyledir.
Deðiþkenler
|
BIRSA:Birinci sayýyý,
IKISA:Ýkinci sayýyý,
TO:Toplamý,
TOKA:Toplamýn karesini,
TO3:Toplamýn küpünü gösterir.
|
Algoritma
|
Adým 1-Baþla
Adým 2-BIRSA.ve IKISA'yý oku
Adým 3-TO=BIRSA+IKISA
TOKA=TO^2
TO^3
Adým 4-TOKA,TO3'ü yaz
Adým 5-DUR
|
ÖRNEK 5:Terminalden okunan bir sayýnýn 10 fazla ve 10 eksiðini bulup yazan programýn algoritma ve akýþ þemasý þöyledir.
Deðiþkenler
|
SAYI=Okunacak sayý
F10=Sayýnýn 10 fazlasý
E10=Sayýnýn 10 eksiðini göstersin.
|
Algoritma
|
Adým 1-Baþla
Adým 2-Terminalden SAYI oku
Adým 3-F10=SAYI+10
Adým 4-E10=SAYI-10
Adým 5-DUR
|
MANTIKSAL AKIÞ ÞEMALARI
Geniþ ölçüde mantýksal kararlarý içeren akýþ þemalarýdýr.Hesap düzenleri genellikle basittir.
ÖRNEK 6:A ve B gibi iki sayýdan büyüðünü printerle yazdýran algoritma ve akýþ þemasý þöyledir.
Algoritma
|
Adým 1-Baþla
Adým 2-A,B'yi oku
Adým 3-A=B ise Adým 7'ye git
Adým 4-A>B ise Adým 6'ya git
Adým 5-B'yi yaz Adým 8'e git
Adým 6-A'yý yaz Adým 8'e git
Adým 7-"A veB eþit"mesajýný yaz
Adým 8-DUR
|
ÖRNEK 7:100 kiþilik bir sýnýfta 18-22 arasý her ysþ grubunda kaç öðrencinin bulunduðunu belirleyip yazan programýn akýþ çizelgesi þöyledir.
Deðiþkenler
|
OSA:Öðrenci sayýsýný,
I18:18 yaþýnda olan öðrencilerin sayýsýný
I19:19 yaþýnda olan öðrencilerin sayýsýný
I20:20 yaþýnda olan öðrencilerin sayýsýný
I21:21 yaþýnda olan öðrencilerin sayýsýný
I22:22 yaþýnda olan öðrencilerin sayýsýný
IYOS:Ýþlem yapýlan öðrenci sayýaýný göstersin.
|
Algoritma
|
Adým 1-Baþla
Adým 2-I18=0 I19=0 I20=0 I21=0 I22=0 IYOS=0
Adým 3-OSA oku
Adým 4-OSA=18 ise I18'i arttýr, Adým 9'a git
Adým 5-OSA=19 ise I19'u arttýr, Adým 9'a git
Adým 6-OSA=20 ise I20'yi arttýr,Adým 9'a git
Adým 7-OSA=21 ise I21'i arttýr,ADým 9'a git
Adým 8-OSA=22 ise I22'YÝ arttýr,Adým 9'a git
Adým 9-IYOS<100 ise Adým 3'e git
Adým 10-I18,I19,I20,I21,I22,yaz
Adým 11-DUR
|
YÝNELÝ (ÝTERATÝF,ÇEVRÝMLÝ,DÖNGÜLÜ)AKIÞ ÞEMALARI
Sorunun çözümü için,çözümde yer alan herhangi bir adým ya da aþamanýn birden fazla kullanýldýðý akýþ þemalarýna denir.Ýþ akýþlarý genel olarak giriþ ya da baþlangýç deðeri verme,hesaplama,kontrol biçimindeöolmaktadýr.
ÖRNEK 8:3 öðrencinin bir sýnavdan aldýklarý notlarýn ortalamasýný bulan v yazan bir programýn algoritma ve akýþ þemasý þöyledir.
ÖRNEK 7:100 kiþilik bir sýnýfta 18-22 arasý her ysþ grubunda kaç öðrencinin bulunduðunu belirleyip yazan programýn akýþ çizelgesi þöyledir.
Deðiþkenler
|
ONOT:Öðrencinin notunu,
INOT:Notlarýn toplamýný,
NORT:Notlarýn ortalamasýný,
ISAYI:Öðrenci sayýsýný göstersin.
|
Algoritma
|
Adým 1-Baþla
Adým 2-INOT=0
Adým 3-ISAYI=0
Adým 4-ONOT oku
Adým 5-INOT=INOT+ONOT
Adým 6-ISAYI=ISAIY+1
Adým 7-ISAYI<3ise Adým 4'e git
Adým 8-NORT=INOT/3
Adým 9-NORT YAZ
Adým 10-DUR
|
Görüldüðü gibi,Adým 2 ve 3'te INOT ve ISAYI ismi ile iki deðiþken için bellekte yer ayrýlmýþ,ayrýlan yerlerede ilk deðer olarak sýfýr atanmýþtýr.
Adým 4'te herhangi bir öðrencinin sýnavdan almýþ olduðu notun deðeri okutulmaktadýr.
Adým 5'tenotlarýn toplamýnýn bulunmasý iþlemi yer almaktadýr.Ýþlemde ONOT,INOT ile toplanmakta ve bulunantoplamda INOT'a aktarýlmaktadýr.
Adým 6'da öðrenci sayýsýný gösteren ISAYI deðiþkeninin deðeri,"bir öðrenci için iþlem yapýldý"anlamýnda 1 arttýrýlmaktadýr.
Adým 7'de ISAYI'nýn deðeri 3(toplam öðrenci sayýsý) ile karþýlaþtýrýlmaktadýr.Eðer sayý<3 ise Adým 4'e dönülmektedir.Eðer iþlem 3 öðrenci içinde yapýlmýþsa yani ISAYI=3 ise ya da ISAYI>3 ise ortalamanýn hesaplandýðý Adým 8'e geçilmektedir.Adým 9 da,bulunan ortalamanýn yazýlmasý ile ilgilidir.
Akýþ þemasý incelendiðinde not okuma, toplam hesaplama ve öðrenci sayýsýný 1 arttýrma iþlemlerinin 3 kez tekrarlandýðý anlaþýlmaktadýr.Eðer program 500 öðrenci için yapýlmýþ olsaydý,sözü edilen iþlemler 500 kez tekrarlanacaktý. Üç öðrencinin notlarýnýn, sýrasý ile 50,60 ve 70 olduðunu varsayalým.Bu durumda akýþ þemasýnýn iþlemesi þöyle olacaktýr
Baþlangýçta INOT veISAYI "0" deðerini alýrlar.Bilgisayara ilk not olarak 50 okutulur.Baþlangýçta INOT=0 olduðu için INOT ile 50 toplanýr ve sonuç INOT'a aktarýlýr.Dolayýsýyla INOT'un yeni deðeri 50 olur.Daha sonra ISAYI'nýn deðeri INOT'ta olduðu gibi 1 arttýrýlýr.ISAYI=1 olduðu için 3 ile karþýlaþtýrma yapýldýðýnda tekrar okuma iþlemine geri dönülür ve ikinci not olarak60 okutulur.Ýþlemler bu þekilde devam eder.ISAYI=3 olunca ortalamanýn hesaplamasýna geçilir.Son olarak bulunan ortalama yazýlýr ve durulur.
Ayný sorun yineleme sembolü kullanýlarak þöyle yazýlabilir.
ÖRNEK 9:
N sayýsýný ekrandan okutarak faktöriyelini hesaplayanve yazan akýþ þemasý þöyledir.
Deðiþkenler
|
NFAK=N faktöriyel (N!) deðerini,
ISAYI=1'den N'e kadarsayýlarý göstersin,
NFAK=1*2*......*N
|
Algoritma
|
Adým 1-Baþla
Adým 2-N'i ekrandan oku
Adým 3-NFAK=1
Adým 4-ISAYI=1
Adým 5-ISAYI=ISAYI+1
Adým 6-NFAK=NFAK*ISAYI
Adým 7-Eðer ISAYIAdým 8-NFAK yaz
Adým 9-Dur
|
Ayný soru yineleme sembolü kullanýlarak aþaðýdaki gibi de çizilebilir.
ÖRNEK 9:Klavyeden girilen,bir öðrencinin numarasýný,ismini ve bilgisayar programlama dersinin 3 vize sýnavýndan aldýðý notlarý okuyan,bu notlarýn aritmetik ortalamasýný bulan,eðer ortalamasý 50'ye eþit veya 50'den büyükse yazýcýya numara,isim,notlar ve vize notlarýnýn ortalamasýný,küçükse numara,isim ve "tekrar" mesajý yazan programýn algoritma ve akýþ þemasý þu þekildedir.
Deðiþkenler
|
INO:öðrencinin numarasýný,
AD:öðrencinin ismini,
VIZE1:1.vize sýnavýný,
VIZE2:2.vize sýnavýný,
VIZE3:3.vize sýnavýný,
VIZORT:üç vize sýnavýnýn aritmetik ortalamasýný,
VIZTO:üç vizenin toplamýný göstersin.
|
Algoritma
|
Adým 1-Baþla
Adým 2-INO,AD,VIZE1,VIZE2,VIZE3,oku
Adým 3-VIZTO=(VIZE1+VIZE2+VIZE3) ve VIZORT=VIZTO/3 bul.
Adým 4-Eðer VIZORT>=50 ise Adým 6'ya git.
Adým 5-INO,AD ve "TEKRAR" yaz ve Adým 7'ye git.
Adým 6-INO,AD,VIZE1,VIZE2,VIZE3,VIZORT yaz
Adým 7-DUR
|
ÖRNEK 10:Bir okulda bulunan 10 sýnýftaki 30'ar öðrencinin herbirinin 12 þer dersten aldýklarý notlarýn ortalamasýný bulan ve öðrenci ismi ile not ortalamasýný yazan programýn,algoritmasý ve akýþ þemasý þöyledir:
Deðiþkenler
|
ISS:Sýnýf sayacý,
IOS:Öðrenci sayacý,
DN:Ders notu,
DNS:Ders notu sayacý,
DNT:Ders notlarýnýn toplamý,
DNO:Ders notlarýnýn ortalamasý,
OGAD:Öðrencinin adý
|
Algoritma
|
Adým 1-Baþla
Adým 2-SS=0
Adým 3-IOS=0
Adým 4-DNS=DNT=0
Adým 5-OGAD oku
Adým 6-DN oku
Adým 7-DNS=DNS+1(ders notu sayacý 1 artýr.
Adým 8-DNT=DNT+DN(notlarý topla)
Adým 9-Eðer DNS<12 ise adým 6'ya git
Adým 10-DNO=DNT/12(ortalamayý hesapla)
Adým 11-OGAD,DNO yaz
Adým 12-IOS=IOS+1(öðrenci sayacýný bir artýr)
Adým 13-Eðer IOS<30 ise adým 4'e git
Adým 14-ISS=ISS+1(sýnýf sayacýný bir artýr)
Adým 15-Eðer ISS<10 ise adým 3'e git.
Adým 16-Dur
|
ÖRNEK 11:300 elemanlý bir veri grubunda bulunan pozitif,sýfýr ve negatif deðerlerin sayýsýný bulup yazan programýn algoritmasý ve akýþ þemasý þöyledir:
Deðiþkenler
|
SS:Okunan sayý adedi
PSS:pozitif sayý adedi
NSS:Negatif sayý adedi
SSS:Sýfýr sayý adedi
|
Algoritma
|
Adým 1-Baþla
Adým 2-SS=PSS=NSS=SSS=0
Adým 3-Sayý oku
Adým 4-SS=SS+1
Adým 5-Eðer SS>300 ise dur
Adým 6-Eðer sayý<0 ise adým 9'a git
Adým 7-Eðer sayý=0 ise adým 10'a git
Adým 8-PSS=PSS+1 hesapla,adým 3'e git
Adým 9-NSS=NSS+1 hesapla,adým 3'e git
Adým 10-SSS=SSS+1 hesapla,adým 3'e git
|
ÖRNEK 12:Bir sýnýfta bulunan belirsiz sayýdaki öðrencilerin numarasýný,adýný ve soyadýný yazan programýn algoritmasý ve akýþ þemasý þöyledir.
Deðiþkenler
|
JNO:Öðrencinin numarasý
AD:Öðrencinin adý
SAD:Öðrencinin soyadý
|
Algoritma
|
Adým 1-Baþla
Adým 2-Eðer okuma bittiyse Adým 6'ya git
Adým 3-JNO,AD,SAD oku
Adým 4-JNO,AD,SAD yaz
Adým 5-Adým 2'ye git
Adým 6-Dur
|
ÖRNEK 13:f(x) fonksiyonu x'in çeþitli deðerlerine göre aþðýdaki þekilde deðiþmektedir.x deðeri sýfýr ile 5 arasýnda 0.5 aralýkla arttýðýna göre herbir x deðeri için f(x) fonksiyonunu hesaplayan ve x ile f(x) deðerlerini yazan programýn akýþ þemasý þöyledir.
Algoritma ve Akýþ Diyagramlarý Örnekleri
Ö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þkenler Birinci sayý: x Ýkinci sayý: y
Algoritma Adý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ý
Ö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þken Girilen 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
Ö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þkenler Sýcaklýk deðeri: t
Algoritma Adý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ý
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þkenler girilen not deðerleri: a,b,c derslerin ortalamasý: ort 0-5 arasýndaki rakamsal notu: r A-F aralýðýndaki harfsel notu: h
Algoritma Adý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ý
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
Algoritma Adý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ý
Ö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
Algoritma ve Akýþ Diyagramlarý Örnekleri için týklayýnýz. |