• Merhaba Ziyaretçi.
    "Hoşgeldin sonbahar "
    konulu resim yarışması başladı. İlgili konuya BURADAN ulaşabilirsiniz. Sizi de beğendiğiniz 2 resmi oylamanız için bekliyoruz...

Pascal Giriş

merakettim

Homo Sapiens Sapiens
Özel üye
Merhaba arkadaşlar.Bundan böyle forumumuzda Pascal programlama diline de yer vereceğiz.Okulda öğrendiklerimi sizlere aktaracağım:)

Küçük bir giriş yapmak gerekirse:

Pascal programının genel özellikleri : Pascal dili kullanılarak yazılacak programlarda şu kurallara uyulmalıdır (Bizim yaptığımız programlarda bu kurallara özellikle dikkat edilecektir.):

1. Program küçük harfle yazılır(büyük harfle yazılan programın okunması ve kontrolu güç olur).
2. Blok başlatan deyimler hariç bütün satırlar ; ile sona erer. Blok başlatan deyimler const, var, begin, if , for gibi deyimlerdir.
3. Program begin ile başlar end. ile sona erer. Bu ikisi arasında program deyimleri yer alır.
4. end deyiminden önceki satır sonuna ; konulması isteğe bağlıdır.
5. Bir program birden fazla alt programı içerebilir.
6. Ekran deyimlerinin bağlı bulunduğu bir CRT uniti mevcuttur.
7. Bütün program ingiliz alfabesine uygun harflerden oluşmalıdır. Sadece write ve writeln deyimlerinde tırnak içindeki metin yada hatırlatmalarda türkçe harfler kullanılabilir.
8. Her begin bir end; ile sona erer.
9.Değişken ve sabit isimleri 64 byte uzunluğunda olabilir. Değişken ve sabit isimleri rakamla başlayamaz, isimler arası boşluk bırakılamaz. Eğer iki kelimeden oluşacak bir değişken ismi verilecek ise İsimlendirme 2 şekilde yapılabilir:
a. ikinci kelime büyük harfle başlar, fakat iki kelime bitişik yazılır
b. iki kelime alt çizgi ile birleştirilir.


Editör olarak TURBO PASCAL 6 kullanacağız. Çünkü Turbo Pascal 7'de "CRT" ünitesi kullanırken sorun çıkarıyo.
 
Pascal dilinin Yapısı:

Pascal dili yapı olarak 3 kısımdan oluşmuştur. Bunlar başlık, deklerasyon ve ana program kısımlarıdır.

1. Başlık kısmı : Programa yapılan işle ilgili olarak bir başlık yazılabilir. Eğer programda başlık kullanılacaksa satır program deyimi ile başlar ve program ismi yazılır. Başlık satırı ; ile sona erer.

Programda başlık kısmından sonra programda kullanılacak Pascal'a ait veya bizim tarafımızdan daha önceden oluşturulmuş olan Unitlerin tanımlaması yapılır.

Örnek :
program NotOrtalamasi;
Uses crt;

2. Deklerasyon(tanımlama) kısmı : Burada program boyunca kullanılacak sabit ve değişkenler tanımlanır. Sabit ve değişkenlerin tanımları farklı olur.

a) Sabit Tanımlanması:


Sabitler programın akışı boyunca değerleri değişmez. Const başlığı altında tanımlanırlar. Sabit ismi ile değeri arasına = yer almalıdır. Eşittir işaretinde sonra ise sabitin değeri yazılır. Eğer sabit metinse değeri tırnak içinde yazılmalıdır. Eğer sabitin değeri sayısal bir değer ise tırnak içine alınmasına gerek yoktur.

Örnek:
Const
isim:string[5]='Ali';
notu=90;
b) Değişken Tanımlanması:

Programın akışı içinde değişkenlerin değeri değişebilir. Değişken tanımlama formatı şu şekildedir. Değişkenler Var başlığı altında toplanır. Yine değişken satırları ; ile sona erer.

Kullanım şekli:

Değişken ismi : değişken tipi;

Örnek :

Var
ders : string ;
derece:integer;
ortalama:real;

c) Özel Tip Tanımlanması:
Pascal'da bilinen tiplerin yardımıyla yeni tiplerin oluşturulduğu kısımdır.

Örnek :

Type
Ogr=Record
ders : string ;
derece:integer;
ortalama:real;
End;

d) Label Tanımlaması:
Program içinde programın akışına göre goto komutuyla dallanılacak kısımlar için kullanılır.(Pascal Programlamada Label Tercih Edilmez.)

4. Alt program kısmı: Program içinde belli işleri yerine getirmek üzere oluşturulmuş küçük program parçacıklarının (Procedure ve Functionlar) tanımlandığı kısımdır.

5. Ana program kısmı: Pascal deyimlerinin bulunduğu kısımdır. Ana program begin ile başlar ve end. ile sona erer. Bu ikisi arasına değişik pascal deyimleri yazılabilir. end. den sonraki hiçbir deyim dikkate alınmaz.

Örnek :

begin
writeln('www.cerezforum.com' );
readln;
end.
Pascal programlama dilinde kullanılan semboller:

Pascal programlama dilinde ingiliz alfabesinin küçük ve büyük harfleri 0'dan 9'a kadar rakamlar(eğer onaltılık sayı sistemi kullanılacaksa 0'dan 9'a kadar olan harflerin yanında A'dan F'ye kadar olan ingiliz alfabesindeki küçük ve büyük harflerde kullanılır.)

Bunların haricinde aşağıdaki sembollerde pascal'da sıkça kullanılmaktadır.

> < ] [ ) ( - * + / . , } { ; : # ^ $ @ =

Bunlarla beraber birlikte kullanılan sembollerde vardır.

{ $ <> <= >= := (* *) (. .) ..

Pascal Programlamada Değişken isimleri ve atama işlemi:

Pascal Programlama dilinde isimlendirme yapılırken oluşturulacak isimlerin ilk karakteri ya bir harf olmalı yada altçizgi( _ ) olmalıdır. Pascal da kullanılan özel kelimeler isim olarak kullanılamaz. Oluşturulan isimlerin içinde yukarıdaki özel karakterler ve boşluk karakterleri bulunamaz

Pascal Programlamada atama işlemleri ( : = ) ile yapılır. Atama işlemi yapılırken atama işleminin sağındaki ve solundaki ifadenin aynı tipte olması gerekmektedir.Aksi halde (Type Mistmach) tip hatası oluşur.

Veri Tipleri:

Sabitler, değişkenler ve diğer veri tipleri için kullanılacak değerlerin belirli sınırları vardır. Pascal programlama dilinde kullanılan değişkenler ve sabitler için değişken ve sabit türleri sayısal, karakter, metin(karakter dizini) ve mantıksal olarak dörde ayrılabilir. Daha sonra bu temel tipler kullanılarak daha karmaşık veri tipleri oluşturulmaktadır. Şimdi sırasıyla bu veri tiplerini tanıyalım.

1.Tamsayı Tipler:
İsmindende anlaşılacağı üzerine tamsayı olacak değişken ve sabitlerin tanımlanması için kullanılır. Tamsayı tipleri değer aralığına göre göre 5 kısma ayrılmaktadır.

Tip Adı Değer Aralığı Boyutu
Byte
0
255
1 Byte

Shortint
-128
127
1 Byte

Word
0
65535
Byte

İnteger
-32768
32767
2 Byte

Longint
-2147483643
2147483647
4 Byte


Tamsayı tiplerden herhangi biriyle tanımlanmış bir değişken veya sabite tanımlandığı sınırın dışında bir değer atanırsa hata oluşur. Yukarıdaki tamsayı tiplerinden herhangi bir tanesiyle tanımlanmış olan bir değişken veya sabite, normal sayıların dışında Hexadecimal sayılarda atanabilir. Bu işlemi gerçekleştirmek için hexadesimal sayının baştarafına $ işareti eklemek yeterlidir.

2.Gerçek Sayı Tipleri:
Kesirli yani ondalık sayıların kullanıması için tanımlanması gereken veri tipidir. Gerçek sayı tipleri de değer aralığına göre 5 kısma ayrılır.


Single
4 Byte

Real
6 Byte

Comp
8 Byte

Double
8 Byte

Exteded
10 Byte


Real tipinin dışındaki diğer Gerçek sayı tiplerini kullanmak için Programın başına {$N+} yazmak gerekmektedir.

3. Karakter Tipi:
Sadece bir karakterlik alfasayısal tipindeki değişken veya sabitin tanımlanması için kullanılır. Sayısal işlemlerde kullanılamaz.ASCII karakter setindeki tüm karakterleri kabul eder. Atama yapılırken atama yapılacak bilgi ' ' kesme işaretlerinin arasında girilmelidir.


Char
1 Byte


4.String Tipi:
Birden fazla karakterden oluşmuş alfasayısal tipdeki değişken ve sabitlerin tanımlanması için kullanılır. Maksimum 255 karakter atanabilir. ASCII karakter setindeki tüm karakterleri kabul eder. String değişken türüne bir sınırlama uygulanacaksa köşeli parantez ile saklanabilecek en uzun metin boyutu belirtilmelidir. Atama yapılırken atama yapılacak bilgi ' ' kesme işaretlerinin arasında girilmelidir.


String
255 Byte

String [n]
n+1 Byte (maksimum 255)


5.Mantıksal Tip:
Sadece Doğru(True) veya Yanlış(False) değerini alabilir.


Boolean
1 Byte


6.Dizi Tipi:
Aynı tipten birçok bilginin birlikte tutulacağı değişken ve sabitlerin tanımlanması için kullanılır.

7.Kayıt Tipi:
Program içerisinde, farklı tipteki özellikleri tek bir isim altında bir tip olarak tanımlanması için kullanılır. Tek bir isim altında toplamak için ilkönce Type kısmında RECORD-END arasında alanlar ve tipleri tanımlanır ve bu yeni tipe bir isim verilir.
Kullanım şekli:

Type
YeniTipAdı=Record
AlanAdı1 : Tipi ;
AlanAdı2 : Tipi;


End;

Örnek :
Type
Ogr=Record
ders : string ;
derece:integer;
ortalama:real;
End;

Örnek :
Type
Ogr=Record
ders : string ;
derece:integer;
ortalama:real;
End;
Var
Ogrenci:Ogr;
Ogrenciler:Array [1..10] of Ogr;

Bu şekilde Type kısmında tip oluşturulduktan sonra VAR kısmında bu yeni tip kullanılabilir.

Örnek :

Type
Ogr=Record
ders : string ;
derece:integer;
ortalama:real;
End;
Var
Ogrenci:Ogr;
Ogrenciler:Array [1..10] of Ogr;

8.Küme Tipi:
Matematikteki kümeyle aynı işlevi görür. Aynı Tipteki bilgilerin oluşturduğu bir bütündür. Bir küme oluşturmak için Type kısmında oluşturulacak kümenin adı yazılır. Daha sonra SET OF ifadesinden sonra köşeli parantezler arasında kümenin elemanları girilir. Kümenin elemanları arasına virgül ( , ) konur. Eğer küme elemanları ardışık değerler içeriyorsa iki nokta kullanılır.
Kullanım şekli:

Type
KümeninAdı =Set Of [Kümenin Elemanları];

Örnek :

Type
Yon =Set Of ['Kuzey', 'Güney','Doğu','Batı'];
Yıl=Set Of [1990..2005];
Harf=Set Of ['a'..'k'];


Kümeler üzerinde matematikteki işlemler gerçekleştirilebilir. Bunun için;


Kesişim operatörü
: *

Birleşim operatörü
: +

Fark operatörü
: -

İlişkisel operatörler
: =,<>,<=,>=,in

Tanımlama:

Yukarıda açıkladığımız tipteki değişken ve sabitlerin program içerisinde kullanılması için tanımlama blokları içerisinde tanımlanmaları gerekmektedir. Bu tanımlama blokları aşağıda sıralanmıştır.

a) CONST:
Sabitler programın akışı boyunca değerleri değişmez. Const başlığı altında tanımlanırlar. Sabit ismi ile değeri arasına "= " yer almalıdır. Eşittir işaretinde sonra ise sabitin değeri yazılır. Eğer sabit metinse değeri tırnak içinde yazılmalıdır. Eğer sabitin değeri sayısal bir değer ise tırnak içine alınmasına gerek yoktur.

Kullanım şekli:

Sabit ismi[: tipi (bu kısım istenirse kullanılır.)]= Sabitin Değeri

Örnek:

Const
isim='Ali';
notu=90;

Eğer Sabit daha sonra program içerisinde değiştirilecekse sabit isminden sonra ":" yer almalı sonra "=" olmalı ve sabitin değeri girilmelidir.

Örnek:

Const
isim:String='Ali';
notu:Integer=90;
Renkler:Array [1..4] of String =('Sarı', 'Beyaz', 'Yeşil', 'Siyah');
b) VAR:

Programın akışı içinde değişkenlerin değeri değişebilir. Değişken tanımlama formatı şu şekildedir. Değişkenler Var başlığı altında toplanır. Yine değişken satırları ; ile sona erer.

Birden fazla değişken tanımlanacağı zaman aynı tipte değişkenler tanımlanırken araya virgül(,) konulur.

Kullanım şekli:

Değişken ismi : değişken tipi;

Örnek :
Var
ders : string[20] ;
toplam,derece:integer;
ortalama:real;
ogrenci:Array[1..20] of string;

c) TYPE
Pascal'da bilinen tiplerin yardımıyla Kullanıcılar kendi isteklerine göre yeni tipler oluşturabilirer. Bunu type bloğunda gerçekeştirirler. Bu kısımda oluşturdukları yeni tipleri VAR ve CONST bloklarında tanımlamalar için kullanabilirler.

Kullanım şekli:

Tip ismi = Tip;

Örnek
Type
Ogr=Record
ders : string ;
derece:integer;
ortalama:real;
End;

Örnek :
Type
Ogr=String[15] ;
Yıl=1990..2005;
Yon =Set Of ['Kuzey', 'Güney','Doğu','Batı'];


d) LABEL
Program içinde programın akışına göre goto komutuyla dallanılacak kısımlar için kullanılır.(Pascal Programlamada Label Tercih Edilmez.)
Operatörler :

Pascal programlama dilinde işlemleri gerçekleştirmek için operatörler kullanılır. Bunlardan bazıları aşağıda anlatılmıştır.
a) Aritmetik Operatörler:
Matematiksel işlemlerin yapılması sırasında kullanılırlar. Bunlar;

Operatör
İşlevi

+
Toplama

-
Çıkarma

*
Çarpma

/
Bölme

Div
Tamsayı Bölme

Mod
Tamsayı Bölümde Kalan

Örnek:
16 Div 4 işleminin sonucu 4 tür. 4 Div 16 işleminin sonucu 0 dır. 16 Div 5 işleminin sonucu 3 tür.

16 Mod 4 işleminin sonucu 0 dır. 4 Mod 16 işleminin sonucu 4 tür. 16 Mod 5 işleminin sonucu 1 dir

b) Mantıksal Operatörler:
Mantıksal işlemlerin yapılması sırasında kullanılırlar. Bunlar;

Not
Değil

And
Ve

Or
Veya

Xor
Veya Değil

c) Karşılaştırma Operatörleri:
Karşılaştırma işlemlerinin yapılması sırasında kullanılırlar. Bunlar;

<
Küçüktür.

>
Büyüktür.

<=
Küçük eşittir.

>=
Büyük eşittir.

<>
Eşit değildir.

=
Eşittir.


d) Küme Operatörleri:
Küme işlemleri yapılırken kullanılan operatörlerdir.

Kesişim operatörü
: *

Birleşim operatörü
: +

Fark operatörü
: -

İlişkisel operatörler
: =,<>,<=,>=,in



Açıklamalar :

Herhangi bir programlama dilinde program yazan usta bilgisayar programcıları, yazdıkları programı daha anlaşılır bir hale getirmek için değişik yerlerine açıklayıcı bilgiler yazarlar.

Pascal'da bunu değişik şekillerde yapmak mümkündür. Pascal programlama dilinde (* ile *) karakterleri veya { ile } karakterleri arasındaki kısımlar derleyici tarafından açıklayıcı bilgi olarak kabul edilir ve derleyici tarafından göz önüne alınmaz.
 
Write/Writeln Deyimleri

Ekrana bilgi ve hatırlatma metni yazdırma deyimidir. Write ve writeln deyimleri arasındaki tek fark writeln deyiminin bilginin yazdırılmasından sonra ekranda bir satır atlamasıdır. Write deyimi ise satır atlama işlemini gerçekleştirmez..

Write deyiminden sonra parantez açılır, hatırlatma metinlerinin tırnak içinde yazılmalarına karşın değişkenlerin ve sabitlerin değerleri ise tırnak kullanılmadan yazdırılır. Eğer birden fazla ifade yazdırılacaksa, yazdırılacak ifadeler arasına virgül (,) konur.

Kullanım Şekli:

Writeln(ifade)

veya

Write(ifade)

Write Komutunun Dosyalarda kullanılması Dosyalama kısmında daha ayrıntılı şekilde incelenecektir.

Örnek: Ekrana yanyana "Merhaba pascal ogrenmeye basliyoruz " yazan program.

PHP:
program baslangic;

uses crt;

begin
   clrscr;
   write('merhaba ');
   write('pascal  ');
   write('ogrenmeye ');
   write('basliyoruz');
   readln;
end.

Read/Readln Deyimleri

Klavyeden bilgi girilmesi amacıyla kullanılır. Klavyeden girilen bu bilgiler daha önceden tanımlanmış olan değişkenlere atanır.

Read deyiminden sonra parantez açılır, girilecek olan değişkenler girilecek sıraya göre aralarına virgül (,) konularak yazılır.

Kullanım Şekli:

Readln(ifade)

veya

Read(ifade)

Read Komutunun Dosyalarda kullanılması Dosyalama kısmında daha ayrıntılı şekilde incelenecektir.

Örnek: Ekrana İsmini girmenizi isteyen bir mesaj yazıp daha sonra ekrandan size "Merhaba" diyen bir program.

PHP:
program baslangic2;

uses crt;

var 
   ad:string;

begin
   clrscr;
   write('Merhaba Adinizi Giriniz:');
   readln(ad);
   write('Merhaba ',ad);
   readln;
end.

Basit Ekran Deyimleri

(NOT: Aşağıda açıklanacak olan Deyimler CRT Unit'ine aittir.
Bununiçin program yazılırken programın başına USES CRT yazılması gerekmektedir.)

CLRSCR

Ekranı temizlemek için kullanılır. Ekranda daha önce yazılmış olan yazıları ve daha önceden oluşturulmuş olan window'u temizler. Ekran temizlendikten sonra imleç ekranın başına gider.
Program yazılırken istenilen yerde CLRSCR yazılır ve sonra (;) konur.

Kullanım Şekli:

CLRSCR;

şeklinde kullanılır.

Clrscr deyimini ekranı tamizletmet için hemen hemen tüm programlarımızda kullanacağız.

GOTOXY

İmleçi ekranın herhangi bir yerine taşınması için kullanılır. (Ekran 80 sütun ve 25 satırdan oluşmuştur.)
Program yazılırken istenilen yerde GOTOXY yazılır ve sonra (;) konur.

Kullanım Şekli:

GOTOXY(sütun değeri, satır değeri)

şeklinde kullanılır.

Örnek: Ekrana Sıralı olarak "Merhaba:" ,"Pascalla Programlama" , "Hoşgeldiniz" yazan program.
PHP:
program hosgeldin;

uses crt;

begin
   clrscr;
   gotoxy(20,5);
   write('Merhaba :');
   gotoxy(23,6);
   write('Pascalla Programlamaya');
  gotoxy(23,7);
   write('Hoşgeldiniz');
   readln;
end.

READKEY

Klavyeden bir tuşa basılmasını bekler ve bu basılan tuşun ASCII kodunu istenirse CHAR tipindeki bir değişkene aktarabilir.

Kullanım Şekli:

READKEY;

şeklinde kullanılır.

Örnek: Aşağıdaki program Enter'dan başka bir karaktere basıldığı müddetçe programdan çıkmaz

PHP:
program readkey_kullanimi;

uses crt;

var
   key:char;
begin
     clrscr;
     gotoxy(10,5);
     write('Çıkmak için ENTER a basın  ');
     repeat
           key:=readkey;
     until key=#13;
end.

Readkey deyimi bize klavyeden basılan tuşların hangisi olduğunu bildirdiği için ilerdeki birçok programda kullanacağız.

KEYPRESSED

Bu deyimde Klavyeden bir tuşa basılmasını bekler fakat bu basılan tuşun karşılığında bir ASCII kodu üretmez. Sadece herhangi bir tuşa basılıp basılmadığını belirten mantıksal bir değer (True/False) üretir.

Kullanım Şekli:

KEYPRESSED;

şeklinde kullanılır.

WİNDOW

Ekranda bir pencere açmayı sağlar. Ve yapılacak tüm işler bu pencere içerisinde gerçekleştirilir. Açılan pencerenin sol üst köşesi artık yeni başlangıç noktasıdır.

Kullanım Şekli:

WINDOW(X1,Y1,X2,Y2)
X1:Pencerenin üst sütun numarası
Y1:Pencerenin üst satır numarası
X2:Pencerenin alt sütun numarası
Y2:Pencereninalt satır numarası

şeklinde kullanılır.

Örnek: Aşağıdaki örnek ekranda bir pencere açıp pencerenin kenarlarına 'A' harfini yazar.

PHP:
program pencere;

uses crt;

begin
  clrscr;
  window(20,5,30,15);
  gotoxy(1,1);write('A');
  gotoxy(1,10);write('A');
  gotoxy(10,1);write('A');
  gotoxy(10,10);write('A');
  readln;
end.

TEXTCOLOR

Yazılacak yazılarının renginin belirlenmesi için kullanılır.

Kullanım Şekli:

TEXTCOLOR(X)
X:(ister renk rumarası yazılır istenirse renk adı yazılır.)


Renk Adı
Renk Numarası
Renk

Black
0
Siyah

Blue
1
Mavi

Green
2
Yeşil

Cyan
3
Turkuaz

Red
4
Kırmızı

Magenta
5
Pempe

Brown
6
Kahverengi

LightGray
7
Parlak Gri

DarkGray
8
Koyu Gri

LightBlue
9
Açık Mavi

LightGreen
10
AçıkYeşil

LightCyan
11
AçıkTurkuaz

LightRed
12
Açık Kırmızı

LightMagenta
13
Açık Pembe

Yellow
14
Sarı

White
15
Beyaz


(16 ile 31 arasındaki renk numaraları ise yukardaki renklerin yanıp sönen halidir.)

TEXTBACKGROUND

Ekrana yazdırılacak olan yazının arkaplan rengini verir.

Kullanım Şekli:

TEXTBACKGROUND(X)

X: 0 ile 15 arasında değişen renk numarasıdır. 0 ile 7 arasındaki numaralarla 8 ile 15 arasındaki numaralar aynı rengi verir.

Örnek: Takım Renklerini veren basit bir program.


