menü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
menü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Pascal Editörü File Menüsü

File Menüsü:

TP (Turbo Pascal, bundan sonra TP diye bahsedecegim) editörünün üstteki menülerinin ilkidir. En çok kullanacagimiz menü bu menü olacak. Bu menüyü açmak için alt tusuna basili tutarak F tusuna basin. Tüm menüleri için aslinda bu böyledir. Ya da F10 tusuna basarak da menü çubuguna geçebilirsiniz. Ayrica mouse kullanarak da bu menüyü açabilirsiniz. Simdi bu menüde yapabilecegimiz islemlere bakalim:

New:

Bu komutla yeni ve bos bir sayfa açariz. Open: Daha önceden kaydettigimiz dosyalari tekrar açip düzenlemek ya da görmek gibi amaçlarla açmak için kullanilir. Açilan program yeni bir pencerede açilir. Kisayol tusu F3'dür.

Save:

Yazdiginiz programlari bilgisayariniza kaydetmeniz lazim. Bu seçenegi seçerek ya da kisayol olarak F2 tusuna basarak programlarinizi kaydedebilirsiniz. Kaydetme isiniz çi sik yapmanizi tavsiye ederim. Yoksa bütün emekleriniz bir elektrik kesilmesi yada yanlis bir-iki tusa basmakla gidebilir.

Save as:

Üstünde çalistiginiz program kodunu farkli bir dosya olarak kaydetmek için kullanilir.

Save all:

O anda üstünde çalistiginiz bütün programlari birden kaydtmenizi saglar. Isinize yarayacak bir komut.

Change dir:

TP'i çalistirdiginizda otomatikmen turbo.exe dosyasinin bulundugu dizin esas alinir. Yani bir dosya kaydedrken veya açarken hep o dizin ilk olarak karsiniza gelir. Baska sebeplerden dolayi da eger yeni bir program yazmaya basliyorsaniz ilk önce bir klasör açin ve pascal'i açinda bu seçenekle o klasörü seçip bütün islemlerinizi orada yapin. Yani bu seçenek aktif klasörü degistirmeye yarar.

Print:

Yazdiginiz programi yazicidan çikartmak için bunu kullanabilirsiniz. Eger yaziciniz dogru çalisiyor ve açiksa yaptiginiz programlari yazicidan düzgün bir sekilde çikarir.

Printer Setup:

Yazici ayarlarini yapmak için. Eger yaziciniz dogru oldugu halde yazicidan programi çikaramiyorsaniz buradan gerekli ayarlari yapabilirsiniz.

Dos Shell:

Geçici olarak MS-DOS'a çikmak için kullanilabilir. Tekrar TP'a dönmek için Exit yazmaniz gerekir. Ama bu komut artik pek ise yaramiyor. Çünkü dos degil Windows var. Yine de dos kullanmayi biliyorsaniz yeni dizin açmak gibi ufak islerinizde kullanabilirsiniz.

Exit:

Pascal editöründen çikmak için. Alt tusu ve x'e birlikte basarak da ayni isi yapilir.


Pascal Editörü Edit Menüsü

Edit Menüsü:

En çok kullanilan menülerden birisi de Edit menüsüdür. Ancak genelde direk menüyü kullanmayiz, onun yerine kisayol tuslarini kullaniriz. Gördügünüz gibi neredeyse herseyin bir kisayol tusu var. Undo: En son yaptiginiz degisikligi iptal eder, geri alir. TP'da çok fazla sayida (neredeyse sinirsiz) geri al yapabilirsiniz. Bu sekilde yaptiginiz yanlisliklari görmek ve iptal etmek çok kolaydir. Kisayol için Alt tusu ile birlikte Backspace tusu kullanilir. Redo: Yanlislikta Undo yaparak iptal ettiginiz islemleri terkar düzeltir, yani bu da ileri alir. Cut: Kes manasindadir. Bir yaziyi isaretleyip bu seçenegi seçer ya da Shift tusuyla beraber Delete tusuna basarsaniz isaretli yazi silinir ve hafizaya alinir. Daha sonra bunu istediginiz biryere yapistirabilirsiniz. TP'da bir metini isaretlemeyi ya mouse ile ya da shift tusuna basili tutarak yön tuslariyla yapabilirsiniz.

