13 Ocak 2010 Çarşamba

Program yazmaya başlayalım...

Çok uzun bir ara versekte tekrar başlayıp, en iyi yerlere gelmeye çalışacağız. Şimdi bir önceki yazımda algoritmaya değinmiştik. Tabi bu işler 30 satırlık bir yazı ile ne anlatılır ne de anlaşılabilir. Onun için örnekler ile bunu pekiştirmeye çalışacağız.

Örneğimize daha doğrusu problemimize gelince;

Elimizde bir kova mavi boya ve bir kova kırmızı boya(aynı boyutlarda) var. Bunları yer diğiştirmek..

Şimdi çözüme geçelim.

Hafif bir analiz yapalım;
Şimdi bunları yerdeğiştirmek için bir tanesini boşaltmamız gerekmez mi? Evet gerekir ama bunu toprağa dökmek yanlış olur herhalde? O zaman bu işlem için üçüncü kovaya ihtiyaç duyarız.

Şimdi mantığımızı toplayalım;
2'si dolu olmak üzere 3 tane kovamız var. 1. kovayı alıp 3. kovaya dökelim. Sonra da 2. kovayı 1. kovaya dökelim. Şimdi 2. kovadakini 1. kovaya yerleştirmiş olduk. 3. kovamızdakinide 2. kovamıza döktükmüydü bu işlem tamamlanmış olur.

Şimdi bunun kodlarını yazalım.

C# için kod parçacığı;
string tempKova = string.Empty; // 3. kovamızı oluşturduk.

tempKova = txtKova1.Text;
txtKova1.Text = txtKova2.Text;
txtKova2.Text = tempKova;

C için kod parçacığı;
char kova1, kova2, kova3;
kova1='S';
kova2='O';
kova3=' ';
printf("1. Kova=%c\n",kova1);
printf("2. Kova=%c\n",kova2);
printf("3. Kova=%c\n",kova3);
kova3 = kova1;
kova1=kova2;
kova2=kova3;
printf("Yer degistikten sonra...\n");
printf("1. Kova=%c\n",kova1);
printf("2. Kova=%c\n",kova2);
printf("3. Kova=%c\n",kova3);

burda dikkat etmemiz gereken 2 kodda da değişken tipleri aynı olmalıdır. Aksi takirde taşma ya da tip uyuşmazlığı olabilir.

Eğer bu sorunu örneğimize uygularsak;
3. kovamızın 1. kovamızdan küçük olduğunu düşünelim. Taşan kısme elimizde tutamayız değil mi? ya da 2. kovamız delikli olsun yine istediğimiz sonucu alamayız.

Şimdilik kodlar üzerine kafa yormayın eğer bilmiyorsanız. Onlara daha sonra değineceğiz...

Not: Hiç bir programın yapılış tarzı tek değildir. Farklı yapılabilir.

Hepinize bol kodlu günler..

Hiç yorum yok:

Yorum Gönderme