PHP:
uses crt;

begin
    clrscr;
    gotoxy(25,10);textcolor(4);textbackground(1);write('TRABZON');
    gotoxy(25,11);textcolor(14);textbackground(4);write('GALATASARAY');
    gotoxy(25,12);textcolor(14);textbackground(1);write('FENERBAHCE');
    gotoxy(25,13);textcolor(15);textbackground(0);write('BESiKTAS');
    readln;
end.
 
Karar Deyimleri /If.. Then.. Else Deyimi

Bu deyimi kullanmanın amacı bazı değerler kontrol edilerek, program parçacıklarının çalıştırılıp çalıştırılmamasına karar vermektir.

Örneğin bir şehirdeki havanın kirli olup olmadığını kontrolü bu deyimlerle yapılabilir. Havada bulunan kükürt dioksit oranı belirli bir yüzdeyi geçerse program havanın kirli olduğu, aksi taktirde havanın temiz olduğu mesajını verecektir.

Yine öğrencilerin dersi geçip geçmediklerini kontrol etmek için bir Seçim deyimi kullanılabilir. Burada ise öğrenci notu 65 ve üzeri ise öğrencinin geçtiğine, 65'in altında ise öğrencinin kaldığına karar verilir.

Seçim yapma deyimleri ile beraber mantıksal ifadeler kullanılır. Örneğin vergi miktarının 100 milyon TL'den düşük olup olmadığını kontrol etmek için mantıksal bir ifade kullanılır. Bu kontrol şu şekilde ifade edilebilir :

vergi<100000000
Basit IF..THEN..

Tek alternatifli if deyiminde eğer mantıksal ifade olan şart doğru ise deyim aktif hale gelecektir. Aksi taktirde deyim atlanacaktır.
(Eğer birden fazla deyim kullanılmak isteniyorsa Deyimler Begin-End Bloğu arasında yazılmalıdır.)


Kullanım şekli:

if <şart (Mantıksal ifadeler)> then

deyim veya deyimler;


Örnek :

if mesai>40 then

ucret:=ucret*1.35;


yukarıdaki satırda mesai saati 40 saati aşarsa ücret %35 oranında artırılacaktır.

İki Alternatifli IF..THEN..ELSE..

Eğer if'den sonraki mantıksal ifade olan şart doğru ise then'den sonraki deyim aktif hale gelecektir. Aksi taktirde deyim atlanacak ve Else deyiminden sonraki deyimler çalışacaktır.
(else'den önceki Deyimin sonuna (;) konmaz.)

Kullanım şekli:

if <şart (Mantıksal ifadeler)> then

deyim veya deyimler

else

deyim veya deyimler;


Örneğin vergi verme sınırı 100 milyon TL ise ve vergi oranı da %25 ise net değer şu şekilde hesaplanacaktır.

if gelir>=100000000 then

net:=gelir-(gelir*0.25)

else

net:=gelir;

Örnek : Öğrencinin notu 65 ve üzeri ise ekrana geçti aksi taktirde kaldı yazdıran bir Pascal programı yazınız.

PHP:
program notDegerlendirme;

 var 
     notu:integer;
 
begin
     notu:=70;
      if notu >= 65 then 
                                        writeln('gecti')
                                else 
                                        writeln('kaldi);
       readln 
end.

Çok Alternatifli IF..HEN..ELSE

Son İkiden fazla alternatif mevcutsa çok alternatifli if deyimi kullanılır. Burada else deyiminden sonra yeni bir if deyimi başlar. Çoklu if deyiminde eğer şart doğru ise then'den sonraki deyim aktif hale gelir ve diğer alternatifler dikkate alınmaz. Eğer şart yanlışsa, doğru şarta ulaşılıncaya kadar if deyimleri kontrol edilir. Eğer bütün şartlar yanlışşa son else'den sonraki deyimSon aktif hale gelir.

Kullanım şekli:

if <şart>then

deyim veya deyimler

else

if <şart> then

deyim veya deyimler

else

if <şart> then

......

else

deyim veya deyimler;
Örnek: Öğrencinin ismini ve aldığı notu bilgisayara giren ve nota göre notun derecesini ekrana yazdıran bir Pascal programı yazınız?

PHP:
program cokluIfDeyimi;
 uses crt;
 var 
     notu:integer;
     isim:string[25]; 

 begin
      CLRSCR;
      writeln('ogrenci ismini giriniz !');
      readln(isim);
      writeln('ogrenci  notunu giriniz ! ');
      READLN(notu);
      writeln(isim,' isimli ögrenci ');
      if  (notu>=1) and (notu <=49) then WRITELN('zayıf aldi !') 
           else 
               if (notu>=50) and (notu <=69) then WRITELN('orta aldi !') 
                   else 
                      if (notu>=70) and (notu <=89) then WRITELN('iyi aldi !')
                          else 
                             if (notu>=90) and (notu <=100) then WRITELN('pekiyi aldi ! !')
                                   else  WRITELN('not degerlendirilemedi !');
      READLN; 
end.

Karar Deyimleri /Case.. of Deyimi

Birden fazla alternatiften birinin şeçilmesi için Case deyimi de kullanılabilir. Bu deyim özellikle bir değerin değerlendirilmesinde dikkate alınırsa kullanışlıdır.

Değerlendirilecek değere case deyimi seçicisi denir. Bu değişkenin türü integer, char yada boolean olabilir. Secici değerden sonra of terimi kullanılır. Case deyimi end; ile sona erer.

Seçici değer'e göre programın akışı alternatif değer ya da değer aralıklarından birinin aralığına uygun gelecektir ve bundan sonraki deyim aktif hale gelecektir. Eğer seçici değer hiçbir aralığa uygun düşmezse else'den sonraki deyim aktif hale gelecektir.

Kullanım şekli:

case <secici değer> of

secici değer aralığı 1 :
deyim1

secici değer aralığı 2 :
deyim2

....
....

secici değer aralığı N :
deyim N

else
diğer deyim

end;

Örnek : Bilgisayara 1 ile 5 arasında sayı giren ve girilen sayının karşılığını ekrana yazan bir Pascal programı yazınız?

PHP:
program caseDeyimi; 
uses crt; 
var sayi : integer;
begin 
     CLRSCR;
     WRITE('1-5 ARASI BIR SAYI SECIN');
      READLN(sayi);
      CASE sayi OF 
               1:WRITELN('bir sayısını girdiniz'); 
               2:WRITELN('iki sayısını girdiniz '); 
               3:WRITELN('üç sayısını girdiniz ');
               4:WRITELN('dört sayısını girdiniz '); 
               5:WRITELN('beş  sayısını girdiniz ');
               ELSE WRITELN(' farklı sayı girdiniz'); 
     END;
     READLN; 
end.
Örnek : Bilgisayara a ile e harfleri arasında bir harf giren ve hangi harfin girildiğini ekrana yazdıran bir Pascal programı yazınız?

PHP:
uses crt;
var  
      harf : char;
begin
      CLRSCR; 
      WRITELN('a-e arasi bir  harf secin');
       READLN(harf);
       CASE harf OF 
              'a':WRITELN('a harfi girildi '); 
              'b':WRITELN('b harfi girildi ');
              'c':WRITELN('c harfi girildi '); 
              'd':WRITELN('d harfi girildi '); 
              'e':WRITELN('e harfi girildi ');
               ELSE WRITELN('farklı bir harf girildi.');
      END; {case deyimi sonu} 
      READLN;
end.

Örnek 1:

Öğrencinin ismini ve aldığı notu bilgisayara giren ve nota göre notun derecesini CASE deyimi kullanarak değerlendirip ekrana yazdıran bir Pascal programı yazınız?

PHP:
uses crt; 
var 
      notu:integer;
      isim:string[25];
begin
      CLRSCR; 
      WRITELN('"öğrenci ismini giriniz !'); 
      READLN(isim); 
      WRITE('ogrenci notunu  giriniz ! ');
      READLN(notu); 
      WRITELN(isim,' isimli öğrenci '); 
      CASE notu  OF 
             1..49 : WRITELN('zayıf not aldı !');
             50..69 : WRITELN('orta not aldı !');
             70..89 : WRITELN('iyi not aldı !');
             90..100 : WRITELN('pekiyi not aldı!') 
             ELSE WRITELN('not değerlendirilemedi !'); 
       END;
       READLN; 
end.

Örnek 2:

Öğrencinin ismini ve aldığı notu harf olarak bilgisayara giren ve harfin karşılığı olan notu sayı ile ekrana yazdıran bir Pascal programı yazınız?

PHP:
uses crt;
var  
      isim:string[25]; 
      notu:char;
begin
      CLRSCR; 
      WRITELN('"öğrenci ismini giriniz !');
       READLN(isim); 
       WRITE('ogrenci notunu  A, B, C, ve D olarak giriniz ! '); 
       READLN(notu);
       WRITELN(isim,' isimli  öğrenci ');
       CASE notu OF 
         'd', 'D' : WRITELN('notu 1..49 arası zayıf aldı !');
         'c', 'C' : WRITELN('notu 50..69 arası orta aldı !'); 
         'b', 'B' : WRITELN('notu 70..89 arası iyi aldı !'); 
         'a', 'A' : WRITELN('notu 90..100 arası pekiyi aldı !')
         ELSE WRITELN('not değerlendirilemedi !');
      END;
      READLN; 
end.

Örnek 3:

Öğrenci notu şu şekilde hesaplanmaktadır. Yıliçi notu için, vizenin %50'si, quiz'in %25'i, ödevin %15'i ve devamın %10'u dikkate alınmaktadır. Başarı notu ise yıliçi notunun ve final notunun %50'si dikkate alınarak hesaplanmaktadır. Öğrencinin başarı notunu hesaplayan ve geçip kaldığını ekranda gösteren bir Pascal programı yazınız?

PHP:
program basari_notu;
uses crt;
const
     vize = 0.50; 
     quiz = 0.25;
     odev = 0.15;
     devam= 0.10;
     yil_ici=0.50;
     final = 0.50;
     basari= 0.65;
var
     vize_notu:integer;
     quiz_notu:integer;
     odev_notu:integer;
     devam_notu:integer;
     yil_ici_notu : real;
     final_notu : real;
     notu : real;
     notlar : integer;
begin
     WRITE('vize notunu giriniz : ');
     READLN(vize_notu);
     WRITE('quiz notunu giriniz : ');
     READLN(quiz_notu);
     WRITE('odev notunu giriniz : ');
     READLN(odev_notu);
     WRITE('devam durumu        : ');
     READLN(devam_notu);
       yil_ici_notu:=vize*vize_notu+quiz*quiz_notu+odev*odev_notu+devam*devam_notu;
       yil_ici_notu:= yil_ici_notu*yil_ici;
       WRITE('final notunu giriniz: ');
       READLN(final_notu);
       final_notu:=final*final_notu ;
       WRITE('basari notu hesabi  :');
       notu:=yil_ici_notu+final_notu;
       WRITELN;
       WRITELN('yil ici notu : ',yil_ici_notu);WRITELN('final notu   : ',final_notu);
        notlar:= trunc(notu);
        CASE notlar OF
              1..64 :writeln('basarisiz oldu');
              65..100 :writeln('basarili oldu');
              else writeln('notu gecersizdir');
       END;
       READLN
end.
 
For...do Deyimi

Döngüler belirli bir koşul sağlanana kadar istenilen işlemlerin istediğimiz sayıda icra edilmesini sağlar. Pascal Programa dilinde üç döngü deyimi mevcuttur.

For..Do döngü deyimi istenilen deyimin istenilen sayıda tekrar icra edilmesi için kullanılır.

Kullanım Şekli:

For <değişken : =ilkdeğer> To/Downto <sondeğer> Do <deyim>

For yazıldıktan sonra döngü kontrol değişkenine ilkdeğer atanır. İlkdeğer atandıktan sonra isteğe bağlı olarak To veya Downto kullanılır.

To değişkenin değerini küçükten büyüğe doğru değiştirir.

Downto ise değişkenin değerini büyükten küçüğe doğru değiştirir.

Değişkenin nasıl değişeceği belirlendikten sonra değişkenin alacağı sondeğer belirlenir. Sondeğer verildikten sonra Do yazılır ve icra edilecek deyim yazılır.

Not: Eğer birden fazla deyim icra edilmek isteniyorsa icra edilecek deyimler Begin-End bloğu içinde yazılır. Pascal Programlama dili Begin-End Bloğu içindeki deyimleri tek bir deyim gibi icra eder.


Örnek

Ekrana 10 kere kullanıcının adını ve soyadnı yazan programı yazınız.

PHP:
program fordongusu;
uses crt;
var
   ad:string[10];
   soyad:string[15];
   i:integer;
begin
     clrscr;
     write('Adınızı Giriniz    :');readln(ad);
     write('Soyadınızı Giriniz :');readln(soyad);
     writeln;
     for i:=1 to 10 do
     writeln(ad,' ',soyad);
     readln;
end.

Örnek

1-255 arasında girilen bir sayının Gauss toplamını bulan programı yazınız.

PHP:
Program sayitoplami;
uses crt;
var
  i,deger,toplam:integer;
begin
     clrscr;
     write('Gauss Toplamı Bulunacak Sayıyı Giriniz:  ');
     readln(deger);
     writeln;
     toplam:=0;
     for i:=1 to deger do
         toplam:=toplam+i;
     write('Toplam Deger:  ',toplam);
     readln;
end.

Örnek 1

1'den 10'a kadar olan sayıların çarpımını ekrana yazan programı yazınız.

PHP:
program carpim;

USES CRT;

VAR
  X,Y:INTEGER;

BEGIN 
   CLRSCR;
  WRITELN;
  FOR X:=1 TO 10 DO
  BEGIN  WRITE('   ');
    FOR Y:=1 TO 10 DO
    BEGIN
      WRITE( X*Y:5);
    END;
  WRITELN;WRITELN;
  END;
  READLN;
END.

Örnek 2

Klavyeden girilen 10 sayının kendisini, karesini ve sırayla sayıların toplamını ekrana yazdıran programı yazınız (For Döngüsü Kullanarak)

PHP:
program toplama_ve_kareleri;

USES CRT;

VAR
   i:INTEGER;
   sayi,toplam,kareler:real;

BEGIN
   CLRSCR;
   toplam:=0;
   FOR i:=1 TO 10 DO
      BEGIN  WRITE(i,'  . sayıyı giriniz ! ');
         readln(sayi);
         toplam:=toplam + sayi;
         kareler:=sayi*sayi;
         WRITELN( 'sayı :',sayi:6:2,'  karesi :',kareler:6:2,'  toplam :',toplam:6:2);
      END;
   READLN;
END.

Not : Ondalık sayıları formatlı yazmak için ilkönce değişken adı yazılır daha sonra ikinokta üstüste (:) konur daha sonra noktadan önceki kaç rakamın alıncağı yazılır, ikinokta üstüste (:) konur ve noktadan sonra kaç rakam alınacağı yazılır.

Örnek olarak:

write(10.25) yazarsak ekranda 1.0250000000E+01 şeklinde gözükür.
write(10.25:1:1) yazarsak ekranda 10.2 şeklinde gözükür.
write(10.25:1:2) yazarsak ekranda 10.25 şeklinde gözükür.
 
Koşullu Döngü Deyimleri / While...do Deyimi

While yazıldıktan sonra yazılan koşula göre döngüye giren veya bir sonraki deyime geçen bir döngüdür.

Koşul doğru olduğu sürece döngü içindeki işlemler tekrarlanır. Koşul yanlış olursa program döngüden çıkar ve döngüden hemen sonraki deyimi icra etmeye başlar.

Kullanım Şekli:

While <koşul(mantıksal ifadeler)> do deyim;

While yazıldıktan sonra kontrol edilecek koşul yazılır. Kontrol edilecek koşul yazıldıktan sonra Do yazılır. Son olarak koşul doğru olduğu sürece dönğü içinde çalıştırılacak olan deyimler yazılır.

Not:
Eğer birden fazla deyim icra edilmek isteniyorsa icra edilecek deyimler Begin-End bloğu içinde yazılır. Pascal Programlama dili Begin-End Bloğu içindeki deyimleri tek bir deyim gibi icra eder.

Not:
Eğer başlangıçta koşul doğru değilse program bu döngüye hiç girmeyecektir.
Örnek

1-255 arasında girilen bir sayının Gauss toplamını bulan programı yazınız.

PHP:
program dongulerin_kullanimi;

uses crt;

var
   toplam_sayi : integer;
   while_toplam: integer;
   j : integer;

begin
   clrscr;
   writeln('Gauss Toplamı Hesaplanacak Sayıyı Giriniz');
   writeln('(1 ile 255 arasında)');
   readln(toplam_sayi);
   while_toplam := 0;
   j:=0;
   while j < toplam_sayi do
      begin
         j:=j+1;
         while_toplam := while_toplam + j;
      end;
   writeln(' Gauss toplamın değeri :  ' , while_toplam );
   readln;
end.

Koşullu Döngü Deyimleri / Repeat...Until Deyimi

Program Repeat'dan sonra yazılan deyimi çalıştırır ve Until satırına yazılan koşul doğru oluncaya kadar döngünün içindeki deyimleri tekrar tekrar icra etmeye devam eder.

Kullanım Şekli:

Repeat deyim Until <koşul(mantıksal ifadeler)>;

Repeat yazıldıktan sonra icra edilecek deyim yazılır. İcra edilecek deyim yazıldıktan sonra Until yazılır. Son olarak Döngüden çıkış koşulu yazılır.

Not:
Eğer birden fazla deyim icra edilmek isteniyorsa icra edilecek deyimler Begin-End bloğu içinde yazılır. Pascal Programlama dili Begin-End Bloğu içindeki deyimleri tek bir deyim gibi icra eder.

Not:
Başlangıçta koşul Doğru değilse bile program bu döngüye enaz bir kere girer.

Örnek

1-255 arasında girilen bir sayının Gauss toplamını bulan programı yazınız.

PHP:
program dongulerin_kullanimi;

uses crt;

var
  toplam_sayi:integer;
   return_toplam: integer;
   i : integer;

begin
   clrscr;
   writeln('Gauss Toplamı Hesaplanacak Sayıyı Giriniz');
   writeln('(1 ile 255 arasında)');
   readln(toplam_sayi);
   return_toplam := 0;

   i:=0;
   repeat
      i:=i+1;
      return_toplam := return_toplam +i;
   until i =  toplam_sayi;
   writeln('Gauss toplamın değeri :  ' , return_toplam );
   readln;
end.

Gauss toplamı hesaplanacak olan sayı klavyeden girilir ve repeat döngüsü içinde kullanılacak olan döngü değişkeni i ve toplamada kullanılacak olan toplam_sayi değişkeni sıfırlanır. i kontrol değişkeni toplam_sayi ile aynı oluncaya kadar döngü içersinde i 'nin değeri artırılır.

Örnek

Enter'a basana kadar döngüden çıkmayan bir program yazınız.

PHP:
program readkey_kullanimi;
uses crt;
var
   key:char;
begin
     clrscr;
     gotoxy(10,5);
     write('Çıkmak için ENTER a basın  ');
     repeat
           key:=readkey;
     until key=#13;
end.

Program repeat döngüsüne girdikten sonra çıkmak için klavyeden enter tuşuna basılmasını beklemektedir. Klavyeden basılan her karakterin enter olup olmadığı kotrol edilmektedir.

Not:
Enter'ın ASCII karakter kodu (13) Esc 'nin ASCII karakter kodu (27) Boşluk karakterinin ASCII kodu (32)dir.. Pascal programlama dilinde ASCII karakter setini kullanmak için ASCII karakter numarasından önce (#) işareti kullanmak gerekmektedir.

Continue

Döngü içerisinde belirli bir koşula göre döngünün bir sonraki adıma geçmesini sağlar.

Kullanım Şekli:

Continue;

Continue kullanılan for döngüsünde to kullanılmışsa döngü değişkeni 1 artırılır. Eğer downto kullanılmışsa döngü değişkeni 1 azaltılır.
Eğer While..Do kullanılmışsa programın akışı while dan sonraki mantıksal ifadenin olduğu kısma geçer.
Eğer repeat..Until kullanılmışsa program akışı until den sonraki mantıksal ifadenin olduğu kısna geçer.

Break:

Döngüden çıkmayı sağlar. Bu deyim kullanıldığı zaman Programın akışı döngüden sonraki ilk deyime geçer.

Kullanım Şekli:

Break;
Örnek 1

Klavyeden sırayla girilen sayıların kendisini, karesini ve sırayla sayıların toplamını toplamları 100 olana kadar ekrana yazdıran programı yazınız (Repeat..Until Döngüsü Kullanarak)

PHP:
program toplama_ve_kareleri;

USES CRT;

VAR
   i:INTEGER;
   sayi,toplam,kareler:real;

BEGIN
   CLRSCR;
   toplam:=0;
   i:=1;
   repeat
         WRITE(i,'  . sayıyı giriniz ! ');
         readln(sayi);
         toplam:=toplam + sayi;
         kareler:=sayi*sayi;
         WRITELN( 'sayı :',sayi:6:2,'  karesi :',kareler:6:2,'  toplam :',toplam:6:2);
         i:=i+1;
   until toplam>100;
END.

Örnek 2

Programı kullanan erkek veya kadınların boyuyla kilosunu klavyeden girilmesini isteyip boylarıyla kiloları arasındaki farkı ekrana yazdıran programı yazınız.Klavyeden sırayla girilen sayıların kendisini, karesini ve sırayla sayıların toplamını toplamları 100 olana kadar ekrana yazdıran programı yazınız (Repeat..Until Döngüsü Kullanarak)

PHP:
USES CRT;

VAR
   B,K:BYTE;
   C,D:CHAR;
   IKK,IK:BYTE;
BEGIN
   CLRSCR;
   WRITE('KILO HESABI YAPMAK ISTIYORMUSUNUZ (E/H)  :');READLN(D);
   WHILE ((D='E') or(D='e')) do
   BEGIN
   WRITE('CINSIYETINIZ E/K  :');READLN(C);
   WRITE('BOYUNUZ           :');READLN(B);
   WRITE('KILONUZ           :');READLN(K);
   IF ((C='K') or (c='k')) THEN
         BEGIN
              IKK:=B-100;
              IF (K<B-100)THEN WRITELN(IKK-K ,'  KILO ZAYIFSINIZ BAYAN');
              IF (K>B-100)THEN WRITELN(K-IKK ,'  KILO FAZLANIZ VAR HANIMEFENDI');
         END;
   IF ((C='E') or (c='e'))  THEN
         BEGIN
              IKK:=B-110;
              IF (K<B-110)THEN WRITELN(IKK-K,'  KILO ZAYIFSINIZ BAYIM');
              IF (K>B-110)THEN WRITELN(K-IKK ,'  KILO FAZLANIZ VAR BEYFENDI');
         END;
   WRITE('KILO HESABI YAPMAK ISTIYORMUSUNUZ (E/H)  :');READLN(D);
   END;
   READLN;
END.
 
Geri
Top