Copy:

Bir yaziyi isaretledikten sonra bu komutu çalistirisaniz ya da kisayolu olarak Crtl ile birlikte Insert tusuna basarsaniz yaziya birsey olmaz ama bir kopyasi hafizaya alinir.

Paste:

Kopyaladiginiz ya da kestiginiz metinleri herhangi biryere yapistirmak/eklemek için kullanilir. Koplayanlis ya da kesilmis yazi imlecin bulundugu yerden itibaren ekrana yazilir. Shift ile birlikte Insert tusuna basarsaniz da ayni isi yapabilirsiniz.

Clear:

Bir yaziyi isaretleyip tamamen silmek için kullanilir. Kisayolu Ctrl+Delete.

Show Clipboard:

Kopyaladiginiz ve kestiginiz tüm yazilar clipboard denilen ve hafizada biryerde tutulur. Bunlarin hepsini birden görmek için kullanabileceginiz bu seçenek yeni bir pencere açar ve bunlari gösterir.

Pascal Editörü Run Menüsü

Run Menüsü:

File menüsü ile birlikte en çok kullanilan menüdür.

Run:
Yazdiginiz programi çalistirmak için kullanilir. Eger programinizda yazim hata varsa çalismaz ve bu hatayi olusturan satira gidilip beklenir. Kisayolu Ctrl+F9.

Step over:
Programi satir satir çalistirmayi saglar. Procedure ve Functionlari satir satir degil toplu halde çalistirir. Kisayol tusu F8.

Trace Into:
Programin tamamini satir satir çalistirmak içindir. Bu sekilde hata yapilan yeri görebilirsiniz ama özellikle büyük programlarda pek ise yaramaz. Kisayol tusu F7.

Go to Cursor:
Programi imlecin (Cursor'un) bulundugu yere kadar çalistirir ve oraya gelindiginde programin koduna geri döner. Devam etmek için yukardakilerden birisini kullanabilirsiniz. Kisayolu F4.

Program reset:
Pascal'da bir programda hatali bir is yaptiysaniz ve program sona ermiyorsa Ctrl ve Pause tuslarina birlikte basarak programi durdurabilirsiniz. Durdurdugunuz programi tekrar çalistirirsaniz kaldigi yerden devam eder. Eger en bastan baslamasini istiyorsaniz programi resetlemenize lazim. Bu islem onu yapar. Kisayol tusu olarak Ctrl'ye basarken F2'ye basabilirsiniz.

Paramaters:
Bazi programlar çalisirken parametre ile beraber çalisir. Eger böyle bir parametreli program yaptiysaniz o zaman buraya istediginiz parametreleri girebilirsiniz. Bu konuya daha sonra deginiriz.

Degişkenler

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.
Değişken 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. Ilk önce tamsayi tiplerinden baslayalim. Tamsayi tiplerini hemen bir tabloda verelim:

Tip adiSinirlari
Kapladigi alan
Shortint-128..127
1 byte
Byte0..255
1 byte
Integer-32768..32767
2 byte
Word0..65535
2 byte
Longint-2147483648..2147483647
4 byte

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.

Sayisal Degişken Örnekleri

Ö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.
Toplama_Denemesi;
Uses Crt;

sayi1,sayi2: integer;
toplam: integer;
clrscr;
sayi1:=19;
sayi2:=81;
toplam:=sayi1+sayi2;
write('Bu sayilarin toplami=',toplam);
readln;

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!).

Set (Küme) Tipi:

Ayni tipte ve birbiriyle ilgili bilgilerin, verilerin olusturdugu topluluga küme denir. Mesela 0 ile 9 sayilarindan bir küme olusturabiliriz. Ama bu kümenin içinde "A" harfi geçemez. Çünkü "A" sayi degildir. Kümenin elemanlari birbirinden virgül yardimiyla ayrilir. Mesela birkaç küme örnegi verelim:
['Ali', 'Ahmet', 'Süleyman', 'Halil Ibrahim']
[0,1,2,3,4,5,6,7,8,9]
['E', 'e', 'H', 'h', #27]

gibi kümeler olabilir. Eger kümenin elemanlari birbirini takip eden cinsten ise aralarina virgül koymak yerine ilkini yazip ardindan .. koyup sonuncusunu yazabiliriz. Mesela
[0..9]
['A'..'Z', 'a'..'z']

gibi. Ilki olan [0..9] ile bir önceki örneklerde olan ve 0'dan 9'a kadar olan bütün tamsayilarin yazildigi örnegin hiçbir farki yoktur. Kümeler böyle ama bunlari Type blogunda söyle tanimlariz:
Type
harfler = Set of ['A'..'Z', 'a'..'z'];
rakamlar = Set of [0..9];
cevaplar = Set of ['EVET', 'HAYIR']

Bu sekilde tanimlanan kümelerin nasil kullanilacagini sonraki konularda örneklerin içerisinde görecegiz. Ayrica kümeler üzerinde kesisim (*), Birlesim (+), Fark (-) ve iliski (=, <>, <=, >=, in) islemleri yapilabiir. Özellikle 'in' isleminden çok faydalanacagiz. Kümelerin içerisinde ayni eleman yanlizca bir kez kullanilabilir ve öncelik sirasi yoktur. Simdi küme ile ilgili bir program yapalim. Simdilik bunda anlamayacaginiz yerler olabilir:
Program Kume_Denemesi;
Uses Crt;
Label
en_bas;
var
tus:char;
Begin
en_bas:
tus:=readkey;
Clrscr;
if tus in ['0'..'9'] then begin
writeln('Bastiginiz Rakam: ',tus);
goto en_bas;
end else begin
clrscr;
writeln(tus,' bir rakam degil!');
end;
readln;
End.

Bu programi TP'da yazip çalistirdigin ve klavyenizde rakamlara basin. Bastiginiza rakam ekranda gözükecektir. Çikmak için rakam hariç bir tusa (herhangi bir harfe) basmalisiniz. Programda daha ögrenmedigimiz komutlar var. Ama kalin yazili olan yere dikkat ederseniz küme'nin en sik kullanildigi yer göreceksiniz. Burada basilan tusun 0 ile 9 arasinda bir rakam olup olmadigi, baska bir degisle basilan tusun 0'dan baslayip 9'da biten elemanlardan olusan bir kümenin içinde olup olmadigi kontrol ediliyor. Eger dogru ise ekrana bu rakam yaziliyor degilse (yani bu sart yanlis ise) basilan tusun bir rakam olmadigi yaziliyor ve enter'a basilmasi bekleniyor.

WRITE / WRITELN


Programlamanin en genel amaci kullanicidan bazi degerleri alip birtakim -önceden programci tarafindan belirlenmis- islemlerden geçirilip sonuçta bulunan degeri ekrana yazmak oldugu için her programlama dilinde kullanicidan veri alma ve ekrana veri yazma deyimleri vardir. Pascal'da kullanicidan read ya da readln komutlariyla veri alinir ve ekrana write ya da writeln komutlariyla yazilir.
Write/Writeln:
Ekrana bir seyler yazmak için kullanilir. Bu sey sabit bir yazi olabilecegi gibi bir degisken de olabilir. Bu durumda degiskenin kendisinin adi degil, degeri yazilir. Ya da direkmen bir islemin sonucu da yazdirilmak istenebilir. Hatta bunlardan iki ya da daha fazlasini da birlikte yazdirabiliriz. Ilk önce ekrana sabit bir yazi (yazi diyoruz ama sayi ya da isaret de olabilir) yazdirmak için kullanimina bakalim. Bu durumda Write(ifade); gibi kullanilir. ifade yerine iki apostrof isareti arasinda bir seyler yazilabilir. Örnegin write('www.kalkan.cjb.net'); gibi. writeln(www.kalkan.cjb.net); gibi degil! Çünkü www.kalkan.cjb.net bir degisken adi degildir (ve olamaz da..). Bununla ilgili küçük bir uygulama yapalim:
Proram uygulama01;
uses crt;
begin clrscr;
writeln('Yarasa');
write('Web Sitesi:');
writeln('www.programlamadili.blogcu.com');
write('E-mail adresi: programlamadili@yahoo.com');
readln;
end. 

Bu program her zaman ayni sonucu verir. Burada belki fark etmissinizdir write ile writeln'in farkini. Write istenen ifadeyi yazip en sonunda bekler, writeln ise bir alt satirin basina gider ve orada bekler. Bekler dedigim sey imleçtir. Siz yazi yazarken yanip sönen o seye imleç denilir ve Pascal'da bir sey yazmak istediginizde imlecin bulundugu yerden itibaren yazilir. Ekranin istedigimiz bir yerine yazi yazdirmayi da anlatacagiz. write ve writeln komutlarinda bir degil de birden fazla ifade de verebilirsiniz:
Program uygulama02;
uses crt;
begin clrscr;
writeln('Yarasa');
writeln('Benim sitem:','www.programlamadili.blogcu.com');
readln;
end. 

..gibi. Gerçi burada pek isimize yaramiyor. Direkt olarak da yazdirabiliriz. Simdi de bir degiskenin degerini yazdiralim. Bunu da write(degisken); seklinde yapariz. Eger write(degisken1, degisken2, degisken3); seklinde 3 adet degiskeni yazdirirsak hepsi ard arda ve bosluk birakilmadan yazilir.
Örnek:program uygulama03;
uses crt;
var
ad, site: string;
sayi, karesi:longint;
begin clrscr;
sayi:=13;
karesi:=sayi*sayi;
ad:='Yarasa';site:='www.programlamadili.blogcu.com';
writeln(ad);
writeln('web sitesi ', site);
writeln(sayi,'->', karesi);
readln;
end.

Gördügünüz gibi sabit ifade ile degisken de ayni write komutuyla kullanilabiliyor. Bu arada write('web sitesi ',site); ile write('web sitesi ', site); komutunun Pascal için hiçbir farki yoktur. Yani -ilk baslarda da anlattigim gibi- Pascal'da bosluklar önemli degildir (tirnak içindekiler hariç). Mesela a:=b+c; ya da a := b + c; yazabilirsiniz. Bu sizin keyfinize kalmis. Ikisi de ayni isi apar. Hatta
a:=
b
+
c;

olarak 4 satir halinde yazsaniz da ayni isi yapar ve hiçbir hata olmaz. Bir de write komutuyla bir islem de yaptirabilirsiniz. Mesela yukaridaki programda karesi degiskenini kullanmadan programi söyle yazabiliriz:
program uygulama04;
uses crt;
var
ad, site: string;
sayi:longint;
begin clrscr;
sayi:=13;
ad:='Yarasa';
site:='www.programlamadili.blogcu.com';
writeln(ad);
writeln('web sitesi ', site);
writeln(sayi,'->',sayi*sayi);
writeln('15 x 3 = ', 15*3);
readln;
end. 

Programa bir writeln daha ekledik. Gördügünüz gibi writeln komutuyla islemin sonucunu da yazdirabiliyoruz. Bunu da inceleyin. Eger write ile bir sayi yazdiracaksaniz sayilara özel olarak write(82); ile write('82'); ayni isi yapar ve sorun çikartmaz. Ama write('Ahmet'); ile write(Ahmet); ayni degildir. Birincisinde ekrana Ahmet yazar ama ikincisinde Ahmet adli bir degiskenin olup olmadigina bakar, eger varsa degerini ekrana yazar, ancak böyle bir degisken daha önceden (var etiketi ile) tanimlanmamissa program çalismaz. Onun için tirnaklara dikkat edin.

If ...Then ... Koşul Yapısı

Programlamanin en zevkli yani bir seyleri karsilastirip sonucuna göre bir islem yapmak ya da yapmamaktir diyebilirim. Aslinda programlama da zaten budur. Programlamaya ilk baslarken algoritmalar konusunda bir örnek vermistik. Orada "Eger hava yagmurluysa semsiyeni al" demistik. Bu islemi simdiye kadar ögrendigimiz komutlarla yaptirmamiz olanaksizdir.
Karsilastirma ve karar verme islemleri olmasa program ilk satirindan itibaren satir satir çalisir ve en sonunda "End." komutuyla biter. Yani program içerisinde belirli sartlarda programin akisi degistirilemez. Pascal'da (ve neredeyse bütün programlama dillerinde ve ******lerinde) kontrol deyimi if..then..else seklindedir. Ayrica Pascal'da baska kontrol deyimleri de vardir. If...then...else deyiminin genel kullanimi:
if (sart ya da sartlar) then
sart dogruysa yapilacak islem
else
sart yanlissa yapilacak islem

gibidir. Tabii ki hepsi bir satirda da kullanilabilir. Ayrica sartin dogru olmasi (ya da yanlis olmasi) durumunda birden çok islem yaptirilmak isteniyorsa bu islemlerin hepsi begin ile end arasina su sekilde yazilir:
if (sart ya da sartlar) then begin
sart dogruysa yapilacak islemler
end else
sart yanlissa yapilacak islemler
end;

begin ve end;'i birazdan anlatacagim. Simdi çok basit bir örnek yapalim:
Program Deneme;
Uses Crt;
Var
notu:integer;
Begin Clrscr;
write('Matematik Dersinden Aldiginiz Notu Giriniz: ');Readln(notu);
clrscr;
if notu>69 then write('Aferin Geçtiniz!') else write('Malesef Kaldiniz!');
write(readkey);
end.

Bu program sinavdan aldiginiz notu belirli bir islemden geçiriyor ve sonucuna göre bir seyler yazdiriyor. Simdi biraz daha ayrintili görelim. if komutuna kadar olan her seyi daha önce gördük. Readln komutuyla sayisal bir bilgi olan sinav sonucu notu degiskenine aktariliyor. Ondan sonra ekran siliniyor. Sonra su komut var:
if notu>69 then write('Aferin Geçtiniz!') else write('Malesef Kaldiniz!');
Ilk önce bu komutla ne yapilmak istendigine bakalim. Amaç eger notu degiskeninin degeri 69'dan büyükse ekrana 'Aferin Geçtiniz!', eger degilse (yani notu degiskeninin degeri 69'a esit ya da daha küçükse) ekrana 'Maalesef Kaldiniz' yazdirmaktan ibarettir. Yani bu komutun Türkçe meali:
Eger notu degiskeninin degeri 69'dan büyük ise Aferin Geçtiniz! yaz, 
degilse Malesef Kaldiniz! yaz.

