Genelde bir programlama dili ögrenilirken ilk yazilan aktif program ekrana "Merhaba Dünya" yazdiran programdir.Bu o kadar klasiklesmistir ki neredeyse bir standart haline gelmistir.Bende bu kurali bozmak istemiyorum.Iste "Merhaba Dünya" programinin kodlari...
Program merhaba;
begin
write ('Merhaba Dunya');
readln;
end.
Derleyip çalistirin sonucu göreceksiniz.Burada write komutu parantez ve tirnak isaretleri arasindaki stringi(sayi olmayan-alfanümerik) yazdirmaya yarar.Bu da ayni sonucu veren fakat kodu farkli olan bir program.
begin
write ('Merhaba ');
write ('Dunya');
end.
Gördügünüz gibi tirnak isaretleri içindeki boslukta programa yansiyor.Isterseniz o boslugu kaldirip programi derlemeyi deneyin.Merhaba ve Dunya kelimelerinin bitisik yazildigini göreceksiniz."write" komutu tek satira yazi yazmak için kullanilir."writeln" komutu ise stringi yazip imleci bir alt satira atlatir.Asagidaki örnegi inceleyin.
Program merhaba3;
begin
writeln('Merhaba Dunya');
writeln('Merhaba Mars');
writeln('Merhaba Saturn');
end.
"readln" komutu kullanicinin programa girdi girmesine izin verir.Girdi girisi Enter tusuyla sonlandirilir.Bu girdi bir degiskene atanabilir yada hiçbirsey yapmadan kullanicinin Enter tusuna basmasi beklenebilir.Asagidaki örnegi incleyin.
Program readln1;
begin
writeln('Programi sonlandirmak icin Enter tusuna basiniz.');
readln;
end.
Her programlama dilinde degiskenler vardir. Degiskenler programlamada hayati önem tasir. Degiskeni program içinde bir degeri ya da bilgiyi tutan bir birim olarak ifade edebiliriz. Bu bölümde degiskenleri tüm tipleriyle çok ayrintili ve bol örnekli anlatacagim. Ayrica sabitler, tipler ve labelleri de ögrenecegiz. Adindan da anlasilabilecegi gibi degiskenlerin degeri program içinde istenildigi kadar degistirilebilir. Bir degiskenin bir adi, tipi ve degeri vardir. Degisken adi olarak istediginiz ismi verebilirsiniz. Degiskenin tipini ise programinizin basinda var deyimi ile tanimlamak zorundasiniz. Var Deyimi:
Programda kullanacagimiz bütün degiskenleri programin basinda tanimlamak ve cinsini (sayi mi, yazi mi.. gibi) belirtmek zorundayiz. Her programlama dilinde buna gerek olmayabilir ama Pascal'da bu is mecburidir. Degiskenlerimizi Var deyiminde sonra tanimlamamiz gerekir. Var deyimi bir komut olmadigindan sonuna noktali virgül konulmaz. Genel kullanim sekli:
Var
degisken: degisken_tipi;
seklindedir ve Pascal'da program yapisi dersinde gördügümüz yerde kullanilir. Degisken tiplerini görürken bu deyimin kullanilisini görecegiz. Merak edenler için söyleyim: Var kelimesi Ingilizce Variable kelimesinin kisaltilmisidir ve degisken ya da kisaltma anlamindadir.
Degisken Tipleri
Pascal'da her degiskenin bir tipi olmak zorundadir. Bir degisken programin basinda hangi tipte tanimlandiysa programin sonuna kadar o tipte bilgi saklayabilir ve o degiskene o tipten baska bir tipte veri atanamaz, eklenemez. Yani mesela sayi tipinde bir degiskene "kalkan" degeri atanamaz. Bu durumda program hiç çalismaz ve Pascal editörü hata verip o yanlisligin yapildigi degiskene imleci getirip hata uyarisi yapar. Simdi Pascal'da kullanabilecegimiz degisken tiplerine bakalim.
Sayisal Degiskenler:
Adindan da anlasilacagi gibi degeri bir sayi olabilen degiskenlerdir. Bu degiskenler bir sayiyi tutarlar. Ayrica matematiksel islemlerde de kullanilabilirler. Birkaç çesidi vardir. Öncelikle sayisa degiskenleri ikiye ayirmak gerekir. Birncisi tasayilar ve ikincisi gerçek (ondalikli) sayilar. Tam sayilarin ve ve gerçek sayilarin da kendi aralarinda siniflari vardir.
Tabloda tip adi dedigimiz sey var deyimiyle kullanacagimiz ad, sinirlari o sayisal degikenin alabilecegi degerlerin siniridir. Yani byte tipinde bir degiskenin degeri 256 olamaz. Buna göre bizim isimize hangisi yariyorsa onu kullanabiliriz. Kapladigi alan ise bu degisken için hafizada kullanilan alanin byte cinsinden degeridir. Programlarimizin hafizada (hard-disk'te degil) az yer kaplamasi daha iyidir. Bunun için gereksiz yere longint degiskenini kullanmamamiz iyi olur. Çünkü pascalda en fazla 64 kilobyte'lik (yaklasik 64000 byte) degisken kullanabiliriz. Hemen bunlarla ilgili birkaç örnek program yapalim.
Örnek 1: Bu program 2 sayiyi toplar ve sonucu ekrana yazar. Simdilik ekrana nasil yazdigimizin üzerinde durmayalim ama zaten sizin de anlayacaginizi düsünüyorum.
Program Toplama_Denemesi;
Uses Crt;
Var
sayi1,sayi2: integer;
toplam: integer;
Begin clrscr;
sayi1:=19;
sayi2:=81;
toplam:=sayi1+sayi2;
write('Bu sayilarin toplami=',toplam);
readln;
end.
Bu program ekrana 100 yazar. Çünkü toplam isimli degiskenimizin son degeri 100'dür. Burada readln komutu enter'a basilmasini bekler. Bunu daha sonra görecegiz. Write ise ekrana birseyler yazar. Bunu da ayrintili olarak inceleyecegiz. Clrscr ise ekrani temizler. Simdilik görmemiz gereken atama islemleri, yani bir degiskenin degerini degistirme ve degiskenleri tanimlama. Gördügünüz gibi 3 tane degiskenimiz var ve bunlari iki satirda tanimliyoruz. Hepsinin tipi de ayni oldugu için üç degiskenimizi birden
Var
sayi1, sayi2, toplam: integer;
seklinde topluca ya da üçünü de ayri ayri tanimlayabiliriz. Bu sizin keyfinize kalmis.
Örnek 2: Bu program da kullanicidan (yani sizden) aldigi iki sayiyi çarpip ekrana yazar:
Program Carpma_Denemesi;
Uses Crt;
Var
a, b, c: integer;
Begin clrscr;
write('Birinci sayiyi giriniz:');
readln(a);
write('Ikinci sayiyi giriniz:');readln(b);
c:=a*b;
writeln('Sonuç=',c);
readln;
End.
Gördügünüz gibi ilk önce a ve b degiskenlerinin degeri kullanicidan aliniyor, sonra c degiskeninin degeri a ile b'nin çarpimi olacak sekilde hesaplanip ekrana yazdiriliyor. Burada readln(degisken_adi); komutunu daha sonra anlatacagiz. Simdilik kullanicidan bir bilgi almak amaciyla kullanildigini bilseniz yeter. Pascal'da ayni satira birden çok komut yazilabilecegini ve büyük-küçük harf ayrimi olmadigini tekrar hatirlatiyim.
Örnek 3: Son olarak sizin kaç yasinda oldugunuzu bulan basit bir program yapalim:
Program Yas_Bul;
Uses Crt;
Var
simdiki_yil, dogum_yili: integer;
yas: byte;
Begin clrscr;
write('Kaç yilinda dogdunuz: ');readln(dogum_yili);
write('Simdi hangi yildayiz: ');readln(simdiki_yil);
yas := simdiki_yil - dogum_yili;
writeln('Siz su anda ',yas,' yasindasiniz!');
Readln;
End.
Gördügünüz gibi simdiki_yil ve dogum_yili degiskenlerini integer yaparken yas degiskenini byte yaptik. Çünkü 255 yasindan daha büyük insan olamaz. Bu durumda bosyere onu da integer yapip hafizada yer isgal etmeyelim. Iyi bir programci olmak için bunlara dikkat etmeliyiz. Yine iyi bir programci olarak degiken isimlerimizi anlamli ve mümkün oldugunca kisa ve o degiskenin içerigi ile alakali yapalim. Program içinde hata yapmamak için bunlar gerekli. Çünkü degiskenlerimize d1, d2, d3, d4... gibi isimler verirsek sonra hangisinin içerigi ne onu karistirabiliriz. Degisken isimlerinin uzunlugu yanilmiyorsam 50 karekter kadar olabilir ve bosluk içeremez, sayi ile baslayamaz. Bu arada crt uniti ise clrscr komutunu kullanmak için gereklidir ve Pascal'in hazir unit'lerindendir (Unit'in ne oldugunu simdilik bosverin!).