<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mustafa Türksavaş &#187; algoritma</title>
	<atom:link href="http://www.mustafaturksavas.com/tr/etiket/algoritma/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mustafaturksavas.com/tr</link>
	<description>Mustafa Türksavaş'ın Blogu</description>
	<lastBuildDate>Thu, 03 Dec 2009 22:20:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Bir Kac Basit Algoritma ve Akis Semasi Ornegi</title>
		<link>http://www.mustafaturksavas.com/tr/bir-kac-basit-algoritma-ve-akis-semasi-ornegi.html</link>
		<comments>http://www.mustafaturksavas.com/tr/bir-kac-basit-algoritma-ve-akis-semasi-ornegi.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 23:03:03 +0000</pubDate>
		<dc:creator>Mustafa Türksavaş</dc:creator>
				<category><![CDATA[Teknoloji]]></category>
		<category><![CDATA[algoritma]]></category>
		<category><![CDATA[programlama]]></category>

		<guid isPermaLink="false">http://www.mustafaturksavas.com/tr/?p=25</guid>
		<description><![CDATA[Ilk olarak iki sayiyi birbiriyle toplamak icin olan basit bir algoritma ile baslayalim: A0 &#62; Basla A1 &#62; 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 &#62; TOPLAM=A+B (Aciklama: Burada da degiskenlerimizi toplayip sonucu [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Ilk olarak iki sayiyi birbiriyle toplamak icin olan basit bir algoritma ile baslayalim:</strong><br />
<code>A0 &gt; Basla<br />
A1 &gt; Iki sayi gir (A,B) <em>(Aciklama: Burada girdigimiz iki sayiyi A ve B olmak uzere 2 degisken olarak atiyoruz. Boylece daha sonra bu degiskenleri birbiriyle toplayarak sonucu elde edebiliriz.)</em> A2 &gt; TOPLAM=A+B <em>(Aciklama: Burada da degiskenlerimizi toplayip sonucu elde ediyoruz.)</em><br />
A3 &gt; TOP yazdir <em>(Aciklama: Bu adimda da toplami ekrana yazdiriyoruz.)</em><br />
A4 &gt; Dur</code><br />
<strong><a href="http://img11.imageshack.us/img11/1989/sema1.png" target="_blank">Akis Semasi</a></strong><br />
<span id="more-25"></span></p>
<p><strong>Simdi de 1&#8242;den 100&#8242;e kadar olan sayilarin algoritmasini yazalim:</strong><br />
Burada sayilari 1&#8242;den 100&#8242;e kadar sayan bir degisken ve sayilan bu sayilari tek tek toplamasi icin ikinci bir degisken belirlememiz gerekecek.<br />
<code>A0 &gt; Basla<br />
A1 &gt; I=1, TOP=0 <em>(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.)</em><br />
A2 &gt; TOP=TOP+I, I=100 ise A5'e git. <em>(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.)</em><br />
A3 &gt; I=I+1 <em>(Aciklama: Onceki adimda bahsettigimiz gibi I degiskenimizi artiriyoruz.)</em><br />
A4 &gt; A2 adimina don. <em>(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.)</em><br />
A5 &gt; TOP yazdir<br />
A6 &gt; Dur</code><br />
<strong><a href="http://img231.imageshack.us/img231/8329/sema2.png" target="_blank">Akis Semasi</a></strong></p>
<p><strong>1 ile 100 arasinda olan cift sayilarin toplami, cift sayilarin carpimini veren programin algoritmasini yazalim:</strong><br />
<code>A0 &gt; Basla<br />
A1 &gt; I=0, TI=1, TOP=0, CAR=1 <em>(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.)</em><br />
A2 &gt; I=I+2, TI=TI+2 <em>(Aciklama: Burada sayilar cift ve tek olarak ayrilacagi icin ikiser ikiser artirdik.)</em><br />
A3 &gt; CAR=CARxTI <em>(Aciklama: Burada CAR degiskenini TI ile carparak, CAR'in yeni degerini belirledik.)</em><br />
A4 &gt; TOP=TOP+I<br />
A5 &gt; Eger TI=99 ise A7'ye git <em>(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.)</em><br />
A6 &gt; A2'ye git <em>(Aciklama: TI=99 olana kadar donguyu tekrarlayarak islemlerin tekrar tekrar yapilmasini sagliyoruz.)</em><br />
A7 &gt; I=I+2, TOP=TOP+I<br />
A8 &gt; TOP, CAR Yazdir<br />
A9 &gt; Dur</code><br />
<strong><a href="http://img17.imageshack.us/img17/5143/sema3.png" target="_blank">Akis Semasi</a></strong></p>
<p><strong>Girilen 3 tam sayinin en buyugunu bulduran programin algoritmasini yazalim:</strong><br />
<code>A0 &gt; Basla<br />
A1 &gt; A, B, C sayilarini gir.<br />
A2 &gt; En buyuk sayi (EBS)=A olsun. <em>(Aciklama: Sayilardan birinin en buyuk sayi oldugunu varsayip, o sayiyi digerleriyle kiyasliyoruz, boylece aslinda hangisinin gercekte en buyuk oldugunu bulacagiz.)</em><br />
A3 &gt; Eger EBS< B ise EBS=B <em>(Aciklama: EBS olan A'yi B ile kiyasliyoruz. Eger B daha buyukse yeni EBSmiz B olur.)</em><br />
A4 &gt; Eger EBS< C ise EBS=C <em>(Aciklama: EBS'miz A olarak kaldiysa onu C ile kiyaslariz. Eger B EBS olduysa onu C ile kiyaslariz ve boylece en buyuk sayiyi buluruz.)</em><br />
A5 &gt; EBS yazdir.<br />
A6 &gt; Dur</code><br />
<strong><a href="http://img11.imageshack.us/img11/7439/sema4.png" target="_blank">Akis Semasi</a></strong></p>
<p><strong>3 haneli bir tamsayinin birler, onlar ve yuzler basamagini bulan algoritmayi yazalim:</strong><br />
<code>A0 &gt; Basla<br />
A1 &gt; Bir sayi gir, ABC <em>(Aciklama: ABC uc haneli sayimizi temsil etsin.)</em><br />
A2 &gt; A=TAM (ABC/100) <em>(Aciklama: Burda ABC'yi 100e bolum tam kismini alirsak bu da bize sayinin 100ler basamagi olan A'yi verir.)</em><br />
A3 &gt; D=ABC-Ax100, B=TAM(D/10) <em>(Aciklama: D'ye BC der ve bu sayiyi da 10'a bolup tam kismini alirsak elimizde B kalir.)</em><br />
A4 &gt; C=ABC-[Ax100+Bx10] <em>(Aciklama: Burda da Ax100 ve Bx10'u ABC'den cikararak C'yi elde ederiz.)</em><br />
A5 &gt; A, B, C sayilarini yazdir.<br />
A6 &gt; Dur</code><br />
<strong><a href="http://img231.imageshack.us/img231/227/sema5.png" target="_blank">Akis Semasi</a></strong></p>
<p><strong>1 ile 100 arasinda 2 katinin 1 fazlasi 5 ile tam olarak bolunebilen kac tane tamsayi oldugunu bulan bir algoritma yazalim:</strong><br />
<code>A0 > Basla<br />
A1 > A=1, S=0 <em>(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.)</em><br />
A2 > B=2xA+1 <em>(Aciklama: Bu adimda 1'den 100'e kadar olan her sayinin 2 katinin 1 fazlasini alalim.)</em><br />
A3 > C=TAM (B/5) <em>(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.)</em><br />
A4 > Eger B-Cx5=0 ise S=S+1 <em>(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.)</em><br />
A5 > A=A+1 <em>(Aciklama: A'ya bir ekleyerek adim adim 100'e ulasmasini sagliyoruz.)</em><br />
A6 > Eger A>100 ise A8'e git. <em>(Aciklama: A 100'u gectiginde onu daha otedeki bir adima gonderiyoruz ve orda da sonucu yazdiriyoruz.)</em><br />
A7 > A3'e git. <em>(Aciklama: Eger ustteki sart saglanmadiysa tekrar A'yi artirarak islemleri tekrarliyoruz.)</em><br />
A8 > S'yi yaz. <em>(Aciklama: Burada da her dogru cevapta 1 ekledigimiz S degiskenimizi yani sonucumuzu yazdiriyoruz.)</em><br />
A9 > Dur</code><br />
<strong><a href="http://img231.imageshack.us/img231/862/sema6.png" target="_blank">Akis Semasi</a></strong></p>
<p><strong>8 ile 98 arasindaki 7&#8242;ye tam bolunebilen tamsayilarin aritmetik ortalamasini veren bir algoritma yazalim:</strong><br />
<code>A0 > Basla<br />
A1 > I=8, S=0, TOP=0, ORT=0 <em>(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.)</em><br />
A2 > A=TAM (I/7) <em>(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.)</em><br />
A3 > Eger I=Ax7 ise TOP=TOP+I, S=S+1 <em>(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.)</em><br />
A4 > I=I+1 <em>(Bu adimda ise I'yi bir artirarak sayimizin 98'e kadar ulasmasini sagliyoruz.)</em><br />
A5 > Eger I>98 ise ORT=TOP/S, A7'e git <em>(Aciklama: Eger I degiskenimiz 98'i geciyorsa basa donmeyip artik ortalama alma islemimizi yapiyor ve sonra yazdirmak icin ileriki bir adima gonderiyoruz.)</em><br />
A6 > A3'e git<br />
A8 > ORT degerini yazdir<br />
A9 > Dur</code><br />
<strong><a href="http://img408.imageshack.us/img408/2862/sema7.png" target="_blank">Akis Semasi</a></strong></p>
<p><strong>NOT</strong>: <em>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.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mustafaturksavas.com/tr/bir-kac-basit-algoritma-ve-akis-semasi-ornegi.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
