Algoritma 2

Önceki başlık Sonraki başlık Aşağa gitmek

Algoritma 2

Mesaj tarafından ewrelife SUPERVISOR Bir Salı Tem. 14, 2009 12:12 am

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
Akış Şeması



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

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.
Akış şeması

Ö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 ISAYI
Adım 8-NFAK yaz
Adım 9-Dur
Akış Şeması

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
Akış Şeması

Ö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
Akış şeması

Ö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
Akış Şeması

Ö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
Akış şeması

Ö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.
avatar
ewrelife SUPERVISOR
Admin

Mesaj Sayısı : 315
Kayıt tarihi : 02/07/09
Nerden : Nereye

Kullanıcı profilini gör http://ewrelife.forummum.com

Sayfa başına dön Aşağa gitmek

Önceki başlık Sonraki başlık Sayfa başına dön


 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz