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. |