ana sayfa > Pascal > Case…Of

Case…Of

Pazar, 06 Haz 2010 yorum ekle yorumlara git

Bir önceki konuda bahsedilen kontrol deyimi if..then..else genellikle az sayıda olan karşılaştırmalarda kullanılır. Ama eğer yapılan karşılaştırma çok karmaşıksa o zaman bu deyimi kullanmak oldukça zor olur ve çok fazla miktarda mantık hataları bulunur. Bunu engellemek için blok if deyimi diyebileceğimiz Case yapısını kullanırız.

Case yapısında karşılaştırmanın yapılacağı değişkenin alabileceği değerler göre çeşitli işlemleri toplu olarak yapabiliriz. Bir önceki konuda gösterdiğimiz örneği ele alalım. Bir if deyimi için oldukça karmaşık olan bu örnekği bir de case ile çözelim. Tabii öncelikle Case’in genel yazılışını veriyoruz.

case degişken of
durum-1 : işlem(ler);

durum-n : işlem(ler);
end;

Veya

case değişken of
durum-1 : işlem(ler);

durum-n : işlem(ler);
else
işlem(ler)
end;

Durum dediğimiz yerlerde bir yada daha fazla, virgülle ayrılmış, sabitler veya aralıklar olabilir. Mesela :

case Ch of
‘A’..’Z', ‘a’..’z’ : WriteLn(‘Harf’);
’0′..’9′ : WriteLn(‘Rakam’);
‘+’, ‘-’, ‘*’, ‘/’ : WriteLn(‘Operator’);
else
WriteLn(‘Özel karakter’);

Else kısmı ise tamamen seçimliktir. İstemezseniz kullanmayabilirsiniz. Şimdi gelelim örneğimize… Eğer daha bakmadıysanız önceki konuyu (if-then-else)okumanızı tavsiye ederim. Yine de soruyu tekrar soruyorum. Bu sorunun hiçbir amacı olmadığını sadece bir örnek olduğunu belirtmek isterim. Boşboşuna “Buna bu nedir?..Ne işe yarar?..Ben kimim?.. Niye burdayım?” gibi felsefi konulara girmeyin. Siz örneği anlayın yeter.

Yazdığımız bir programda girilmiş olan sayı eğer 0’dan büyükse ve 128’den küçükse I değişkenine 1 eklesin, 128..256 arasında ise I’ya 10 eklesin, 256’dan büyükse I’ya 100 eklesin. Aynı zamanda eğer bu sayı 0’dan küçükse ve –127’den büyükse 1 eksiltsin, -127..-255 arasındaysa 10 eksiltsin ve –255’den de küçükse I’dan 100 eksiltsin.

Const
I : integer = 500;
Var
Sayi : integer;
Begin
Write(‘Bir sayı girin : ‘);
Readln(Sayi);
If (sayi > 0) and (sayi < 128) then
I := I+1;
If (sayi >= 128) and (sayi < 256) then
I := I+10;
If (sayi >= 256) then
I := I+100;
If (sayi < 0) and (sayi > -127) then
I := I-1;
If (sayi <= -127) and (sayi > -255) then
I := I-10;
If (sayi =< -255) then
I := I-100;
Writeln(‘İşlem sonucu I da kalan=‘ , I);
End.
Const
I : integer = 500;
Var
Sayi : integer;
Begin
Write(‘Bir sayi girin : ‘);
readln(Sayi);
case Sayi of
0..128: I:= I + 1;
128..256: I := I + 10 ;
256..32767 : I := I + 100;
-127..0 : I := I – 1;
-255..-128 : I := I – 10;
-32768..-256 : I := I – 100;
end;
writeln(‘Islem sonunda I değeri =’,I);
end.




Benzer Konularımıza da Göz Atın!

coded by nessus
Share


Categories: Pascal Tags: ,
Bu kategorideki rastgele diğer yazılar
  • » Pascal Örnekleri 14 (Diziler)
  • » Pascal Örnekleri 18 (Biraz matematikkkk...)
  • » Pascal Örnekleri 5 ( Stringler ve Gotoxy)
  • » Pascal Örnekleri
  • » Pascal Örnekleri 15 ( Çift Boyutlu Diziler)
  • » Pascal Örnekleri 11 ( Karma örnekler)
  • » Pascal Örnekleri 4 ( Random (Rastgele) fonksiyonu )
  • » Pascal Programlama Dili ( Başlangıç...)
  • » Pascal Örnekleri 13 (Length, Type, While)
  • » Pascal Örnekleri 19 (Sınav kağıdını dolduran program)
  • » Pascal Örnekleri 10 (Fibonacci sayıları, Asal sayılar, Basamaklara ayırma)
  • » Pascal Örnekleri 1 (Karar verme oparatörleri)
  • » Pascal Örnekleri 9 ( Sayısal Loto, Pascal Üçgeni, Hesap Makinesi)
  • » Pascal Örnekleri 12 ( AscII tablosu ve Faktoriyel)
  • » Pascal Örnekleri 3 (Gotoxy komutu)



    1. şimdilik yorum yok.
    1. şimdilik geri bağlantı yok

    *
    Bu bir spamlara karşı koruma yazılımıdır, resimde gösterilen güvenlik kelimesi girilmelidir. Kelimeyi sesli duymak için resmi tıklayın
    Anti-spam kelimeyi duymak için tıklayın