notu>69 ifadesini parantez içerisine de yazabilirsiniz. Zaten birden fazla sart varsa parantez kullanmak mecburidir. Dikkat edin write('Aferin Geçtiniz!') ifadesinde noktali virgül yok. Neden? Çünkü komut daha bitmedi. Derslerin basinda "Pascal'da her komutun sonuna noktali virgül konulur" demistim.
Programlamada notu>69 ifadesinin degeri ya TRUE (dogru) olur ya da FALSE (yanlis). Burada notu'nun degeri 69'dan büyükse bu sart TRUE, degilse FALSE olur. Eger Sart true ise THEN ifadesinden sonraki islemler, eger sartin sonucu false ise ELSE ifadesinden sonraki islemler yapilir. Biraz düsünürseniz burada aslinda else deyimi kullanilmadan da program yapilabilir. Nasil mi? Iste böyle:
Program Deneme;
Uses Crt;
Var
notu:integer;
Begin Clrscr;
write('Matematik Dersinden Aldiginiz Notu Giriniz: ');Readln(notu);
clrscr;
if notu>=70 then write('Aferin Geçtiniz!');
if notu<70 then write('Malesef Kaldiniz!');
write(readkey);
end.

Burada sarti 69 yerine 70 yaptik. Bir sey fark etmez. Maksat degisiklik olsun. Bu arada eger write(readkey); de ne diyorsaniz bir önceki konuya göz atin. Gördügünüz gibi
if (notu>=70) then write('Aferin Geçtiniz!');
if (notu<70) then write('Malesef Kaldiniz!');

