<?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>Bilgisayar Kavramları &#187; Sınavlar</title>
	<atom:link href="http://www.bilgisayarkavramlari.com/category/vizefinalsinavlar/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bilgisayarkavramlari.com</link>
	<description>www.bilgisayarkavramlari.com</description>
	<lastBuildDate>Sun, 29 Jan 2012 21:38:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nesne Yönelimli Programlama dersi Final Sınavı ve çözümleri</title>
		<link>http://www.bilgisayarkavramlari.com/2011/06/14/nesne-yonelimli-programlama-dersi-final-sinavi-ve-cozumleri/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/06/14/nesne-yonelimli-programlama-dersi-final-sinavi-ve-cozumleri/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 00:42:56 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Sınavlar]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/06/14/nesne-yonelimli-programlama-dersi-final-sinavi-ve-cozumleri/</guid>
		<description><![CDATA[Soru 0) Ekrana adınızı, soy adınızı ve numaranızı bastıran tam bir JAVA kodu yazınız, kodunuzun konsoldan derlenip çalıştırılması komutlarını yazınız. (10 puan) &#160; &#160; Soru 1) Aşağıdaki sorulara birer cümle ile cevap veriniz: (10 puan) Serileme (Serialisation) nedir? Bir nesnenin dizgi (String) haline dönüşmesi ve dosya, ağ vb. gibi ortamlar üzerinde dizgi olarak saklanması / [...]]]></description>
			<content:encoded><![CDATA[<div>
<p style="margin-bottom: 0cm; line-height: 100%;">Soru 0) Ekrana adınızı, soy adınızı ve numaranızı bastıran tam bir JAVA kodu yazınız, kodunuzun konsoldan derlenip çalıştırılması komutlarını yazınız. (10 puan)</p>
<p style="margin-bottom: 0cm; line-height: 100%;">&nbsp;</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308012281_0__.jpg" border="0" alt="" width="605" height="113" /> <img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308012281_1__.jpg" border="0" alt="" width="320" height="69" /></p>
<p style="margin-bottom: 0cm; line-height: 100%;">&nbsp;</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><a id="_GoBack" name="_GoBack"></a></p>
<p style="margin-bottom: 0cm; line-height: 100%;">Soru 1) Aşağıdaki sorulara birer cümle ile cevap veriniz: (10 puan)</p>
<ol type="a">
<li>
<p style="margin-bottom: 0cm; line-height: 100%;">Serileme (Serialisation) nedir?</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Bir nesnenin dizgi (String) haline dönüşmesi ve dosya, ağ vb. gibi ortamlar üzerinde dizgi olarak saklanması / yollanmasıdır.</span></p>
</li>
<li>
<p style="margin-bottom: 0cm; line-height: 100%;">JAVA’da neden çok işlemli programlama (multi processed programming) bulunmaz?</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">JAVA, platform bağımsız bir geliştirme ortamıdır, dolayısıyla JVM isimli sanal bir makine üzerinde çalışır ve bütün JAVA uygulamalarının bu sanal makine içerisinde kalması beklenir. Dolayısıyla yeni bir işlem (process) üretilmesi halinde JVM dışına çıkılacağı için, çoklu görevlerin (multi tasking), lifler (threads) vasıtasıyla çözülmesi mümkündür, ancak çoklu işlem (multiprocess) JAVA dilinde desteklenmez.</span></p>
</li>
<li>
<p style="margin-bottom: 0cm; line-height: 100%;">JAVA’da çoklu miras (multiple inheritance) nasıl yapılır?</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Arayüzler kullanılarak (interfaces) yapılabilir (örneğin bu sınavdaki 2. soruda hem extends Thread hem de implements Runnable örneğinde olduğu gibi)</span></p>
</li>
<li>
<p style="margin-bottom: 0cm; line-height: 100%;">Delegasyon (Delegation) ilişkisi nedir?</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Bir sınıfın, diğer bir sınıfa kılıf olması ve yapılan işlemlere aracılık etmesine verilen isimdir. Örneğin kişisel bir muayenehanede yapılan işlemler aslında doktorun yaptığı işlemlerdir.</span></p>
</li>
<li>
<p style="margin-bottom: 0cm; line-height: 100%;">Oluşum (composition), birliktelik (Association) ve münasebet (aggregation) ilişkileri arasında ne fark vardır?</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Oluşum, birliktelik ve münasebetin genel ismidir. Birliktelik, iki nesneden birinin diğeri içerisinde yaşamasına, münasebet ise bir nesnenin diğerine atıfta bulunarak içermesine verilen isimdir.</span></p>
</li>
</ol>
<p style="margin-bottom: 0cm; line-height: 100%;">Soru 2) Programcı Ali, ekrana sırasıyla A ve B yazdırma için aşağıdaki kodu yazıyor. (örneğin ekranda “ABABABAB” görmek istiyor). Aşağıdaki kodda, lifler (thread) açısından oluşan problemleri/eksikleri tanımlayınız, ve kodu çalışır hale getiriniz. (25 puan)</p>
<table style="width: 614px;" cellspacing="0" cellpadding="7">
<colgroup>
<col width="293"></col>
<col width="293"></col>
</colgroup>
<tbody>
<tr valign="top">
<td style="border: none; padding: 0cm;" width="293">
<p style="margin-bottom: 0cm;">class A extends Thread{</p>
<p style="margin-bottom: 0cm;">int x;</p>
<p style="margin-bottom: 0cm;">public A(int x){</p>
<p style="margin-bottom: 0cm;">this.x = x;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public void run(){</p>
<p style="margin-bottom: 0cm;">while(true){</p>
<p style="margin-bottom: 0cm;">while(x==0){</p>
<p style="margin-bottom: 0cm;">Thread.sleep(100);</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">System.out.print(“A”);</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p>&nbsp;</td>
<td style="border: none; padding: 0cm;" width="293">
<p style="margin-bottom: 0cm;">class B implements Runnable{</p>
<p style="margin-bottom: 0cm;">int x;</p>
<p style="margin-bottom: 0cm;">public B(int x){</p>
<p style="margin-bottom: 0cm;">this.x = x;</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public void run(){</p>
<p style="margin-bottom: 0cm;">while(true){</p>
<p style="margin-bottom: 0cm;">while(x==0){</p>
<p style="margin-bottom: 0cm;">Thread.sleep(100);</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">System.out.print(“B”);</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">}</p>
<p style="margin-bottom: 0cm;">public class test{</p>
<p style="margin-bottom: 0cm;">public static void main(String args[]){</p>
<p style="margin-bottom: 0cm;">int x=1;</p>
<p style="margin-bottom: 0cm;">A a = new A(x);</p>
<p style="margin-bottom: 0cm;">B b = new B(x);</p>
<p style="margin-bottom: 0cm;">}</p>
<p>}</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Tam çözüm aşağıdaki şekildedir:</span></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Dikkat edilecek hususlar:</span></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">extends eden sınıf doğrudan start() edilebilirken implements eden sınıf öncelikle Thread&#8217;in yapıcı fonksiyonuna (constructor) parametre verilmeli ardından Thread start() edilmelidir.</span></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">İki thread arasında ortak bir değişken kullanılarak senkranizasyon yapılabilmesi için paylaşılmış bir değişkene (shared variable) ihtiyaç duyulur. Oysaki yazılan hatalı kodda (yukarda) her sınıf için yeniden bir değişken tanımlanmıştır. Bu durumda iki farklı değişken bulunacak ve birbiri ile ilgisi kalmayacaktır.</span></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Soruda istenilen senkranizasyon sonucunda ABABA şeklinde bir çalışma beklenmektedir. Oysaki soruda x değişkeni öncelikle 1 olarak atanmıştır. Bu değerin 0 olarak başlaması gerekir.</span></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Senkranizasyon için sınıflardan birisi 0 diğeri 1 durumunda çalışmalıdır. Hatalı kodda ikisi de aynı durumda beklemektedir. Bu durum ölümcül kilitlenmedir (deadlock).</span></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Senkranizasyon sonucunda liflerin (threads) tekrar tekrar çalışabilmesi için sırayı diğer life(thread) geçirmesi gerekir. Bu durumda 1 bekleyen lif, işi bittikten sonra 0, 0 bekleyen lif ise işi bittikten sonra 1 bekleyen lifi uyandırmalıdır.</span></p>
<pre>class A extends Thread{
	test x;
	public A(test x){
		this.x = x;
	}
	public void run(){
		while(true){
			while(x.x==1){
			  try{
			      Thread.sleep(100);
			    }catch(Exception e){}
			}
			System.out.print("A");
			x.x=1;
		}
	}
}
class B implements Runnable{
	test x;
	public B(test x){
		this.x = x;
	}
	public void run(){
		while(true){
			while(x.x==0){
			    try{
				Thread.sleep(100);
			    }catch(Exception e){}
			}
			System.out.print("B");
			x.x=0;
		}
	}
}
public class test{
	public int x=0;
	public static void main(String args[]){

		test p = new test();
		A a = new A(p);
		B b = new B(p);
		Thread t = new Thread (b);
		a.start();
		t.start();
	}
}</pre>
<p>Soru 3) (35 puan)</p>
<ol type="a">
<li>
<p style="margin-bottom: 0cm; line-height: 100%;">Bir metin dosyasını açıp içinden veri okuyunuz.</p>
</li>
<li>
<p style="margin-bottom: 0cm; line-height: 100%;">Okuduğunuz verinin içerisinde email adresi olup olmadığına bakınız (emailler için “@” işaretinden önce istenilen boyutta harf ve sayı karışımı “.” işaretiden önce yine istenilen boyutta harf ve sayı karışımı, “.” İşaretinden sonra ise com, edu, org veya net gelebileceğini kabul edebilirsiniz), şayet bir email’e rastlarsanız kendi yazdığınız bir istisna fırlatınız (throw exception).</p>
</li>
<li>
<p style="margin-bottom: 0cm; line-height: 100%;">Bir önceki şıkta istisna fırlatılması halinde bu email adresini, “Silindi” dizgisi(string) ile değiştiriniz.</p>
</li>
</ol>
<p style="margin-bottom: 0cm; line-height: 100%;">&nbsp;</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308012281_2__.jpg" border="0" alt="" width="605" height="590" /></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Dikkat edilecek iki önemli husus, StringTokenizer ve RegularExpression kullanımıdır. Ayrıca istisna yakalama için farklı modeller kullanılabilir, yukarıdaki kodda en basit yol seçilmiştir.</span></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><span style="color: #ff0000;">Örnek bir dosya için çıktı aşağıdaki şekildedir:</span></p>
<p style="margin-bottom: 0cm; line-height: 100%;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308012281_3__.jpg" border="0" alt="" width="605" height="188" /></p>
<p style="margin-bottom: 0cm; line-height: 100%;">&nbsp;</p>
<p style="margin-bottom: 0cm; line-height: 100%;">Soru 4) Swing kütüphanesi kullanarak 500&#215;500 boyutunda bir ekran oluşturup tam ortasına isminizi yazdırınız. İsminizin etrafına, isminizi çerçeveleyen bir dikdörtgen çizdiriniz. (20 puan)</p>
<p style="margin-bottom: 0cm; line-height: 100%;">&nbsp;</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308012281_4__.jpg" border="0" alt="" width="550" height="422" /></p>
<p style="margin-bottom: 0cm; line-height: 100%;">Yukarıdaki kodun çıktısı aşağıdaki şekildedir:</p>
<p style="margin-bottom: 0cm; line-height: 100%;">&nbsp;</p>
<p style="margin-bottom: 0cm; line-height: 100%;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308012281_5__.jpg" border="0" alt="" width="503" height="500" /></p>
<p>&nbsp;</p>
</div>

<p class="sayac_bilgi">1,393 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/06/14/nesne-yonelimli-programlama-dersi-final-sinavi-ve-cozumleri/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>İstanbul Ünv. Nesne Yönelik Programlama Vize Çözümleri</title>
		<link>http://www.bilgisayarkavramlari.com/2011/04/29/istanbul-unv-nesne-yonelik-programlama-vize-cozumleri/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/04/29/istanbul-unv-nesne-yonelik-programlama-vize-cozumleri/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 01:01:45 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Kod Örnekleri]]></category>
		<category><![CDATA[Sınavlar]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/04/29/istanbul-unv-nesne-yonelik-programlama-vize-cozumleri/</guid>
		<description><![CDATA[Yrd. Doç. Dr. Şadi Evren ŞEKER Bir masa lambasının 4 farklı durumu bulunabilmektedir. Kapalı, az ışık, orta ışık ve çok ışık seviyelerinde yanabilen bu lambayı nesne yönelimli olarak programlayınız. Herhangi bir insanın bu lambanın durumunu değiştirebilmesi ve lambanın mevcut durumunu görebilmesini sağlayınız. (JAVA dilinde sadece gerekli sınıfları yazınız) (10 puan) Masa lambasında durumu tutan bir [...]]]></description>
			<content:encoded><![CDATA[<p>Yrd. Doç. Dr. Şadi Evren ŞEKER
</p>
<ol>
<li>
<div>Bir masa lambasının 4 farklı durumu bulunabilmektedir. Kapalı, az ışık, orta ışık ve çok ışık seviyelerinde yanabilen bu lambayı nesne yönelimli olarak programlayınız. Herhangi bir insanın bu lambanın durumunu değiştirebilmesi ve lambanın mevcut durumunu görebilmesini sağlayınız. (JAVA dilinde sadece gerekli sınıfları yazınız) (10 puan)
</div>
<p><span style="color:red">Masa lambasında durumu tutan bir değişkene ve bu durumu değiştiren bir metoda ihtiyaç duyulmaktadır. 4 farklı durum olduğu için en uygun değişken int tipidir.<br />
</span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0101_stanbulnvN13.png" alt=""/>
			</p>
<p><span style="color:red">Yukarıdaki kod doğru olmakla birlikte, insan sınıfında yapıcı fonksiyon içerisinde masa lambası tanımlanmaması kabul edilebilir (insanın masa lambası olabilir ama her insanın masa lambası olmak zorunda değildir). Veya durumu döndüren fonksiyon (durumuBildir) değer döndürmek yerine ekrana durumu basabilir, veya String tipinde kapalı, az, orta ışık, çok ışık şeklinde değerler döndürebilir. Benzer şekilde yeniDurum fonksiyonu paramatre olarak int yerine String tipinde değer alabilir. Bu açıklamada olduğu üzere makul kabul edilebilecek değişken tipinde ve fonksiyon yapısında değişiklik olabilir.<br />
</span></p>
<p>
 </p>
</li>
<li>
<div>Bir bankanın ATM cihazına gelen müşteriler, giriş (şifre yazarak), para yatırma, para çekme ve bakiye sorgulama işlemlerini yapabilmektedir. Bu sistemi nesne yönelimli olarak modelleyiniz, ihtiyaç duyuluyorsa ilave sınıfları da tanımlayınız. Her sınıfın metotlarını ve özelliklerini belirtiniz ve modelinizi JAVA dilinde kodlayınız. (30 puan)
</div>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0101_stanbulnvN22.png" alt=""/>
			</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0101_stanbulnvN32.png" alt=""/>    
</p>
</li>
<li>
<div>Aşağıda verilen sınıfların özellik ve metotlarının isimlerini yazınız. Bu sınıflardan hangilerinin arasında ilişki olduğunu ve bu ilişkinin çeşidini yazınız.
</div>
<p>{çember, daire, nokta, şekil, doğru, kare, yamuk, piramit, küp, silindir }
</p>
<p>Yukarıdaki tanımınız ışığında, bir şekil vektörünü parametre olarak alıp bu vektördeki elemanların alanlarını hesaplayan fonksiyonu JAVA dilinde kodlayınız. (Bu sorudaki vektör kelimesi, java.util.Vector sınıfını ifade etmektedir, sorudaki hesaplama fonksiyonu dışında kod yazmanız gerekmemektedir ancak isterseniz sınıfların metotlarını ve özelliklerini kod yazarak da gösterebilirsiniz. Sınıflar arasındaki ilişkilerin isimlerini her durumda yazınız.)  (50 puan)
</p>
<p>
 </p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0101_stanbulnvN42.png" alt=""/>
			</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0101_stanbulnvN51.png" alt=""/>
			</p>
<p>
 </p>
<ol>
<li>
<div>Aşağıdaki kod parçasının ekran çıktısını yazınız (10 Puan):
</div>
<p>        int x = 6; // 110
</p>
<p>        int y = 3; // 011
</p>
<p>                 //  101 = ^
</p>
<p>                //   010  = 2
</p>
<p>                      //    111  = |
</p>
<p>        System.out.println(x^y|2);
</p>
<p>        if(++y == 3&amp;&amp; x&lt;6 )
</p>
<p>            System.out.println(y);
</p>
<p>        System.out.println(y);
</p>
<p>Not: Bu sorunun cevabı hem &#8220;Thinking in JAVA&#8221; kitabında hem de &#8220;JAVA Tutorial&#8221; içeriğinde bulunmaktadır.
</p>
<p><span style="color:red">7<br />
</span></p>
<p><span style="color:red">3<br />
</span></p>
<p><span style="color:red">Yukarıdaki ilk işlem x^y işlemidir ve ikilik tabanda XOR işlemi olarak çalışır. Bu durumad 6 = (110)<sub>2</sub> ve 3 = (011)<sub>2</sub> olarak çevrildikten sonra aralarında özel veya (xor) operatörü çalıştırıldığında, 101 sonucu bulunur. Ardından gelen tek boru (pipe) işlemi ise ikilik tabanda veya (or) işlemidir ve (101)<sub>2</sub> | (010)<sub>2</sub> şeklinde düşünülmelidir. Bu işlemin sağ tarafı 2 sayısının ikilik tabandaki karşılığıdır. Bu işlemin sonucu da (111)<sub>2</sub> olarak bulunur ki bu değer onluk tabanda 7 yapar.<br />
</span></p>
<p><span style="color:red">Ardından  gelen if satırında önce x değerinin 6&#8242;dan küçük olup olmadığı kontrol edilir. Bu kontrol doğru değildir (false) dolayısıyla if satırındaki ikinci kısım çalışmaz. Yani y++ == 3 satırı çalışmaz. Bunun sebebi JAVA dilindeki kısa devre (short circuit) uygulamasıdır. Ve işlemi ile birbirine bağlı olan if kontrollerinde sol tarafın false dönmesi halinde sonuç flase olacağı için sağ tarafa bakılmaz. Ayrıca bu if satırının altında olan if bloğu da sonuç false olduğu için çalışmaz ve ikinci println fonksiyonu ekrana basılmaz.<br />
</span></p>
<p><span style="color:red">Son satırdaki println fonksiyonu ise y&#8217;nin orijinal değeri olan 3&#8242;ü ekrana basar.<br />
</span></p>
<p>
 </p>
</li>
</ol>
<p><em>&#8220;Bilgisayarların, bilgisayar bilimindeki yeri, teleskopların, astronomi bilimindeki yerinden fazla değildir.&#8221; &#8212; Dijkstra<br />
</em></p>
</li>
</ol>

<p class="sayac_bilgi">974 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/04/29/istanbul-unv-nesne-yonelik-programlama-vize-cozumleri/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Veri Güvenliği 2 dersi vize çözümleri</title>
		<link>http://www.bilgisayarkavramlari.com/2011/03/17/veri-guvenligi-2-dersi-vize-cozumleri/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/03/17/veri-guvenligi-2-dersi-vize-cozumleri/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 12:18:27 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Sınavlar]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/03/17/veri-guvenligi-2-dersi-vize-cozumleri/</guid>
		<description><![CDATA[Soru 0) Ayrık logaritma çözme algoritmalarının mod n için kaçar deneme yapacağını yaklaşık olarak hesaplayınız ve algoritmaları buradaki başarısına göre sıralayınız. (30 puan) &#160; Kaba kuvvet ile ayrık logaritma alma yöntemi mod n için en kötü n deneme gerektirir. Bebek ve dev adımlar algoritması Dev adım = d olmak üzere en kötü ihtimalle( n/ d [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Arial;">Soru 0<strong>) Ayrık logaritma çözme algoritmalarının mod n için kaçar deneme yapacağını yaklaşık olarak hesaplayınız ve algoritmaları buradaki başarısına göre sıralayınız. (30 puan)<br />
</strong></span></p>
<p>&nbsp;</p>
<ul>
<li><span style="color: red; font-family: Arial;"><strong>Kaba kuvvet ile ayrık logaritma alma yöntemi mod n için en kötü n deneme gerektirir.<br />
</strong></span></li>
<li><span style="color: red; font-family: Arial;"><strong>Bebek ve dev adımlar algoritması Dev adım = d olmak üzere en kötü ihtimalle( n/ d + d -1) adım gerektirir.<br />
</strong></span></li>
<li><span style="color: red; font-family: Arial;"><strong>Shank&#8217;s algoritması  için i ve j değerlerine bağlı olarak n/i ve n/j deneme yapılır, toplamda n/i + n/j denemedir.<br />
</strong></span></li>
<li><span style="color: red; font-family: Arial;"><strong>Pohlig Hellman algoritmasında n-1 çarpanlarına ayrılarak her çarpan için denklem çözülür. N-1 sayısının çarpanlarının toplamı m olmak üzere toplamda m deneme yeterli olur.<br />
</strong></span></li>
<li><span style="color: red; font-family: Arial;"><strong>Index Calculus yönteminde n sayısının n-1 sayısının çarpanlarının toplamı m olmak üzere, bu çarpanlardan elde edilen en yakın sayı da k olmak üzere m + (n-k) deneme yapılır.<br />
</strong></span></li>
</ul>
<p><span style="color: red; font-family: Arial;"><strong>Yukarıdaki algoritmalar ışığında, en kötü algoritma tartışmasız olarak Kaba kuvvettir.<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Ardından şartlı olarak aşağıdaki sıralamalar yapılabilir.  Aşağıda örnek bir iki sıralama verilmiştir.<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>i.j &gt; m ise ve i+j &gt; n-k ise ve m &gt; d ise<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Shanks &gt; Index Calculus &gt;  Pohlig Hellman  &gt; bebek ve dev adımlar<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>i.j &gt; m ve n-k &gt; i + j ise ve d &gt; m ise<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>Bebek ve dev adımlar &gt; Index Calculus &gt; shanks &gt; pohlig hellman<br />
</strong></span></p>
<p>&nbsp;</p>
<p style="margin-left: 36pt;">&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Soru 1) Alice ile Bob arasındaki mesajlaşmaya saldıran Charlie, Pohlig Hellman algoritmasını kullanıyor ancak beklenenden daha hızlı mesajı çözüyor. Charlie, algoritmanın hızlanması için bebek adımları ve dev adımlarını (baby step, giant step) kullandığını söylüyor. Sizce hangi adımda nasıl bir iyileştirme yapmış olabilir? (25 puan)<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red;"><strong><span style="font-family: Arial;">Pohlig hellman algoritmasının çarpanları hesaplanırken (Algoritmadaki C terimleri), o anda kullanılan çarpanın tabanında bütün logaritmaların bulunması gerekir. Örneğin mod 5 için 5 farklı ayrık logaritma hesaplanmalıdır ve bu logaritmalar <img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/031711_1218_VeriGvenlii1.png" alt="" /></span> şekline yazılan formülden elede edilir. Bu logaritmaların hesaplanması sırasına bebek ve dev adımlar kullanılabilir. <span style="font-family: Arial;"><br />
</span></strong></span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Soru 2) 2 tabanında 6 değerini </strong></span><br />
<strong>Z<sub>11</sub>, için baby step giant step kullanarak çözünüz. Diğer bir deyişle x : 2<sup>x</sup> = 6 mod (11) sistemi için x değerini bulunuz<span style="font-family: Arial;">. (20 puan)<br />
</span></strong></p>
<p><span style="color: red; font-family: Arial;"><strong>Dev adım olarak 4 alalım:<br />
</strong></span></p>
<p>&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 111px;"></col>
<col style="width: 57px;"></col>
<col style="width: 66px;"></col>
<col style="width: 57px;"></col>
</colgroup>
<tbody>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>Dev adımlar</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>0</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>1</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>2</strong></span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>2<sup>4i</sup> mod 11</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>1</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>5</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>256</strong></span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>2<sup>-4i</sup> mod 11</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>1</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>9</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>4</strong></span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>6. 2<sup>-4i</sup> mod 11</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>6</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>10</strong></span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;"><span style="color: red; font-family: Arial;"><strong>2</strong></span></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>Yukarıdaki değerlerden 6. 2<sup>-8</sup> mod 11 = 2<sup>1</sup> mod 11 değeri olarak bulunur.<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Bu durumda log <sub>2 </sub>6 = log <sub>2</sub> 2<sup>1</sup> 2<sup>8</sup> mod 11 bulunur ki buradan denklem çözülmüş olur ve log <sub>2 </sub>6 = 9 bulunur.<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Soru 3) Diffie Hellman Anahtar değişim algoritmasını kullanarak 3 farklı kişi aynı anahtarı paylaşımını sağladığınızı düşünün. Ayrık logaritma çözen herhangi bir algoritma ile bu değişime nasıl saldırırsınız. Anahtar değişim modelinizin en zayıf noktası neresidir? (25 puan)<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Kullanılabilir. Ortak bir mod kabul ederek herkes kendi gizli anahtarını diğer iki kişiye ulaştırırsa, üç kişide de aynı anahtar olmuş olur.<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Örneğin<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>A -&gt; 3<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>B -&gt; 7<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>C-&gt; 11<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Sayılarını gizli anahtar olarak alıyorlar. Açık anahtar olarak 5 ve 29 kararlaştırılmış olsun.  tarafların oluşturduğu sayıları inceleyelim:<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>A-&gt; 5 <sup>3</sup> mod 29 = 9<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>B-&gt; 5 <sup>7</sup> mod 29 = 28<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>C-&gt; 5 <sup>11</sup> mod 29 = 13<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>Bu ilk hesaptan sonra, bir daire şeklinde, (yani örneğin A -&gt; B -&gt; C -&gt; A sırasıyla)<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>A&#8217;daki sonuç B&#8217;ye<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>B&#8217;deki sonuç C&#8217;ye<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>C&#8217;deki sonuç A&#8217;ya geçiriliyor ve tekrar herkes kendi gizli sayıları ile üst hesaplıyor.<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>A-&gt; 13 <sup>3</sup> mod 29  = 22<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>B-&gt; 9 <sup>7</sup> mod 29 = 28<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>C-&gt; 28 <sup>11</sup> mod 29 = 28<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>Son olarak bu döndürme işlemini tekrar yapıp anahtar değişimini hesaplamış oluyoruz:<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>A-&gt; 28 <sup>3</sup> mod 29 = 28<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>B-&gt; 22 <sup>7</sup> mode 29 = 28<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>C-&gt; 28 <sup>11</sup> mod 29 = 28<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>Görüldüğü üzere tarafların tamamında 28 sonucu bulunmuştur.<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>Yukarıdaki bu sayısal örneği aşağıdaki matematiksel durulmada göstermek mümkündür:<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>İlk hesaplamada :<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>A-&gt; p <sup>a</sup> mod g<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>B-&gt; p <sup>b</sup> mod g<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>C-&gt; p <sup>c</sup> mod g<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Değerlerini hesaplıyorlar (a,b ve c sırasıyla A, B ve C taraflarının gizli sayıları)<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Ardından bu sayılar sırayla komşulara iletiliyor:<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>A-&gt; p <sup>ca</sup> mod g<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>B-&gt; p <sup>ab</sup> mod g<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>C-&gt; p <sup>bc</sup> mod g<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Değerlerini hesaplıyorlar. Son olarak 2. Değiştirme ile birlikte tarafların hepsinde p abc mod g deperi bulunuyor.<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;"><strong>Bu değişim aşağıdaki üçgen ile de gösterilebilir:<br />
</strong></span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/031711_1218_VeriGvenlii2.png" alt="" /><span style="color: red; font-family: Arial;"><strong><br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Sırasıyla dönüşüm yapılmaktadır. Dolayısıyla her geçişten sonra taraflardaki değerler aşağıda gösterilmiştir:<br />
</strong></span></p>
<p>&nbsp;</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/031711_1218_VeriGvenlii3.png" alt="" /><span style="color: red; font-family: Arial;"><strong><br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;"><strong>Yukarıda, 3 geçişin her birisinde taraflarda olan sayı değeri gösterilmiştir.<br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red;">Saldırgan taraf, yukarıdaki modele, geçirilen değerlerden en az iki tanesini ele geçirerek ve en az iki adet ayrık logaritma çözerek erişebilir. Şayet tek bir değeri ele geçirip ayrık logaritmasını çözerse, tek tarafın anahtarını bulur. Bu bulunan değer ise diğer anahtarlar bilinmediği için bir işe yaramaz. Sadece diğer anahtarların bulunmasını kolaylaştırır.<br />
</span></p>

<p class="sayac_bilgi">190 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/03/17/veri-guvenligi-2-dersi-vize-cozumleri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Concepts Dersi 2. Vize çözümü</title>
		<link>http://www.bilgisayarkavramlari.com/2010/12/20/programming-concepts-dersi-2-vize-cozumu/</link>
		<comments>http://www.bilgisayarkavramlari.com/2010/12/20/programming-concepts-dersi-2-vize-cozumu/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 19:23:32 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Sınavlar]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2010/12/20/programming-concepts-dersi-2-vize-cozumu/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Vize soruları ve çözümleri aşağıda verilmiştir: Soru 1) Kullanıcıdan bir sayı okuyarak, ekrana, aşağıdaki şekilde, verilen boyutlarda bir kare matrisin bütün elemanları 0 ve sadece ortadaki elemanları 1 olan bir artı yazdırınız. (boyut çift sayı ise, artı iki sütun ve satırdan, tek sayı ise tek satır ve sütundan oluşabilir) Örneğin [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER
</p>
<p>Vize soruları ve çözümleri aşağıda verilmiştir:
</p>
<p><strong>Soru 1) Kullanıcıdan bir sayı okuyarak, ekrana, aşağıdaki şekilde, verilen boyutlarda bir kare matrisin bütün elemanları 0 ve sadece ortadaki elemanları 1 olan bir artı yazdırınız. (boyut çift sayı ise, artı iki sütun ve satırdan, tek sayı ise tek satır ve sütundan oluşabilir)<br />
</strong></p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:307px"/>
<col style="width:307px"/></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p><strong>Örneğin n=5 için<br />
</strong></p>
<p><strong>00100<br />
</strong></p>
<p><strong>00100<br />
</strong></p>
<p><strong>11111<br />
</strong></p>
<p><strong>00100<br />
</strong></p>
<p><strong>00100<br />
</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p><strong>n=6 için<br />
</strong></p>
<p><strong>001100<br />
</strong></p>
<p><strong>001100<br />
</strong></p>
<p><strong>111111<br />
</strong></p>
<p><strong>111111<br />
</strong></p>
<p><strong>001100<br />
</strong></p>
<p><strong>001100</strong></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>
 </p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/122010_1923_Programming11.png" alt=""/><strong><br />
		</strong></p>
<p><strong>Soru 2 ve 3 için Parametre olarak bir sayı alan, aldığı bu sayıdan küçük, en büyük asal sayıyı döndüren fonksiyonu yazınız.<br />
</strong></p>
<p><strong>Soru 2) Döngü kullanarak (iterative) olarak<br />
</strong></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/122010_1923_Programming21.png" alt=""/><strong><br />
		</strong></p>
<p><strong>Soru 3) Özyineli (recursive) olarak<br />
</strong></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/122010_1923_Programming31.png" alt=""/><strong><br />
		</strong></p>
<p><strong>Soru 4) Kullanıcıdan bir sayı okuyarak, okunan sayının 2 tabanında logaritmasını yaklaşık tam sayı olarak bastırınız. (örneğin 30 sayısının 2 tabanındaki logaritması, 30 sayısı 16 ve 32 sayıları arasında olduğu için 4 veya 5 olarak bulunabilir)<br />
</strong></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/122010_1923_Programming4.png" alt=""/></p>

<p class="sayac_bilgi">195 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2010/12/20/programming-concepts-dersi-2-vize-cozumu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nesne Yönelimli Programlama Dersi Quiz Çözümü</title>
		<link>http://www.bilgisayarkavramlari.com/2010/12/07/nesne-yonelimli-programlama-dersi-quiz-cozumu/</link>
		<comments>http://www.bilgisayarkavramlari.com/2010/12/07/nesne-yonelimli-programlama-dersi-quiz-cozumu/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 09:31:45 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Kod Örnekleri]]></category>
		<category><![CDATA[Nesne Yönelimli Programlama]]></category>
		<category><![CDATA[Sınavlar]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2010/12/07/nesne-yonelimli-programlama-dersi-quiz-cozumu/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Quiz soruları ve çözümleri aşağıdaki şekildedir: Bir oylama için program yazmanız isteniyor. Oylamaya katılan 5 aday bulunuyor ve bu adayların numarası (1&#8242;den 5&#8242;e kadar bir sayı) oy pusulasına yazılarak oy kullanılıyor. Programınızda 10 adet oyu okuyup ekrana adayların aldıkları oy miktarını basan bir program yazınız. Kullanılan oyun 1-5 arasında olmaması [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Quiz soruları ve çözümleri aşağıdaki şekildedir:</p>
<ol>
<li>Bir oylama için program yazmanız isteniyor. Oylamaya katılan 5 aday bulunuyor ve bu adayların numarası (1&#8242;den 5&#8242;e kadar bir sayı) oy pusulasına yazılarak oy kullanılıyor. Programınızda 10 adet oyu okuyup ekrana adayların aldıkları oy miktarını basan bir program yazınız. Kullanılan oyun 1-5 arasında olmaması halinde problemi istisna yakalama ile çözünüz.</li>
</ol>
<p><strong>Çözüm<br />
</strong></p>
<p>Oylama programında basitçe her oyun tutulduğu bir oy pusulası ve bir de oy verilen adaylar olacağını düşünebiliriz. Bu durumda oy pusulası ve aday isimli iki adet sınıf tanımlayıp bu sınıfların kodlamasını aşağıdaki şekilde yapabiliriz.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim1.png" alt="" /></p>
<p>Yukarıdaki kodda, aday bilgisi tutuluyor. Programımızda olması gereken bilgi, adayın numarası ve oy sayısıdır. Biz de bu bilgileri tutan iki adet değişken tanımlıyor ve bu değişkenlerin getter/Setter fonksiyonlarını kodluyoruz. Ayrıca sınıfın <a href="http://www.bilgisayarkavramlari.com/2008/11/24/yapici-constructor/">inşa fonksiyonunda (constructor),</a> başlangıç olarak oy sayısını 0 yapıyoruz. Son olarak adayların oy sayısını arttıran bir metot yukarıdaki kodun sonunda yer almaktadır. Basit bir arttırma işlemidir.</p>
<p>Oy pusulasını tutan kod ise aşağıdaki şekilde kodlanmıştır:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim2.png" alt="" /></p>
<p>Yukarıdaki kodda, görüldüğü üzere, oy pusulasında sadece kime oy verildiği bilgisi tutulmuştur. Bu bilgiyi <a href="http://www.bilgisayarkavramlari.com/2010/10/25/c-dili-ile-kapsulleme-encapsulation/">kapsülleme gereği getter ve setter fonksiyonları</a> ile erişilebilir halde sınıfta kodluyoruz.</p>
<p>Son olarak kodumuzu test etmek için bir main fonksiyonu yazalım:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim3.png" alt="" /></p>
<p>Oy okuma işlemi için &#8220;oyoku&#8221; isimli fonksiyon yazılmıştır. Bu fonksiyonun özelliği, oyları okurken yanlış bir oy girilmesi durumunda, (oyların 1 ile 5 arasında olacağını hatırlayınız) bir istisna fırlatmasıdır. Bu istisna, try bloğu içerisinden çağrıldığı yerde yakalanır ve kodun 27nci satırında bulunan catch bloğu ile ekrana bir hata mesajı basılır. Şayet oy başarılı bir şekilde okunabilirse, bu durumda ilgili oy pusulasına (ki toplam 10 adet pusula bulunuyor) oy değeri kaydedilir. Şayet bir istisna burada oluşmamışsa kodun 25. Satırına geçebiliriz. İstisna oluşması durumunda kodun 25. Satırı hiç çalışmadan catch bloğuna gidilir.</p>
<p>Kodumuzun 25. satırında, adayların tutulduğu nesne dizisinin (object array) ilgili elemanının (hangi elemana oy verildiyse) oy miktarını 1 arttıran oysayisiniArttir() fonksiyonu çağrılır.</p>
<p>Son olarak kodun 31-33 satırları arasında, adayların oy durumları ekrana basılır.</p>
<p>Yukarıdaki kodda bulunan ve kendi istisnamız olan hatalioy sınıfını aşağıdaki şekilde kodlayabiliriz:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim4.png" alt="" /></p>
<ol>
<li>
<div>Bir banka yazılımı için aşağıdaki özelliklerle program yazmanız isteniyor.  Sistemde tutulacak veriler:</div>
<ol>
<li>Hesap sahibinin ismi</li>
<li>Hesap numarası</li>
<li>Bakiye</li>
<li>Hesap tipi (vadeli / vadesiz)</li>
</ol>
</li>
</ol>
<p>Yukarıdaki hesap bilgileri için aşağıdaki işlemleri yapmanız isteniyor:</p>
<ol style="margin-left: 72pt;">
<li>Hesapların ilk değer olarak bakiyesinin 0 atanması gerekir.</li>
<li>Hesaba para yatırılabilir</li>
<li>Hesaptan para çekilebilir</li>
<li>Hesap bilgisi görüntülenebilir (sahibinin ismi, numarası, tipi ve bakiyesi)</li>
</ol>
<ol>
<li>2. Sorudaki programınızı, 10 müşteriye hizmet verebilecek şekilde genişletin.</li>
<li>2. Sorudaki programınızı, hesap hareketleri görüntülenecek şekilde genişletin. Buna göre bir hesap hareketinin, tarihi, saati, miktarı ve hesap numarası bulunur.</li>
</ol>
<p><strong>Çözüm:<br />
</strong></p>
<p>Yukarıdaki sorunun çözümü için basitçe bir hesap nesnesi oluşturmamız yeterli olacaktır. Yukarıdaki 4. soru için hesap hareketlerini tutan ilave bir sınıfa daha ihtiyacımız olacak. Öncelikle, hesapların tutulduğu bir hesap sınıfını programlayarak başlayalım.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim5.png" alt="" /></p>
<p>Soruda tanımlandığı üzere, her hesap için hesapno, bakiye , hesap tipi ve hesap sahibi bilgilerini tutuyoruz. Ayrıca hesap hareketlerinden oluşan ilave bir dizi, her hareketi ayrıca kayıt altına alıyor.</p>
<p>Hesap sınıfımızın constructor fonksiyonunda, hesap bakiyesini 0 olarak atıyoruz.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim6.png" alt="" /></p>
<p>Ayrıca sınıfımızdaki hesap hareketlerini tutan dizinin kaçıncı elemanında olduğumuz bilgisi, hhsayisi isimli değişkende durmaktadır. Bu değişken de henüz hesap hareketi olmadığı için 0 olarak atanıyor.</p>
<p>Sırasıyla hesap sınıfındaki metotların kodlamasını inceleyelim:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim7.png" alt="" /></p>
<p>Yukarıda, hesap detaylarını ekrana basan fonksiyon verilmiştir. Fonksiyondaki 21nci satırda bulunan cout komutu ile ekrana hesabın temel 3 bilgisi bastırılmıştır. Ardında hesabın tipi yazıya çevrilerek bastırılmıştır. Hesap tipini tutmak için kullanılan int tipi, kullanıcı açısından anlamsız olabilir o yüzden yazıya çevirme işlemi yapılır.</p>
<p>Son olarak 27-30 satırları arasında, hesap hareketlerini bastırmak için, mevcut hesap hareketi sayısını tutan değişken kadar dönen döngü içerisinde her hesap hareketinin miktarı basılmaktadır.</p>
<p>Bu çıktının örneği aşağıda verilmiştir.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim8.png" alt="" /></p>
<p>Yukarıdaki ekran görüntüsünde, örnek olarak bir hesabın detayları basılmış ve bu hesapta yapılan hesap hareketleri altında gösterilmiştir.</p>
<p>Hesap hareketi olarak kabul edilebilecek iki temel işlem para çekmek ve para yatırmak işlemleridir. Bunların kodlamasını aşağıda anlatalım:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim9.png" alt="" /></p>
<p>Para çekme işlemi, belirtilen miktar kadar bakiyeyi azaltmamaktadır. Bu işlem sırasında öncelikle miktarın yeterli olup olmadığı kontrol edilir. Şayet miktar yeterli bulunursa bakiye azaltılır, şayet yeterli bulunmazsa bu durumda bir istisna (exception) fırlatılır. Burada fırlatılan istisna, proje kapsamında bizim tanımladığımız yetersizBakiye istisnasıdır.</p>
<p>Yetersi bakiye istisnası, basit bir şekilde bakiye bilgisini de içinde saklayan bir sınıf (class) olarak tasarlanabilir:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim10.png" alt="" /></p>
<p>Hesap hareketlerinin içerisine, ayrıca miktar konulurken -1 değeri ile çarpılmaktadır. Bunun anlamı, hesap hareketinin eksi değer olarak tutulmasıdır.</p>
<p>Benzer kodlama, para yatırma fonksiyonunda da kullanılmaktadır. Yatırılan miktar, hesap hareketlerine işlendikten sonra, bakiye değeri parametre olarak verilen miktar kadar arttırılmaktadır.</p>
<p>Hesap hareketlerinin detayı için sınıf kodlamasını aşağıdaki şekilde yazabiliriz:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120710_0931_NesneYnelim11.png" alt="" /></p>
<p>Bu sınıf, basit bir şekilde hesapta yapılan işlemleri tutmak için tasarlanmıştır. İlgili üyelerin getter / setter fonksiyonlarının yazılması yeterlidir.</p>
<p><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/quizcozum.rar">Quiz sorularının kodlarını indirmek için tıklayınız.</a></p>

<p class="sayac_bilgi">437 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2010/12/07/nesne-yonelimli-programlama-dersi-quiz-cozumu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 Boyutlu Dizi İçerisine Sarmal Seri Girişi</title>
		<link>http://www.bilgisayarkavramlari.com/2010/12/04/2-boyutlu-dizi-icerisine-sarmal-seri-girisi/</link>
		<comments>http://www.bilgisayarkavramlari.com/2010/12/04/2-boyutlu-dizi-icerisine-sarmal-seri-girisi/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 16:11:56 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Kod Örnekleri]]></category>
		<category><![CDATA[Sınavlar]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2010/12/04/2-boyutlu-dizi-icerisine-sarmal-seri-girisi/</guid>
		<description><![CDATA[Yazan: Şadi Evren ŞEKER Bu yazının amacı, bir C sorusunun çözümünü açıklamaktır. Sorumuz basitçe n x n boyutlarındaki bir matrisin (soruyu basitleştirmek için n sayısını tek sayı olarak kabul edeceğiz) içerisine aşağıdakine benzer şekilde ardışık sayıları sarmal olarak yerleştirmek. Örnek 3&#215;3 boyutlarındaki matris: 1 2 3 8 9 4 7 6 5 5&#215;5 boyutlarındaki örnek [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan: Şadi Evren ŞEKER
</p>
<p>Bu yazının amacı, bir C sorusunun çözümünü açıklamaktır. Sorumuz basitçe n x n boyutlarındaki bir matrisin (soruyu basitleştirmek için n sayısını tek sayı olarak kabul edeceğiz) içerisine aşağıdakine benzer şekilde ardışık sayıları sarmal olarak yerleştirmek.
</p>
<p>Örnek 3&#215;3 boyutlarındaki matris:
</p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:37px"/>
<col style="width:38px"/>
<col style="width:38px"/></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>1</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>3</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>8</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>9</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>4</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>7</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>6</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>5</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>5&#215;5 boyutlarındaki örnek matris:
</p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:26px"/></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>1</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>3</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>4</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>5</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>16</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>17</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>18</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>19</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>6</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>15</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>24</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>25</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>20</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>7</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>14</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>23</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>22</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>21</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>8</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>13</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>12</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>11</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>10</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>9</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>7&#215;7 boyutlarındaki örnek matris:
</p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>1</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>3</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>4</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>5</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>6</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>7</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>24</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>25</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>26</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>27</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>28</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>29</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>8</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>23</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>40</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>41</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>42</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>43</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>30</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>9</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>22</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>39</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>48</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>49</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>44</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>31</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>10</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>21</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>38</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>47</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>46</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>45</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>32</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>11</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>20</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>37</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>36</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>35</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>34</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>33</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>12</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>19</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>18</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>17</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>16</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>15</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>14</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>13</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>Yukarıdaki matrislere bakıldığında, sayısal olarak bazı özellikler bulunabilir. Bizim amacımız yukarıdaki problemi, 2 boyutlu problemden tek boyutlu probleme indirgemektir. Bunun sebebi diziler üzerinde işleme yapan en önemli enstrümanımız olan döngülerin tek boyutlu olarak çalışmasıdır. Burada iç içe yazılan iki döngünün iki boyutlu çalıştığı iddia edilebilir ancak bu durumda bile aslında yapılan iş, tek boyutlu bir taramanın, ikinci döngü ile (dıştaki döngü ile) tekrarlanmasıdır. Yani döngüler, yetenek olarak tek boyutlu, doğrusal hareket sağlar.
</p>
<p>Bu tespitten sonra yukarıdaki problemi çözmek için sayısal özellikler bulmaya ve problemi tek boyutlu problem haline getirmeye çalışıyoruz.
</p>
<p>İlk tespitimiz, 2 boyutlu bir matris içerisine ardışık sayıları yerleştirmek dolayısıyla matrisin ortasındaki sayının, matris boyutunun karesi olacağını biliyoruz. Örneğin 7&#215;7 boyutlarındaki matris için ortada 49 , veya 5&#215;5 boyutlarındaki matris için ortadaki değerin 25 olması gibi.
</p>
<p>Ayrıca ortaya kadar olan köşegenleri bulursak tek boyutlu seriler oluşturmuş oluruz.
</p>
<p>Örneğin aşağıdaki renklendirilmiş değerlerden başlayan ve sağa doğru giden tek boyutlu seriler, 1&#8242;er 1&#8242;er artan değerlerdir:
</p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/></colgroup>
<tbody valign="top">
<tr>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>1</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>3</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>4</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>5</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>6</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>7</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>24</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>25</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>26</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>27</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>28</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>29</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>8</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>23</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>40</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>41</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>42</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>43</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>30</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>9</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>22</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>39</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>48</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>49</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>44</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>31</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>10</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>21</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>38</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>47</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>46</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>45</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>32</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>11</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>20</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>37</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>36</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>35</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>34</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>33</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>12</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>19</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>18</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>17</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>16</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>15</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>14</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>13</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>Bu değerlerden başlayarak sağa doğru giden seri aşağıdaki şekilde işaretlenebilir:
</p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/></colgroup>
<tbody valign="top">
<tr>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>1</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>3</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>4</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>5</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>6</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>7</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>24</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>25</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>26</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>27</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>28</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>29</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>8</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>23</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>40</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>41</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>42</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>43</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>30</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>9</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>22</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>39</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>48</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>49</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>44</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>31</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>10</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>21</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>38</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>47</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>46</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>45</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>32</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>11</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>20</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>37</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>36</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>35</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>34</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>33</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>12</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>19</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>18</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>17</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>16</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>15</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>14</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>13</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>Amacımız, bu seriyi veren ve yukarıdaki şekilde, kırmızı renkle işaretlenmiş seri başlarını veren formülü bulmak.
</p>
<p>Serimizde bulunan sayılar:
</p>
<p>1, 25, 41, 49
</p>
<p>Bu sayıların arasında bir bağlantı bulmamız gerekiyor. Sayıları tersten yazar ve aralarındaki farkları bulursak:
</p>
<p>49, 41, 25, 1 ve aralarındaki farklar : 8 , 16, 24 şeklinde giden seridir. Bu serinin özelliği 8&#8242;in katları olmasıdır.
</p>
<p>Benzer durum diğer boyutlardaki matrisler için de geçerlidir. Örneğin matris 9&#215;9 boyutlarında olsaydı:
</p>
<p>81, 73, 57, 33, 1 ve aralarındaki farklar: 8, 16, 24, 32 şeklinde olacaktı.
</p>
<p>Benzer şekilde diğer köşegen değerlerini de bulalım:
</p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/></colgroup>
<tbody valign="top">
<tr>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>1</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>3</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>4</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>5</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>6</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>7</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>24</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>25</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>26</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>27</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>28</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>29</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>8</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>23</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>40</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>41</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>42</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>43</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>30</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>9</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>22</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>39</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>48</p>
</td>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>49</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>44</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>31</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>10</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>21</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>38</p>
</td>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>47</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>46</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>45</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>32</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>11</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>20</p>
</td>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>37</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>36</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>35</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>34</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>33</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>12</p>
</td>
</tr>
<tr>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>19</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>18</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>17</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>16</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>15</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>14</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>13</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>
 </p>
<p>Mavi renkle işaretli köşegen değerlerini veren formülü inceleyelim :
</p>
<p>19, 37, 47, 49 , bu sayıları ters sıralarsak : 49, 47, 37, 19 ve aralarındaki farklar: 2, 10, 18 şeklinde ilerlemektedir. Bu sayılar arasındaki fark da dikkat edilirse 8 &#8216;dir.
</p>
<p>Benzer şekilde matris boyutu 9&#215;9 olsaydı, 81, 79, 69, 51, 25, ve aralarındaki farklar: 2, 10, 18, 26 şeklinde olacaktı. Bu sayılardan başlayarak ilerleyen tek boyutlu dizilerimiz aşağıdaki şekilde olacaktı:
</p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/></colgroup>
<tbody valign="top">
<tr>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>1</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>3</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>4</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>5</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>6</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>7</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>24</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>25</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>26</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>27</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>28</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>29</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>8</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>23</p>
</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>40</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>41</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>42</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>43</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>30</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>9</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>22</p>
</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>39</p>
</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>48</p>
</td>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>49</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>44</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>31</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>10</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>21</p>
</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>38</p>
</td>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>47</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>46</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>45</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>32</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>11</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>20</p>
</td>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>37</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>36</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>35</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>34</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>33</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>12</p>
</td>
</tr>
<tr>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>19</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>18</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>17</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>16</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>15</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>14</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>13</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>Son serimiz aşağıda işaretlenen seridir:
</p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/>
<col style="width:29px"/></colgroup>
<tbody valign="top">
<tr>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>1</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>3</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>4</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>5</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>6</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>7</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>24</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>25</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>26</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>27</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>28</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>29</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>8</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>23</p>
</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>40</p>
</td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>41</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>42</p>
</td>
<td style="background: yellow; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>43</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>30</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>9</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>22</p>
</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>39</p>
</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>48</p>
</td>
<td style="background: #4f6228; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>49</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>44</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>31</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>10</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>21</p>
</td>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>38</p>
</td>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>47</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>46</p>
</td>
<td style="background: #4f6228; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>45</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>32</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>11</p>
</td>
</tr>
<tr>
<td style="background: #8db3e2; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>20</p>
</td>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>37</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>36</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>35</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>34</p>
</td>
<td style="background: #4f6228; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>33</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>12</p>
</td>
</tr>
<tr>
<td style="background: #0070c0; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>19</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>18</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>17</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>16</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>15</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>14</p>
</td>
<td style="background: #4f6228; padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>13</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>Serimiz: 49, 45, 33, 13 şeklinde ilerlemektedir ve farklar: 4, 12, 20 şeklinde ilerlemektedir.
</p>
<p>Şimdi, yukarıda incelediğimiz bu 4 durum için döngüleri yazmaya başlayalım. İlk durum için kodumuz aşağıdaki şekilde olur:
</p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> kat = 0;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> fark = 0;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">for</span>(<span style="color:blue">int</span> i = n/2 ;i&gt;=0;i&#8211;){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        a[i][i] = n*n-fark;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        kat++;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        fark = fark + kat*8;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            <span style="color:blue">for</span>(<span style="color:blue">int</span> j = i+1;j&lt;n-i;j++){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">                a[i][j]=a[i][j-1]+1;<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">            }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p>
 </p>
<p>Yukarıdaki kodda, dikkat edilirse, bir fark değişkeni, sürekli olarak n*n değerinden çıkarılıyor. Buradaki değer a dizisinin [i][i] adresine yerleştiriliyor. Bu değer normalde, dizinin köşegen değeridir. Bu döngüdeki i değişkeni n/2 değerine kadar ilerlemektedir, dolayısıyla köşegenin yarısına kadar ilerleyen döngü, tam olarak 2 boyutlu dizinin ortasında bitmektedir.
</p>
<p>Hesaplanan köşegen değerlerinden başlanarak, satırları dolduran döngü ise içerde yer almaktadır. Burada basitçe, hesaplanan her köşegen değerinden başlayarak satır değerlerini dolduran döngü yazılmıştır.
</p>
<p>İkinci döngümüz aşağıdadır:
</p>
<p><span style="font-family:Consolas; font-size:9pt"><br />
			<span style="color:blue">for</span>(<span style="color:blue">int</span> i = n/2 ;i&gt;0;i&#8211;){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            <span style="color:blue">for</span>(<span style="color:blue">int</span> j = i;j&lt;n-i+1;j++){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">                a[j][n-i]=a[j-1][n-i]+1;<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">            }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p>
 </p>
<p>Bu döngü, bir öncekine göre oldukça basittir çünkü önceki döngüde hesaplanan köşegen değerlerini devam ettirmektedir. Kısacası yeniden köşegen değeri hesaplanmadığı için, mevcut değerler üzerinden işlem yapılmakta ve tek boyutlu hareket tekrarlanmaktadır.
</p>
<p>Üçüncü olarak alt satırları yazan döngümüzü kodlayalım:
</p>
<p><span style="font-family:Consolas; font-size:9pt">    kat = 2;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    fark = 0;<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">for</span>(<span style="color:blue">int</span> i = n/2 ;i&gt;0;i&#8211;){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        fark = fark +kat;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        a[n-i][i-1] = n*n-fark;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        kat = kat+8;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            <span style="color:blue">for</span>(<span style="color:blue">int</span> j = i;j&lt;n-i+1;j++){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">                a[n-i][j]=a[n-i][j-1]-1;<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">            }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p>
 </p>
<p>Hatırlanacağı üzer bu döngü, 2 den başlayarak 8&#8242;er 8&#8242;er artan döngüydü. Dolayısıyla kat değişkenini bu sefer 2 den başlatıp, ters köşegeni dönen döngüyü yazıyoruz. İçerideki döngümüz, sütun değerlerini yukarıdan aşağıya doğru dolduruyor<a href="http://www.bilgisayarkavramlari.com/2009/11/11/c-dilinde-dongu-ornekleri/">. Burada ters köşegen için i+j=n formülünü hatırlayalım</a>. Dolayısıyla a[j-i][j] değeri ters köşegeni vermektedir.
</p>
<p>Son olarak ortanın solundaki kolonları dolduran döngülerimizi yazıyoruz:
</p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">for</span>(<span style="color:blue">int</span> i = 0 ;i&lt;n/2;i++){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            <span style="color:blue">for</span>(<span style="color:blue">int</span> j = i+2;j&lt;n-i;j++){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">                a[n-j ][i]=a[n-j+1][i]+1;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p>
 </p>
<p>Bu son döngü yapısında, dış döngümüz, köşegen yarısına kadar ilerlerken, içerideki döngümüz sütunları doldurmaktadır. Bu döngüyü yukarıda yazılan ikinci döngünün (ortanın sağındaki değerleri dolduran döngünün) tersi olarak düşünmek mümkündür. Bu dördüncü döngü için de başlangıç değerleri zaten hesaplanmıştır.
</p>
<p>Kodun örnek çıktıları aşağıda verilmiştir:
</p>
<p>7&#215;7 boyutları için :
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120410_1612_2BoyutluDiz11.png" alt=""/>
	</p>
<p>9&#215;9 boyutları için:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/120410_1612_2BoyutluDiz21.png" alt=""/>
	</p>
<p><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/sarmal.rar">Kodun tamamını indirmek için tıklayınız</a></p>

<p class="sayac_bilgi">230 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2010/12/04/2-boyutlu-dizi-icerisine-sarmal-seri-girisi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nesneye Yönelik Programlama dersi vize çözümü</title>
		<link>http://www.bilgisayarkavramlari.com/2010/11/10/nesneye-yonelik-programlama-dersi-vize-cozumu-2/</link>
		<comments>http://www.bilgisayarkavramlari.com/2010/11/10/nesneye-yonelik-programlama-dersi-vize-cozumu-2/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 11:01:53 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Sınavlar]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2010/11/10/nesneye-yonelik-programlama-dersi-vize-cozumu-2/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Okan Üniversitesi, bilgisayar mühendisliği bölümü, nesneye yönelik programlama dersinin vizesinde sorduğum soru aşağıdadır. Aşağıda verilen tanımlara uygun olarak, nesne yönelimli bir tasarım yapınız. Tasarımınızın sınıf diyagramını (sınıflar arası ilişkileri) bir şekilde çizerek gösteriniz (çizim sırasında ilişkileri belirten semboller kullanıyorsanız bu sembolleri açıklayınız). Tasarımınıza uygun C++ dilinde kodunuzu yazınız. Bir havayolu [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER
</p>
<p>Okan Üniversitesi, bilgisayar mühendisliği bölümü, nesneye yönelik programlama dersinin vizesinde sorduğum soru aşağıdadır.
</p>
<ol>
<li>
<div>Aşağıda verilen tanımlara uygun olarak, nesne yönelimli bir tasarım yapınız. Tasarımınızın sınıf diyagramını (sınıflar arası ilişkileri) bir şekilde çizerek gösteriniz (çizim sırasında ilişkileri belirten semboller kullanıyorsanız bu sembolleri açıklayınız). Tasarımınıza uygun C++ dilinde kodunuzu yazınız.
</div>
<ol>
<li>Bir havayolu firması, görüşmeleriniz sonucunda, aşağıdaki açıklanan bilgileri içeren tasarım yapmanızı ve kodunu yazmanızı istiyor.
</li>
<li>Hava yolu firmasında idari ve uçuş ekibi olmak üzere iki ekip bulunuyor. (2 puan)
</li>
<li>İdari ekipte, müdür, sekreter, satış sorumlusu ve muhasebe çalışanları bulunuyor. (2 puan)
</li>
<li>Uçuş ekibinde ise pilot, hostes ve hareket plan ekibi bulunuyor. (2 puan)
</li>
<li>Çalışanların hepsinin TC kimlik numarası, maaşı, doğum tarihi ve isminin sistemde tutulması gerekiyor. (2 puan)
</li>
<li>İdari ekibin ayrıca ofis bilgilerinin tutulması da gerekiyor, ama uçuş ekibinden sadece hareket amirinin ofisi bulunuyor. (2 puan)
</li>
<li>Ofislerde birden fazla kişi çalışabiliyor ve her ofis sahibi çalışanın ofisinin oda numarası bulunuyor. (2 puan)
</li>
<li>Ayrıca her ofis sahibi çalışanın (müşterek veya müstakil ofiste çalışıyor olsa da) bir adet dahili telefonu bulunuyor. (5 puan)
</li>
<li>Uçuşların birer uçuş numarası, pilot, hostes bilgisi ve uçuşun nereden nereye olduğunun tutulması gerekiyor. (6 puan)
</li>
<li>Hareket amiri tek kişidir ve birden fazla uçuşu kontrol edebilmektedir. Ayrıca pilot ve hostesler de birden fazla uçuşta uçabilmektedir. (7 puan)
</li>
<li>Uçuş personelinin hangi uçuşlarda görev aldığı bilgisi sorgulanmaktadır. Bunu içeren bir adet metot kodlayınız. (puan değeri 2. Sorunun g şıkkı ile paylaşılmıştır)
</li>
</ol>
</li>
<li>
<div>İlk sorudaki kodunuza ilave olarak, bir adet main fonksiyonu içerisinde, aşağıdaki özellikleri kodlayınız.
</div>
<ol>
<li>Ali Demir isimli pilotun TC Kimlik numarası 123&#8242;tür ve 01/01/1970 tarihinde doğmuştur. 100 lira maaş almaktadır.(1 puan)
</li>
<li>Veli Yıldız isimli pilotun TC Kimlik numarası 321&#8242;dir ve 01/01/1971 tarihinde doğmuştur. 120 lira maaş almaktadır. (1 puan)
</li>
<li>Ayşe Yaşar isimli hostesin TC Kimlik numarası 111&#8242;dir ve 01/01/1980 tarihinde doğmuştur. 50 lira maaş almaktadır. (1 puan)
</li>
<li>Fatma Yüksel isimli hostesin TC Kimlik numarası 323&#8242;dür ve 01/01/1981 tarihinde doğmuştur. 40 lira maaş almaktadır. (1 puan)
</li>
<li>Uçuş numarası 222, İstanbul&#8217;dan Ankara&#8217;yadır ve pilotu Ali Demir, hostesi ise Ayşe Yaşar&#8217;dır. (3 puan)
</li>
<li>Uçuş numarası 333, Ankara&#8217;dan İstanbul&#8217;adır ve pilotun ismi Veli Yıldız, hostesleri ise Fatma Yüksel ve Ayşe Yaşar&#8217;dır. (3 puan)
</li>
<li>Ayşe Yaşar&#8217;ın uçtuğu uçuşların hangi şehirler arasında olduğunu yazdırınız. (30 puan)
</li>
<li>Aynı ofiste çalışan idari personellerin TC Kimlik numaralarını yazdıran bir metodu, doğru sınıfa ekleyiniz. (30 puan)
</li>
</ol>
</li>
</ol>
<p><strong>Çözüm:<br />
</strong></p>
<p>Sorunun ilk kısmında bir tasarım yapmamız isteniyor. Tasarım şeması aşağıdaki şekilde çizilebilir.
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/111010_1103_NesneyeYnel12.png" alt=""/>
	</p>
<p>Yukarıdaki şekilde, düz çizgiler ISA ilişkisini, kesikli çizgiler ise HASA ilişkisini göstermektedir. İlişkilerden HASA ilişkilerinin tamamı münasebet tipindedir (Aggregation).
</p>
<p>Kodlama çözümü aşağıda verilmiştir.
</p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">#include</span><br />
			<span style="color:#a31515">&lt;iostream&gt;</span><br />
		</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">#include</span><br />
			<span style="color:#a31515">&lt;conio.h&gt;</span><br />
		</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">#include</span><br />
			<span style="color:#a31515">&lt;stdlib.h&gt;</span><br />
		</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">#include</span><br />
			<span style="color:#a31515">&lt;string.h&gt;</span><br />
		</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">using</span><br />
			<span style="color:blue">namespace</span> std;<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> Calisan{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">private</span>:<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> tckimlik;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> maas;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> *dt;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> *isim;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">public</span>:<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    Calisan(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    Calisan(<span style="color:blue">int</span> tc,<span style="color:blue">int</span> m,<span style="color:blue">char</span> *i,<span style="color:blue">char</span> *dota){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        tckimlik = tc;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        maas = m;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        isim = (<span style="color:blue">char</span> *)malloc(<span style="color:blue">sizeof</span>(<span style="color:blue">char</span>)*strlen(i));<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        dt = (<span style="color:blue">char</span> *)malloc(<span style="color:blue">sizeof</span>(<span style="color:blue">char</span>)*strlen(dota));<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        strcpy(isim,i);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        strcpy(dt,dota);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> getTckimlik(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> tckimlik;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> setTckimlik(<span style="color:blue">int</span> a){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        tckimlik = a;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> getMaas(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> maas;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> setMaas(<span style="color:blue">int</span> a){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        maas = a;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> * getDT(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> dt;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> setDT(<span style="color:blue">char</span> *a){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        dt = (<span style="color:blue">char</span>*)malloc(<span style="color:blue">sizeof</span>(<span style="color:blue">char</span>)*strlen(a));<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        strcpy(dt,a);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> * getIsim(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> isim;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> setIsim(<span style="color:blue">char</span> *a){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        isim = (<span style="color:blue">char</span>*)malloc(<span style="color:blue">sizeof</span>(<span style="color:blue">char</span>)*strlen(a));<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        strcpy(isim,a);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> ofis{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> ofisno;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> dahili;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> idari:<span style="color:blue">public</span> Calisan{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> ucus{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">private</span>:<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> no;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> *nereden;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> *nereye;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">public</span>:<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> setno (<span style="color:blue">int</span> n){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        no = n;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> getno(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> no;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> setNereden(<span style="color:blue">char</span> *n){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        nereden = (<span style="color:blue">char</span>*)malloc(<span style="color:blue">sizeof</span>(<span style="color:blue">char</span>)*strlen(n));<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        strcpy(nereden,n);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> setNereye(<span style="color:blue">char</span> *n){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        nereye = (<span style="color:blue">char</span>*)malloc(<span style="color:blue">sizeof</span>(<span style="color:blue">char</span>)*strlen(n));<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        strcpy(nereye,n);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> *getNereden(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> nereden;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> *getNereye(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> nereye;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> ucusp:<span style="color:blue">public</span> Calisan{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">private</span>:<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> ucusSayisi;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ucus *u;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">public</span>:<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ucusp(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        ucusSayisi= 0;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        u = (ucus *)malloc(<span style="color:blue">sizeof</span>(<span style="color:blue">int</span>)*100);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> ucusEkle(ucus x){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        u[ucusSayisi++] =x;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ucus * ucuslar(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> u;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">int</span> getUcusSayisi(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">return</span> ucusSayisi;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">char</span> *ucusNereden(<span style="color:blue">int</span> ucusno){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">for</span>(<span style="color:blue">int</span> i = 0;i&lt;ucusSayisi;i++){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            <span style="color:blue">if</span>(u[i].getno()==ucusno){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">                <span style="color:blue">return</span> u[i].getNereden();<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    <span style="color:blue">void</span> ucuslariGoster(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        cout &lt;&lt; getIsim() &lt;&lt; <span style="color:#a31515">&#8220;Ucuslari&#8221;</span>&lt;&lt;endl;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        cout &lt;&lt; <span style="color:#a31515">&#8220;UcusNo\tNereden\tNereye&#8221;</span>&lt;&lt;endl;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        <span style="color:blue">for</span>(<span style="color:blue">int</span> i = 0;i&lt;ucusSayisi;i++){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            cout &lt;&lt; u[i].getno()&lt;&lt; <span style="color:#a31515">&#8220;\t&#8221;</span> &lt;&lt; u[i].getNereden();<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">            cout &lt;&lt; <span style="color:#a31515">&#8220;\t&#8221;</span> &lt;&lt; u[i].getNereye()&lt;&lt;endl;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> satis:<span style="color:blue">public</span> idari{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ofis o;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> sekreter:<span style="color:blue">public</span> idari{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> mudur:<span style="color:blue">public</span> idari{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> pilot:<span style="color:blue">public</span> ucusp{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">public</span>:<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    pilot(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">        ucusp();<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    }<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> hostes:<span style="color:blue">public</span> ucusp{<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">class</span> ha:<span style="color:blue">public</span> ucusp{<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ofis o;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">};<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt"><span style="color:blue">int</span> main(){<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    pilot ali;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ali.setTckimlik(123);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ali.setDT(<span style="color:#a31515">&#8220;01/01/1970&#8243;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ali.setIsim(<span style="color:#a31515">&#8220;Ali Demir&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ali.setMaas(100);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    cout &lt;&lt; ali.getIsim() &lt;&lt; <span style="color:#a31515">&#8221; &#8220;</span> &lt;&lt; ali.getDT() &lt;&lt; <span style="color:#a31515">&#8221; &#8220;</span> &lt;&lt; ali.getMaas() &lt;&lt; endl;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    pilot veli;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    veli.setTckimlik(321);<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Consolas; font-size:9pt">    veli.setDT(<span style="color:#a31515">&#8220;01/01/1971&#8243;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    veli.setIsim(<span style="color:#a31515">&#8220;Veli Yildiz&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    veli.setMaas(120);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    hostes fatma;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    fatma.setTckimlik(323);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    fatma.setDT(<span style="color:#a31515">&#8220;01/01/1981&#8243;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    fatma.setMaas(40);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    fatma.setIsim(<span style="color:#a31515">&#8220;Fatma Yuksel&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    hostes ayse;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ayse.setTckimlik(111);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ayse.setDT(<span style="color:#a31515">&#8220;01/01/1980&#8243;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ayse.setMaas(50);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ayse.setIsim(<span style="color:#a31515">&#8220;Ayse Yasar&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ucus u;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    u.setno(222);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    u.setNereden(<span style="color:#a31515">&#8220;Istanbul&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    u.setNereye(<span style="color:#a31515">&#8220;Ankara&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    cout &lt;&lt; <span style="color:#a31515">&#8220;alinin ucus sayisi&#8221;</span> &lt;&lt; ali.getUcusSayisi() &lt;&lt; endl;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ali.ucusEkle(u);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ayse.ucusEkle(u);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    cout &lt;&lt; <span style="color:#a31515">&#8220;alinin ucus sayisi&#8221;</span> &lt;&lt; ali.getUcusSayisi() &lt;&lt; endl;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    cout &lt;&lt; <span style="color:#a31515">&#8220;alinin 222 numarali kalkis yeri &#8220;</span> &lt;&lt; ali.ucusNereden(222) &lt;&lt;endl;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ucus x;<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    x.setno(454);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    x.setNereden(<span style="color:#a31515">&#8220;Ankara&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    x.setNereye(<span style="color:#a31515">&#8220;Istanbul&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ali.ucusEkle(x);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ayse.ucusEkle(x);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    fatma.ucusEkle(u);<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    ali.ucuslariGoster();<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    fatma.ucuslariGoster();<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">    getch();<br />
</span></p>
<p><span style="font-family:Consolas; font-size:9pt">}<br />
</span></p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>

<p class="sayac_bilgi">595 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2010/11/10/nesneye-yonelik-programlama-dersi-vize-cozumu-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Veriyapıları ve algoritmalar final imtihanı çözümü</title>
		<link>http://www.bilgisayarkavramlari.com/2010/06/11/veriyapilari-ve-algoritmalar-final-imtihani-cozumu/</link>
		<comments>http://www.bilgisayarkavramlari.com/2010/06/11/veriyapilari-ve-algoritmalar-final-imtihani-cozumu/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 08:45:48 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Sınavlar]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2010/06/11/veriyapilari-ve-algoritmalar-final-imtihani-cozumu/</guid>
		<description><![CDATA[Soru 0) Bir ağacın eleman sayısını bulan kodu yazınız (ağacın ikili ağaç olma zorunluluğu yoktur, ağaçtaki her düğümün çocuklarının bir dizide tutulduğunu kabul edebilirsiniz).(20 puan) int elemanSayisi(node *tree){ if(tree==null) return 0; int sayi = 0; for(int i =0;i&#60;cocuklar;i++){ sayi += elemanSayisi(cocuk[i]); } sayi++; return sayi; } Soru 1) Aşağıdaki şekilde bir adet başlangıç ve bir [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Arial;">Soru 0) Bir ağacın eleman sayısını bulan kodu yazınız (ağacın ikili ağaç olma zorunluluğu yoktur, ağaçtaki her düğümün çocuklarının bir dizide tutulduğunu kabul edebilirsiniz).(20 puan)<br />
</span></p>
<p><span style="color: red; font-family: Arial;">int elemanSayisi(node *tree){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> if(tree==null)<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> return 0;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> int sayi = 0;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int i =0;i&lt;cocuklar;i++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> sayi += elemanSayisi(cocuk[i]);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> sayi++;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> return sayi;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">}<br />
</span></p>
<p><span style="font-family: Arial;"><strong>Soru 1) Aşağıdaki şekilde bir adet başlangıç ve bir adet hedef düğümü alarak (Aldığınız bu düğümleri belirtiniz) aşağıdaki sorulara cevap veriniz. (30 puan)<br />
</strong></span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/061110_0845_Veriyaplarv1.png" alt="" /></p>
<ol>
<li><span style="font-family: Arial;"><strong>BFS (Breadth first search, sığ öncelikli arama) ve DFS( Depth first search, derin öncelikli arama) yöntemleri ile dolaşma sonuçlarını yazınız.<br />
</strong></span></li>
</ol>
<p><span style="color: red; font-family: Arial;"><strong>Başlangıç A ve bitiş E olarak kabul edilmiştir.<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;">BFS :<br />
</span></p>
<p><span style="color: red; font-family: Arial;">ACDFBE<br />
</span></p>
<p><span style="color: red; font-family: Arial;">DFS:<br />
</span></p>
<p><span style="color: red; font-family: Arial;">ABFDE</span> <span style="font-family: Arial;"><strong> </strong></span></p>
<p><span style="font-family: Arial;"><strong>2. Kruskal ve Prims algoritmalarına göre asgari tarama ağacı (minimum spanning tree) sonuçlarının nasıl bulunduğunu adım adım gösteriniz.<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;">Kruskal için en kısa düğümden en uzun düğüme doğru ağaç dolaşılır:<br />
</span></p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 307px;"></col>
<col style="width: 307px;"></col>
</colgroup>
<tbody>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border: solid black 0.5pt;"><span style="color: red; font-family: Arial;">Dolaşılan Düğümler</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid black 0.5pt; border-left: none; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">Kenarlar</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid black 0.5pt; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">AC</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">A-C</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid black 0.5pt; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">ACD</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">C-D</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid black 0.5pt; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">ACD-BE</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">B-E</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid black 0.5pt; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">ACDF-BE</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">C-F</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid black 0.5pt; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">ABCDEF</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid black 0.5pt; border-right: solid black 0.5pt;"><span style="color: red; font-family: Arial;">B-F</span></td>
</tr>
</tbody>
</table>
</div>
<p><span style="color: red; font-family: Arial;">Yukarıdaki tabloda sağdaki sütun, o adımda alınan kenarı, soldaki sütun ise o ana kadar alınmış düğümleri gösterir. Soldaki sütunda – işareti ile farklı adalar ayrılmıştır.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Prims algoritması<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Sırasıyla alınan kenarlar: A-C, C-D,C-F,A-B,B-E<strong> </strong></span> <span style="font-family: Arial;"><strong> </strong></span></p>
<p><span style="font-family: Arial;"><strong>3. Yukarıdaki sorularda verdiğiniz cevaplar ışığında, bu soru için, hangi algoritmaların daha başarılı olduğunu  (DFS / BFS, Kruskal / Prims) açıklayınız.<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;">DFS/BFS için aynıdır. Kontrol edilen komşu düğüm sayıları (adjacency list):<br />
</span></p>
<p><span style="color: red; font-family: Arial;">DFS: A 2, C 2, D 2, F 1, B 1 , toplam : 8<br />
</span></p>
<p><span style="color: red; font-family: Arial;">BFS: A 2, B 2, F 2,  D 2 , toplam : 8<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Kruskal / Prims için:<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Kruskal algoritması daha hızlıdır.<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> Kontrol edilen kenarlar.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Kruskal algoritması, 5 kenar kontrol etmiştir.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Prims algoritması 13 kenar kontrol etmiştir. Kontrol edilen kenar sayıları aşağıda sıralanmıştır:<br />
</span></p>
<p><span style="color: red; font-family: Arial;">2,3,4,2,2 , toplam : 13<strong><br />
</strong></span></p>
<p><span style="font-family: Arial;"><strong>Soru 2) Çalıştığınız firmada, bir kelime işlem programı (örneğin MS Word benzeri bir program düşünebilirsiniz) üzerinde yapılan işlemlerin geri / ileri alınmasını sağlayacak (Undo/Redo) kodu yazmanız isteniyor. Bu programda birden çok kişi, birden çok zamanda metin üzerinde değişiklik yapabiliyor (kullanıcılar aynı anda birbirlerinde bağımsız değişiklikler de yapabilir). Sizden istenen herhangi bir kişinin, herhangi bir zamanda yaptığı herhangi bir işlemi geri alabilmeniz için, programda yapılan işlemlerin tutulduğu uygun bir veri yapısı tasarlamanız.  Tasarımınızı çizip kullandığınız veri yapısı modelini açıklayınız.  (25 puan)<br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;">typedef struct node {<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> char * kullanici;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> char * tarih;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> islem * i;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> node * next;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> node * prev;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">};<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Yukarıdaki düğüm tasarımının amacı, veri yapımızın her düğümünde yapılan işlemi (ki bu işlemin detayı bizi ilgilendirmediği için bir gösterici olarak bırakılmıştır) kimin yaptığını ve tarihi / saat bilgisini tutmaktır.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Yukarıdaki yapı, ayrıca çift bağlı liste (doubly linked list) olarak tanımlanmıştır. Tek bağlı liste olarak da tasarlanabilir di.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Yukarıdaki liste, bir yığın (stack) olarak kullanılacaktır. İşlemler hem geri, hem de ileri alınabileceği için iki yığın gerekmektedir. İşlemler sadece geri alınsa ve geri alınan işlemler bir daha kullanılmamak üzere silinseydi tek yığın yeterli olurdu.<br />
</span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/061110_0845_Veriyaplarv2.png" alt="" /><span style="color: red; font-family: Arial;"><strong><br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;">Şekilde görüldüğü üzere, yen işlemler 1. Yığına girerken herhangi bir geri alma işlemi varsa, işlemler 1. Yığından 2. Yığına taşınmakta. İleri alma işlemi ise, 2. Yığından 1. Yığına geri işlemleri yüklemekte.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Yeni işlem geldiğinde ayrıca 2. Yığındaki bilgiler silinerek artık işlemin tekrarlanması engellenebilir (Bu kısım şart olmamakla birlikte güncel programlardaki undo /redo işlemi bu şekilde çalışır)<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Yukarıdaki geri / ileri alma işlemini tasarladıktan sonra kişi ve tarih bazlı geri alma tasarımını yapmamız gerekiyor. Bunun için ilave bir indeks oluşturup yığın üzerine bağlıyoruz:<strong><br />
</strong></span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/061110_0845_Veriyaplarv3.png" alt="" /><span style="color: red; font-family: Arial;"><strong><br />
</strong></span></p>
<p><span style="color: red; font-family: Arial;">Yukarıdaki şekilde görüldüğü üzere ilave bir ağaç kodlaması ile, yığın üzerindeki bazı düğümleri (node) bağladık. Bu düğümlere kolay erişimi sağlayan bir indekstir ve bir kişinin yaptığı işleme erişilmek istendiğinde, ağaç üzerinde aranıp ardından, yığın üzerinde, bulunan bu düğüme kadar geri alam işlemi yapılabilir.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Benzer bir ağacın, tarih için oluşturulması yeterlidir.<strong><br />
</strong></span></p>
<p><span style="font-family: Arial;"><strong>Soru3) Aşağıda bir dizi içerisinde verilen sayıları yığın ağacı (heap) aracılığı ile sıralayınız.  Sıralama işlemi sırasında dizideki değişiklikleri adım adım gösteriniz.  (öğrenci numaranızın son rakamı çift ise büyükten küçüğe, tek ise küçükten büyüğe sıralayınız) (25 puan)<br />
</strong></span></p>
<pre><code>int a[6] =  5,12,20,18,4,3
</code></pre>
<p><span style="color: red; font-family: Arial;">Sor büyükten küçüğe sıralama olarak yapılacaktır. Küçükten büyüğe sıralama için aşağıdaki adımların tersten yapılması yeterlidir.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Sıralamayı büyükten küçüğe göre yaptığımıza göre, min heap yani  küçükten büyüğe olacak.<br />
</span></p>
<p><span style="color: red; font-family: Arial;">Öncelikle heap inşa edilir. Mevcut durum aşağıdaki şekildedir:<br />
</span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/061110_0845_Veriyaplarv4.png" alt="" /><span style="color: red; font-family: Arial;"><br />
</span></p>
<p><span style="color: red; font-family: Arial;">Heap inşa edilişi yukarıdaki şekilde sırasıyla gösterilmiştir. Aynı sıra ile dizideki değişim aşağıda gösterilmiştir:<br />
</span></p>
<p><span style="color: red;">5,12,20,18,4,3<span style="font-family: Arial;"><br />
</span></span></p>
<p><span style="color: red;">5,4,20,18,12,3<br />
</span></p>
<p><span style="color: red;">4,5,20,18,12,3<br />
</span></p>
<p><span style="color: red;">4,5,3,18,12,20<br />
</span></p>
<p><span style="color: red;">3,5,4,18,12,20<br />
</span></p>
<p><span style="color: red;">Yukarıdaki inşa işleminden sonra sıralamaya geçilebilir.<br />
</span></p>
<p><span style="color: red;">İlk alınan sayı 3, heap&#8217;in en sonuna yerleştirilir ve geri kalan sayılar kendi arasında yeniden heap halini alır:<br />
</span></p>
<p><span style="color: red;">5,4,18,12,20 ,3<br />
</span></p>
<p><span style="color: red;">4,5,18,12,20 ,3<br />
</span></p>
<p><span style="color: red;">İkinci sayı alınıp heap yeniden inşa edilir<br />
</span></p>
<p><span style="color: red;">5,18,12,20 ,3,4<br />
</span></p>
<p><span style="color: red;">Üçüncü sayı alınır:<br />
</span></p>
<p><span style="color: red;">18,12,20 ,3,4,5<br />
</span></p>
<p><span style="color: red;">12,18,20 ,3,4,5<br />
</span></p>
<p><span style="color: red;">Dördüncü sayı:<br />
</span></p>
<p><span style="color: red;">18,20 ,3,4,5,12<br />
</span></p>
<p><span style="color: red;">Beşinci sayı:<br />
</span></p>
<p><span style="color: red;">20, 3,4,5,12,18<br />
</span></p>
<p><span style="color: red;">Son sayı:<br />
</span></p>
<p><span style="color: red;">3,4,5,12,18,20<br />
</span></p>
<p><span style="color: red;">Görüldüğü üzere dizi sıralanmıştır. Yukarıdaki bu adımlar heap çizimi üzerinde aşağdaki şekilde gösterilmiştir.<br />
</span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/061110_0845_Veriyaplarv5.png" alt="" /><span style="color: red;"><br />
</span></p>
<p style="margin-left: 35pt;"><em>&#8220;Programcılık %10 bilim, %20 yaratıcılık ve %70, yaratıcılığın bilimle çalışmasına çalışmaktır.&#8221;</em></p>
<p style="text-align: right; margin-left: 35pt;">
<p style="text-align: right; margin-left: 35pt;">
<p style="text-align: right; margin-left: 35pt;">

<p class="sayac_bilgi">933 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2010/06/11/veriyapilari-ve-algoritmalar-final-imtihani-cozumu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Veri Güvenliği Dersi Vize Sınavı</title>
		<link>http://www.bilgisayarkavramlari.com/2010/05/03/veri-guvenligi-dersi-vize-sinavi/</link>
		<comments>http://www.bilgisayarkavramlari.com/2010/05/03/veri-guvenligi-dersi-vize-sinavi/#comments</comments>
		<pubDate>Mon, 03 May 2010 10:39:38 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Sınavlar]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2010/05/03/veri-guvenligi-dersi-vize-sinavi/</guid>
		<description><![CDATA[Süre 60 dakika, kapalı açık kitaptır. Başarılar J Şadi Evren ŞEKER Soru 0) Aşağıdaki şifreleme yöntemlerine göre isminizi şifreleyiniz. Şifreleme sırasında anahtarları kendiniz atayın ve cevabınızda kullandığınız anahtarları belirtin. (10 puan) Kaydırma şifrelemesi Permutasyon şifrelemesi Viegnere Şifrelemesi SadiEvrenSEKER -&#62; pbejfysfmtflfs (anahtar 1 alınmıştır) SadiEvrenSEKER -&#62; Dasrvesneeker (anahtar 321 alınmıştır) SadiEvrenSEKER -&#62; pcgjgzsgqtfqvfmhs (anahtar abc alınmıştır) [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Arial">Süre 60 dakika, kapalı açık kitaptır. Başarılar </span><span style="font-family:Wingdings">J</span><span style="font-family:Arial"> Şadi Evren ŞEKER<br />
</span></p>
<p><span style="font-family:Arial">Soru 0) Aşağıdaki şifreleme yöntemlerine göre isminizi şifreleyiniz. Şifreleme sırasında anahtarları kendiniz atayın ve cevabınızda kullandığınız anahtarları belirtin. (10 puan)<br />
</span></p>
<ol>
<li><a href="http://www.bilgisayarkavramlari.com/2008/02/21/sezar-sifrelemesi-ceasers-cipher-shift-cipher-kaydirma-sifrelemelesi/"><span style="font-family:Arial">Kaydırma şifrelemesi</span></a><span style="font-family:Arial"><br />
</span></li>
<li><a href="http://www.bilgisayarkavramlari.com/2008/02/29/permutasyon-sifrelemesi-permutation-cipher/"><span style="font-family:Arial">Permutasyon şifrelemesi</span></a><span style="font-family:Arial"><br />
</span></li>
<li><a href="http://bilgisayarkavramlari.com/2008/02/23/vigenere-sifreleme-vigenere-cipher/"><span style="font-family:Arial">Viegnere Şifrelemesi</span></a><span style="font-family:Arial"><br />
</span></li>
</ol>
<ol>
<li><span style="color:red; font-family:Arial">SadiEvrenSEKER  -&gt; pbejfysfmtflfs (anahtar 1 alınmıştır)<br />
</span></li>
<li><span style="color:red; font-family:Arial">SadiEvrenSEKER -&gt; Dasrvesneeker (anahtar 321 alınmıştır)<br />
</span></li>
<li>
<div><span style="color:red; font-family:Arial">SadiEvrenSEKER -&gt; pcgjgzsgqtfqvfmhs (anahtar abc alınmıştır)<br />
</span></div>
</li>
</ol>
<p><span style="font-family:Arial">Soru 1) <a href="http://www.bilgisayarkavramlari.com/2008/03/20/diffie-hellman-ahahtar-degisimi-key-exchange/">Diffie Hellman Anahtar değişim algoritmasını</a> kullanarak 3 farklı kişi aynı anahtarı paylaşmak istiyor. Diffie Hellman anahtar değişim algoritması burada kullanılabilir mi? Kullanılabilirse Nasıl? Kullanılamazsa Neden?<br />
</span></p>
<p><span style="color:red; font-family:Arial">Kullanılabilir. Ortak bir mod kabul ederek herkes kendi gizli anahtarını diğer iki kişiye ulaştırırsa, üç kişide de aynı anahtar olmuş olur.<br />
</span></p>
<p><span style="color:red; font-family:Arial">Örneğin<br />
</span></p>
<p><span style="color:red; font-family:Arial">A -&gt; 3<br />
</span></p>
<p><span style="color:red; font-family:Arial">B -&gt; 7<br />
</span></p>
<p><span style="color:red; font-family:Arial">C-&gt; 11<br />
</span></p>
<p><span style="color:red; font-family:Arial">Sayılarını gizli anahtar olarak alıyorlar. Açık anahtar olarak 5 ve 29 kararlaştırılmış olsun.  tarafların oluşturduğu sayıları inceleyelim:<br />
</span></p>
<p><span style="color:red; font-family:Arial">A-&gt; 5 <sup>3</sup> mod 29 = 9<br />
</span></p>
<p><span style="color:red; font-family:Arial">B-&gt; 5 <sup>7</sup> mod 29 = 28<br />
</span></p>
<p><span style="color:red; font-family:Arial">C-&gt; 5 <sup>11</sup> mod 29 = 13<br />
</span></p>
<p><span style="color:red; font-family:Arial">Bu ilk hesaptan sonra, bir daire şeklinde, (yani örneğin A -&gt; B -&gt; C -&gt; A sırasıyla)<br />
</span></p>
<p><span style="color:red; font-family:Arial">A&#8217;daki sonuç B&#8217;ye<br />
</span></p>
<p><span style="color:red; font-family:Arial">B&#8217;deki sonuç C&#8217;ye<br />
</span></p>
<p><span style="color:red; font-family:Arial">C&#8217;deki sonuç A&#8217;ya geçiriliyor ve tekrar herkes kendi gizli sayıları ile üst hesaplıyor.<br />
</span></p>
<p><span style="color:red; font-family:Arial">A-&gt; 13 <sup>3</sup> mod 29  = 22<br />
</span></p>
<p><span style="color:red; font-family:Arial">B-&gt; 9 <sup>7</sup> mod 29 = 28<br />
</span></p>
<p><span style="color:red; font-family:Arial">C-&gt; 28 <sup>11</sup> mod 29 = 28<br />
</span></p>
<p><span style="color:red; font-family:Arial">Son olarak bu döndürme işlemini tekrar yapıp anahtar değişimini hesaplamış oluyoruz:<br />
</span></p>
<p><span style="color:red; font-family:Arial">A-&gt; 28 <sup>3</sup> mod 29 = 28<br />
</span></p>
<p><span style="color:red; font-family:Arial">B-&gt; 22 <sup>7</sup> mode 29 = 28<br />
</span></p>
<p><span style="color:red; font-family:Arial">C-&gt; 28 <sup>11</sup> mod 29 = 28<br />
</span></p>
<p><span style="color:red; font-family:Arial">Görüldüğü üzere tarafların tamamında 28 sonucu bulunmuştur.<br />
</span></p>
<p><span style="color:red; font-family:Arial">Yukarıdaki bu sayısal örneği aşağıdaki matematiksel durulmada göstermek mümkündür:<br />
</span></p>
<p><span style="color:red; font-family:Arial">İlk hesaplamada :<br />
</span></p>
<p><span style="color:red; font-family:Arial">A-&gt; p <sup>a</sup> mod g<br />
</span></p>
<p><span style="color:red; font-family:Arial">B-&gt; p <sup>b</sup> mod g<br />
</span></p>
<p><span style="color:red; font-family:Arial">C-&gt; p <sup>c</sup> mod g<br />
</span></p>
<p><span style="color:red; font-family:Arial">Değerlerini hesaplıyorlar (a,b ve c sırasıyla A, B ve C taraflarının gizli sayıları)<br />
</span></p>
<p><span style="color:red; font-family:Arial">Ardından bu sayılar sırayla komşulara iletiliyor:<br />
</span></p>
<p><span style="color:red; font-family:Arial">A-&gt; p <sup>ca</sup> mod g<br />
</span></p>
<p><span style="color:red; font-family:Arial">B-&gt; p <sup>ab</sup> mod g<br />
</span></p>
<p><span style="color:red; font-family:Arial">C-&gt; p <sup>bc</sup> mod g<br />
</span></p>
<p><span style="color:red; font-family:Arial">Değerlerini hesaplıyorlar. Son olarak 2. Değiştirme ile birlikte tarafların hepsinde p abc mod g deperi bulunuyor.<br />
</span></p>
<p><span style="color:red; font-family:Arial">Bu değişim aşağıdaki üçgen ile de gösterilebilir:<br />
</span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/050310_1039_VeriGvenlii1.png" alt="" /><span style="color:red; font-family:Arial"><br />
</span></p>
<p><span style="color:red; font-family:Arial">Sırasıyla dönüşüm yapılmaktadır. Dolayısıyla her geçişten sonra taraflardaki değerler aşağıda gösterilmiştir:<br />
</span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/050310_1039_VeriGvenlii3.png" alt="" /><span style="color:red; font-family:Arial"><br />
</span></p>
<p><span style="color:red; font-family:Arial">Yukarıda, 3 geçişin her birisinde taraflarda olan sayı değeri gösterilmiştir.<br />
</span></p>
<p><span style="font-family:Arial">Soru 2 ve 3 için) Bir firmada, güvenlik yöneticisi olarak çalışan bilgisayar mühendisi Ali, kendi güvenlik sistemini geliştirmek istiyor. Bu sistemde <a href="http://www.bilgisayarkavramlari.com/2008/03/19/rsa/">RSA sisteminden esinleniyor</a> ve RSA sisteminde olduğu gibi üst almak yerine çarpma işlemi yapıyor.<br />
</span></p>
<p><span style="font-family:Arial">Buna göre RSA sistemindeki açık ve gizli anahtarları (public, private keys) inşa ettikten sonra,<br />
</span></p>
<p><span style="font-family:Arial">Şifreleme için : c = e m mod n<br />
</span></p>
<p><span style="font-family:Arial">Açmak için : m = d c mod n<br />
</span></p>
<p><span style="font-family:Arial">Formüllerinden yararlanıyor.<br />
</span></p>
<p><span style="color:red; font-family:Arial">Öncelikle bu sistemin çalışmasını bir örnek üzerinden gösterelim:<br />
</span></p>
<p><span style="color:red; font-family:Arial">Örneğin 3&#215;7 mod 20 = 1&#8242;dir. Dolayısıyla e = 3, d = 7 ve n = 20 için sistemimizi çalıştıralım.<br />
</span></p>
<p><span style="color:red">Örneğin mesajımız 12 olsun. Bu durumda şifreleme işlemi için<br />
</span></p>
<p><span style="color:red">12 x 7 mod 20 = 4 şifreli mesajı bulunur<br />
</span></p>
<p><span style="color:red">Açılması için 4 x 3 mod 20 = 12 şeklinde mesaj açılmış olur.</span></p>
<p><span style="font-family:Arial">Yukarıdaki bu yeni sistem için<br />
</span></p>
<p><span style="font-family:Arial">Soru 2) RSA sistemine göre bu sistemin zafiyetini (vulnarability) açıklayın.<br />
</span></p>
<p><span style="color:red; font-family:Arial">Yukarıdaki bütün bu şıklar için RSA&#8217;den zayıftır çünkü açık anahtardan gizli anahtar bulunabilir. Örneğin yukarıdaki örnekte e,n açık ise, d saldırgan tarafından kolayca hesaplanabilir.<br />
</span></p>
<p><span style="font-family:Arial">Soru 3) Bu yeni sistem için :<br />
</span></p>
<ol>
<li><a href="http://www.bilgisayarkavramlari.com/2008/03/19/acik-anahtarli-sifreleme-public-key-cryptography/"><span style="font-family:Arial">Dijital imzanın</span></a><span style="font-family:Arial"> nasıl kullanılabileceğini açıklayınız ve bir örnek üzerinden gösteriniz.<br />
</span></li>
<li><a href="http://www.bilgisayarkavramlari.com/2009/09/10/dolev-yao-saldirgan-modeli/"><span style="font-family:Arial">Dolev-Yao saldırı modeli</span></a><span style="font-family:Arial"> ile dijital imza&#8217;ya nasıl saldırılabileceğini bir örnek ile gösteriniz.<br />
</span></li>
</ol>
<ol>
<li><span style="color:red">Dijital imza aşağıdaki şekilde kullanılabilir:<br />
</span></li>
</ol>
<p><span style="color:red">İletişimin A ve B tarafları arasında olduğunu ve A tarafının yayınladığı açık anahtarlar ile B tarafının imza doğrulaması yaptığını düşünelim.<br />
</span></p>
<p><span style="color:red">Bu durumda A tarafı bir mesaj yollarken aşağıdaki adımları izler:<strong><br />
</strong></span></p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/050310_1039_VeriGvenlii5.png" alt="" /><span style="color:red"><strong><br />
</strong></span></p>
<ol>
<li><span style="color:red"><strong>Dolev-Yao saldırı modeli aşağıdaki şekilde çizilebilir:<br />
</strong></span></li>
</ol>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/050310_1039_VeriGvenlii7.png" alt="" /><span style="color:red"><strong><br />
</strong></span></p>
<p style="margin-left: 35pt"><em>&#8220;Şayet teknolojinin, güvenlik problemlerinizi çözebileceğini zannediyorsanız; güvenlik problemlerinin ne olduğunu bilmiyorsunuz ve teknolojinin de ne olduğunu bilmiyorsunuz demektir. &#8221;<br />
</em>(<span style="color:red"><em>Bruce Schneier</em></span><br />
<span style="color:#ff3300"><br />
</span>)</p>
<p style="text-align: right; margin-left: 35pt">
<p style="text-align: right; margin-left: 35pt">
<p style="text-align: right; margin-left: 35pt">

<p class="sayac_bilgi">141 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2010/05/03/veri-guvenligi-dersi-vize-sinavi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C ile programlamaya giriş final sınavı çözümleri</title>
		<link>http://www.bilgisayarkavramlari.com/2010/01/23/c-ile-programlamaya-giris-final-sinavi-cozumleri/</link>
		<comments>http://www.bilgisayarkavramlari.com/2010/01/23/c-ile-programlamaya-giris-final-sinavi-cozumleri/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 06:47:54 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programlama Dilleri]]></category>
		<category><![CDATA[Sınavlar]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2010/01/23/c-ile-programlamaya-giris-final-sinavi-cozumleri/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Soru 0) Programın çalıştığı dizinde, &#8220;deneme.txt&#8221; isimli bir dosya açarak, bu dosyanın içerisine, birden yüze kadar olan sayıları bastıran bir kod yazınız. (10 puan) (sadece bu soru için program tam olmalı (include, return satırları gibi) ve yazım hatası bulundurmamalıdır ve kodunuz compile edildiğinde hata vermemelidir. ) &#160; #include &#60;stdio.h&#62; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Arial;">Yazan : Şadi Evren ŞEKER<br />
</span></p>
<p><span style="font-family: Arial;"><strong>Soru 0) Programın çalıştığı dizinde, &#8220;deneme.txt&#8221; isimli bir dosya açarak, bu dosyanın içerisine, birden yüze kadar olan sayıları bastıran bir kod yazınız.  (10 puan) </strong>(sadece bu soru için program tam olmalı (include, return satırları gibi) ve yazım hatası bulundurmamalıdır ve kodunuz compile edildiğinde hata vermemelidir. )<strong><br />
</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;">#include &lt;stdio.h&gt;<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;">int main(){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> FILE *fp ;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> fp = fopen(&#8220;deneme.txt&#8221;,&#8221;w&#8221;);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int i = 0;i&lt;100;i++) {  // veya for(int i=1 ;i&lt;=100;i++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> fprintf(fp,&#8221;%d&#8221;,i);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> fclose(fp);<br />
</span></p>
<p><span style="color: red; font-family: Arial;">}<br />
</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Soru 1) Derste anlatılan filtreleme fonksiyonunu iki boyutlu matrisler için kodlayınız. Buna göre fonksiyonunuz iki boyutlu bir matris ve bir fonksiyon göstericisi alacak, matrisi RAM&#8217;deki aynı adreste filtreleyerek yeni matrisin boyutunu döndürecektir. Bu soruda hafızada silinen adreslerin kalması ve matrisin kare yapısının bozulması gibi konuları göz ardı edebilirsiniz. (35 puan)<br />
</strong></span></p>
<p><span style="font-family: Arial;">Aşağıdaki örnek matrisi ele alalım:<br />
</span></p>
<p><span style="font-family: Arial;">0    1    2    3<br />
</span></p>
<p><span style="font-family: Arial;">7    6    5    4<br />
</span></p>
<p><span style="font-family: Arial;">8    9    10    11<br />
</span></p>
<p><span style="font-family: Arial;">15    14    13    12<br />
</span></p>
<p><span style="font-family: Arial;">Çift sayıları filtreleyen bir fonksiyon için dönüş matrisiniz aşağıdaki şekilde olmalıdır:<br />
</span></p>
<p><span style="font-family: Arial;">0    2    6    X<br />
</span></p>
<p><span style="font-family: Arial;">4    8    10    X<br />
</span></p>
<p><span style="font-family: Arial;">14    12    X    X<br />
</span></p>
<p><span style="font-family: Arial;">X    X    X    X<br />
</span></p>
<p><span style="font-family: Arial;">Yukarıda, X ile gösterilen değerler önemsizdir.  Yukarıdaki matrisin yeni boyutu 3&#8242;tür.<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Arial;">#include &lt;stdio.h&gt;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">#include &lt;conio.h&gt;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">#include &lt;stdlib.h&gt;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">int cift(int x){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> return x%2 == 0;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">}<br />
</span></p>
<p><span style="color: red; font-family: Arial;">int sqrt(int s){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> int i ;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(i = 0;i&lt;s;i++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> if(i*i&gt;s)<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> break;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> return i;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">}<br />
</span></p>
<p><span style="color: red; font-family: Arial;">int filtre (int (*fp)(int),int *a,int boyut){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> int yeniboyut= boyut;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int i = 0;i&lt;yeniboyut;i++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> if(!fp(a[i])){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int j = i;j&lt;yeniboyut;j++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> a[j]= a[j+1];<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> yeniboyut&#8211;;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> i&#8211;;<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> return yeniboyut;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">}<br />
</span></p>
<p><span style="color: red; font-family: Arial;">int boyutlandir(int a[][4],int (*fp)(int),int boyut){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> int *b = (int * ) malloc(sizeof(int) * boyut*boyut);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int i = 0;i&lt;boyut*boyut;i++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> b[i] = a[i/boyut][i%boyut];<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> int yb = filtre(fp,b,boyut*boyut);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> int yeniboyut = sqrt(yb);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int i = 0;i&lt;yeniboyut;i++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int j = 0;j&lt;yeniboyut;j++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> a[i][j]=b[i*yeniboyut+j];<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> return yeniboyut;<br />
</span></p>
<p><span style="color: red; font-family: Arial;">}<br />
</span></p>
<p><span style="color: red; font-family: Arial;">int main(){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> int x[4][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}};<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> int yeniboyut = boyutlandir( x,cift,4);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int i = 0;i&lt;yeniboyut;i++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> for(int j = 0;j&lt;yeniboyut;j++){<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> printf(&#8220;%d &#8220;, x[i][j]);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> printf(&#8220;\n&#8221;);<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> }<br />
</span></p>
<p><span style="color: red; font-family: Arial;"> getch();<br />
</span></p>
<p><span style="font-family: Arial;"><span style="color: red;">}</span><br />
</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="font-family: Arial;">Soru 2) Kullanıcıdan bir sayı okuyarak ekrana verilen boyutta bir kare matris içerisinde </span><span style="font-family: Symbol;">à</span><span style="font-family: Arial;"> (içi boş eşkenar dörtgen) çizdiren kodu yazınız. (20 puan)<br />
</span></strong></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;">5 sayısı için örnek çıktı<br />
</span></p>
<p><span style="font-family: Arial;"><strong>..*..<br />
</strong></span></p>
<p><span style="font-family: Arial;"><strong>.*.*.<br />
</strong></span></p>
<p><span style="font-family: Arial;"><strong>*…*<br />
</strong></span></p>
<p><span style="font-family: Arial;"><strong>.*.*.<br />
</strong></span></p>
<p><span style="font-family: Arial;"><strong>..*..<br />
</strong></span></p>
<ol>
<li>Fonksiyonu iteratif olarak kodlayınız (döngü ile) <span style="color: #490404; font-family: Courier;"><br />
</span></li>
<li>Fonksiyonu recursive olarak kodlayınız (özyineli) <span style="color: #490404; font-family: Courier;"><br />
</span></li>
</ol>
<p>&nbsp;</p>
<p><span style="color: red;">a)<br />
</span></p>
<p><span style="color: red; font-family: Courier;">#include &lt;stdio.h&gt;<br />
</span></p>
<p><span style="color: red; font-family: Courier;">#include &lt;conio.h&gt;<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Courier;">int main(){<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> printf(&#8220;bir sayi giriniz&#8221;);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> int n;<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> scanf(&#8220;%d&#8221;,&amp;n);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> for(int i= 0;i&lt;n;i++){<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> for(int j = 0;j&lt;n;j++){<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> if(i+j == n/2 || i+j == 3*n/2-1 || i-j == n/2 || j-i == n/2<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> )<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> printf(&#8220;*&#8221;);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> else<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> printf(&#8221; &#8220;);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> }<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> printf(&#8220;\n&#8221;);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> }<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> getch();<br />
</span></p>
<p><span style="color: red; font-family: Courier;">}<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Courier;">b)<br />
</span></p>
<p><span style="color: red; font-family: Courier;">#include &lt;stdio.h&gt;<br />
</span></p>
<p><span style="color: red; font-family: Courier;">#include &lt;conio.h&gt;<br />
</span></p>
<p><span style="color: red; font-family: Courier;">int f(int n,int i,int j){<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> if(j==n)<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> return 0;<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> if(i+j == n/2 || i+j == 3*n/2-1 || i-j == n/2 || j-i == n/2)<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> printf(&#8220;*&#8221;);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> else<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> printf(&#8221; &#8220;);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> f(n,i,j+1);<br />
</span></p>
<p><span style="color: red; font-family: Courier;">}<br />
</span></p>
<p><span style="color: red; font-family: Courier;">int g(int n,int i){<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> if(i==n)<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> return 0;<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> f(n,i,0);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> printf(&#8220;\n&#8221;);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> g(n,i+1);<br />
</span></p>
<p><span style="color: red; font-family: Courier;">}<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red; font-family: Courier;">int main(){<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> printf(&#8220;bir sayi giriniz&#8221;);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> int n;<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> scanf(&#8220;%d&#8221;,&amp;n);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> g(n,0);<br />
</span></p>
<p><span style="color: red; font-family: Courier;"> getch();<br />
</span></p>
<p><span style="color: red; font-family: Courier;">}<br />
</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Arial;"><strong>Soru 3) Bir dizginin içerisinde en uzun tekrarlı harfi bulunuz. (35 puan)<br />
</strong></span></p>
<p><span style="font-family: Arial;">Örneğin &#8220;aabbbcccccaaaaadddxxxxbbb&#8221; dizgisi için, &#8220;ccccc&#8221; veya &#8220;aaaaa&#8221; sonuçlarından birisini yada ikisini de döndüren kodu yazınız. Eşit uzunluk durumunda herhangi birisini veya hepsini döndürmeniz doğru kabul edilecektir.<br />
</span></p>
<ol>
<li><span style="font-family: Arial;">Dizi (array) kullanarak kodlayınız<br />
</span></li>
<li><span style="font-family: Arial;">Gösterici aritmetiği (pointer arithmetic) kullanarak kodlayınız. Bu şıkkın cevabında, dizi operatörü olan [] sembollerini hiç kullanmadan soruyu cevaplayınız.<br />
</span></li>
</ol>
<p>&nbsp;</p>
<p><span style="color: red;">a)<br />
</span></p>
<p><span style="color: red;">#include &lt;stdio.h&gt;<br />
</span></p>
<p><span style="color: red;">#include &lt;conio.h&gt;<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red;">int main(){<br />
</span></p>
<p><span style="color: red;"> printf(&#8220;bir dizgi giriniz:&#8221;);<br />
</span></p>
<p><span style="color: red;"> char giris[100];<br />
</span></p>
<p><span style="color: red;"> scanf(&#8220;%s&#8221;,giris);<br />
</span></p>
<p><span style="color: red;"> int boy1=0; //en uzun kelimenin boyu<br />
</span></p>
<p><span style="color: red;"> int say1=0; // en uzun kelimenin ilk harfi<br />
</span></p>
<p><span style="color: red;"> int say2=0; // en son kelimenin ilk harfi<br />
</span></p>
<p><span style="color: red;"> int enuzun = 0;<br />
</span></p>
<p><span style="color: red;"> for(int i = 0;giris[i]!=&#8217;\0&#8242;;i++){<br />
</span></p>
<p><span style="color: red;"> if(giris[i]!=giris[i+1]){<br />
</span></p>
<p><span style="color: red;"> printf(&#8220;boy1: %d boy2: %d say1: %d say2: %d\n&#8221;,boy1,i-say2,say1,say2);<br />
</span></p>
<p><span style="color: red;"> if(boy1&lt;i-say2){<br />
</span></p>
<p><span style="color: red;"> boy1=i-say2;<br />
</span></p>
<p><span style="color: red;"> say1=say2;<br />
</span></p>
<p><span style="color: red;"> }<br />
</span></p>
<p><span style="color: red;"> say2=i;<br />
</span></p>
<p><span style="color: red;"> }<br />
</span></p>
<p><span style="color: red;"> }<br />
</span></p>
<p><span style="color: red;"> for(int i = say1+1;i&lt;say1+boy1+1;i++){<br />
</span></p>
<p><span style="color: red;"> printf(&#8220;%c&#8221;,giris[i]);<br />
</span></p>
<p><span style="color: red;"> }<br />
</span></p>
<p><span style="color: red;"> getch();<br />
</span></p>
<p><span style="color: red;">}<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red;">b)<br />
</span></p>
<p><span style="color: red;">#include &lt;stdio.h&gt;<br />
</span></p>
<p><span style="color: red;">#include &lt;conio.h&gt;<br />
</span></p>
<p><span style="color: red;">#include &lt;stdlib.h&gt;<br />
</span></p>
<p><span style="color: red;">int main(){<br />
</span></p>
<p><span style="color: red;"> printf(&#8220;bir dizgi giriniz:&#8221;);<br />
</span></p>
<p><span style="color: red;"> char* giris=(char*)malloc(sizeof(char)*100);<br />
</span></p>
<p><span style="color: red;"> scanf(&#8220;%s&#8221;,giris);<br />
</span></p>
<p><span style="color: red;"> int boy1=0; //en uzun kelimenin boyu<br />
</span></p>
<p><span style="color: red;"> char * say1=giris; //en uzun kelimenin basini gosterir<br />
</span></p>
<p><span style="color: red;"> char * say2=giris; // en son kelimenin basini gosterir<br />
</span></p>
<p><span style="color: red;"> char *p=giris; //dizgi ustunde yuzen pointer<br />
</span></p>
<p><span style="color: red;"> while( *p!= &#8216;\0&#8242;){<br />
</span></p>
<p><span style="color: red;"> if(*p!=*(p+1)){<br />
</span></p>
<p><span style="color: red;"> if(boy1&lt;p-say2){<br />
</span></p>
<p><span style="color: red;"> boy1=p-say2;<br />
</span></p>
<p><span style="color: red;"> say1=say2;<br />
</span></p>
<p><span style="color: red;"> }<br />
</span></p>
<p><span style="color: red;"> say2=p;<br />
</span></p>
<p><span style="color: red;"> }<br />
</span></p>
<p><span style="color: red;"> p++;<br />
</span></p>
<p><span style="color: red;"> }<br />
</span></p>
<p><span style="color: red;"> for(int i = 0;i&lt;boy1;i++){<br />
</span></p>
<p><span style="color: red;"> printf(&#8220;%c&#8221;,*(++say1));<br />
</span></p>
<p><span style="color: red;"> }<br />
</span></p>
<p><span style="color: red;"> getch();<br />
</span></p>
<p><span style="color: red;">}<br />
</span></p>

<p class="sayac_bilgi">614 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2010/01/23/c-ile-programlamaya-giris-final-sinavi-cozumleri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

