“Pascal” Kategorisi için Arşiv

Pascal – Veri Yapıları

- Listeler

Bir veri yapısı olan listeler aynı tür veri tiplerinin ard arda sıralanması ile oluşan bir yapıdır. Örneğin bir kütüphanede yazarların isimlerinin ard arda yazılması ile yazarlar listesi, kitap isimlerinin ard arda yazılması ile kitapların listesini elde ederiz. Bunun gibi listeleri günlük hayatımızda çokca kullanırız. Listenin uzunluğu listede bulunan elemanların sayısına eşittir. Birinci eleman listenin başını, sonuncu eleman ise listenin sonunu temsil eder. Eğer listenin bütün elemanları boş ise liste boştur. Eğer liste boyu kadar eleman listede varsa o zaman da liste doludur, deriz. Bu mantıklardan hareketle listeye yeni eleman ekleyerek ve listeden eleman çıkararak listenin hareketliliği sağlanmış olur.

Listenin elemanları daha önce tanımlanan veri tiplerinden herhangi biri olabilir. Yani liste sayısal verilerden olabileceği gibi alfasayısal verilerden oluşan bir liste de olabilir. Listeyi oluşturan veri tiplerini programı kullanım amacımıza göre seçebiliriz.

Listelerde veriler karışık olarak yerleştirilebileceği gibi bir sıraya bağlı olarak ta yerleştirilebilir. Ancak listelerdeki verilerin karışık olması, istendiği zaman istenilen verinin bulunabilmesini zorlaştırır.

1. Yapı olarak bağlaçsız liste yapısı sequential (sıralı) kütük yapısına benzer. Sequential kütüğe veri ekleme ve silme işlemlerinde kullanılan mantık bu yapıda da uygulanabilir.Verilerin düzenli olarak yerleştirilmesi ise bu tür arama işlemlerini kolaylaştırmasına rağmen bu sefer de ortaya düzenli (sıralı) olarak yerleştirme problemi çıkar.

2. Bu tür dezavantajları ortadan kaldırmak için bağlı liste yapıları kullanılır. Mantık olarak kolay bir yapı olduğu için çok kullanışlıdır.

Şubat 2, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – Özel Veri Tipleri

- Veri Tipleri

Pascal programlama dilinde tanımlı olamayan fakat programcı tarafından tanımlanıp kullanılan veri tipleri vardır. Bu veri tipleri tip tanımlama bölümünde tanımlanırlar. Program içerisinde kullanım için tip tanımlama bölümünde tanımlanan özel isim değişken tanımlama bölümünde değişken tipi gibi kullanılır.

Örnek  olarak ;

Type

Max = 1..100;

Var

notlar : Max;

Şeklinde Max isminde özel bir veri tipi tanımlamış ve  var bloğunda notlar değişkeni  Max değişkeninden faydalanılarak tanımlanmıştır.

Özel veri tipleri, basit veri tiplerinden daha karmaşık şekilde oluşturulabilir.

Bu veri tipleri;

1-Diziler

2-Küme veri tipi

3-Sıralı veri tipi

4-Sınırlı veri tipi

5-Kayıt veri tipi

Şubat 2, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – Unitler

- Unit Programlar

UNIT PROGRAMLAR

Pascalda, diğer programların kullanabileceği pascal programlarına unit programlar denilmektedir. Bu programlar derlendikten sonra Turbo Pascal tarafından .TPU (Windows 'ta .TPW, korumalı modda .TPP) uzantısını alırlar. Unitler birer bağımsız programdırlar, ancak kendi başlarına çalıştırılamazlar. Kendilerini çalıştıran bir ana program vasıtasıyla çalışabilirler. Unitler, bir program hacminin 64 KB sınırını aşması veya birden fazla program tarafından kullanılabilecek alt programları tekrar yazmamak için oluşturulurlar.

unit unitadi;

interface

procedure altprogadi1(...);

procedure altprogadi2(...);

function function1(....):...;

function function2(....):...;

var

....

type

....

const

implementation

procedure altprogadi1(...);begin {işlemler} end;

procedure altprogadi2(...);begin {işlemler} end;

function function1(....):...;begin  {işlemler} end;

function function2(....):...;begin  {işlemler} end;

end.

- Unit Kullanmanın Faydaları

Ana program ile unitler arasındaki önemli farklılıklardan biri de unitlerde, mutlaka UNIT komutu ile başlayan ve unitin adını belirten bir unit başlığı kullanılması zorunludur. Unit adı sekiz karakteri geçemez ve burada verilecek unit adı, programın diske kaydedilirken kullanılan ad ile aynı olmalıdır. Bir unit programın ana program tarafından kullanılabilmesi için ana programda USES komutuyla birlikte unit adının yazılması gereklidir.

UNIT  KULLANMANIN  FAYDALARI

Ø Unitler  önceden  derlendiğinden  program  içerisinde  kullanıldığında  yeniden  derlenmesi  gerekmez.

Ø Unit  kullanarak  yazılan  programlar  daha  kısa  ve  basit  olur.

Ø Unitler  daha  önceden  derlenmiş  procedure  ve  functionlardan  oluştuğu  için  ana  programdaki  hataları  ayıklamak  kolay  olur.

Ø Kendinize  ait  özel  programlar  oluşturarak  ileriki  programlarda  bunlar  kullanılabilir.

Ø Uzun  programlar  programı  hazırlayacak  olan  programcı  grubunda  paylaştırılarak  programın  daha  kısa  sürede  bitmesi  sağlanabilir.

Ø Unitlerin  kullanıldığı  diğer  bir  yer  ise  birden  fazla  programda  kullanılan  ve  sürekli  olarak  bütün  değerlerini  muhafaza  eden  değişken, sabit  ve  tipleri  tanımlamada  kullanılırlar.

Bir unit, interface ve implementation olmak üzere iki bölümden oluşur.Interface bölümünde, bu uniti kullanan program tarafından kullanılacak olan değişken, sabit, procedure ve function alt programlar yazılır. Ayrıca bu bölümde, bu unit programın kullanacağı hazır unitler ve kullanıcı unitleri de USES komutu ile tanıtılır.Implementation bölümünde ise geçerli unit içinde bulunan ancak ana program tarafından kullanılmayan alt programlar yazılır. Burada değişken, sabit ve tip  tanımlamaları da yapılabilir. Burada yapılan tanımlamalar sadece unit içerisinde geçerlidir.

Şubat 1, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – Alt Programlar

- Procedure Alt Programlar

Alt programlar genellikle tekrar edilen işlemleri kolaylıkla yapabilmek için yazılırlar.Bilgisayar dillerinin tamamında bulunan alt program yapısı PASCAL Programlama dilinde PROCEDURE ve FUNCTION türü alt programlar olmak üzere iki ayrı türdedir.

Procedure Alt Programlar

Bir pascal programında Procedure alt programlara erişim ve procedure alt programın program içindeki yeri aşağıdaki genel gösterim şeklinde verilmiştir.

program ad_;

procedure altprogram1;

begin

işlem blokları; end;

procedure altprogram2;

begin

işlem blokları; end;

begin (* ana program*)

işlemler;

altprogram1;

altprogram2;

işlemler;

altprogram1 ;

end.

Şubat 1, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – Standart Fonksiyonlar

- Lenght Komutu

LENGTH : Verilen  string  ifadedeki  karakter  sayısını  verir. Sonucu  byte  tipinde  bir  fonksiyondur.

Formatı:         LENGTH(STRING İFADE)

Örnek 1:

uses  crt;

const

a=‘ankara’;

begin clrscr;

writeln(a,’    ’,length(a),’   karakterlidir.’);

readln;

end. Programın Çıktısı

Örnek 2: Verilen  bir  mesajın  kaç  karakterden  oluştuğunu  bulan  program.

uses  crt;

var

m : strıng;x : byte;

begin   clrscr;

write(‘mesaj  giriniz :’); readln(m);

x:=length(m);

writeln(x, ‘karakterlidir’);

readln;

end. Programın Çıktısı

X:=Length(M)  ifadesi  yerine  X:=Ord(M[0])  ifadesi  kullanılabilir.

Şubat 1, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – İndeksli Değişkenler

- Dizilere Giriş

DİZİLER

Bir dizi, aynı tipteki elemanların yanyana sıralanışı ile elde edilen bir bilgi kümesidir. Örneğin 10 bileşenli bir vektör için 10 basit tip değişken kullanılması gerekirken, 10x10 boyutlarındaki matris için 100 basit tip değişken kullanılması gerekmektedir. Bizim için gerekli olan, aynı tipte elemanlardan oluşan bir veri kümesini tek bir değişken ismi kullanarak , küme içindeki yeri ile erişilmesini sağlayacak veri yapısıdır. Diziler, kullanım amacına göre tek veya çok boyutlu olabilir. PASCAL programlama dilinde diziler, TYPE, VAR veya CONST tanım bloklarından birinde tanıtılır.

Dizilerin Tanıtılması

Bir dizinin tanımı değişik şekillerde yapılabilmektedir. Bunlar aşağıda kısaca özetlenmiştir.

1.Dizilerin Type Bloğunda Tanıtılması :Dizilerin type bloğunda tanıtılması işleminde örneğin; Tek boyutlu ve 30 elemanlı Endüstri Mühendisliği 1. Sınıf öğrencilerinin numaralarının programa tanıtımı:

TYPE Numara=ARRAY [1..30] of string[10];

VAR ogr:NUMARA;

şeklinde yapılabilir.Örneğe dikkat edilirse NUMARA adı verilen bir dizi TYPE tanım bloğunda tanıtılmış VAR tanım bloğunda ise bu dizinin OGR adı altında değişken tipte olduğu belirtilmiştir. Aynı şekilde tek boyutlu ve 30 elemanlı Endüstri Mühendisliği 1. Sınıf öğrencilerinin isimlerin programa tanıtımı ise:

TYPE Isimler=ARRAY [1..30] of String[25];

VAR OgrIsim:Isimler; şeklindedir.

Şubat 1, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – Döngü Deyimleri

- For Döngüsü

Bu bölümde program içerisinde belirli blokların herhangi bir şarta bağlı olarak veya şarttan bağımsız bir şekilde ardışık olarak çalıştırılması için kullanılan deyimler üzerinde durulacaktır. Bu tekrarlama deyimleri FOR-DO, REPEAT-UNTIL, WHILE-DO şeklindedir.

For-Do Döngü Deyimi : 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. Döngünün çalışma prensibi aşağıdaki şekilde gösterilmiştir.

For deyiminin genel kullanım şekilleri ileriki sayfada verilmiştir.

- İç İçe Döngüler

Şubat 1, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – Kontrol Deyimleri

- IF - Then Deyimi

Kontrol komutları olarak ; IF ve CASE deyimlerini inceleyeceğiz. CASE ve IF deyimleri belirli bir şartın doğru veya yanlış olmasına bağlı olarak programın bir parçasının çalıştırılmasını sağlamak için kullanılır.

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;

ş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.

Şubat 1, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – Ekran Komutları

- Clrscr ve Gotoxy Komutları

Ekran komutları ekrandaki görüntü tasarımı için kullanılan komutlardır. Bu komutların program içinde kullanılabilmesi için, program başlığı satırından sonra USES komutunda CRT  unit isminin yazılması gereklidir. Aksi halde, ekran komutlarıyla ilgili yazılan komutlar Pascal derleyicisi tarafından tanınmayacaktır.

Clrscr : "Clrscr" CRT üniti içinde yer alan bir alt programdır. Ekranda daha önce yazılı olan ifadeleri silerek ekranın temizlenmesi amacıyla kullanılır.

GotoXY : Kursörü ekranın istenilen sütun ve satırına taşımak için kullanılır. Kullanımı;

GotoXy(Sütun,Satır); şeklindedir. Normal bir ekran üzerinde 80 sütun ve 25 satır vardır.

Örnek 1:

uses crt;

var

j:word;

begin  clrscr;

for j:=1 to 20 do

begin

gotoxy(j,j);write('Gazi Üniversitesi');

gotoxy(50-j,j);write('Gazi Üniversitesi');

end;end.

Programın Çıktısı

- Window Komutu

Window : Ekranda pencere oluşturmak için kullanılan bir komuttur.  Kullanımı;

Window(X1,Y1, X 2,Y2);

X1 :P encerenin sol sütun numarası (1-80)

Y1 :P encerenin sol satır numarası (1-25)

X2 :P encerenin sağ sütun numarası (1-80)

Y2 :P encerenin sağ satır numarası (1-25)

Delay : Programın belirtilen süre kadar bekletilmesini sağlar. Delay (1000) komutu, programın 1 sn bekletilmesini sağlamaktadır. Bu komut sadece Turbo/Borland Pascalda kullanılabilir.

Örnek 4:

uses crt;

begin

window(20,5,60,20);

repeat

delay(5); write('G.Ü.E.S.E.F');

untıl keypressed;

end.

Programın Çıktısı

- Zemine Renk Verme

Textbackground : Ekrana yazdırılacak yazının zemin rengini ayarlamak için kullanılır. Bu komut sadece Turbo/Borland Pascalda kullanılabilir. Kullanımı; Textbackground(renk kodu);

Örnek 6:

uses crt;

begin

textcolor(green);textbackground(black);

writeln('merhaba');

textcolor(lightred+blink);textbackground(lightgray);

writeln('günaydın!');

textcolor(14); textbackground(blue);

writeln('nasılsın');

normvideo;

end.

Programın Çıktısı

Sound/Nosound : Sound, verilen frekansta ses üretmek için kullanılır. Nosound, sound ile üretilen sesi ortadan kaldırmak için kullanılır.

Örnek 7:

uses crt;

begin

sound(220);

delay(200);

nosound;

end.

Şubat 1, 2009 Kategorisi: Pascal   Devamını Oku

Pascal – Giriş – Çıkış Komutları

- Read - Readln Deyimleri

Yazım İçin Format Belirleme :Writeln deyimi ile yapılan bilgi çıkışlarını düzenlemek için yazım formatları kullanılır. Yazdırılmak istenilen değerin tipine bağlı olarak iki farklı yazım formatı kullanılır.


1. Yazım Formatı (M:n) :Bu yazım formatına göre yazdırılmak istenilen M değeri n karakterlik alanda sağa dayalı olarak yazılır. M değerini oluşturan dijit veya karakterin uzunluğu n sayısından küçük ise, aradaki fark kadar sol tarafta boşluk bırakılır. M değerinin uzunluğu n sayısına eşit veya büyük ise yazdırma işlemi format belirtilmemiş gibi gerçekleştirilir.

Örnek 1:

uses crt;

const

i:integer=567;

b:boolean=true;

c:char='b';

h:string[10]='nasılsınız';

begin

writeln('123456789');writeln;

writeln(i:9);writeln(b:9);

writeln(c:9);writeln(h:9);

writeln(i:2);writeln(h:5);

end.

Programın Çıktısı

- Write - Writeln Deyimleri

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.

Var

s,a,n:integer;

begin Programın çalıştırılmasıyla elde edilen sonuç; 395 olacaktır.

s:=3;a:=9;n:=5;

Write(s); Write(a); Write(n);

end.

3

Aynı değişkenleri Writeln ile yazdırdığımızda; 9

5 olur.

- Formatlı Yazdırma

Yazım İçin Format Belirleme :Writeln deyimi ile yapılan bilgi çıkışlarını düzenlemek için yazım formatları kullanılır. Yazdırılmak istenilen değerin tipine bağlı olarak iki farklı yazım formatı kullanılır.

1. Yazım Formatı (M:n) :Bu yazım formatına göre yazdırılmak istenilen M değeri n karakterlik alanda sağa dayalı olarak yazılır. M değerini oluşturan dijit veya karakterin uzunluğu n sayısından küçük ise, aradaki fark kadar sol tarafta boşluk bırakılır. M değerinin uzunluğu n sayısına eşit veya büyük ise yazdırma işlemi format belirtilmemiş gibi gerçekleştirilir.

Örnek 1:

uses crt;

const

i:integer=567;

b:boolean=true;

c:char='b';

h:string[10]='nasılsınız';

begin

writeln('123456789');writeln;

writeln(i:9);writeln(b:9);

writeln(c:9);writeln(h:9);

writeln(i:2);writeln(h:5);

end.

Programın Çıktısı

Şubat 1, 2009 Kategorisi: Pascal   Devamını Oku
12