ile
if (notu>=70) then write('Aferin Geçtiniz!') else write('Malesef Kaldiniz!');
ifadeleri ayni isi yapiyorlar. Tabii ki else kullanmak daha mantikli. if deyimine genel olarak anladiysak (ve kendimiz de biraz örnek yaptiysak) simdi karsilastirma islemlerine bir göz atalim:
IslemAnlami
=Esit. Sagindaki ve solundaki degerler birbirine esit ise sonuç dogru, degilse yanlis olur.
<>Esit degil. Sagindaki ve solundaki degerler esit degilse sonuç dogru, esitse sonuç yanlis olur. Bu islem sayisal olmayan (yani alfasayisla olan) ifadelerde de kullanilabilir.
>Büyüktür. Solundaki deger Sagindaki degerden büyükse sonuç dogru, degilse yanlis olur.
<Küçüktür. Solundaki deger Sagindaki degerden küçükse sonuç dogru, degilse yanlis olur.
>=Büyük esit. Solundaki deger sagindaki degerden büyükse ya da esit ise dogru, degilse yanlis olur.
<=Küçük esit. Solundaki deger sagindaki degerden küçük ya da esit ise dogru, degilse yanlis olur.
inIçerisinde. Solundaki deger sagindaki kümenin içerisinde mevcut ise degeri dogru, degilse yanlis olur.
Buradaki dogru (True) ya da yanlis (False) kavramlarini belirtmistim. Program akisi bunlara göre belirlenir. Simdiye kadar ögrendiklerimizle bir ögrencinin Matematik dersinden 100 üzerinden aldigi sinav notunu 5'lik sisteme çeviren programi yapalim. Beslik sistemin ne oldugunu biliyorsunuzdur:
0-44 arasi 1 45-54 arasi 2 55-69 arasi 3 70-84 arasi 4 85-100 arasi 5
seklindedir. Buradan ögrencilerin 5 alamamasina kizan velilere duyurulur. Simdi programimizi yazalim:
Program Denemedir;
Uses Crt;
Var
yuzluk, beslik:byte;
Begin Clrscr;
write('Matematik sinavinin sonucu (0 ile 100 arasi)..: ');readln(yuzluk);
if yuzluk<=44 then beslik:=1;
if (yuzluk>=45) and (yuzluk<=54) then beslik:=2;
if (yuzluk>=55) and (yuzluk<=69) then beslik:=3;
if (yuzluk>=70) and (yuzluk<=84) then beslik:=4;
if yuzluk>=85 then beslik:=5;
clrscr;
writeln('Yüz üzerinden.....: ',yuzluk);
writeln('Bes üzerinden.....: ',beslik);
readln;
end.

