iPhone kullanıcıları, PC World Türkiye iPhone uygulaması yayında... Detaylar için tıklayın.
bul.pcworld.com.tr/
İNCELEMELER
Ürün inceleme kategorileri:
Ücretsiz Haber Postası
Haftalık ve aylık bültenlerimize üye olun, bilişim dünyasındaki tüm yenilikleri ilk siz öğrenin.
PC World Türkiye
11 Nisan 2009 / 02:44
Yaşasın, Toplattırabileceğim!
(PcWorld Dergisi, Ekim 2006)

Çarpıcı Bir Giriş: İki sayıyı toplatma programını hangi “dil” ile yazalım?
Anlatıma Müdahale Etmeme İsteği: Bilmem ki… En iyisi siz karar verin.
Karar: Evvela bu işin algoritmasını yazalım.
Karara Cevap:  Aman! Siz başka meseleye girmeden ben hem açıklayayım hem yazayım algoritmasını: Toplama iki sayı arasında gerçekleşen bir işlem olduğuna göre iki sayıyı tanımlamalı (reel sayı, tamsayı, vb.) sonra bu sayılar öğrenilmeli ve onların toplamını bir değişkene atmalı.

Adım 1: SAYI1 ve SAYI2’yi tanımla.
Adım 2: Birinci sayıyı öğren ve SAYI1 değişkenine ata.
Adım 3: İkinci sayıyı öğren ve SAYI2 değişkenine ata.
Adım 4: TOPLAM=SAYI1+SAYI2
Adım 3: Verdiğiniz sayıların toplamı: TOPLAM’dır.

Cevabın Eksiklerini Beyan Etme ve Kodlamaya Geçiş ve Büyük An: Maşallah. Unutkanlık diz boyu. Tüm değişkenlerin tanımlanması gerektiğini söylemiştik, değil mi? Burada Toplam değişkenini tanımlamayı unuttunuz ama neyse. Ve işte bu programı derlemek için gereken Pascal kodları:

VAR // Tanımlamalar
Sayi1, Sayi2, Toplam: integer;

BEGIN
Write(‘Birinci sayıyı giriniz:”);
Readln(Sayi1); // Bu komutu gören derleyici ekrana sayı girileceğini ve bu sayının değişken isminin Sayi1 olduğunu anlıyor.
Write(‘İkinci sayıyı giriniz:”);
Readln(Sayi2);
Toplam:=Sayi1 + Sayi2;
Writeln(‘Aradığınız toplam= ’,Toplam);  // Bu komutu gören derleyici, ekrana Toplam değişkeninin değerini yazdıracağını anlıyor.
Readln;
END.

Garip Bir Soru: Kelimeler Türkçe veya İngilizce ama genel itibariyle bunlar bana Çince gibi göründü muhterem öğretmenim?
Hatırlatmalar: Söylemek gerekir ki biz bu köşede ne Pascal ne de C ne de başka bir dilin grameri ile ilgili olarak anlatımlarda bulunmayacağız. Yani bir program hangi kısımlardan oluşur, bu kısımlarda değişken tanımlamaları nasıldır, gibi konularla ilgilenmeyeceğiz. Amacımız, hazırladığımız algoritmaların uygulamasını deneyip görmek isteyenlere rehberlik etmek.
Hatırlama: Evet, hatırladım.
Konuya Devam: O halde, konumuza dönebiliriz. Şimdi de C dilinde aynı işi yapan programı yazalım!

#INCLUDE <stdio.h>

MAIN()
{
int Sayi1, Sayi2, Toplam; // Tanımlamalar                                           
Printf(“Birinci sayıyı giriniz:”);
Scanf(“%d”, &Sayi1);  // Bu komutu gören derleyici ekrana sayı girileceğini ve bu sayının değişken isminin Sayi1 olduğunu anlıyor.
Printf(“\n İkinci sayıyı giriniz:”);
Scanf(“%d”, &Sayi2);

Toplam=Sayi1+Sayi2;
                     
Printf(“Aradığınız Toplam= %d”, &Toplam);    // Bu komutu gören derleyici, ekrana Toplam değişkeninin değerini yazdıracağını anlıyor.
}

Garipsemenin Devam Ettiğine Dair Belirtiler: Hmm… Evet… Ne güzel!
Hızını Alamayan Programcı Misali: Şimdi de PHP ile yazalım!

<?PHP
$Sayi1=10;
$Sayi2=20;
$Toplam=&Sayi1+&Sayi2;

print (“Aradığınız Toplam= ”. $Toplam);
?>

Meraklı Bekleyiş Belirtileri: Hmm… Eee? Daha daha?
Hızlı Programcı Durdurulamaz: ASP’ye ne dersin?

<%
Dim Sayi1, Sayi2, Toplam  // Tanımlamalar
Sayi1=10
Sayi2=20
Toplam=Sayi1+Sayi2

Response.Write “Aradığınız Toplam= ”
Response.Write Toplam
%>

İlginç Bir Soru: Bir şeyi merak ettim, ilk iki kod örneğinde sayıyı öğren diye bir şeyler vardı ama son ikisinde yok. Hatta onun yerine bizzat sayılar var. Neden?
Tebrik Ve Açıklama: Bu soruyu sorduğun için teşekkür ederim. Ben de acaba bununla ilgili açıklamayı nerede ve nasıl yapsam diye düşünüyordum, kurtardın beni bu dertten! Pascal, C vb. dos tabanlı programlama dillerinin bilgi girdisi ve çıktısı, derlenmiş EXE programı çalıştırdığımızda açılan DOS penceresinde yapılır ve başka bir nesneye gerek duyulmaz. Bu yüzden girdiyi kullanıcıya isteğine kolayca bırakabildik. Fakat PHP, ASP vb. web programlama dillerinin bilgi girdisi ve çıktısı internet sayfalarını gezmeye yarayan internet tarayıcılarında (browser) yapılır. Hazırladığınız php ve asp kodlarını bu tarayıcılarda çalıştırdığınızda ilk bölümdeki programlarda olduğu gibi ekrana giriş yapamazsınız. Bu tür girişler için TEXTBOX adı verilen ek nesnelere ihtiyaç duyulur. (Mesela kullanıcı adı ve parola kutuları gibi)  İsteseydik öncelikle bu textboxların yer aldığı bir form hazırlar, daha sonra bir buton yardımı ile bu formun içindeki değerleri toplayabilirdik!

Gidişata Dair Bir Soru: Peki şimdi ne yaptık biz? Bu kodlar da neyin nesi?
Gidişata Yön Veren Soruya Yönünü Gösterme: Biz şu ana kadar dört dilde toplama yaptık. Öncelikle belirtmek gerekir ki buradaki denemeler için elinizde Pascal ve C programı dili programları veya Php ve Asp destekleyen bir sunucuya ihtiyacınız olmalı.

Pascal ve C (Turbo) programlarını  http://www.freepascal.org/ ve http://community.borland.com/museum/ adreslerinden, bedava ASP desteğini http://www.brinkster.com/hosting/FreeDeveloper.aspx adresinden, bedava PHP desteğini http://www.tripod.lycos.co.uk/ adresinden temin edebilirsiniz.

İlgili yönergeleri izleyerek pascal ve c programlarını kurunuz. Üstteki kodları ilgili dillerde yazınız, noktasına virgülüne kadar! Daha sonra da derleyicinin COMPILER veya RUN menüleriyle kodu derleyiniz.  Php ve Asp kodları içinse, yukarıdaki sitelere üye olduktan sonra php ve Asp metin editörlerine yine karşılık gelen kodları yazınız. Daha sonrada kaydettiğiniz dosyaları internet tarayıcılarınızda açınız.

10 ve 20 sayıları için deneme yaptığınızda ekran görüntüleri şöyle olacaktır:

Pascal ve C için;
Birini Sayıyı Giriniz: 10
İkinci Sayıyı Giriniz: 20
Aradığınız Toplam = 30_ 

Sorulması Gereken Bir Soru: Muhterem öğretmenim, bir yanlışlık olmasın? Dört tane olmayacak mıydı? Farklı kodlar yazdık biz. Karşımıza aynı şey mi çıkıyor?
Verilmesi Gereken Cevap: Bravo! İşte fark etmemiz gereken şey de budur! Kaç aydır dönüp dönüp söylediğimiz şey budur! İşte bu beklenen müthiş andır. Ne mutlu ki Allah bize bugünleri gösterdi.

Hangi programlama dili ile kodlarsan kodla, neticede esas olan algoritmadır ve farklı dillerde yazılan bu kodların hepsi aynı çıktıyı verir. Değişen, programlama dillerinin gramerleri ve bu gramerlerin birbirlerine göre üstün oldukları yanlarıdır.

Mesela burada Pascal ve C ile yazdığımız kodları incelersek; Programda kullanacağımız değişken tanımlamaları Pascal’da VAR ile başlayan bir bölümde yapılmışken C’de böyle ayrı bir bölüm yok. Değişken tanımlamalarını yaparken Pascal’da önce değişken ismini sonra değişken tipini yazıyorken C’de bu işlem ters. Pascal’da tip belirtirken “Integer” yazarken C’de “int” yeterli olmuş. Pascal’da değer atama işleminde “:=” sembolü kullanılırken C’de “=” yeterli olmuş. Hemencecik anlıyoruz ki sayı öğrenmeyi ifade eden ve sonuç yazdırmayı yarayan deyimleri de farklı. Hem bu deyimler farklı hem de deyimlerin yapıları farklı!

Php ve Asp’yi de benzer şekilde inceleyebiliriz. Örneğin birinde değişken ismi önüne “$” gelirken diğerinde gelmiyor.

Php ve Asp’nin Pascal ve C’den  farklı olan benzerlikleri ise tanımlama yaparken özellikle “Tam Sayı”, “Karakter”, … gibi ayrımlara gerek olmaması. Php ve Asp’de bu tip farklılıkları ilk değerin ataması esnasında yapılıyor. A=100 dersek sayı, A=”100” dersek karakter dizisi olarak algılanıyor. Neyse, bu konumuz değil.

O halde diyebiliriz ki, eğer algoritma kurabiliyorsak herhangi bir programlama dilini öğrenmek bizim için çok vakit almayacak bir iştir. Biz uygulamalarımızı deneyebilmeniz adına bundan böyle Pascal ve Php dillerinde kod örneklerini sizlerle paylaşacağız.

Minnettarlık: Hmm… Yavaş yavaş bir şeyler kapmaya başladım galiba. Teşekkür ederim.
Konuya Devam: Şimdi hesap makinemizi geliştirebiliriz.
Yerin Bittiğine Dair Bir Mesaj: Tabi tabi… Öyledir.



Bu yazıya henüz yorum yapılmamış.
PCW Online Ziyaretçisi ismiyle bu yazı hakkında benim de söyleyeceklerim var:

Yorumlarınızın kendi isminiz ve resminizle hemen yayınlanmasını istiyorsanız, siteye üye olabilirsiniz.



PC World Galeriden



Bloglar: Haftanın En Çokları