Pascal Programlama Dili

secim:=readkey; komutuyla basılan tuşu okuyor ve case secim of komutuyla 1,2,3,4 olması durumlarında neler yapılacağını söylüyor programa.4 e basıldığında cikis true oluyor ve program kapanıyor ama 4 e basilana kadar cikis false tur çünkü biz bunu programın başında belirttik.Çok basit bir örnek daha yapalım;

program basit;
uses wincrt;
var
sayi:integer;
begin
writeln('Bir sayi giriniz: ');
readln(sayi);
case sayi of
0..9: writeln('Girdiginiz sayi bir basamaklidir');
10..99: writeln('Girdiginiz sayi iki basamaklidir');
100..999: writeln('Girdiginiz sayi uc basamaklidir');
else writeln('Bu sayi ucten daha fazla basamaklıdır');
end;
end.

Case .. of kalıbıyla birden çok değer için farklı işlemler yapmaya yarar. Önemli olan bu komutu kullanırken girilen değerle var bloğunun altında belirttiğimiz değişkenin tipinin aynı olması gerekmektedir. Örneğin değişken sayı tipindeyse yani integerse 'Z' diye case .. of da bir değer belirtemeyiız. Ya da char yani karakterse 9 diye belirtemeyiz '9' diye belirtmemiz gerekmektedir ki iki yukarıdaki örnekte böyle yaptık.

Pascal'da ifleri bağlıyorduk bunları iç içe de kullanabiliriz.

If a>b then begin {a b'den büyükse}
If a=0 then writeln('b sıfırdan küçüktür'); {a sıfıra eşitse b sıfırdan küçüktür}
if b=0 then writeln('a sıfırdan büyüktür');{b sıfıra eşitse a sıfırdan büyüktür}

Repeat .. until Döngüsü

Bu döngü ile vereceğimiz bir şart doğru olana kadar istediğimiz labele döndürüp işlemi sürekli yaptırırz. Kullanımı ;

Repeat
Islem 1
Islem 2
Islem 3
...
...
Until(sart);

Şart olarak eşitlik olan herşeyi kullanabilirsiniz. Mesela "until 0=1" dersek 0 hiçbir zaman 1 e eşit olamayacağına göre döngü sonsuza kadar devam eder. Şimdi basit bir örnek daha yapalım:

Program deneme;
uses wincrt;
var
a:integer;
begin
clrscr;
a:=0;
repeat
a:=a+1;
writeln(a);
until a=100;
readln;
end.

Bu programın mantığı şöyle: a 100 e eşit oluncaya kadar a ya bir ekle ve bu yeni a değeri olsun ve her yeni a değerini ekrana yazdır.

Bir program daha yapalım. Bu programda da girdiği sayının karesini alsın ama ne zamana kadar girilen sayı 1 olana kadar. 1 girildiğinde program yine 1 in karesini verecek ama sonra kendini kapatacaktır. Eğer bunun sonsuza dek gitmesini istiyorsanız until sayi=1 degil until 0=2 deriz.

Program deneme2;
uses wincrt;
var
sayi:integer;
begin
clrscr;
repeat
writeln('Bir sayi giriniz');
readln(sayi);
writeln('Karesi: ',sayi*sayi);
until sayi=1;
end.

Şimdi bi program daha yapalım bu programda da her enter'a basıldığında çarpım tablosu artıyor. Bu örnekte iç içe döngü kullanıcaz.

Program icice;
uses wincrt;
var
x,y:byte;
begin clrscr;
x:=0;
repeat
x:=x+1;
y:=0; {x ve y'nin ilk değerleri 0 ve her döngüde 1 arttırılıyor.}
repeat
y:=y+1;
writeln(x:2,' x ',y:2,' = ',(x*y):3);
until y=10; {y 10 olana kadar devam et}
readln;
clrscr;
until x=10; {x 10 olana kadar devam et}
end.

Tarih:
Hit: 4018
Yazar: ZoRKaYa



Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.