Gördügünüz gibi artik ögrenciler her sinavdan sonra aldiklari notun 5'lik sistemde kaça denk geldigini kara kara düsünmeyecekler. Açacaklar programi yazacaklar notlarini, bilgisayar hesaplayacak :) Bu arada bu and kelimesinin nereden ve neden geldigini anlatacagim, simdiden panige kapilmayin. Bu arada simdiye kadar yaptigimiz programlarimizi EXE yaptiniz mi bilmiyorum. Eger hala denemediyseniz bunu yapin mesela. Açin programinizi ve ilk derslerde anlattigi gibi exe yapin. Muhtelemen exe dosyaniz pascal'in bulundugu dizinde olusacaktir. Ordan bulabilirsiniz. Exe dosyaniz olustugu halde bulamiyorsaniz Baslat menüsünden Bul/Dosya ve Klasörler seçeneginden dosya adini yazarak arayabilirsiniz. Dosyanizi nasil exe yapacaginizi unuttuysaniz "Pascal editörü'nün kullanimi" adli derse bakin. Programi exe yapmayi basardiysaniz Windows'ta çift tiklayarak çalistirabilirsiniz artik. If then else kalibina genel bir giris yaptik. Sidmi devam edelim..
if then else kalibinin genel olarak "if (sart ya da sartlar) then begin islemler.. end else begin islemler.. end;" seklinde oldugunu söyledik. Yani if ile birden çok sarti da sinayabiliriz. Aslinda basta if kalibinin mantiksal karsilastirma oldugunu söylemek gerekirdi ama zaten sizin anladiginizi saniyorum. Yani siz bu if kalibini kullaninca bilgisayara bir mantiksal karsilastirma yaptiriyorsunuz. Bir önceki örnegimizde if ile birlikte iki sart kullandik. Sartimiz söyle idi:
if (notu>=55) and (notu<=69) then beslik:=3;
Burada and kelimesiyle (Türkçe'si "ve" demektir) yanlizca iki sartin da dogru oldugu durumlarda bu islemi yapmasini söylüyoruz. (Bu arada tahmin ettiginiz gibi else'in kullanimi zorunlu degil.) Yukardaki sartin Türkçesi söyledir:
Eger notu degiskeninin degeri 55'ten büyük ya da 55'e esit VE notu degiskeninin 
degeri 69'dan küçük ya da 69'a esit ise beslik degiskeninin degerini 3 yap.

