Hackrogroups

Başlangıç-File Menüsü

09.05.2010 13:53

 

File menüsü 
Pascal'ın başlangıç komutları Pascal file menüsü üzerinde 10 ayrı menü komutu vardır. Bunların görevleri aşağıda özetlenmiştir.

Şekil 1. Turbo Pascal File Menüsü
Open: Daha önceden diskte varolan Pascal program dosyasının editöre yüklenmesi için kullanılır. Pascalın DOS sürümü ile çalışırken aynı yöntem geçerli olmakla birlikte, aynı işlemi, F3 tuşuna basarak da yapabiliriz. Bu menü komutu kullanıldığında Şekil 2'de verilen diyalog kutusu görülecektir.
Disk üzerinde bulunan bir Pascal dosyasını editöre yüklemek için diyalog kutusunda görülen *.PAS yazılı yere programın adı yazılarak "Enter" tuşuna basılır veya önce tab tuşuna bastıktan sonra ok tuşları ile programın adı üzerine gelinerek "Enter" tuşuna basılır. Aynı seçim, mouse ile açılmak istenilen programın üzerine gelip iki kez sol tuşu tıklayarak da gerçekleştirilir.
New: Editörde yeni bir Pascal dosyası yaratmak amacıyla kullanılır.
Save: Yazılan programın hafızaya alınması işlemini gerçekleştirir. Program ilk defa hafızaya alınacak ise Şekil 3'de görülen Save As Diyalog Kutusu ekrana gelerek, programa bir isim verilmesini bekleyecektir. Programın hafızaya alınması için program adı yazıldıktan sonra mouse ile "ok" tuşuna veya klavyeden "Enter" tuşuna basılması gerekir. Daha önceden diskte bulunan bir Pascal programı üzerinde yapılan değişiklikler nedeniyle hafızaya alma işlemi için bu komut kullanıldığı zaman, program eski adı ile kaydedileceğinden aynı diyalog kutusu ekranda görülmez.
Pascalın DOS sürümü ile çalışırken yazılan programın hafızaya alınması için bu menü komutu ile aynı işleve sahip olan F2 tuşuna basılması yeterlidir.

Şekil 2. Open Diyalog Kutusu

Şekil 3. Save Diyalog Kutusu
Save As: Editörde aktif penceredeki Pascal programının yeni bir isimle kaydedilmesi amacıyla kullanılır. Komutun kullanılmasıyla ekrana Save As Diyalog Kutusu gelir. Programa verilecek yeni isim yazılarak "Enter" tuşuna basılır.
Save All: Pascal ile program yazarken, birden fazla program penceresi ard arda açılabilir. Komut kullanıldığında açık olan bütün Pascal programları bilinen adları ile hafızaya alınır. Komutun kullanılması için açık pencerelerdeki programlara daha önceden isim verilmiş olmalıdır.
Change Dir: Sadece Dos sürümü Turbo/Borland Pascalda bulunan bu komut, aktif çalışma sürücüsü veya dizininin değiştirilmesi amacıyla kullanılır. Komut çalıştırıldığında istenilen dizin veya sürücü seçilerek "Alt+K" tuş kombinasyonuna basılır veya tab tuşu ile "Ok" butonuna gelinerek "Enter" tuşuna basılır.
Print: Aktif Pascal penceresindeki program listesinin yazıcıdan alınmasını sağlar.
Printer Setup: Printer seçimi ve printer ayarlamalarının yapılması için kullanılır. Komut kullanıldığında Şekil 4 'te verilen diyalog kutusu ekrana gelir. Printer ve port bölümünden yazıcı seçimi yapılır. Set Up.. tuşuna basıldığında yazıcı ayarlarında istenilen değişikliklerin yapılmasını sağlayan diğer bir diyalog kutusu ekrana gelecektir. Burada kağıt boyutu, kağıdın yazıcıya yerleştirilme şekli, kağıt kaynağı (el ile, üst tepsi, otomatik vb), kullanılacak kağıt kalitesi gibi değişkenlerden istenilenleri seçmemize olanak sağlanmıştır.

Get Info: Sadece Dos sürümü Turbo/Borland Pascal 'da bulunan bu komut, program ile ilgili bilgileri içeren bir diyalog kutusu ekrana gelir. Amacı programın ile ilgili çeşitli bilgilerin programcıya sunulmasıdır.
Dos Shell: Sadece Dos sürümü Turbo/Borland Pascalda bulunan bu komut, geçici olarak Pascal editörünün terkedilip Dos ortamına dönülmesi amacıyla kullanılır. Dos ortamından tekrar editöre dönülmesi için Dos promptunda EXIT yazılır.
Exit: Pascal 'dan çıkış için kullanılır.


