Bir Kac Basit Algoritma ve Akis Semasi Ornegi


Bu yaziyi okumadan once algoritmanin ne oldugunu ogrenmeniz yaziyi anlamaniza yardimci olacaktir. http://tr.wikipedia.org/wiki/Algoritma

Ilk olarak iki sayiyi birbiriyle toplamak icin olan basit bir algoritma ile baslayalim:
A0 > Basla
A1 > Iki sayi gir (A,B) (Aciklama: Burada girdigimiz iki sayiyi A ve B olmak uzere 2 degisken olarak atiyoruz. Boylece daha sonra bu degiskenleri birbiriyle toplayarak sonucu elde edebiliriz.) A2 > TOPLAM=A+B (Aciklama: Burada da degiskenlerimizi toplayip sonucu elde ediyoruz.)
A3 > TOP yazdir (Aciklama: Bu adimda da toplami ekrana yazdiriyoruz.)
A4 > Dur

Akis Semasi

Simdi de 1′den 100′e kadar olan sayilarin algoritmasini yazalim:
Burada sayilari 1′den 100′e kadar sayan bir degisken ve sayilan bu sayilari tek tek toplamasi icin ikinci bir degisken belirlememiz gerekecek.
A0 > Basla
A1 > I=1, TOP=0 (Aciklama: Burada I'yi birden baslattik cunku bizden 1'den 100'e kadar olan sayilarin toplamini istemis. TOP ise bizim I degiskenimizin farkli degerlerinin toplami olacak, toplam icin etkisiz eleman 0 oldugundan ona 0 degerini atadik.)
A2 > TOP=TOP+I, I=100 ise A5'e git. (Aciklama: Burada TOP degiskenimizi I ile toplayarak TOP'un yeni degerini belirledik. Birazdan I degiskenimizi de artirmaya basladigimizda TOP degeri de her seferinde degisecektir ve I degiskenimizin artisini 100 ile sinirlandirmak icin burda onu 100'e esit oldugunda gelecekte yazacagimiz baska bir adima gonderdik.)
A3 > I=I+1 (Aciklama: Onceki adimda bahsettigimiz gibi I degiskenimizi artiriyoruz.)
A4 > A2 adimina don. (Aciklama: Burada I degerimizi bir artirdiktan sonra tekrar TOP degiskenimizle onu topluyoruz, sonra tekrar tekrar bu islem gerceklesiyor ve I, 100'e esit oldugunda onu A5 islemine yolluyoruz yani sonraki adimimiza, boylece tekrar A4 adimina ulasip A2 adimina donemediginden, I degiskenimiz 100'den buyuk bir deger alamiyor.)
A5 > TOP yazdir
A6 > Dur

Akis Semasi

1 ile 100 arasinda olan cift sayilarin toplami, cift sayilarin carpimini veren programin algoritmasini yazalim:
A0 > Basla
A1 > I=0, TI=1, TOP=0, CAR=1 (Aciklama: I degiskenini cift sayilar olarak, TI degiskenini ise tek sayilar olarak atadik. TOP degerini 0 verdik cunku 0 toplamada etkisiz eleman ve CAR degerini carpma isleminde etkisiz eleman 1 oldugu icin 1 verdik. 1 ve 100 arasindaki sayilari istiyor ama 0'in toplamada bir degeri olmadigi icin onu I olarak kullanabiliriz. Onun yerine 2 kullansaydik yapacagimiz degisiklik A5'te "TI=99" yerine "I=100" yazmak ve A7'de "TOP=TOP+I" yerine "CAR=CARxTI" yazmak olacakti.)
A2 > I=I+2, TI=TI+2 (Aciklama: Burada sayilar cift ve tek olarak ayrilacagi icin ikiser ikiser artirdik.)
A3 > CAR=CARxTI (Aciklama: Burada CAR degiskenini TI ile carparak, CAR'in yeni degerini belirledik.)
A4 > TOP=TOP+I
A5 > Eger TI=99 ise A7'ye git (Aciklama: TI=99 oldugunda I=98 olacak ama biz 100u de dahil etmek istiyoruz. Direk 100 ekleyebilir ya da programa bir sonraki I degeri ile toplamasini soyleyebiliriz. A7 adimina gittigimizde, I'yi 100 degerine cikarip toplama ekliyoruz ve boylece tum islem gerceklesmis oluyor.)
A6 > A2'ye git (Aciklama: TI=99 olana kadar donguyu tekrarlayarak islemlerin tekrar tekrar yapilmasini sagliyoruz.)
A7 > I=I+2, TOP=TOP+I
A8 > TOP, CAR Yazdir
A9 > Dur

Akis Semasi

Girilen 3 tam sayinin en buyugunu bulduran programin algoritmasini yazalim:
A0 > Basla
A1 > A, B, C sayilarini gir.
A2 > En buyuk sayi (EBS)=A olsun. (Aciklama: Sayilardan birinin en buyuk sayi oldugunu varsayip, o sayiyi digerleriyle kiyasliyoruz, boylece aslinda hangisinin gercekte en buyuk oldugunu bulacagiz.)
A3 > Eger EBS< B ise EBS=B (Aciklama: EBS olan A'yi B ile kiyasliyoruz. Eger B daha buyukse yeni EBSmiz B olur.)
A4 > Eger EBS< C ise EBS=C (Aciklama: EBS'miz A olarak kaldiysa onu C ile kiyaslariz. Eger B EBS olduysa onu C ile kiyaslariz ve boylece en buyuk sayiyi buluruz.)
A5 > EBS yazdir.
A6 > Dur

Akis Semasi

3 haneli bir tamsayinin birler, onlar ve yuzler basamagini bulan algoritmayi yazalim:
A0 > Basla
A1 > Bir sayi gir, ABC (Aciklama: ABC uc haneli sayimizi temsil etsin.)
A2 > A=TAM (ABC/100) (Aciklama: Burda ABC'yi 100e bolum tam kismini alirsak bu da bize sayinin 100ler basamagi olan A'yi verir.)
A3 > D=ABC-Ax100, B=TAM(D/10) (Aciklama: D'ye BC der ve bu sayiyi da 10'a bolup tam kismini alirsak elimizde B kalir.)
A4 > C=ABC-[Ax100+Bx10] (Aciklama: Burda da Ax100 ve Bx10'u ABC'den cikararak C'yi elde ederiz.)
A5 > A, B, C sayilarini yazdir.
A6 > Dur

Akis Semasi

1 ile 100 arasinda 2 katinin 1 fazlasi 5 ile tam olarak bolunebilen kac tane tamsayi oldugunu bulan bir algoritma yazalim:
A0 > Basla
A1 > A=1, S=0 (Aciklama: A 1'den 100'e kadar deneyecegimiz sayilari, S ise 2 katinin 1 fazlasi 5'e tam olarak bolunen tamsayi adedini. Yani 1'den 100'e kadar sayarken 2 katinin 1 fazlasi 5'e tam olarak bolunen bir tamsayiyi her bulusumuzda S'yi 1 artiralim.)
A2 > B=2xA+1 (Aciklama: Bu adimda 1'den 100'e kadar olan her sayinin 2 katinin 1 fazlasini alalim.)
A3 > C=TAM (B/5) (Aciklama: Bu adimda da bi onceki adimda hesapladigimiz B degiskenini 5'e bolerek tam kismini alalim. Sonraki adimda bunu kullanarak bu sayinin 5'e tam olarak bolunup bolunmedigini test edecegiz.)
A4 > Eger B-Cx5=0 ise S=S+1 (Aciklama: Burada da B'nin 5'e bolumunun tam kismi olan C'yi 5 ile carpiyoruz ve B'den cikariyoruz, eger sonuc 0'a esitse S'ye 1 ekliyoruz.)
A5 > A=A+1 (Aciklama: A'ya bir ekleyerek adim adim 100'e ulasmasini sagliyoruz.)
A6 > Eger A>100 ise A8'e git. (Aciklama: A 100'u gectiginde onu daha otedeki bir adima gonderiyoruz ve orda da sonucu yazdiriyoruz.)
A7 > A3'e git. (Aciklama: Eger ustteki sart saglanmadiysa tekrar A'yi artirarak islemleri tekrarliyoruz.)
A8 > S'yi yaz. (Aciklama: Burada da her dogru cevapta 1 ekledigimiz S degiskenimizi yani sonucumuzu yazdiriyoruz.)
A9 > Dur

Akis Semasi

8 ile 98 arasindaki 7′ye tam bolunebilen tamsayilarin aritmetik ortalamasini veren bir algoritma yazalim:
A0 > Basla
A1 > I=8, S=0, TOP=0, ORT=0 (Aciklama: Burda I 8'den 98'e kadar gidecek olan sayimiz olacak. S ise 7'ye tam bolunme sartini saglayan kac tane sayi oldugunu hesaplayacak. Sonuc bizden TOP/S=ORT istediginden once TOP ve S degiskenimizi bularak birbirine oranlayacak ve boylece ORTu(ortalamayi) hesaplayacagiz.)
A2 > A=TAM (I/7) (Aciklama: Gecen ornekte de yaptigimiz gibi degiskenimizi sayimiza bolup tam kismini alarak yeni bir degiskene atiyoruz, boylece saglamasini yaparak I degiskenimizin 7'ye tam olarak bolunup bolunmedigini bulacagiz.)
A3 > Eger I=Ax7 ise TOP=TOP+I, S=S+1 (Aciklama: Eger gecen adimin aciklamasinda yazdigim gibi, I 7'ye tam bolunuyorsa onu TOPa(toplamimiza) ekliyoruz. Ayni zamanda da 7'ye bolunen bir sayimiz oldugu icin S degiskenimize de bir ekliyoruz.)
A4 > I=I+1 (Bu adimda ise I'yi bir artirarak sayimizin 98'e kadar ulasmasini sagliyoruz.)
A5 > Eger I>98 ise ORT=TOP/S, A7'e git (Aciklama: Eger I degiskenimiz 98'i geciyorsa basa donmeyip artik ortalama alma islemimizi yapiyor ve sonra yazdirmak icin ileriki bir adima gonderiyoruz.)
A6 > A3'e git
A8 > ORT degerini yazdir
A9 > Dur

Akis Semasi

NOT: Bu yazida acikladigim orneklerdeki adimlar orneklerin daha kolay anlasilmasi icin genisletilerek yazilmistir. Normalde cok kisa olarak anlatilabilecek seyleri bir kac adimda anlatarak yeni baslayanlarin da anlamasina yardimci olmaya calistim. Umarim yardimci olabilmisimdir.

Bookmark and Share

3 Yorum

  1. Hakan ESER wrote
    at 12:08 am - 7th Mart 2009 Kalıcı Bağlantı

    verdiğin bilgiler için çok teşekkürler :) )

  2. Pınar ULUSOY wrote
    at 7:23 pm - 9th Mart 2009 Kalıcı Bağlantı

    güzel hazırlamışsın ellerine sağlık devamını bekliyoruz =)

  3. sedat wrote
    at 10:12 pm - 15th Aralık 2009 Kalıcı Bağlantı

    eyvallah

Yorum Yap

E-posta adresiniz paylaşılmayacaktır. Gerekli yerler işaretlenmiştir *