Burada >= ve <= kullandigimizdan cümle biraz karisik oldu. Baska bir örnegi Türkçe'ye çevirelim. Örnegin;
if (notu>54) and (notu<70) then beslik:=3;
Kalibinin Türkçe'si daha sade olur ve yukardaki örnekle aslinda ayni isi yapar (Sayilara dikkat ederseniz bunu görürsünüz):
Eger notu 54'den büyük VE 70'den küçük ise beslik degiskeninin degerini 3 yap.
Yani burada aslinda bilgisayara notu degiskeninin degerinin 55 ile 69 arasinda oldugu durumlardan bahsediyoruz. Zaten notu degiskeninin degeri 54'den büyükse ve 70'den küçükse bunlardan baska bir sayi olamaz. Peki ilk derslerimizde ögrendigimiz Set (yeni Küme) tipinde bir veri kullanarak bunu daha kisa ve anlasilir olarak yapamaz miyiz. Mesela bilgisayara direk olarak "Eger notu 55 ile 69 arasindaysa beslik degiskeninin degerini 3 yap" diyemez miyiz? Deminki örnekte And kullanmistik, burdada Türkçesi içerisinde, içinde anlaminda olan in kelimesini kullanacagiz. Yani notu degiskeninin degerinin "55 ile 69 arasindaki tüm sayilari kapsayan bir küme" içerisinde olup olmadigini kontrol edecegiz. Nasil mi? Iste böyle:
if notu in [55..69] then beslik:=3;
Gördünüz mü ne kadar kisa ve anlasilir oldu! Burada kümemiz [55..69] 'dur. Bunu daha önce anlatmistik. Ama birazdan in ifadesiyle kullanimini özel olarak ele alacagiz. Simdi and ve in gibi diger ifadelerin hepsine bir göz atalim:
IfadeAnlami
ANDVe demektir. Arasina konuldugu iki (ya da daha fazla) sartin hepsinin dogru oldugu durumlarda sonuç dogru, aksi halde yanlis olur.
ORVeya anlamindadir. Arasina konuldugu iki (ya da daha fazla) sartin en az birisinin dogru oldugu durumlarda sonuç dogru, aksi halde, yani hepsi yanlis ise sonuç yanlis olur.
NOTDegil manasindadir. Bir ya da daha fazla sartin soluna konuldugunda sartlarin sonucunun tersini yapar. Yani sonuç true ise false, false ise true olur.
In ifadesi bunlarin içerisine girmiyor. Zaten onu bir önceki sayfadaki tabloda vermistik. Ayrica bir de az kullanilan xor var ama ben simdiye kadar onu hiç kullanmadim. Gerekirse ilerde anlatiriz. Anlami "veya degil"dir.