Edit Menüsü
Edit menüsü yardımıyla program içinde belli blokların silinmesi, başka yere taşınması, kopyalanması gibi işlemleri yapabilmek mümkündür.
Yukarıda sözü edilen işlemlerin yapılabilmesi için öncelikle üzerinde işlem yapılacak program bloklarının Shift ve Ok tuşlarına aynı anda basılması ile işaretlenmesi gerekmektedir. Metinin işaretlenmesi işleminden sonra edit menüsü üzerinde görülen menü komutları çalıştırılır.
Cut: İşaretli metinin silinmesi amacıyla kullanılır. Kısa yol tuşu (Shift+Del).
Copy: İşaretli metini panoya (clipboard) kopyalar. Bu şekilde panoya kopyalanan metinin istenilen yere kopyalanması işlemi için bu komuttan sonra aşağıda tanımlanan Paste komutunun kullanılması gerekmektedir. Kısa yol tuşu (Ctrl+Ins).
Paste: Copy komutu ile panoya kopyalanan metinin editör üzerinde istenilen yere kopyalanabilmesini sağlar. Kısa yol tuşu (Shift+Ins).


Compile Menüsü
Compile Menüsü (Şekil 11) editörde aktif bulunan Pascal programının derlenmesinde, bu programa bağlı unit programların derlenmesinde ve yazılan Pascal programının dos/windows ortamında kendi başına çalışır duruma yani; XXXXXXXX.EXE durumuna getirilmesi için kullanılır. En çok kullanacağımız menü komutları aşağıda özetlenmiştir.
Compile: Editör ekranındaki aktif durumda olan programı derlemek amacıyla kullanılır. Kısa yol tuşu (Alt+F9).
Make: Editör ekranındaki aktif durumda olan programı ve bu programa bağlı unit harici programlarını en son değiştirilmiş halleriyle derleme işlemini yapar. Kısa yol tuşu (F9).
Build: Editör ekranındaki aktif durumda olan programları ve bu programa bağlı unit harici programlarını birlikte derler.

Şekil 10. Compile Menüsü
Destination Memory (Disk): Sadece DOS Turbo Pascalda bulunan bu komut ile Programın derlenerek çalıştırılacağı ortamın belirtilmesi için kullanılır. Seçenek üzerine "Enter" tuşuna basılarak Memory yazılı bölüm Disk veya Disk yazılı ise Memory durumuna alınır. Destination Disk durumunda derleme sonucunda program dos ortamında direkt olarak çalıştırılabilir.
Target: Yazılan programın derlenip çalıştırılacağı ortamı belirlemek için kullanılır. Pascal Real mode, Protected mode ve Windows olmak üzere üç ortam sunmaktadır.
Editör ve derleyici ile ilgili detaylar kullanıcı kitaplarından veya Help menüsünden sağlanabilir


Run Menüsü
Run menüsünde yazılan programın çalıştırılması için bazı komutlar bulunmaktadır. Run menüsünde bulunan menü komutları aşağıda özetlenmiştir.
Run: Programı derleyerek çalıştırır. Kısa yol tuşu (Ctrl+F9).

Şekil 9. Goto Line Number Diyalog kutusu
Program Reset: Sadece DOS sürümü Turbo/Borland Pascal'de bulunan bu komut ile Step Over veya Trace Into komutlarından biri çalıştırılınca, yapılan kontrolü durdurmak ve hata kontrolünü tekrar programın ilk deyimi üzerine almak için kullanılır. Kısayol tuşu (Ctrl+F2).
Goto Cursor: Sadece DOS sürümü Turbo/Borland Pascal'de bulunan bu komut ile editör ekranındaki program yazılımında kursörün bulunduğu satıra kadar olan program bölümünün derlenerek çalıştırılmasını sağlar. Kısayol tuşu (Ctrl+F4).
Trace Into: Sadece DOS sürümü Turbo/ Borland Pascal'de bulunan bu komut ile editör ekranındaki programın satır satır çalıştırılmasını sağlar. Kısayol tuşu (F7).
Step Over: Sadece DOS sürümü Turbo/ Borland Pascal'de bulunan bu komut ile editör Trace On durumuna geçer. Aktif durumdaki programın çalışması sırasında programın hangi satırları izlediğini ve işlem sırasını izlemek amacıyla kullanılmaktadır. Kısayol tuşu (F8.)


Search Menüsü
Search Menüsü (Şekil 6), program yazımı sırasında belirli sözcüklerin aranması ve değiştirilmesi, istenilen program satırına hızlı bir şekilde ulaşılması vb. gibi işlemlerin kolaylıkla yapılabilmesini sağlar.
Find: Bu komut program içinde herhangi bir metinin aranması amacıyla kullanılır. Komut aktif hale geldiğinde Şekil 7'deki diyalog kutusu ekrana gelir. Aranılacak metin, kendisi için ayrılmış alana yazılarak klavyeden "Enter" tuşuna veya mouse ile Ok butonuna basılır.

Şekil 6. Search Menüsü
Bulunulan noktadan ileriye doğru arama yapılacak ise Direction bölümünde Forward terimi işaretlenmeli, geriye doğru arama yapılacak ise Backward terimi işaretlenmelidir.

Şekil 7. Find Diyalog kutusu
Scope bölümünde, sözcüğün tüm dosya içinde aranılması isteniyorsa global, sadece seçilen metinde aranılması isteniyorsa selected text bölümleri işaretlenmelidir. Origin bölümünde, aramaya başlanacak sözcük, nokta bütün dosya içinde aranılacak ise entire scope, imleçin bulunduğu noktadan itibaren aranılacak ise from kursor bölümleri seçilmelidir.
Replace:Yazılan program içinde kullanılan herhangi değişkenlerin veya Pascal sözcüklerinin başka bir değişken veya Pascal sözcüğü ile değiştirilmesi gerekebilir. Bu komut kullanıldığında Şekil 8'deki diyalog kutusu ekrana gelir. Text to find' 'in karşısında ayrılmış alana değiştirilmesi istenilen sözcük, New Text' in karşısındaki ayrılmış alana yeni sözcük yazılır. Değiştirilecek sözcük programın tamamında veya birden çok yerinde değiştirilecek ise Change all tuşunun üzerine gelinir ve klavyeden "Enter", mouse ile Ok butonuna basılır. Programda aranılan metin bulunduğunda değişim için kullanıcıdan onay bekleyen bir diyalog kutusu ekrana gelir. Değişime onay için "Y", değişime hayır demek için "N" tuşuna basılır.

Şekil 8. Replace Diyalog kutusu
Search Again: Find menü komutu ile arama yapıldığında, program içinde aranılan metine ilk karşılaşılan yerde arama kesilir. Aynı metini tekrar aramak için Search Again menü komutu kullanılır.
Goto Line Number: Program içinde istenilen program satırına hızlı bir şekilde ulaşılmasını sağlar (Şekil 9). Komutun kullanımıyla ekrana gelen diyalog kutusunda ayrılmış alana satır numarası yazılarak "Enter" tuşuna basılır


Write-Writeln
Pascal programlama dilinde yazma işlemi için WRITE ve WRITELN komutları kullanılmaktadır. Bu komutların genel kullanım yapısı şu şekildedir
Write(A1,A2,A3,...,An)
Writeln(A1,A2,A3,...,An)

İki kullanım şekli arasındaki fark, Read ile Readln arasındaki fark gibidir. İfadeler Write ile yazdırıldıktan sonra kursör aynı satırda bekleyecektir, Writeln ile yazdırılması durumunda ise kursör bir sonraki satıra geçecektir.
Vars,a,n:integer;......begins:=3;a:=9;n:=5;Write(s );Write(a);Write(n);End.

Programın çalıştırılmasıyla elde edilen sonuç;
395
olacaktır.
Aynı değişkenleri Writeln ile yazdırdığımızda;
Vars,a,n:integer;......begins:=3;a:=9;n:=5;Writeln (s);Writeln(a);Writeln(n)
;End

3
9
5
elde edilecektir.
Read-Readln
Pascal 'da okuma işlemi için kullanılan komutlar READ ve READLN olup genel kullanım yapısı şu şekildedir;
Read(A1,A2,A3,...,An)
ReadLn(A1,A2,A3,...,An)
Read ile Readln arasındaki fark: Read, okuma işlemi tamamlandıktan sonra aynı satırda kalınmasını, Readln ise yeni bir satıra gelinmesini sağlar. Bir Pascal programı içerisinde bu iki komutun kullanımı aşağıdaki program parçasında verilmiştir.
Vars,a,n:real;beginRead(s,a,n)end.
Okunacak değerlerin düzeni;
12.45 43.543 62.12
Aynı değerleri ReadLn ile okutturmak istersek;
Vars,a,n:real;beginReadln(s,a,n)end.
Okunacak değerlerin düzeni yukarıdaki okuma düzeni ile aynı olabileceği gibi her değer ayrı bir satırda verilebilir, her hangi satırlarda verilebilir, örnek olarak s, a ve n değerleri aşağıdaki okuma düzeninde okutturulmuştur.
12.45 43.543
62.12

For-Do
For deyimi, bir program parçasının herhangi bir boolean şartına bağlı olmaksızın belirlenen sayıda üstüste çalıştırılması için kullanılır. For deyiminin genel kullanım şekilleri aşağıda verilmiştir.
1. FOR Kontrol Değişkeni :=Başlangıç_Değeri TO Son_değer DO
Begin
İşlemler
End;
Bu kullanım şeklinde başlangıç değeri bitiş değerinden küçük olmak zorundadır. TO ifadesiyle başlangıçtan bitişe kadar artarak tekrar yapılacağını, DO ifadesi de tanımlanan işlemlerin tekrarlanacağını bildirir
For-Downto
FOR Kontrol Değişkeni :=Başlangıç_Değeri DOWNTO Son_değer DO
Begin
İşlemler
End;
For deyiminin bu kullanım şeklinde başlangıç değeri bitiş değerinden daima büyük olup DOWNTO ifadesi de döngü değişkeninin tekrarlama işleminde azalacağını belirtir. DO ifadesi ise belirtilen işlemlerin döngü sayısınca tekrarlanacağını bildirir.
Turbo Pascal dilinde diğer programlama dillerinden farklı olarak başlangıç değerinden son değere artışlar/azalmalar birer birer olmaktadır. Aşağıdaki örnek programları inceleyiniz.
Program Hesap_plani;Uses Crt; {Windows için Wincrt}var i:byte;Hesapkod:String[ 10] ;Hesapadi:String[ 20] ;begin clrscr;for i:=1 to 5 dobeginWrite('Hesap Kodu ........:');Readln(HesapKod);Write('Hesap Adı............:');Readln(HesapAdi);end;Readln;end .
Örnek:Aşağıdaki örnek Program; 1'den 8'e kadar artan ve 9'dan 3'e kadar birer birer azalan içiçe for do döngülerinin kullanımını göstermektedir.
Program icice_for_ornek;Uses crt; {Windows için Wincrt}Vari,j:byte;BeginFor i:=1 to 8 doBeginfor j:=9 downto 3 doBeginWrite(i*j:6);end;Writeln;end;Readln;End.
Örnek: 'A' dan 'Z' ye kadar büyük harfleri ekrana yazdıran Pascal programı.
Program Odev;var ch:=Char;beginWriteln('BÜYÜK HARFLER');for ch:='A' to 'Z' DOWrite(Ch,' ');end.
Örnek. Klavyeden girilen bir ifadeyi tersten yazdıran program.
program terstenyazma;uses crt; {Windows için Wincrt}varmesaj:string;i,l:byte;beginWrite('Bir mesaj yazınız');Readln(mesaj);l:=length(mesaj);Writeln(L );for i:=L downto 1 doWrite(Copy(mesaj,i,1));End.

Repeat-Until
Bir program bloğunun belli bir şart sağlanıncaya kadar üst üste çalıştırılmasını sağlayan REPEAT deyiminin genel formu aşağıdaki şekildedir.
Repeat
.
Program Satırları
.
Until (Boolean Şartı)

Burada repeat, tekrar etme anlamında olup, tekrar etme işi UNTIL deyimindeki boolean ifadesi sağlanıncaya kadar devam eder. Bu deyim program satırları bölümüne herhangi bir şey yazılmaksızın kullanılabilir.
Bu döngünün en büyük avantajı belirli bir sayı ile sınırlandırılmamış olmasıdır. Boolean ifadesindeki şart sağlanıncaya kadar işlemlere devam edilmektedir.
Dikkat edilirse şart cümlesinin aldığı değer ne olursa olsun program bloğu bir kez çalışmaktadır.
Örnek : Aşağıda verilen Pascal programı karton fabrikasındaki kenar kesme ünitesinde, kesme makinasından çıkan kartonların ortalama ağırlıklarını hesaplamaktadır. Karton ağırlığı olarak 0 girildiğinde programın çalışması sona ermektedir.
Program ornek_repeat;uses wincrt;vari,sayi:integer;top,ort:real;beginclrscr; i:=0;top:=0;ort:=0;Repeat
i:=i+1;Write(i,'. Kartonun Ağırlığını Giriniz =');Readln(sayi);Top:=top+sayiUntil (Sayi=0);ort:=top/(i-1);Writeln;Writeln;Writeln(i-1,' Adet Kartona ait Ağırlık Ölçümü Yapılmıştır.');Writeln(i-1,' Adet Kartonun Toplam Ağırlığı =',top:6:3);Writeln('Girilen sayıların ortalaması =',ort:6:3);repeat until KeyPressed;end.

While-Do
Bir program bloğunun belli bir şart sağlandığı sürece üst üste icrasını sağlayan WHILE deyiminin genel yazılış şekli aşağıdadır.
While <şart cümlesi> Do BLOK
Do kelimesini takibeden blok WHILE deyimi tarafından döngüye sokulacak komut cümlelerini kapsar. Komut cümlesi sayısı birden fazla ise, bu bloğun BEGIN...END deyimleri arasına alınması zorunludur.
WHILE ile REPEAT arasındaki fark; Repeat döngüsü şart cümlesi yanlış olduğu sürece, While döngüsü ise şart cümlesi doğru olduğu sürece devam etmesidir.
Örnek : Repeat -Until ile yapılan örnek programı WHILE-DO ile yapalım.
program ornek_While;uses wincrt;vari,sayi:integer;top,ort:real;beginclrscr; Write('1. Kartonun Ağırlığını Giriniz =');Readln(sayi);i:=1;top:=0;ort:=0;While Sayi>0 dobeginTop:=top+sayi;i:=i+1;Write(i,'. Kartonun Ağırlığını Giriniz =');Readln(sayi);end;ort:=top/(i-1);Writeln;Writeln;Writeln((i-1),' Adet Kartona ait Ağırlık Ölçümü Yapılmıştır.');Writeln((i-1),' Adet Kartonun Toplam Ağırlığı =',top:6:3);Writeln('Girilen sayıların ortalaması =',ort:6:3);repeat until KeyPressed;end

IF Deyimi
IF deyimi, bir şartın doğru veya yanlış olmasına bağlı olarak programın belirli parçalarının çalışmasını veya çalışmamasını sağlar. IF deyimi,
IF şart cümlesi THEN Blok1;
veya
IF şart cümlesi THEN Blok1 ELSE Blok2;
şeklinde kullanılabilir.
Buradaki şart cümlesi, birbirlerine mantıksal operatörler ile bağlanmış bir veya birkaç ilişkisel operasyon veya bir tek boolean ifade olabilir. Aşağıdaki örnekleri inceleyelim:
IF A=B THEN ...
IF (A=B) AND (A=C) THEN ...
IF (A+1) < (B-1) THEN ...
IF (Cev In ['E' , 'e']) THEN ...
Then sözcüğünü takiben, bloklar birden fazla komut cümlesinden oluşurlar ise, bu blokların BEGIN ve END deyimleri içine alınması zorunludur. IF deyiminin ikinci şekli yani ELSE' den sonra gelen komut veya komutlar dizisi geçerlilik kazanmışsa, ELSE' den önce gelen komut cümlesinin yada, End deyiminin sonuna ';' işareti konulmaz. Aşağıdaki örneklerden 1.si hatalı 2.si doğrudur.
IF A=B Then Writeln ('Eşit'); Else Writeln ('Farklı');
IF A=B Then Writeln ('Eşit') Else Writeln ('Farklı');
IF deyimi içinde kullanılan Blok1 ve Blok2 çeşitli komut cümlelerinden oluşabileceğine göre bu blokların içinde başka IF cümleleri de yer alabilir. IF deyimlerinin bu şekilde kullanılmasına iç içe IF deyimleri adı verilir. IF cümlesinde yer alan her iki bloğun geçerlilik kazanması söz konusu olamaz.
IF degisken_1 <kosul> degisken_2 then
begin
-----
islemler
-----
end;
Bu kullanım şekli IF deyiminin en yalın şekillerinden biridir. Degisken_1 ile Degisken_2 arasındaki koşulun durumuna göre THEN ifadesinden sonra gelen işlemler yapılır.
Örnek: Aşağıda verilen kodlarına göre daire, üçgen ve dikdörtgenin çevresini hesaplayan Pascal programını yazınız.
1. Üçgen
2. Dikdörtgen
3. Daire

Program Cevre_Hesabi;uses crt; {Windows için Wincrt}varsekil:byte;uzun1,uzun2,uzun3:real;cevre: real;BeginWriteln('1. Üçgen');Writeln('2. Dikdörtgen');Writeln('3. Daire');Write('Şeklin Kodunu Giriniz');Readln(Sekil);If Sekil=1 thenBeginWrite('Uçgenin 1. Kenar Uzunluğunu giriniz :');readln(Uzun1);Write('Uçgenin 2. Kenar Uzunluğunu giriniz :');readln(Uzun2);Write('Uçgenin 3. Kenar Uzunluğunu giriniz :');readln(Uzun3);Cevre:=uzun1+uzun2+uzun3;end;If Sekil=2 thenBeginWrite('Dikdörtgenin Kısa Kenar Uzunluğunu giriniz:') ;readln(Uzun1);Write('Dikdörtgenin Uzun Kenar Uzunluğunu giriniz :');readln(Uzun2);Cevre:=2*(uzun1+uzun2);End;If Sekil=3 thenBeginWrite('Dairenin yarıçapını giriniz :');readln(Uzun1);Cevre:=2*pi*Uzun1;End;Writeln('S eçilen Nesnenin Çevre Uzunluğu =',Cevre:8:2);End.
Örnek : Aşağıda verilen kodlara göre birim dönüşümlerini veren Pascal programı yazınız.
Fahrenhayt 'tan (F) Santigrad 'a (C) : C=5/9*(F-32)
İnç 'ten (I) Santimetre 'ye (Cm) : Cm=2.54*I
Mil 'den (M) Kilometre 'ye (Km) : Km=1.6*M
Pound 'dan (P) Kilogram 'a (Kg) : Kg=0.45*P

Program metrik_cevrimler;uses crt; {Windows için Wincrt}var kod:byte;F,C,I,Cm,M,Km,P,Kg:real;BeginWriteln('Çev rim Kodları');Writeln('1. Fahrenhayt -> Santigrad');Writeln('2. İnç -> Santimetre ');Writeln('3. Mil ->Kilometre ');Writeln('4. Pound -> Kilogram ');Write('Çevrim Kodunu Giriniz ='); Readln(Kod);If Kod=1 then beginWrite('Fahrenhayt Değerini Giriniz ='); Readln(F);C:=5*(F-32)/9;Writeln('Santgrad Değeri =',C2,' °');end;If Kod=2 thenBeginWrite('İnç Değerini Giriniz ='); Readln(I);Cm:=2.54*I;Writeln('Santimetre Değeri =',Cm2);end;If Kod=3 thenBeginWrite('Mil Değerini Giriniz ='); Readln(M);Km:=1.6*M;Writeln('Kilometre Değeri =',Km2);end;If Kod=4 thenBeginWrite('Pound Değerini Giriniz ='); Readln(P);Kg:=0.45*P;Writeln('Kilogram Değeri =',Kg2);End;End

If Then Else Yapısı
IF degisken_1 <kosul> degisken_2 then
begin
-----
islemler
-----
end
ELSE
begin
-----
islemler
-----
end;
Bu yapı kullanıldığında, Degisken_1 ile Degisken_2 belirtilen koşulu karşıladıkları zaman THEN ifadesinden sonra gelen işlemler, aksi halde ELSE ifadesinden sonra tanımlanan işlemler yaptırılır.
IF degisken_1 <kosul> degisken_2 then
begin
islemler1;
end
else
if degisken_3 <kosul> degisken4 then
begin
islemler2;
end
else
if degisken_5 <kosul> degisken6 then
begin
islemler3;
end;
Örnek:Aşağıdaki program klavyeden girilen yılın kaç gün olduğunu vermektedir. Programı inceleyiniz.
program deneme;uses crt; {Windows için Wincrt}varyil:integer;beginclrscr;Write('Gun Sayisini ogrenmek istediginiz yili giriniz :');readln(yil);if (yil mod 4 )=0 thenbeginWriteln('Yil 366 gun');EndElseBeginWriteln ('Yil 365 gun');end;readln;end.


Case ... Of
Bir değerin birden fazla değer ile karşılaştırmasını yapan ve bir eşitliğin bulunması halinde belli program parçalarının çalıştırılmasını sağlayan CASE deyiminin genel formu aşağıda verilmiştir.
CASE Kontrol Değişkeni OF
Etiket1 : Blok1 ;
Etiket2 : Blok2 ;.
Etiketn : Blokn ;
ELSE BLOK;
END;
Kontrol değişkeni real haricindeki standart tiplerden birine sahip olan bir değişkendir. CASE deyimi içindeki etiketler LABEL olarak tanımlananlardan farklıdır. Bunlar sabit değerler olup, kontrol değişkeni ile aynı tipe sahiptir. Etiketi takip eden bloklar ise PASCAL komut cümlelerinden meydana gelir. Komut cümleleri birden fazla ise BEGIN END deyimleri arasına yazılması zorunludur. Etiketlerin dışında yazılan ELSE deyimi ve bunu takip eden blok seçimliktir
Örnek : Aşağıda kişinin yaşı girildiğinde, yaşına uygun mesajlar veren bir Pascal programı verilmiştir
Program Yasdilim;Uses wincrt; {Dos için CRT}Var yas:integer;BeginClrscr;Write('Yaşınızı Giriniz :');ReadLn(YAS);CASE yas OF0..5:Writeln('Yaşınız 0-5 arasında');5..15:Writeln('Yaşınız 5-15 arasında');15..35:Writeln('Yaşınız 15-35 arasında');35..50:Writeln('Yaşınız 35-50 arasında');50..85:Writeln('Yaşınız 50-85 arasında');else Writeln('Çok Yaşayın');end;Readln;End.
Örnek : Bir diyet uzmanı insanlara , geliştirmiş olduğu değişik üç tür diyeti uygulamayı düşünmektedir.
1.tür diyet 60 kilo ve altındaki insanlara uygulanacak kilo aldırıcı program.
2.tür diyet 61 ile 80 kilo arasındaki insanlara uygulanacak kilo aldırmayan program.
3.tür diyet 81 ile 150 kilo arasındaki insanlara uygulanacak kilo zayıflatıcı programdır
Buna göre 10 kişi arasında yapılan bir anketle ,bu üç programa kaçar kişinin düştüğünü ve bu gruplardaki ortalama kiloları bulan bir PASCAL programını yazınız.

Program rejim_anket;uses crt; {Windows için Wincrt}var kilo,grp1,grp2,grp3,i,j,k:integer;grp1ort,grp2ort, grp3ort:real;grp1top,grp2
top,grp3top:integer;BEGINfor i:=1 to 10 dobeginwrite('Kişinin Kilosunu giriniz :');Readln(Kilo);case kilo of0..60: begingrp1:=grp1+1;grp1top:=grp1top+kilo;end;61..80 : begingrp2:=grp2+1;grp2top:=grp2top+kilo;end;81..15 0: begingrp3:=grp3+1;grp3top:=grp3top+kilo;end;end;en d;grp1ort:=grp1top/grp1;g
rp2ort:=grp2top/grp2;grp3ort:=grp3top/grp3;Writeln('1. Gruptaki kişi sayısı =',grp1,' 1. Gruptaki kilo ortalaması =',grp1ort:8:2);Writeln('2. Gruptaki kişi sayısı =',grp2,' 2. Gruptaki kilo ortalaması =',grp2ort:8:2);Writeln('3. Gruptaki kişi sayısı =',grp3,' 3. Gruptaki kilo ortalaması =',grp3ort:8:2);repeat until keypressed;End.
Yukarıda verilen programda; for i:=1 to 10 do satırı ile yapılan işlemin 10 kez tekrar edileceği belirtilmektedir. (For .. do yapısı için 9. Bölüme bakınız.)
Örnek : Kare, dikdörgen, üçgen ve daire alan hesabı yapan bir Pascal programı hazırlanacaktır. Programda alanı hesaplanacak nesneyi belirttikten sonra ilgili alanın hesaplanabilmesi için CASE...OF yapısı kullanılacaktır.
program Sekillerin_alan_hesabi;uses Crt; {Windows için Wincrt}var Ch : char;uzun,gen,yuk,Taban,ycap: real;Alan_Kare,Alan_Dortgen,Alan_Ucgen,Alan_Daire: real;i:byte;begin (* Ana program *)Writeln;Writeln('Lütfen Alan Hesabı Yapacağınız Nesneyi seçiniz :');Writeln;Writeln('[K]are');Writeln('[D]ikdörtgen');Writeln('[u]çgen');Wr
iteln('d[A]ire');Writeln('[C]ıkış');Write('Alan hesabı yapılacak nesne (K/D/U/A) ?=');Readln(Ch);case UpCase(Ch) of'K' : beginWrite('Karenin kenar uzunluğu =');Readln(uzun);Alan_Kare:= uzun*uzun;Writeln('Alan ',Alan_kare:12:4);end;'D' : beginWrite('Dörtgenin Genişliği = ');Readln(gen);Write('Dörtgenin Yüksekliği =');Readln(yuk);Alan_Dortgen:=gen*yuk;Writeln(' Dörtgenin Alanı= ',Alan_Dortgen:12:4);end;'U' : beginWrite('Üçgenin Taban Uzunluğu =');Readln(Taban);Write('Üçgenin Yüksekliği =');Read(yuk);Alan_Ucgen:=taban*yuk/2;Writeln('Üçgenin Alanı = ',Alan_Ucgen:12:3);end;'A' : beginWrite('Dairenin Çapı =');Readln(Ycap);Alan_Daire:= sqr(ycap)*Pi;Writeln('Dairenin Çapı =',Alan_Daire:12:3);end;'C' : begin Writeln('Bitti');exit; end;else Writeln(' Tanımsız giriş');end;end. (* Ana program sonu *)

Continue
Fortran programlama dilinde olduğu gibi tekrarlama çevrimini yeniden başlatır. Programcı, bilgi girişlerinde kullanıcının sayısal olmayan bir giriş yapacağını varsayarak önlem almak amacıyla tekrarlama işlemlerini yeniden başlatmak için CONTINUE komutu kullanılır. Bu deyim PASCAL 7.0 ' da geçerlidir.
Program Continue_Kullanimi;Uses Crt; {Windows için Wincrt}Constn=5;varsayac,i:integer;rakam :Array [ 1..n] of Real;toplam:Real;beginclrscr;toplam:=0; sayac:=1;While sayac < n dobeginWrite(Bir Sayı Giriniz:');{$I-}Readln(Rakam[ sayac] );{$I+}If IOResult >0 thenbeginWriteln('Rakam girmelisiniz');CONTINUE;end;sayac:=sayac+1end;For I:=1 to sayac dotoplam:=toplam+rakam[ i] ;Writeln('Toplam Sayı :',Toplam2);end.
Örnek program çalıştırıldığında kullanıcının hatalı bir giriş yapması halinde Run Time Error hatası oluşacaktır. Bu hatalı durum IORESULT hata durumu fonksiyonu ile kontrol ettirilerek programın kırılması önlenir ve CONTINUE komutu tekrarlama çevrimini tekrar başlatır. Ancak hata yoklama rutinleri {$I-} ile pasif duruma düşürülmüştür. IORESULT fonksiyon değeri kontrolü yapabilmek için {$I-} derleme komutu verilerek Pascal hata yoklama rutinleri pasif duruma alınmalıdır. Ancak kontrol işlemi bittikten sonra hata yoklama rutinleri {$I+} ile tekrar aktif duruma getirilmelidir.
Break
Turbo Pascal 7.0 programlama dilinde bir döngüyü kırarak sona erdirmek amacıyla kullanılır. Program içinde BREAK deyimiyle karşılaşıldığında içinde bulunduğu döngüden sonraki program satırının işler hale getirir. BREAK komutu FOR-DO, REPEAT-UNTIL ve WHILE-DO döngülerinin içinde kullanılabilir.
Konunun daha iyi anlaşılabilmesi için aşağıdaki örneği inceleyiniz. Örnek Programda i ve j gibi iki sayının çarpımı yapılmaktadır. i=j olduğu durumda içteki döngü BREAK deyimi ile kırılmakta ve i 'nin değeri bir üst değere arttırılarak programın çalışmasına devam edilmektedir.
Program break_kullanimi;uses crt; {Windows için Wincrt}var i,j:integer;beginclrscr;for i:=1 to 10 dobeginWriteln(i,'. değeri ');for j:=1 to 10 dobeginif i=j then break; (* i=j olduğu takdirde içteki döngünün çalışması sona eriyor*)Writeln(i:3,' * ',j:3,'= ',i*j:3);end;Writeln('Devam Etmek için ENTER tuşuna Basınız');Readln;end;end.

GOTO Deyimi
Programın çalışma yönünün değiştirilmesi için kullanılan GOTO deyiminin genel kullanımı şu şekildedir;
GOTO Etiket;
GOTO deyimi ile kullanılan etiket, çalışma akışının yönlendirileceği noktayı gösterir. Bu etiketin programın tanım bloklarının olduğu yerde LABEL adı verilen bölümde tanımlanması gereklidir.
GOTO deyiminin kullanıldığı program bloğu içinde bulunması zorunludur. Etiket, bir komut cümlesinin yani bir program noktasının etiketlenmesi için yazıldığında kendisinden sonra " : " karakterinin yazılması zorunludur.
GOTO deyimleri ile ana program ve alt programlar arasında veya bir alt program ile başka bir alt program arasında dallanma yapılamaz. Ayrıca, IF, CASE, FOR, REPEAT, ve WHILE deyimlerinin blokları içine dallanılamaz. Ancak bu deyimler ile kullanılan bloklar içinden, dışarıya dallanma yapılabilir.
Turbo PASCAL' daki kontrol ve döngü deyimlerinin etkinliği ve PASCAL programlarının yapısallığı GOTO deyimine ihtiyacı ortadan kaldırır. Basic ve Fortran' da yazılan programlarda bol miktarda görülen GOTO deyimlerine Pascal programlarında pek rastlanmamaktadır.
Örnek:Aşağıdaki program, 1' den n sayısına kadar olan sayıların toplamını hesaplamaktadır. Program içinde üç kez GOTO deyimi kullanılmıştır. GOTO devam şeklindeki komut cümlesi şartsız, diğerleri ise şartlıdır.
Uses crt; {Windows için Wincrt}VarI,N : INTEGER;Top : REAL;Cev : Char;LabelBasla, Devam, Son;BeginBaşla:Clrscr;I:=0;Top:=0;Write('Bir sayı giriniz=');Readln (N);Devam:I:=I+1;Top:=Top+1;IF I=N then goto son;GOTO DEVAM;Son:Writeln('1 den', N,'e kadar sayıların toplamı=', Top:5);Writeln;Write ('Devam Edecek misiniz :');Readln (Cev);IF Cev In ['E' , 'e'] then GOTO Basla;End.


Halt
Programın kararlaştırılan bir yerinde durdurulmasını sağlar. ENTER tuşuna basıldıktan sonra varsa HALT komutundan sonra tanımlanan program satırları çalıştırılır.
program halt_ornek;beginif 1 = 1 thenbeginWritelN('Halt Deneme 1');if 2 = 2 thenbeginWritelN('Halt Deneme 2');if 3 = 3 thenbeginWritelN('Halt Deneme 3');Halt(1);end;end;end;Writeln(' Bu Çalıştırılamayacaktır');readln;end

Exit
Program işlem bloklarında tanımlanan herhangi bir koşulun gerçekleşmesi halinde program bloğunun akışını durdurur.
uses Crt; {Windows için Wincrt}beginrepeatif KeyPressed then Exit;Write('Xx');until False;end.

 

Geri

Sitede ara

Copyrıght by HACKRO.© 2010-2011 All rıght reserved.