turbo pascal
TRANSCRIPT
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 1/84
İÇİNDEKİLER
TURBO PASCAL’A GİRİŞ
EDİTÖR .............................................................................................................. Ana Menü ......................................................................................................... Alt menüler .....................................................................................................
Programın Yazımı (Edit) .................................. ........... ..............................................Programın Saklanması (Save) ................................................ ..................................Programın Derlenmesi (Compile) .......................................................... ...................Programın Çalıştırılması (Run) ................................................................... ..............EXE Uzantılı Dosya Oluşturma ....................................................................... ..........PASCAL KAREKTER SETİ .......................................................................................
Turbo Pascal ‘da Kullanılan Komut ve Kelimeler ...................................................PASCAL PROGRAMININ GENEL YAPISI ................................................................
Program Başlığı ...............................................................................................Tanımlama Bloğu ............................................................................................Uygulama Bloğu ..............................................................................................
SABİTLER DEĞİŞKENLER VE OPERATÖRLER ....................................................
SABİTLER .................................................................................................................Sabit (Constant) Tanımlama ..................................................................................
DEĞİŞKENLER .........................................................................................................Değiken (Variable) Tanımlama ........................................................................Değişken İsimleri .............................................................................................
Değişken ve Sabit İsmi Seçilirken Dikkat Edilmesi Gereken Kurallar..........................Değişken Tipleri ...............................................................................................
Standart Değişken Tipleri ...........................................................................................Tamsayı (Integer) Değişken Tipleri ................. ............. ............................................Gerçek (Real) Değişken Tipi ......................................................................................Karakter (character) Değişken Tipi ............................................................................String Değişken Tipi ...................................................................................................Boolean Değişken Tipi ..............................................................................................
Programcının Tanımladığı Değişken Tipleri ....................................................Tip Tanımlama ...........................................................................................................
Dizi Tipi Değişkenler ........................................................................................Dizi Tipi Değişkenlerin Tanımlanması ........................................................................
Küme Tipi değişkenler ...................................................................................In operatörü ...................................................................................... .........................
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 2/84
Küme Tipi Değişkenlerin Tanımlanması ................................................ ...................Küme Tipi Değişkenlere Değer Atama ............................................... ......................Küme İşlemleri ...................................................................................... ....................
Sıralı Tip Değişkenler ............................................................................ .........Sıralı Tip Değişkenlerin Tanımlanması ................................................ ........... .........
Sınırlı Tip Değişkenler.......................................................................................Sınırlı Tip Değişkenlerin tanımlanması.................................................. .....................Sıralı Verilerin Yazdırılması.................................................................... .....................Sıralı Tip Veri Kullanmak Gerçekten Gerekli midir? ................................. ..................
Record değişken Tipi.........................................................................................Record Tipi Değişkenlerin Tanımlanması................................................. ..................Record Tipi Değişken Tanımlanması...........................................................................
Operatörler ....................................................................................................... Aritmetik işlem Operatörleri..........................................................................................İlişki Operatörleri..........................................................................................................
Mantıksal Operatörler...................................................................................................
TEMEL GİRİŞ / ÇIKIŞ KOMUTLARI
WRITELN.......................................................................... ..................................WRITE...............................................................................................................READLN............................................................................................................READ.......................................................................... ......................................FORMATLI ÇIKIŞ..............................................................................................
Integer Sayıların Formatlanması..................................................................................
Real Sayıların Formatlanması......................................................................................Char Tipi Verilerin Formatlanması...............................................................................String tipi Verileri Formatlamak....................................................................................Boolean Tipi Verilerin Formatlanması..........................................................................
VERİ KONTROLÜ (COMPILER BİLDİRİLERİ) ...................................................Compiler Bildirisi Tanımlamak......................................................................................FORWARD bildirisi.......................................................................................................R bildirisi.......................................................................... ............................................I bildirisi.......................................................................... .............................................
I (INCLUDE DOSYA) Bildirisi......................................................................................
PROGRAM AKIŞININ KONTROLÜ
DALLANMA DEYİMLERİ......................................................................................IF -THEN deyimi..........................................................................................................
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 3/84
IF -THEN _ELSE deyimi..............................................................................................CASE -OF deyimi.........................................................................................................
DÖNGÜLER.........................................................................................................
GOTO deyimi.......................................................................... ................................FOR-DO deyimi......................................................................................................
WHILE-DO deyimi........................................................................................................REPEAT-UNTIL deyimi...........................................................................................
İNDİSLİ DEĞİŞKENLER
İNDİSLİ DEĞİŞKENLERİNTANIMI........................................................................................................
.. 36TEK BOYUTLU DEĞİŞKENLER.................................................................................
Sıralama (sort) işlemi ..............................................................................................
iKi BOYUTLU DEĞİŞKENLER................................................................................
STANDART PROSEDÜR VE FONKSİYONLAR
MKDIR prosedürü.............................................................................................PARAMCOUNT fonksiyonu...............................................................................PARAMSTR fonksiyonu....................................................................................
GETDIR prosedürü; ..........................................................................................CHDIR prosedürü..............................................................................................IORESULT fonksiyonu......................................................................................RMDIR prosedürü.............................................................................................GETDATE prosedürü........................................................................................GETTIME prosedürü.........................................................................................SETDATE prosedürü.........................................................................................SETTIME prosedürü.........................................................................................CHR fonksiyonu.................................................................................................ORD fonksiyonu................................................................................................
PRED fonksiyonu..............................................................................................SUCC fonksiyonu..............................................................................................TEXTBACKGROUND prosedürü......................................................................TEXTCOLOR prosedürü...................................................................................LOWVIDEO prosedürü......................................................................................NORMVIDEO prosedürü...................................................................................READKEY fonksiyonu.......................................................................................
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 4/84
KEYPRESSED fonksiyonu................................................................................GOTOXY prosedürü..........................................................................................WINDOW prosedürü..........................................................................................COPY fonksiyonu..............................................................................................CONCAT fonksiyonu.........................................................................................LENGTH fonksiyonu.........................................................................................POS fonksiyonu.................................................................................................DELETE prosedürü..........................................................................................INSERT presedürü...........................................................................................STR prosedürü..................................................................................................VAL prosedürü..................................................................................................EXIT prosedürü.................................................................................................HALT prosedürü................................................................................................DELAY prosedürü..............................................................................................SOUND prosedürü............................................................................................
NOSOUND prosedürü.......................................................................................CLREOL prosedürü...........................................................................................DELLINE prosedürü..........................................................................................INSLINE prosedürü...........................................................................................WHEREX fonksiyonu........................................................................................WHEREY fonksiyonu........................................................................................RANDOM fonksiyonu........................................................................................SIZE OF fonksiyonu..........................................................................................UPCASE fonksiyonu..........................................................................................
ABS fonksiyonu .................................................................................................
INT fonksiyonu...................................................................................................FRAC fonksiyonu..............................................................................................TRUNC fonksiyonu............................................................................................ROUND fonksiyonu...........................................................................................ODD fonksiyonu................................................................................................SQR fonksiyonu................................................................................................SQRT fonksiyonu..............................................................................................SIN fonksiyyonu.................................................................................................COS fonksiyonu.................................................................................................
ARCTAN fonksiyonu..........................................................................................
EXP fonksiyonu.................................................................................................LN fonksiyonu....................................................................................................
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 5/84
ALT PROGRAMLAR
PROSEDÜR ALTPROGRAMLARI.........................................................................................
.. 51 Prosedür Kuralları..............................................................................................Prosedürlerde Değer Aktarımı..........................................................................
Değer Aktarmayan prosedürler (RAREMETRESİZ PROSEDÜRLER) .......................Değer Aktaran Prosedürler (PAREMETRELİ PROSEDÜRLER).................................Tek Yönlü Değer Aktarımı............................................................................................Çift Yönlü Değer Aktarımı............................................................................................
FONKS İYON ALT PROGRAMLARI................................................................FONKSİYON Tanımlama.............................................................................................Özyineleme (iç içe fonksiyon Kullanımı) ....................................................................
Alt Programların Yan Etkileri........................................................................................
BİRİMLER (UNITS) .............................................................................Pascal Tarafından Desteklenmiş Unit’ler................................................................
Programcı tarafından Yazılan Unıt ‘ler.....................................................................
DOSYALAR
DOSYA KAVRAMI ......................................................................................................TEXT DOSYALARI (SIRALI ERİŞİMLİ DOSYALAR) ..................................................
Text dosyalarda kullanılan Standart Fonksiyonlar.............................................Dosya Yaratmak...............................................................................................Dosyaya Bilgi Yazmak ......................................................................................Dosyadan Bilgi Okumak....................................................................................Dosyaya Bilgi Eklemek......................................................................................Dosyadan Bilgi Silmek.......................................................................................Dosyadaki Bilgiyi Değiştirmek...........................................................................
RECORD TİPİ DOSYALAR (RASGELE ERİŞİMLİ DOSYALAR) ..............................Dosya Yaratmak ...............................................................................................Dosyaya Bilgi Yazmak.......................................................................................
Dosyadan Bilgi okumak.....................................................................................Dosyadan Bilgi Aramak.....................................................................................Dosyadan Bilgi silmek.......................................................................................
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 6/84
PORT‘ LARIN KULLANIMI
PARALEL PORT’UN KULLANIMI........................................................................SERİ PORT’UN KULLANIMI.....................................................................................
GRAFİK
GRAFİK MOD KAVRAMI ....................................................................................EKRAN BOYUTLARI...................................................................................................
GRAFİK DEYİMLERİ...............................................................................................
ÖRNEK PROJE PROGRAMLARI
EDİTÖR PROGRAMLARI YAZMAK....................................................................Editör Zeminini ve Yazı Rengini Değiştirme.................................................................Editör Programlarında Bul-Değiştir İşlemleri................................................................Fonksiyon Tuşlarında fonkiyonlar Atamak...................................................................Programlara Şifreli Ulaşma..........................................................................................
MOUSE PROGRAMLARI YAZMAK.....................................................................Kursör Görüntüsünü Yok Etmek..............................................................................
Mouse Koordinatları Gösteren Program..................................................................
ÇİZİM PROGRAMLARI YAZMAK........................................................................PARALEL PORT’UN KULLANIMI................................................................................
Paralel Port’u Kullanarak Elektirikli Cihazlara Kumanda Eden Program.................
TURBO VISION....................................................................................................
TURBO PASCAL HATA MESAJLARII
COMPİLER HATA MESAJLARI...........................................................................
RUN-TIME HATA MESAJLARI ............................................................................
DİZİN...............................................................................................
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 7/84
1.BÖLÜM
TURBO PASCAL‘ A GİRİŞ
EDİTÖR
Genel Bilgiler PASCAL yüksek seviyeli bir compiler dildir. Bu kompiler dilde kaynak programın tamÖnce makine diline çevrilir ve EXE uzantılı object program elde edilir. Daha sokaynak program DOS ortamında sadece ismi yazılarak çalıştırılır.
Pascal kaynak programını yazmak için bir text editörü kullanmak gerekir.pascal’ın enönemli özelliklerinden birisi de yazma işlemlerini kolaylaştıran özel editbulunmasıdır.
Ana MenüTurbo pascal programlarınızı yazacağınız IDE ortamında kullanılan editör kom
içerir.
Alt Menüler
FILE menüsü Open... F3 : Daha önceden hazırlanmış olan programları ekrana getirir.
New : Yeni bir program yazmak gerektiğinde, yeni dosya açmak için kullanılır.
Save F2 : Editör içerisinde isim verilmiş bir program varsa , F2’ye basıldığında
olarak bu program sürücüye kaydedilir .Save as... : Edit penceresindeki bir programı başka bir isimle kaydistenildiğinde kullanılır.
Save all : Pascal editöründe birden fazla pencere açılarak programlar yazılmhepsini birden kaydetmek için kullanılır.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 8/84
Change dir... : Aktif sürücüyü değiştirmek için kullanılır.
Print : Aktif penceredeki programı yazıcıdan almak için kullanılır.Get info... : Teknik bilgileri öğrenmek amacıyla kullanılır.
Dos shell: Geçici olarak dos ortamına geçmek için kullanılır.
Exit Alt-x : Turbo pascal editöründen çıkmak için kullanılır.
EDIT menüsü Restore Line : Silinmiş olan en son satırı kursörün bulunduğu pozisyona tekrar geiçin kullanılır.
Cut shift-Del : Seçilmiş bir text parçasını programdan silip, hafızaya alır.
SEARCH menüsü Find... : Program içerisinde yazılmış olan harf veya kelimeyi bulmak için kullanılır.
Replace... : Program içerisinde yazılmış olan kelimeyi değiştirir.
Search again : Replace veya find ile bulunan kelimeden sonra aynı kelimedeolmadığını arar.
Go to line number... : Kursörü program içerisinde istenilen bir satır numakomutlandırmak için kullanılır.
RUN menüsü Run Ctrl-F9 : Programı derledikten sonra çalıştırmak için kullanılır. Program reset Ctrl-F2 : işaretlenen yeri silmek , programı başlangıç durgetirmek amacıyla kullanılır.
Go to cursor F4 : Programı kursörün bulunduğu pozisyona kadar çalıştırır.
Trace into F7 : Programı satır satır çalıştırır.
Step over F8 : Trace into ile aynıdır.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 9/84
COMPILE menüsü Compile Alt-F9 : Aktif pencerede bulunan program veya unıt derlenir.
Make F9 : Aktif programı değişen unıt’leriyle derlemek için kullanılır.
Build : Programı bütün unit ‘ leriyle yeniden derlemek için kullanılır.
Destination Memory : Programı belleğe veya diske derlemesiniseçmek için kullan
DEBUG menüsü Watches : Watches seçeneğinin bir alt menüsü olan “ edit watch “ ekrana gelir.
Add Watch : Program çalışırken değerleri istenen değişenleri eklemek için kullanılı
Edit Watch... : Program çalışırken değerleri izlenecek olan değişken isimlerini yazmve değiştirmek için kullanılır.
OPTIONS menüsü Compiler... : Derleme seçeneklerini değiştirmek için kullanılır.
Memory size... : Bellek büyüklüğünü değiştirmek için kullanılır.
Linker... :Bu komut seçilince “ linker “ iletişim penceresi açılır.
Debugger... : Debug menüsündeki seçeneklerin özelliklerini değiştirmek için kullan
Directories... : Turbo pascal dosyalarının bulunduğu yeri görmek ve bu değiştirmek için kullanılır.
Environment : Beş farklı iletişim kutusunun seçilebileceği bir pencere gelir.
WINDOW menüsü Size/ move Ctrl-F5 : Aktif pencerenin ekranda kaydırılması için kullanılır.
Zoom F5 : Aktif pencerenin ekranda kapladığı alanı genişletmek için kullanılır.
Tile : Turbo editörde bulunan pencere birden fazla olduğunda, bu pencereleri dahapencerelere bölerek hesini ekranda görmemizi sağlar.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 10/84
Cassade : Ekrandaki birden fazla pencereyi üst üste getirme durumunu sağlar.
Next F6 : Üst üste duran pencerelerden bir sonrakini aktif hale getirir.Previous Shift-F6 : Cassade durumundaki pencerelerden bir öncekini aktif hale ge
Close Alt-F3 : Aktif pencereyi hafızadan ve ekrandan silmek için kullanılır.
Output : Dos ortamındaki program çıktılarını görmek için kullanılır.
User screen Alt-F5 : Dos ortamındaki program çıktılarını ekranın tamamını kaplşekilde görmemizi sağlar.
List... Alt-0 : Açık bulunan penceredeki program dosyalarının isimlerini listeler.
HELP menüsü Contents : Turbo pascal ‘daki bölüm başlıklarını ekrana getirerek, istenilen bölüm yardımı seçmek için kullanılır.
İndex Shift- F1 : Help dsyasında bulunan komutların tümünü alfabetik sırrayla listeiçin kullanılır. Topic search Ctrl-F1 : Kursörün üzerinde bulunduğu Pascal komutu ile ilgili İnaçıklamaları ekrana getirir.
Previous topic Alt-F1 : Önceden seçilen help seçeneklerine, geriye doğru biregiderek yardımı ekrana getirir.
Help on help : Help ekranının kullanılışınıaçıklayan satırlar ekrana gelir.
Programın Yazımı (Edit )Bir Pascal programı yazmak için ilk önce editörde bulunan diğer programları silip, ekran oluşturmak gerekir.
F10 tuşuna basıp FİLE seçeneğini ışıklandırırız. Sonra file menüsünün içinde bNEW kelimesini seçip Enter tuşuna basarız. Böylece boş bir ekran açmış oluruz.Gereksiz yere açılmış NONAME... dosyalarını silmek için; ALT+F3 tuşlarına bir kaç defa basınız.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 11/84
EDIT, PW editöründe bir satır aşağı inmek için satır sonlarında enter tuşuna , içergirintili yazmak için ise, tab tuşuna basılır.
Pascal programı örneği :
Programın Saklanması (Save)Programınızı yazdıktan sonra diskete kaydetmeniz gerekecektir.
F10 tuşuna basınız, sonra da F tuşuna basınız. Aşağı ok tuşuna basarak Save seçışıklandırıp Enter tuşuna basınız. Bu işlem için başka bir yöntemde direkt olarak F2basmaktır.
Programın Derlenmesi (Compile)
Yazılan bir programın çalıştırılabilmesi için tüm hatalardan arındırılmış olması gTurbo Pascal Compiler (TCP.EXE), kaynak program içerisinde bu gibi hataları bprogramcıya bildirir. Programcı bu hataları düzelttikten sonra tekrar derleme iyapar. Compile komutunu çalıştırmak için, Alt+C tuşlarına basınız, Compile seçeışıklandırarak Enter tuşuna basınız. Bu işlem için başka bir yöntem ise Alt+F9 tubirlikte basmaktır.
Programın Çalıştırılması (Run)F10 tuşuna sonrada R yazınız. Pencere içerisindeki ilk seçenek olan run seçeneği il
ışıklı olduğundan Enter tuşuna basınız. Aynı işlem için daha kısa bir yöntem ise CTtuşlarına basmaktır. Türbo Pascal sizin programınızı çalıştıracak ve ekranda prçıktısını çok kısa bir sürede görüntüleyecek ve tekrar paskal ana menüsündönecektir.Program çıktısını görmek için Alt+F5 tuşlarına basınız. Program çıktısı siz herhatuşa dokununcaya kadar görüntülenecektir. Herhangi bir tuşa basınca tekrar ana mdönülür.
Program Merhaba ;begin
Writeln(‘Merhaba’)Writeln(‘Turbo Pascal Dünyasına Hoş geldiniz’);Writeln(‘Güle güle’);
end.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 12/84
Program çıktısını yeniden görmek istediğiniz zaman tekrar Alt+F5 tuşlarına basınız.
EXE Uzantılı Dosya OluşturmaPascal kaynak programları (programcının editörde yazdığı program) derlendiğinde mdiline çevrilir. Makine diline çevrilmiş olan dosyanın uzantısı EXE’dir. EXE uzantılıolarak diske kaydetmek için, “Compile” Menüsünün altındaki “destination” seçenkarşısındaki bilgiyi “disk” olarak değiştirmek gerekir. Bu bilgi “memory” olarak kmakine diline çevrilen kaynak program diske kaydedilmez.Bazı uzun programların derlenmesi sırasında “out of memory” hatası ile karşılaşılabhatanın oluşmasını önlemek için “Option” menüsündeki “Linker Buffer” alanı “disk”değiştirilir.
PASCAL KARAKTER SETİPascal programlarının yazılmasında üç tür karakter kümesi kullanılır. Bunlar salfabetik ve özel işaret kümeleridir. Bu karakterler aşağıdaki tabloda verilmiştir.
Karakterler Açıklamalar Sayılar 0’ dan 9’ a kadar olan rakamlar.
Alfabetik Karakterler A’ dan Z’ ye İngiliz alfabesindeki büyük harfler.
A’ dan Z’ ye İngiliz alfabesindeki küçük harfler.+ Toplama işlemi ve stringlerin birleştirilmesinde kullanılır.
- / * Aritmetik işlemlerde sırayla çıkarma, bölme ve çarpma işleyapmak için kullanılır.
< > = Karar işlemlerinde ilişkisel operatörler olarak kullanılırlar.
# $Sayı yada karakterin başına getirildiğinde başka bir dgöstermesini sağlar
..Yanyana yazılan iki nokta, iki ayrı değeri ve bunlar araskalan tüm değerleri göstermek için kullanılır.
[ ] Bir dizinin indisini göstermek için kullanılır.(. .) Bir dizinin indisini göstermek için kullanılır.{ } Program içinde açıklama yapmak için kullanılır.
(* *) Program içinde açıklama yapmak için kullanılır.:= Değişkenlere değer atamak için kullanılır.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 13/84
Özelİşaretler
.Nokta, program sonunu belirtmek için ve sayıların onkısmını yazarken virgül yerine kullanılır.
,Virgül, listelenecek bir dizi sayı ve stringi birbirinden ayırmakullanılır.
; Noktalı virgül, Pascal deyim veya komutlarını birbirinden ayiçin kullanılır.
‘Tek tırnak sembolü, karakter yada stringlerin başlangısonunu belirtmede kullanılır.
:Bir değişkenin tipi tanımlanırken değişken listesinin sonkullanılır.
( ) Prosedür parametreleri parantez içinde yazılır.
{$} Bu ikili karakter, derleyiciye yapılan bildiriler için kullanılır.
_ Alt çizgi, derleyici tarafından karakter olarak kabul edgenellikle değişken ismi tanımlanırken kullanılır.
Yukarıdaki karakterler, açıklamalarda da belirtildiği gibi, derleyici için özel anlamları Bu nedenle amacı dışında kullanılmamalıdır. Kullanıldığında ise syntax error kuralı hatası) ile karşılaşılır.
Turbo Pascal’da KullanılanKomut ve Kelimeler
Pascal’ın Ayrılmış Kelimeleri (Reserved Words)
Pascal’da işlevleri dışında kullanılmayacak başka deyimlerde vardır. Pascal’da bunlareserved word (ayrılmış kelimeler) denir. Bunlar programcı tarafından tanımlanamÖrneğin bir değişken adı olarak kullanılamazlar.Reserved Word (Ayrılmış kelimeler) şunlardır ;
And Extended Not Type Array File Of ToBegin Forward Or UntilBoolean For Procedure UnitByte Function Program UsesCase Goto Real Var Char If Record WhileConst Implementation Repeat WithDiv In Set WordDo Integer Shortint Xor Downto Interface SingleDouble Label String
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 14/84
Else Longint TextEnd Mod Then
Turbo Pascal Komutları
Pascal’ da yine ayrılmış kelimelerden başka, özel özel işlevleri dışında kullanılamastandart procedure, function, deişken ve tipler vardır. Standart function ve procedPascal derleyici içerisinde tanımlanmışlar. Zaten Pascal’da kullanılan ve çoğu komut veya deyim adı verilen tüm kelimeler (örneğin; writeln, readln, lenghtprocedure, yani alt programdır. Bunların hepsi Pascal derleyicide hazır tanımlanmıştır. Türbo Pascal kütüphanesi içerisinde hazır bulunan ifadeler agörülmektedir.
Abs Erase Keypressed Randomize Str Arctan Exit Lenght Read Succ Append Exp Line Readln Sound Assign False Ln Readkey TextBar Filepos Lowvideo Rectangle Textcolor Bar3d Filesize Lst Rename TextbackgroundChr Frac Maxint Reset TrueCircle Getdir Mkdir Rewrite TruncClose Getdate Normvideo Rmdir TruncateClosegraph Getmaxx Nosound Round UpcaseClrscr Getmaxy Odd Seek ValConcat Getmaxcolor Ord Setdate WherexCopy Gettime Outtext Settime Wherey
Cos Gotoxy Outtextxy Setcolor WindowDelline Graphresult Paramcount Setfillstyle WriteDelay Halt Paramstr Setlinestyle WritelnDelete Initgraph Pi SettextstyleDetect Ioresult Pos SinEllipse Insline Putpixel Sizeof Eof Insert Pred Sqr Eoln Int Random Sqrt
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 15/84
PASCAL PROGRAMININ GENEL YAPISI
ÖRNEK 1: Klavyeden isminizi girdiğinizde ekrana bir mesaj yazdıran program.
Programı yazdıktan sonra, kaydedeceğiniz sürücüyü ve directory’ü belirlemek içtuşuna basıp sonrada File menüsünü seçiniz. Change dir... komutunu seçip enter
basınız. Şimdi ed programlarınızı kaydedeceğiniz sürücü ve directory için A:\ yazıptuşuna basınız. Bundan sonra saklama işlemi için sadece program adını yazmanızolacaktır. Çünkü directory bundan sonra A:\ dır.
Örnek 1’deki programın genel yapısı üç kısımdan meydana gelir.
Program başlığı
Tanımlama bloğu
begin
Ana program bloğu
End.
Program merhaba;var
isim : string ;
beginWriteln(‘isminizi Yazıp Enter Tuşuna Basınız >’);Readln(isim);Writeln(‘merhaba ‘,isim,’.’);Writeln(‘Umarım Pascal öğrenmekten hoşlanırsın !’);
End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 16/84
Program Başlığı
Dizilim: PROGRAM progismi;PROGRAM progismi (Input, Output);
Dizilim diyagramı:
Örnek: Program Merhaba;Program Merhaba (Input, Output);
Bir program başlığı, program deyimi ve bir program isminin aralarına bir karakter bırakılarak aynı satırda yazılmasıyla oluşur. İkinci yazılış formu ise sadece sPascal’ da geçerlidir. Input kelimesi klavyeden data girileceğini, output kelimprogram çıktısının ekrana yazılacağını belirtir. Türbo Pascal’da program başlığı kulisteğe bağlıdır. Kullanılmaması hataya neden olmaz.
Tanımlama BloğuTanımlama bloğunda, programın çalışması esnasında kullanılacak tüm istanımlanması yapılır. Farklı amaçlar için kullanılan isimler, farklı tanımlama bloklartanımlanırlar. Bu bloklar için başlık olarak kullanılan bildiri deyimleri aşağıda listelenm
Uses.................................... 1. Unit tanımlama bloğuLabel................................... 2. Etiket tanımlama bloğuConst.................................. 3. Sabit tanımlama bloğuType.................................... 4. Tip tanımlama bloğuVar...................................... 5. Değişken tanımlama bloğuProcedure........................... 6. Prosedür tanımlama bloğuFunction.............................. 7. Fonksiyon tanımlama bloğu
Tanımlama Bloğunun Bazı Özellikleri* Bir programda yukarıdaki tanımlama bloklarının tamamının kullanılması zorunlu de* Tanımlama bloklarının program içerisindeki sırası da önemli olmadığı gibi, tanımisimlerin program içinde kullanılmaları da zorunlu değildir.* Her bir tanımlama bloğu birden fazlada tekrarlanabilir.
program Program ismi ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 17/84
USES bloğuAmaç: Turbo Pascal standart ünitesi altında tanımlanmış olan prosedür ve fonksiprogram içerisinde kullanabilmek amacıyla kullanılır.
Dizilim: USES ünitlistesi;
Örnek: UsesCrt, Dos, Printer, Verigir ;
Türbo Pascal’da bazı standart prosedürler (clrscr, gotoxy, gibi...) Unit denilen bir dosaltında toplanmışlardır. Bu prosedürleri kullanabilmek için hangi Unit altında bulundUses tanımlama bloğu içerisinde yazmak gerekir.
LABEL bloğuAmaç: Pascal programlama dilinde satır numarası bulunmayışı nedeniyle, “goto” kkullanıldığında program akışının hangi komut grubuna geçeceğini etiketler ile begerekir. Program içerisinde goto deyimi ile işlem görecek olan program satırını beliamacı ile kullanılan etiketleri tanımlamak için kullanılır.Dizilim: LABEL etiket_listesi;
Dizilim diyagramı:
Örnek: ConstBirdol=8704.56;İsim=’Onur’;
Const başlığı altında birden fazla sabit tanımlaması yapılabilir. Her sabit tanımsonunda noktalı virgül ‘;’ kullanılır. Sabit değer olarak bir aritmetik işlem ifadesi yazıl
const Sabit ismi = Sabit değer ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 18/84
TYPE bloğuAmaç: Programcı tarafından oluşturulan özel veri tiplerini tanımlamak amacıyla kulla
Dizilim: TYPE
Tip_ismi = tip_tanımı;
Örnek: TypeGunler=(Pazartesi, Sali, Carsamba, Persembe, Cuma, Cum
pazar);Notlar=0..100;Sayi=set of 1..9;Kucuk=’a’..’z’;
Tip tanımlama bloğu “Type” kelimesi ile başlar. Aynı blok içerisinde birdefaklı tip tanımlaması yapılabilir. Her tip tanımlaması birbirinden “;” ile ayrılmalıdır
bloğunda tanımlanan veri tipleri, “Var“ bloğunda bir değişkenin tipini Tanımkullanılırlar.
VAR bloğuAmaç: Program içerisinde kullanılacak değişken isimlerini tanımlamak amkullanılırlar
Dizilim: VAR değişken_listesi: tip;
Dizilim diyagramı:
Örnek: Var İsim , soyad : string;
A, B : integer;C, D, E : integer;Değişken listesindeki herbir değişken için hafızada yer ayrılır. Değişkenin içgirilecek datanın tipi (string, integer....) iki nokta üst üste “:” ve noktalı virgül “;” ayazılarak belirtilir. Aynı tipteki değişkenler birden fazla listeyle Var başlığı tanımlanabilir. Programcı tanım bloğunda tanımlanan tipe sadık kalmalıdır.
Var
Değişken ismi : Tip ;
,
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 19/84
Uygulama bloğuUygulama bloğunda, program mantığı gereğince kullanılacak gerekli Pascal komutalır. Turbo Pascal programında Basic dilinde olduğu gibi program satır numarası kyoktur. Komut ve tanımlamaları birbirinden ayırmak için her komut sonuna “;” konulm
Ana program bloğu “begin” kelimesiyle başlar ve “end.” Kelimesiyle biter.
ÖRNEK 2: Doları Türk Lirasına çeviren program.
Bu program klavyeden girilen dolar miktarının Türk parası karşılığını bulur. Görüldüğbir Pascal uygulama bloğu “begin” kelimesi ile başlıyor, programın işlevlerini yerinegetiren komutlar kurallarına göre yazıldıktan sonra”end” komutu ile bitiyor.
Atama İşlemiAmaç: Değişkenler içerisinde sabit değerleri yerleştirmek amacı ile uygulanır.
Dizilim: Sonuç_değişkeni:=ifade;
Dizilim Diyagramı:
Örnek: x := y + z + 2 ;x := 5 ;y :=z ;lira:= birdol * dol ;ad:=’Kemal’+’Atatürk’;
Program dolardan_liraya;Const
Birdol=585800.25;Var
dol; lira : real;begin
Writeln(‘Kaç dolarınız var >’);Readln(dol);Lira:=birdol * dol ;
Writeln(dol,‘ABD doları’,lira,’TL. eder.’);End.
Sonuç değişkeni := İfade ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 20/84
ifadeden elde edilen değer sonuç değişkenine atanır. Sonuç un önceki değeri bozyerine ifadenin değeri yerleşir. İfade tek bir değişken veya sabit olabildiği gibi örnegörüldüğü gibi her ikisi de olabilir. Bir atama işlemi ‘;’ ile biter. Bir değişken içerisine yapmak için kullanılan işaretin ‘=’ olmayıp ‘:=’ olmasına dikkat ediniz. ‘= ’ işaretanımlama ve karşılaştırma işlemlerinde kullanıldığını unutmayınız. Aritmetik işlemlerinde dikkat edilmesi gereken bir kuralda, sonuç olarak adlandırılan değişkenaritmetik işlem sonucunda elde edilen ifadenin sonucuna uygun olmalıdır.
Pascal Programlarının Genel Yapısı
Program başlığı
Sabittanımlama
Taınlama bloğu
Değişkentanımlama
Pascal deyimleri Uygulama bloğu
Pascal Programlarının Yazım Kuralları
Noktalama İşaretleri ve Tanımlama Kuralları 1) Programlar, program başlığı ile başlar. Ancak kullanımı zorunlu değildir.2) Program içinde kullanılacak tüm isimler tanımlama bloğu içinde tanımlanmalıd3) Bütün sabit tanımlamaları const kelimesinden sonra gelir.4) Bütün değişken tanımlamaları var kelimesinden sonra gelir.5) Begin kelimesi ana program bloğunun başladığını bildirir.6) Ana program bloğu, makine diline çevrilip çalıştırılacak olan deyim
oluşmuştur.7) Programın en son satırı “end” kelimesidir.8) Her program bloğu birde fazla ‘end‘ deyimi içerebilir, ancak bu ‘end’ de
program sonunu değil alt blokların sonunu gösterir ve sonlarında ‘;’ vardır.9) Programın bloğu içindeki deyimler ’;’ ile birbirinden ayrılmalıdır.10) ‘;’ işareti ilk deyimden önce, ve son deyimden sonra konulması gerekmez.11) ‘begin’ kelimesinden sonra ‘;’ işareti konulması gerekmez.
Program program_ismi;Const Sabitismi=sabitdeğer;
““
Sabitismi=sabitdeğer;Var değişken_listesi : tip;
““
değişken_listesi : tip;Begin
deyim ;““
deyim ;End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 21/84
Büyük ve Küçük Harf KullanımıPascal’da, standart deyim veya kullanıcının belirlediği isimlerin büyü
küçük harflerle yazılması tamamen serbesttir. Çünkü Pascal derleyicisi büyük veharfler arasında ayırım yapmaz.Deyimler Arasındaki Boşluklar Pascal programlarında satır numarası olmadığından, programın okunabilirliğini argerekir. Pascal programlarında satır numarası olmadığından, programın okunabarttırmak gerekir. Pascal’da bu konuda büyük bir serbesti vardır. Derleyici, komsemboller arasına konulacak boşlukları dikkate almaz. Bu sizin programınızı dokunabilir duruma getirmeniz için önemli bir serbestliktir.Okunurluğu Kolaylaştıran Bazı Kurallar 1.)Virgül ve aritmetik operatörlerden (*,-,:=,/) önce ve sonra bir boşluk bırakınız.
Netmaas = brut * vergi veya x := y * z / 2 gibi.
2.) Begin, end, var, const kelimeleri dışında kalan diğer program satırlarını içeriye giolarak yazınız.
Var constNetmaas : real ; veya mypi = 3.14; gibi..
3.) Bir atama deyimi gibi iki karakter birlikte kullanılan sembolleri birbirinden ayırmay A:=B*C; ifadesini,
A : = B * C ; şeklinde yazamadığımız gibi, A := B* C ; şeklinde de yazamayız.
4.) Tanımlama isimleri arasında boşluk bırakılmaz. Ancak okunurluğunu arttırmak içaralarına “_” konulabilir.
Net_maas bir_dol gibi.
2. Bölüm
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 22/84
SABİTLER DEĞİŞKENLER veOPERATÖRLER
SABİTLERBir programın çalışması boyunca değişmeyen değerler “sabit” (constant) olarak adlaSabitler const bloğu içerisinde tanımlanırlar. Turbo Pascal derleyicisi tarafından öncedenolan bazı sabit isimleri vardır. Bu sabit isimlerinin const bloğu içerisinde tekrar tanımlangerek yoktur.
Pi = 3.1415926536False = FalseTrue = TrueMaxint = 32767Minint = -32768 dir.
NOT:Falsenin türkçe anlamı yanlış demektir. Truenin ise doğru demektir.
Sabit (Constant) TanımlamaDizilim: CONST sabit_ismi=sabit_değer;
Dizilim Diyagramı:
ÖRNEK: ConstBirdol=588000.36 ;İsim=’onur’ ;
Pascal programları içerisinde sabit kullanmak programın okunurluğunu arttırır. Const altında birden fazla sabit tanımlaması yapılabilir. Her sabit tanımlaması sonunda ‘;’ kullandeğer olarak aritmetik işlem ifadesi yazılamaz.
DEĞİŞKENLER
Değişkenler verileri bellekte tutmak için kullanılırlar. Her tanımlanan değişken bellekte belirlayrılmasına neden olur. Değişkenler içerisine programın akışı içerisinde farklı değerler ataİçerisinde değer bulunan bir değişkene yeni bir değer daha atandığında, bu değeri içinde baBu nedenle değişken adını alırlar.
Değişken (Variable) Tanımlama
const Sabit ismi = Sabit de er ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 23/84
Dizilim: VAR değişken_listesi : tip;Dizilim Diyagramı:
Örnek: Var İsim , soyad : string ;
A , B : integer ;C , D , E : integer ;
Değişken listesindeki herbir değişken için hafızada yer ayrılır. Değişkenin içerisine girilecek tipi “:” ve “;” arasına yazılarak belirtilir. Değişken listesindeki değişken isimleri birbirindeayrılır. Aynı tipteki değişkenler birden fala listeyle “var” başlığı altında tanımlanabilir. Pro
tanım bloğunda tanımlanan tipe sadık kalmalıdır. İnteger tipte tanımlanmış bir değişkentipte bir bilgi giremeyiz.
Değişken İsimleriBir değişkenin bellekte veri tutabilmesi için bellek hücresine bir isim verme zorunluluğu
Anlamlı değişken adları oluşturmanız, hem program tasarımında hemde programokunabilmesi açısından yarar getirir. Ancak isim verirken uyulması gereken bazı kurallar vakurallar, sabit, tip, değişken, procedure, function, etiket isimleri verirken de aynen geçerlidir.
Değişken ve Sabit İsmi Seçilirken Dikkat EdilmesiGereken Kurallar
1.) Daima bir harfle başlaması gerekir. Değişken isimleri rakamla başlayamaz.2.) Pascal ayrılmış kelimesi veya pascal komutlarından oluşamaz.3.) 63 karakterden daha fazla olamaz. Eğer daha uzun bir isim verilirse ilk 63 karakter geçe4.) Aritmetik işlem operatörlerini içeremezler.5.) Değişken isimleri arasında boşluk bırakılmaz. Ancak okunurluğu arttırmak için ‘_’ konula6.) İçerisine atanacak değeri anımsatacak kısaltmalardan oluşmalıdır.7.) Türkçe karakterleri içeremez.
Geçerli Değişken Veya Sabit İsimlerine Örnekler Harf1, Cm, A, ad_soyad, Lira, Sayilar, Isim, Adres1
Geçersiz Değişken Veya Sabit İsimlerine Örnekler
1Harf, Var, Const, Lira*Dolar, Ahmet’in, Ad-Soyad, Ülker, Şeker
var Değişken
ismi
: Tip ;
,
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 24/84
Değişken TipleriPascal’da 15 ayrı değişken tipi vardır. Bu tiplere ek olarak kendi değişken tipleritanımlayabilirsiniz. Her değişkenin bir tipi olmalıdır. Bir değişkenin tipi, o değişken için bellek bölgesinde ne tür veriler tutabileceğini ifade eder.Standart Değişken Tipleri
Standart veri tipleri Turbo Pascal tarafından belirlenen tipler vardır ki bunlara özel veri tipStandart veri tipleri aşağıda belirtilmiştir.
1) Integer tipi veriler a) Shortintb) Longintc) Byted) Word
2) Real tipli veriler a) Realb) Single
c) Doubled) Extended
Tamsayı (Integer) Değişken Tipleri Aritmetik işlemlerde kullanılan pozitif ve negatif tam sayılardır. Integer tipte sayıların ondalıkbulunmaz.
CLRSCR ProsedürüTurbo Pascal kütüphanesinde bulunan bu prosedür parametresiz olarak kullanılır. Ekranı ve kürsörü 1. satır 1. sütuna getirmeye yarar.
Gerçek (Real) Değişken TipiOndalık nokta içeren ve üslü biçimde ifade edilen sayılara real tip sayılar denir. Pascaldgerçek sayı vardır. (real, single, double, extended)
Karakter (Char) Değişken tipiChar tipi veriler, 255 adet olan ASCII karakterlerin sadece bir tanesinden oluşurlar. Char tiptek tırnak ‘ ’ içerisine yazılmalıdırlar. Char tipi değişkenler hafızada 1 byte’lık yer işgal ederle
String Değişken TipiString tipi veriler, tek tırnak ( ‘) içerisine alınan ve bilgisayar klavyesinden girilebilen kkümesinden oluşmuştur. Bir stringin hafızada kapladığı yer karakterlerin toplam sayısına eş
sayı en fazla 255 olabilir. Tırnak içerisinde bulunan boşluk karakterleri de bu sayının içerisBir string değişken tanımlanırken bu tipe ait verilerin uzunluklarının ne kadar olacağparantezler “[” ve “]” içinde belirtilmelidir. Belirtilmediği takdirde uzunluk 255 olarak kabul ed
Boolean Değişken Tipi
3) Char tipi veriler 4) String tipi veriler 5) Boolean tipi veriler 6) Array tipi veriler 7) File tipi veriler 8) Text tipi veriler
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 25/84
Bir karşılaştırma sonucunda elde edilen değer eğer bir değişken içerisine atanmak isteniyodeğişken boolean tipi olarak var bloğu içerisinde tanımlanmalıdır. Tanımlanan değişkbellekte bir byte’lık yer ayrılır. Boolean tipi bir değişken içerisine klavyeden ancak true veykelimeleri girilebilir.
Programcının Tanımladığı Değişken Tipleri Pascal da tanımlı olmayan, programcı tarafından type tanımlama bloğunda yaratılan amaçlar için kullanılan veri tipleridir. Pascal’ın standart veri tipleri bir programda tanımaduyulmaksızın kullanılabilir. Ancak bazı durumlarda verilerin işlenmesinde yetersiz kgörülür. Programcı tarafından yaratlabilecek olan 5 özel veri tipi vardır.
1. Küme veri tipi (set type)2. Sıralı veri tipi (scalar type)3. Sınırlı veri tipi (subrange type)4. Record veri tipi (record type)5. Dizi veri tipi (array type)
Tip TanımlamaTip tanımlama bloğu type kelimesiyle başlar. Aynı blok içerisinde birden fazla farklı tip tanımyapılabilir. Her tip tanımlaması birbirinden ‘;’ ile ayrılmalıdır. Type bloğunda tanımlanan verVar bloğunda bir değişkenin tipini tanımlarken kullanılırlar.
Dizi Tipi Değişkenler Aynı tipteki birden fazla bilginin tutulduğu değişkenlere (array) dizi tipi değişken denir. Piçerisinde aynı tür bilginin aynı anda saklanması durumu söz konusu olunca, ddeğişkenlerden yararlanılır. Minindis değeri ‘0’, Maxindis değeri ‘32767’ olabilir. Köşeli piçerisine yazılan değerler boolean veya char tipi veri olabileceği gibi, sınırlı tip bir veri de ola
Küme Tipi Değişkenler Aynı tipte ve birbiriyle ilgili bilgilerden oluşan nesneler topluluğuna küme denir. Elemanı okümeye boş küme denir. Pascal daki kümelerde matematikteki tanımı gibidir.
1. Küme elemanları aynı tip olmalıdır.2. Küme elemanları real sayılardan oluşmaz.
Kümeyi oluşturan elemanların arasına ‘,’ konularak “[ ]” içerisine yazılırlar. Küme elebirbirini izleyen dizisel değerlerden oluşuyorsa en küçük ve en büyük değerlerin arasına iki konulur.
IN Operatörü
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 26/84
IN operatörü, bir, elemanın bir küme içerisinde bulunup bulunmadığını test eder.
Küme Tipi Değişkenlerin TanımlanmasıDeğişken listesinde birden fazla değişken yazıldığında, değişkenler arasına “,” konulması Küme tipi değişkenler direkt olarak “var” bloğunda tanımlandığı gibi, “type” bloğunda öze
ismi yaratılarak ta tanımlanabilirler.
Küme Tipi Değişkenlere Değer AtamaKüme tipi değişkenlere aynen diğer değişkenlere atama yapılırken kullanılan “:=” atama skullanılır. Küme değeri olarak, o kümeye atanabilecek küme elemanları olabilecesınırlandırılmış küme elemanları da olabilir. Bir küme tipi değişken ifadelerde kullanılmadabir başlangıç değeri almalıdır.
Küme İşlemleriKüme tipi verilerde, matematikte ifade edildiği gibi bileşim, kesişim ve fark kümesi olarak üçifade edilir.
Sıralı Tip Değişkenler Pascal’da integer sayılar ve İngiliz alfabesindeki büyük ve küçük harfler sıralı tip verilerdbirbiri ardısıra gelen değerlerdir.Bazı programlarda bu sıralı tipler yeterli olmayabilir. Bu duprogramcı özel bir sıralı tip yaratmalıdır.
Sıralı Tip Değişkenlerinin TanımlanmasıBir sıralı tip, o tipin alabileceği tüm değerleri gösteren değerleri içeren bir liste ile tanıListedeki değerler birbirinden “,” ile ayrılır ve parantez içerisine alınırlar. Sıralı tip olarak tandeğerler for do döngüsünde de kullanılabilir.
Sınırlı Tip Değişkenler Çoğu programlarda değişkenler içerisine girilecek değerlerin alt ve üst sınırı bilinir.ancak piçerisinde biz bu sınırları tanımlarsak, compiler hatalı girilen bir veri olduğunda programı dve gerekli hata mesajını ekrana yazar.
Sınırlı Tip Değişkenlerinin Tanımlanması
Type bloğu içerisinde tanımlanan “sınırlı_veri_tipi_ismi” yeni tanımlanan bir veridir. “alt sveri tipine atanabilecek olan en küçük değer, “üst sınır” ise bu veri tipine atanabilecek endeğerdir. Alt sınır ve Üst sınır sıralı tip olmalıdır. Alt sınır her zaman üst sınırdan dahaolmalıdır.
3.Bölüm
type Sınırlı tipDeğişken ismi
= Alt sınır .. üst sınır ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 27/84
TEMEL GİRİŞ / ÇIKIŞ KOMUTLARIWRITELNAmaç:String ve sayısal sabitleri yada değişken içerisindeki değerleri ekrana veya
yazdırmak için kullanılır.çıkış listesine yazılanlar alt alta yazılır.ÖRNEK:3 Writeln komutu ile yapılan sitringlerin ekrana yazdırılması.
Uses crt;Begin
Writeln(‘merhaba ‘);Writeln(‘dünya’)
End.
Program çıktısı
MerhabaDünya
WRITE
Amaç: String ve sayısal sabitleri yada değişken içerisindeki değerleri ekrana veya yazdırmak için kullanılır.çıkış listesine yazılanlar yan yana yazılır.Örnek 4:
Uses crt;Begin
Write(‘ahmet’);Write(‘okula git’);Readln;
End.
Program çıktısı
Ahmet okula git
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 28/84
READLNAmaç:Çevre aygıtlardan(klavye,disk...),değişkenler içerisine veri girmek için kullanılır.
ÖRNEK 5:
Uses crt;Var Ad,soy,no:string;
BeginWrite(‘adınızı giriniz’ :);readln(ad);Write(‘soyadınızı giriniz’ :);readln(soy);Write(‘numaranızı giriniz :’);readln(no);Clrscr;Write(ad);Write(soyad);Write(no);
Readln;End.
Program çıktısı Adınızı giriniz :soyadınızı giriniz :numaranızı giriniz :
FORMATLI ÇIKIŞ
İnteger Sayıların FormatlanmasıÖrnek: X:4 sayı:3Örneğin,x:456 ise, writeln(x:8); deyimi ile sayının ekrana yazılışı şöyle olur.
4 5 6
Real Sayıların FormatlanmasıÖrnek: X:4: ,Toplam:9:3Örneğin,x:=34.56 ise, writeln(x:8:3); deyimi ile sayının ekrana yazılışı şöyle olur.
3 4 : 5 6 0
Char Tipi Verilerin FormatlanmasıÖrnek: Writeln(c:6); Writeln( ‘a’:4’);Örneğin, a:=’K’ ise, writeln(a:7) deyimi ile karekterin ekranda görünümü aşağıdolur.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 29/84
K
String Tipi Verilerin FormatlanmasıÖrnek: Writeln(‘TÜRKİYE’:16);
T Ü R K İ Y E
VERİ KONTROLÜ(COMPILER BİLDİRİLERİ)Compiler Bildirisi TanımlamakAmaç:Turbo Pascal derleyicisinin bazı özelliklerini, compıler bildirileri ile kontrol altında tutmkullanılır.Örnek: {$B-}
{$R+}{$ INCLUDE.PAS}
{$B- ,$R+, $I}
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 30/84
4.Bölüm
PROGRAM AKIŞININ KONTROLÜDALLANMA DEYİMLERİIF-THEN deyimiAmaç: Belli bir koşul oluştuğunda program akışını bir sonraki deyime geçirmek için kullanıl
ÖRNEK 6: If-then deyiminin kullanılışı.Klavyeden 1 sayısı girildiğinde ekrana ’’kapalı’’ vGirildiğinde ‘’açık’’ mesajını veren program.Uses crt;Var
A:integer;Begin
Write(‘sayı giriniz(1veya0) : ‘);readln(a);
İf a:=1 thenWriteln(‘kapalı’);İf a:=0 thenWriteln(‘açık’);Readln;
End.Program çıktısıSayı giriniz (1veya 0) :0
Açık
IF-THEN_ELSE deyimiAmaç:Belli bir koşul oluştuğunda program akışını bir sonraki deyime geçirmek için kullanılı
ÖRNEK 7:Uses crt;Var
A,b:integer;Begin
Clrscr;Writeln(‘1.sayıyı gir’);readln(a);Writeln(‘2.sayıyı gir’);readln(b);
If a>b thenWriteln(‘1.sayı >2.sayı’);ElseWriteln(‘2.sayı >1.sayı’);
Readln;End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 31/84
Program çıktısı1.sayıyı gir 102.sayıyı gir 51.sayı > 2.sayı
CASE-OF deyimiAmaç:bir değerin birden fazla değer ile karşılaştırmasını yaparak,bu eşitliğin bulunmasıdurumunda belli program parçalarının işlenmesini sağlamak için kullanılır.
ÖRNEK 8:Uses crt;Var
Harf:char;
BeginWriteln(‘bir harf girin:’); readln(harf);Case harf of ‘A ‘............’Z’ :Writeln(‘büyük harf’);‘A ‘............’Z’ :Writeln(‘küçük harf’);elseWriteln(‘Bu harf değil’);
Readln;End.
DÖNGÜLERGOTO,FOR-DO,REPEAT-UNTILGOTO DEYİMİAmaç: Program akışının değiştirilmesi gereken yerlerde kullanılır.ÖRNEK 9: 1’den 5’e kadar olan sayıları ekrana yanyana yazdıran program.
Uses crt;Var Sayac:integer;Label
Tekrar;Begin
Clrscr;Sayac:=0;Tekrar :
Sayac:=sayac+1;Write(sayac,’ ‘);İf sayac<5 then goto tekrar;
End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 32/84
FOR- DO deyimiAmaç:Belli bir program parçasını üst üste önceden belirlenen sayıda tekrarlamak için kulla
Örnek 10: 1’den 10’a kadar olan tam sayıları ekrana yan yana birer boşluk bırakarak yazprogram.
Uses crt;Var
İ :integer;beginClrscr;
For i:=1 to 10 do write (i,’ ‘);End.
Program çıktısı1 2 3 4 5 6 7 8 9 10
ÖRNEK 11:Ekrana A’dan G’ye kadar olan harfleri,her defasında bir sonraki harfle birliktyana yazdıran program.
Uses crt ;Var
Harfyaz,sonharf: char;Begin
Clrscr;For sonharf:=’A’ to ‘G’ doBegin
For harfyaz:=’A’ to sonharf doWrite(harfyaz);Writeln;
End;End.
Program çıktısıAABABCABCDABCDEABCDEFABCDEFG
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 33/84
WHILE-DO deyimiAmaç:Bir program bloğunun belli bir şart sağlanana kadar tekrar edilmesi için kullanılır.
ÖRNEK 12: Klavyeden girilen cümle içerisinde kaç adet sesli harf olduğunu bulan prograUses crt;
Ch:char;Say:integer;
BeginSay:=0;Write(‘Bir cümle yazınız >’);While not eoln do
BeginRead(ch);İf ch in [‘A’,’a’,’E’,’e’,’İ’,’i’,’I’,’ı’,’O’,’o’,’ö’,’ö’,’U’,’u’,’ü’,’ü’] then
BeginSay:=say+1;
End;Writeln(‘yazılan cümlede’,say,’tane sesli harf vardır.’)
End.
REPEAT-UNTIL deyimi
Amaç: Bir program bloğunun,belli bir şart sağlanana kadar ard arda işlenmesini sağlar.
ÖRNEK 13: Klavyeden girilen 10 sayıdan Tek ve Çift sayıların toplamını alt alta yazdıraprogram.
Uses crt ;Var
A:array[1..10] of integer;E:integer;T:longint;
BeginClrscr;For E:= 1to 10 do
BeginWrite (E,’.sayıyı gir......:’);readln(A[E]);
End;T:=0; E:=0;
Repeat
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 34/84
E:= E+1;İf A[E] dıv 2<>A[E] / 2 then
BeginT:=T+A[E];
End;
Until 1=10;Writeln(‘tek sayıların toplamı :’,T);T:=0; 1:=0;
RepeatE:=E+1;İf A[E} dıv 2= A[E] /2 then
BeginT:=T+A[E];
End;Writeln(‘çift sayıların toplamı:’ ,T);
Readln;
end.
Program çıktısı
1.sayı gir........: 42. sayı gir........: 53. sayı gir........: 94. sayı gir........: 25. sayı gir........: 36. sayı gir........: 17. sayı gir........: 5
8. sayı gir........: 89. sayı gir........: 210. sayı gir.......:9Tek sayıların toplamı =32Çift sayıların toplamı=16
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 35/84
5.Bölüm
İNDİSLİ DEĞİŞKENLER
TEK BOYUTLU DEĞİŞKENLER Aynı tipte olan verileri sıralı biçimde bellekte tutmak amacıyla tanımlanan değişkenlere dizi (tipi değişken denir.
ÖRNEK 14: Klavyeden girilen 5 sayının giriliş sırasının tersine yazdırılması.
Uses crt ;Type
İntarray =array [1..5] of integer ;Const
N= 5;Var
Sayı :intarray ;İ,j:integer;
BeginClrscr;For i :=1 to 10 do
BeginWrite (i,’.sayıyı gir>’); readln (sayı [i] );
End;For j :=n down to 1 doWriteln (j,’. Sayi =’,sayi [j] );
End.
Program çıktısı
1.sayı gir > 342. sayı gir >53. sayı gir >564. sayı gir >875. sayı gir >39
5. sayı=39
4. sayı=873. sayı=562. sayı=51. sayı=34
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 36/84
Sıralama (sort) İşlemi
ÖRNEK 15: Klavyeden girilen 5 sayının sıralanıp ekrana yazdırılması (büyükten küçüğe)Uses crt;Var
A: array [1..5] of integer;I ,k ,m:integer;
BeginClrscr;For I :=1to 5 do
BeginWriteln (I,’.sayıyı gir :’); readln (a[I] );
End;For I := 1 to 4 doFor k := I +1 to 5 doİf A [k] >A [I] then
BeginM := A [ I ];A : [ I ] := A[ k ];A [k] :=m;
End;For I := 1 to 500
BeginWriteln (A [ I ]);
End;Readln;End.
Program çıktısı
1. sayı gir : 82. sayı gir : 63. sayı gir : 94. sayı gir : 55. sayı gir : 2
98
652
İKİ BOYUTLU DEĞİŞKENLERTek boyutlu diziler için kullanılan değişkenler ,aynı cinsten verileri bellekte saklamak için ku
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 37/84
6.Bölüm
STANDART PROSEDÜR VE FONKSİYONLAR
MKDIR prosedürüAmaç:Pascal programlarında bir alt directory yaratmak için kullanılır.
ÖRNEK 16 : Aktif directory içerisine,klavyeden girilen bir string adıyla directory açan prog
Uses crt ;Var
Di:string;Begin
Write (‘açmak istediğiniz directory ismi >’); readln(di);
Mkdir (di);Mkdir (‘lotus’);Mkdir (‘lotus\müsteri’);
End.
Program çıktısı
Açmak istediğiniz directory ismi > BASIC
PARAMCOUNT fonksiyonuAmaç: Komut satırındaki paremetre sayısını verir.ÖRNEK 17: Komut satırından paremetre girilip girilmediğini kontrol eden program.
Uses crt;Begin
İf paramCount < 1 thenWriteln(‘Komut satırında paremetre yoktur’)
ElseWriteln(ParamCount,’paremetre vardır’);
End.
Program çıktısı
Komut satırında paremetre yoktur
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 38/84
PARAMSTR fonksiyonuAmaç: Komut satırındaki N inci paremetreyi veya N inci veriyi bir string olarak verir.ÖRNEK 18: Komut satırından girilen paremetreleri okuyup ekrana yazdıran program.
Uses crt;Var
I :word;Begin
For I:=1 to ParamCount doWriteln(paramstr( I ) );
End.
GETDIR prosedürüAmaç: Belirlenen sürücüdeki aktif directory ‘ü öğrenmek için kullanılır.ÖRNEK 19: Aktif sürücüdeki aktif directory ismini ekrana yazdıran program.
Uses crt;Var
S:string;Begin
Getdir(0,s);Writeln(‘ Aktif directory(‘,s,’) dır’);
End.
Program çıktısıAktif directory (A:\) dır
CHDIR prosedürüAmaç: Pascal programı ile directory değiştirmek için kullanılır.ÖRNEK 20: Önce aktif sürücüde PASCAL directory’si açıp daha sonra o directory içerisin
girerek ekranda gösteren program.
Uses crt;Var
S:string; Begin
Mkdır(‘PASCAL’;Chdır(‘PASCAL’);Getdır(0,S);Writeln(‘şu anda (‘,S,’) directory sine geçtiniz’);
End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 39/84
Program çıktısıŞu anda (A:\ PASCAL) directory sine geçtiniz
IORESULT fonksiyonuAmaç: Pascal programları çalışırken oluşan run –time hata kod numarasının Pascal ortamalınmasını sağlar.ÖRNEK 21: Klavyeden yanlışlıkla integer yerine karekter girildiğinde,programın akışınıkesmeden hatayı kullanıcıya düzelttiren program.
Uses crt;Var Intsay : integer;Label
Hata;Begin
{ $I-}hata:Write(‘bir sayı giriniz>’); readln(intsay);İf ioresult=106 then
BeginWriteln(‘Tam sayı girişi yapmalısınız’);Goto hata;
End;Writeln(‘Sayının karesi =’,intsay*intsay);
End.
Program çıktısıBir sayı giriniz >aTam sayı girişi yapmalısınızBir sayı giriniz >4Sayının karesi =16
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 40/84
RMDIR prosedürüAmaç: Alt directory’nin silinmesi için kullanılır.ÖRNEK 22: Bir dos komutu gibi çalışan ve türkçe uyarı mesajı üreten directory silme prog
Uses crt;
Begin{ $I- }RmDir (paramStr(1);İf Ioresult<> 0 then
Writeln (‘directory silinemez ‘);Else
Writeln (‘directory silindi’);End.
GETDATE prosedürü
Amaç: Bilgisayarın daha önceden kurulmuş olan tarihini okumak için kullanılır.
ÖRNEK 23 : Sistemin tarihini gün,ay,yıl ve haftanın hangi günü olduğunu gösteren progra
Uses dos;Const
Gunler:array [0..6] of String [9] = (‘Pazar’,’pazartesi’,’salı’,’çarşamba’,’perşembe’,’cuma’,’cumartesi’);
var y,a,g,hg:word;
begingetdate (y,a,g,hg);Writeln(‘bugün ‘,g,’ / ‘,a,’ / ‘,y,’ ‘,günler [hg], ‘dir.’);
End.
Program çıktısıBugün 17/5/1997 Salı dir.
GETTİME prosedürü
Amaç: Bilgisayarın daha önceden kurulmuş olan saatini okumak için kullanılır.
ÖRNEK 23 : Sistemin saatini ekranda gösteren program.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 41/84
Uses dos;Var
Sa,da,sn,sl:word;Begin
Gettime(sa,da,sn,sl);Writeln(‘saat=’ ,’sa, ’:’ ,da, ‘:’ ,sn, ‘.’ ,sl);
End.
Program çıktısıSaat =3:48:20.80
SETDATE prosedürüAmaç: Sistemin tarihini yeniden kurmak için kullanılır.ÖRNEK 24: Sistemin tarihini klavyeden girilen sayılara göre kuran program.
Uses dos;Var
Yıl,ay,gun :word;Begin
Write (‘yıl >’); readln(yıl);Write (‘ay >’); readln(ay);Write (‘gun >’); readln(gun);Setdate(yıl,ay,gun);
End.
SETTİME prosedürüAmaç: Sistemin saatini yeniden kurmak için kullanılır.ÖRNEK 25: Sistemin saatini klavyeden girilen sayılara göre kuran program.
Uses dos;Var Sa,da,sn,sl:word;Begin
Write (‘saat >’); readln(sa);Write (‘dakika >’); readln(da);
Write (‘saniye >’); readln(sn); Sl :=0;Settime (sa,da,sn,sl);
End.
CHR fonksiyonu
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 42/84
Amaç: ASCII kod numarasının karşılığını verir.ÖRNEK 26: ASCII kod numarası 14-25 arasında olan sayıların karakter karşılığını yanlarınumaraları ile birlikte yan yana yazdıran program.
Uses crt;Var I :integer;
BeginClrscr;For I :=14 to 225 do Write (i :3,’=’,chr(I) );Writeln;Writeln (‘ ‘’65’’ in ASCII karşılığı =’ ,#65,’ dir’);Writeln (#7);
End.
ORD fonksiyonuAmaç: Bir elemanın tanımlı olduğu kümede kaçıncı sırada olduğunu bulmak için kullanılır.C
fonksiyonunun tersine çalışır.
ÖRNEK 27: Bir elemanın tanımlı olduğu kümede kaçıncı sırada olduğunu ve ‘’A’’ harfinin Akod numarasını bulan program.
Uses crt;Type
Renkler =(kırmızı,mavi,yeşil,sarı,siyah);Begin
Writeln(‘Yeşil in sıralı veri tipindeki sırası =’,Ord(yeşil) );Writeln(‘ ‘’A’’ harfinin ASCII kodu ‘,Ord (‘A’),’ dır’);
End.
Program çıktısıYeşil in sıralı veri tipindeki sırası =2‘’A’’ harfinin ASCII kodu 65 dir
PRED fonksiyonuAmaç: Bir elemanın tanımlı olduğu listede o elemandan önce gelen elemanı bulmak için ku
ÖRNEK : PRED (‘B’)----------- ‘A’SUCC fonksiyonuAmaç: Bir elemanın tanımlı olduğu listede o elemandan sonra gelen elemanı bulmak için k
ÖRNEK : PRED (‘B’)----------- ‘C’
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 43/84
TEXTBACGROUND prosedürüAmaç: Text modunda zeminin rengini değiştirmek için kullanılır.
ÖRNEK : TEXTBACGROUND (7);--- zeminin rengini beyaz yapar.
TEXTCOLOR prosedürüAmaç: Text modunda ekrandaki karakterin rengini değiştirmek için kullanılır.
ÖRNEK : TEXTCOLOR (1);------- karakterlerin rengini mavi yapar.
LOWVIDEO prosedürüAmaç: Ekrana yazılan karekterleri mat hale dönüştürmek için kullanılır.
ÖRNEK 28 : Lowvideo prosedürü ile karakter renklerini matlaştırma.
Uses crt;Begin
TextAttr :=White;Lowvideo;Writeln (‘Bu karakterler açık gridir’);TextAttr :=green;Lowvideo;Writeln (‘Bu karakterler mat yeşildir’);
End.
NORMVIDEO prosedürüAmaç: Ekrana yazılan karekterleri parlak hale dönüştürmek için kullanılır.
READKEY fonksiyonuAmaç: Klavyeden sadece bir karakter okuyup char tipi bir değişkene aktarmak için kullanılı
ÖRNEK: Ch :=readkey;KEYPRESSED fonksiyonuAmaç: Programın çalışması esnasında klavyeden bir tuşa basılıp basılmadığını kontrol etmkullanılır.
ÖRNEK 29 : Klavyeden bir tuşa basılıncaya kadar ekranı çeşitli karakterlerle dolduran pr
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 44/84
Uses crt;Begin
Repeat
Write (#176,#219,#178);
Until Keypressed;End.
GOTOXY prosedürüAmaç: Kursör pozisyonunu istenilen ekranın istenilen koordinatlarına konumlandırmak içinkullanılır.
örnek: GOTOXY (1,1);--------------Ekranın sol-üst köşesi
WINDOW prosedürüAmaç: Text modunda ekrana pencere açmak için kullanılır.
Örnek : Window (1,1,80,25);-------Normal pencere yaratır.
COPY fonksiyonuAmaç: Bir string ifadenin istenilen bir bölümünü elde etmek için kullanılır.
ÖRNEK 30 : Bir string içerisinde istenilen bir bölümü ekrana yazdıran program.Uses crt ;Var
St1,st2:string;Begin
St1 :=’BILGISAYAR’;St2 :=(copy(st1, 1,4) );Writeln(st1);writeln(st2);
End.
Program çıktısı
BİLGİSAYARBİLGİ
CONCAT fonksiyonuAmaç: Birden fazla stringi birleştirmek için kullanılır.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 45/84
ÖRNEK 31:İki stringi ‘+’ ile birleştiren program.
Uses crt;Var
St1,st2:string;
BeginSt1:=Concat(‘Balık’,’esir’);St2:=’Balık’+’esir’;Writeln(st1);Writeln(st2);
End.
Program çıktısıBalıkesir Balıkesir
LENGTH fonksiyonuAmaç: Bir stringin kaç karakterden oluştuğunu bulmak için kullanılır.
ÖRNEK: Length (‘Bilgisayar’);-------------10 tam sayı üretilir.
POS fonksiyonuAmaç: Bir string içerisinde başka bir stringin kaçıncı sırada olduğunu bulmak için kullanılır.
ÖRNEK:Pos(‘A’,’BİLGİSAYAR’);------------7
DELETE prosedürüAmaç: Bir stringin belirlenen sayıda karakterini silmek için kullanılır.
ÖRNEK: Delete(‘ABCDEF’,3,2)---------’ABEF’
ÖRNEK 32 :Bir stringden bir bölümünü çıkardıktan sonra geriye kalanın karakterlerini biresilerek ekrana yazan program.
Uses crt ;
Var St,st2:string;I :integer;
BeginSt :=’Uygulamalarla Temel Bilgisayar’;Delete (st);For I :=1 to length (st) do
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 46/84
BeginDelete (st,length(st),1);Writeln(st);end;
End.
Program çıktısıUyar UyaUyU
INSERT prosedürü
Amaç: Bir stringin arasını açarak başka bir string yerleştirmek için kullanılır.
ÖRNEK 33 : ‘’Mustafa Atatürk’’ içerisine Kemal stringi yerleştiren program.
Uses crt;Var
S:string;Begin
S:=’Mustafa Atatürk’;Insert (‘Kemal ‘,S,9);Writeln(S);
End.
Program çıktısı
Mustafa Kemal Atatürk
STR prosedürüAmaç: İnteger veya Real tipteki verileri String tipine dönüştürmek için kullanılır.
ÖRNEK: STR(235); st=’235’
VAL prosedürüAmaç: String tipindeki sayıları Real veya İnteger tipe dönüştürür.ÖRNEK: VAL (‘723’ N,K); N=723 Kod=0
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 47/84
EXIT prosedürüAmaç: İşlenmekte olan program bloğundan direkt olarak çıkmak için kullanılır.
HALT prosedürüAmaç: İşlenmekte olan programı herhangi bir noktada sona erdirmek için kullanılır.
DELAY prosedürüAmaç: Çalışmakta olan bir programın işlenmesini belirlenen bir süre durdurur.ÖRNEK : DELAY (100) ;
SOUND prosedürüAmaç:Bilgisayarın ses üreticisinden farklı sesler elde etmek için kullanılır.ÖRNEK : SOUND (350);
NOSOUND prosedürüAmaç: Sound prosedürü ile üretilen sesi kesmek için kullanılır.
CLREOL prosedürüAmaç: Bir satırı sonuna kadar silmek için kullanılır.
DELLINE prosedürüAmaç: Kursörün bulunduğu satırı silmek için kullanılır .
INSLINE prosedürüAmaç: Kursörün bulunduğu satıra boş bir satır eklemek için kullanılır.
WHEREX prosedürüAmaç: Kursörün kaçıncı sütunda bulunduğunu öğrenmek için kullanılır.
WHEREY prosedürüAmaç: Kursörün kaçıncı satırda bulunduğunu öğrenmek için kullanılır.
RANDOM fonksiyonuAmaç: Rasgele sayı elde etmek için kullanılır.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 48/84
SIZEOF fonksiyonuAmaç: Standart tip veya özel tip değişkenlerin bellekte kapladığı byte miktarını verir.ÖRNEK : Sizeof (Integer) ; ----- sonuç 2 ‘dir.
UPCASE fonksiyonuAmaç: Küçük harfleri büyük harfe çevirmek için kullanılır.
ABS fonksiyonuAmaç: Bir sayının mutlak değerini almak için kullanılır.ÖRNEK: Abs (34); -----------34 elde edilir.
INT fonksiyonu
Amaç: Kesirli bir tamsayının ,tamsayı kısmını elde etmek için kullanılır.
ÖRNEK: Int (-18.58);------------18.0 elde edilir.
FRAC fonksiyonuAmaç: Kesirli bir sayının ,kesirli kısmını elde etmek için kullanılır .ÖRNEK:Frac (-18.58); -------------0.58 elde edilir.
TRUNC fonksiyonuAmaç: Kesirli bir sayının ,tamsayı kısmını elde etmek için kullanılır.ÖRNEK:Trunc (-18.58); -------------18 elde edilir.
Round fonksiyonuAmaç: Kesirli bir sayıyı yuvarlanmış olarak elde etmek için kullanılır.ÖRNEK: Round (-18.58); -------------19 elde edilir.
ODD fonksiyonuAmaç: Bir sayının tek veya çift olduğunu kontrol etmek için kullanılır.ÖRNEK : Odd (3);-----faalse
SQR fonksiyonuAmaç: Bir sayının karesini alır.ÖRNEK : Sqr(2);------- 4 elde edilir.
SQRT fonksiyonu Amaç: Bir sayının karekökünü alır.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 49/84
ÖRNEK : Sqrt(5.76);------- 2.4 elde edilir
SIN fonksiyonuAmaç: Radyan cinsinden verilen bir açının sinüsünü elde etmek için kullanılır .
ÖRNEK : Sin(30* pi/180) ;---------0.50000000000
COS fonksiyonuAmaç: Radyan cinsinden verilen bir açının kosinüsünü elde etmek için kullanılır .ÖRNEK : Sin(30* pi/180) ;---------0.86602540378
ARCTAN fonksiyonuAmaç: Tanjantı bilinen bir açının değerini radyan cinsinden elde etmek için kullanılır.ÖRNEK : Arctan (1.000); --------0.78539816340 radyan
EXP fonksiyonuAmaç:Matematikteki e(2.71828183) sayısının N. kuvvetini elde etmek için kullanılır.
LN fonksiyonuAmaç: Bir sayının logaritmasını bulmak için kullanılır.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 50/84
7. Bölüm
ALT PROGRAMLARPROSEDÜR ALT PROGRAMLARIProgramlama dillerinde ,ana program bloğunu parçalara ayırarak, ayrı program blokları olaralınmasını sağlayan ve ALT PRORAMLAR adı verilen birimler oluşturmak oldukça kolaylık sPascal’da iki tür alt program vardır.
1 -) Prosedürler (Procedure)2- ) Fonksiyonlar (Function)
1 -) Prosedürler (Procedure)ÖRNEK 34 : Procedure komutu ile ses ver ve ses kes programı.
Uses crt ;
Var A,b :integer ;C:char;
Procedure ses ver;Begin
RepeatA := A+100;Sound (A);Delay (100);Until A=1500;End;
Procedure ses kes;BeginNosound;End;
BeginClrscr;Repeat
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 51/84
Writeln (‘1. ses ver:’);Writeln (‘2. ses kes:’);Write (‘seciminiz:’)readln(B);A:=0;Case B of
1:ses ver ;2:ses kes;elsewrite (‘Hatalı giriş yaptınız’);write (‘Ana menüye dönmek için 3’e basınız. Cıkmak için (h/H) basınız);readln;
end;Untıl (C=’h’) or (C=’H’);
End.
FONKSİYON ALT PROGRAMLARIKullanıcı tarafından tanımlanan fonksiyonlar, standart fonksiyonlar gibi yalnızca bir değerinhesaplanmasında kullanılır.
ÖRNEK 34 : 2 sayının 0 ‘dan 8’e kadar üslerini alan bir ana programda, us(x,y)adında bir fonksiyon fonksiyonunu kullanma.
Uses crt;Var
J:integer;Function us (x: real ; n:integer) :real ; var
Carpim:real;İ: integer;
BeginCarpım:=1;For i:=1 to n doCarpım :=carpım *x;Us:=carpım;
End;Begin
Clrscr;For J:=0 to 8 do
Writeln(‘2 nin ‘,j,’ nin ci kuvveti’, us(2,j): 5:0);End.
Program çıktısı2 nin 0 nin ci kuvveti 12 nin 1 nin ci kuvveti 22 nin 2 nin ci kuvveti 32 nin 3 nin ci kuvveti 4
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 52/84
8. Bölüm
BİRİMLER (UNITS)
Pascal Tarafından Desteklenmiş Unıt’ler Ünite Kullanıldığı yerler ---------- -----------------------------------------------------------------------------------------------Crt Ekran,klavye ve ses kontrolünü sağlayan posedürlerin kullanılması gerektiğiDos Bir çok DOS fonksiyonunun kullanılmasını destekler .Graph Grafik çizimi ile ilgili prosedürler kullanmak gerektiğinde.Printer Printer kontrol prosedürleri kullanmak gerektiğinde.Turbo 3 Prosedür veya fonksiyonları daha ileri versiyonda kullanılmak istenildiğinde.
Programcı Tarafından Yazılan Unıt’ler Kullanıcının kendi ihtiyacına göre hazırladığı ünitelere, ’’ kullanıcı üniteleri ‘’ denir.
UNIT TanımlamaUNIT ünite_ismi;INTERFACE Global tanımlamalar IMPLEMENTATION Lokal tanımlamalar
Global prosedür ve fonksiyonlar
END.
ÖRNEK 35 : Clrscr komutunu kullanarak ,türkçe isimli bir prosedürün tanımlandığı Unıt.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 53/84
Unıt ekran;Interface
Uses crt;Procedüre sil;
ImplementationProcedüre sil;Begin
Clrscr;End;
End.
9. Bölüm DOSYALARDOSYA KAVRAMIDosyalar iki başlık altında yorumlanır.Program dosyasıŞu ana kadar yaptığımız dosyaların hepsi program dosyasıdır.Data dosyasıBu tür dosyalar program dosyası tarafından oluşturulmuştur.erişim yine program dosyasıtarafından gerçekleştirilir.İki tip Data dosyası vardır.
1-)Text dosyaları (sıralı erişimli data dosyası)2-)Record tipi dosyalar (Rasgele erişimli data dosyaları)
TEXT DOSYALARI (SIRALI ERİŞİMLİ DOSYALAR)Text dosyaları karakter içeren satırlardan oluşur.Dosya içerisindeki her bir satır ,bu dosyanıkaydı olarak kabul edilir.
Text Dosyalarda Kullanılan Standart Fonksiyonlar EOLN FonksiyonuAmaç: Okuyucu kafanın kayıt sonu işareti üzerinde olup olmadığını kontrol etmek için kulla
ÖRNEK : Eoln (dosya );Eoln(d);
Dosyaya bilgi yazmak,Dosyadan bilgi okumak,Dosyaya bilgeklemek ve Dosyadan bilgi okumak.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 54/84
NOT :Dosyaya bilgi yazmak,Dosyadan bilgi okumak, Dosyaya bilgi eklemek ve Dosyadanokumak konularının birleştirilerek yapıldığı bir örnektir.
ÖRNEK 36: Text dosyasının içinde ‘’10-A sınıfının listesini yazan program.
Uses crt ;Var Ad : array [1..27 ] of string;No :array [1.. 27 ] of string;I,A:integer ;dd:text;C: char;
Procedüre kayıt_gir;BeginClrscr;Assing (dd,’m.m’);Rewrite(dd);
Writeln(dd,’10-avSınıf listesi ‘);Writeln (dd,’numarası ‘,adı ve soyadı ‘);For i := 1 to 27 do
BeginWrite (I,’.öğrencinin numarasını giriniz:’); readln(no [ I ] );Write (I,’. öğrencinin adını ve soyadını giriniz:’); readln(ad [ I ] );Writeln (dd,no [ I ],ad [ ı ] );
End;Close (dd);Readln;End;
Procedüre kayıt_ekle;BeginClrscr;Assing (dd,’ m.m ‘);Append(dd);
For I :=1 to 27 doBegin
Write (I,’.öğrencinin numarasını giriniz:’); readln(no [ I ] );Write (I,’. öğrencinin adını ve soyadını giriniz:’); readln(ad [ I ] );Writeln (dd,no [ I ],ad [ ı ] );
End;
Close (dd);Readln;End;
Procedüre kayıt_oku;BeginClrscr;Assing (dd,’ m.m ‘);
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 55/84
Reset (dd);Clrscr;
While not eof (dd) doBegin
Readln(dd,no [ 20 ],ad [ 20 ] );
Writeln (no [ 20 ],ad [20 ] );End;Close (dd);Readln;End;BeginRepeatClrscr;
Writeln(‘1. kayıt girmek ‘);Writeln(‘2.kayıt ekleme2);Writeln(‘3.kayıt okuma’);
Writeln(‘seçiminiz:’);readln (a);Case a of 1: Kayıt_gir;2: Kayıt_ekle;3: kayıt_oku;
ElseWriteln (‘hatalı giriş yaptınız’);Writeln (‘çıkmak için ( H/ h) basınız’); readln©;
End;Untıl (c= ‘h’) or (c=’H’);End.
Dosyadan bilgi silmek,Dosyadan bilgi aramak ve dosyadakibilgiyi listeleme.
NOT :Dosyadan bilgi silmek,Dosyadan bilgi aramak ve Dosyadaki bilgiyi listelemek , konubirleştirilerek yapıldığı bir örnektir.
ÖRNEK 37: Text tipi dosyalarda, bilgi giriş ,arama,silme,listeleme ile ilgili program.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 56/84
Uses crt;Var
Uz,x,i,no,not1,not2,not3 :integer;Ad,soy,ara :string;
Y,ort :real;Dd:text;Dev,w,e :char;Bay :integer;
Procedüre Bilgi_gir;Begin
{ $I- }window (40,1,80,13 );textbackround(4);clrscr;
assing (dd,’m.s’);append (dd);
writeln(dd,’no adı soyadı 1.Not 2.Not 3.Not Ort );
(Write (‘öğrencinin Numarasını giriniz :’); readln (no);(Write (‘öğrencinin adnı giriniz :’); readln (ad);(Write (‘öğrencinin soyadını giriniz :’); readln (soy);(Write (‘öğrencinin 1.Notunu giriniz :’); readln(1.not);(Write (‘öğrencinin 2.Notunu giriniz :’); readln (2.not);(Write (‘öğrencinin 3.Notunu giriniz :’); readln (3.not);
if ioresult <> 0 thenWrite (‘tekrar giriniz’);
Delay (500);i := not1+not2+not3;y:=i/3;
Writeln (dd,no:1,ad:15,soy:12,not1:10,not2:10,not3:10, ‘ ‘,y:5:0);Close(dd);End;
Procedüre arama;BeginClrscr;Assing(dd,’m.s’);RepeatReset(dd);
Write (‘aradığınız öğrencinin adı....’);readln(ara);Uz:= lenght (ara);
Bay:=0;Clrscr;Writeln(’No Adı Soyadı 1.Not 2.Not 3.Not Ort );While Not eof (dd) do
BeginReadln (dd,ad,soyad);if ara =copy(dd,1,uz)then
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 57/84
BeginWriteln (ad,soy,ort;9,2);bay:=1;
End;End;
if bay =0 then writeln (‘aradığınız öğrenci listede yok ! ‘);
write (devam için <enter> son(h/H)....’);dev:=readkey;Writeln;
Until dev in [ ‘H’,’h’];Close(dd);Writeln;
End;Procedüre liste;
Assing(dd,ad,soy);Write(ad:17,soy:11);
End;
Close(dd);Readln;End;BeginClrscr;Repeat
Writeln(‘1.Bilgi Girişi’);Writeln(‘2.Bilgi Ekleme’);Writeln(‘3.Bilgi Arama’);Writeln(‘4.Bilgi Listeleme’);Writeln(‘5.Çıkış’);
Write(‘seçiminiz’);readln(x);Case X of 1: Bilgi_gir;2: Bilgi_ekle;3: Bilgi_arama;4:Liste;5:EXIT;
ElseWriteln(‘Hatalı giriş yaptınız’);Writeln(‘Ana menüye dönmek için bir Tuşa basınız:’);Write(‘çıkmak için (H/h)basınız:’);readln(W);
End;Until W in [‘H’,’h’];End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 58/84
RECORD TİPİ DOSYALAR(RASGELE ERİŞİMLİ DOSYALAR)
NOT:Dosya yaratmak,Dosyaya bilgi ekleme,ve Dosyadan bilgi okumak konularının birleştyapıldığı bir örnektir.
ÖRNEK 38 : Record Tipi dosyalar ile ilgili program.
Uses crt;Label
Git;Type
Kayit=record;No:integer;Ad:string[10];Soy[10];End;
Var A,sil: string;Sec,ara:integer;ögrenci:kayit;cev,dev:char;dosya:file of kayit;
procedüre kayit_ekle;beginassing(dosya,’nurdan.dat’);repeatrewrite(dosya);
write(‘no ‘yu giriniz:’);readln(ögrenci.no);write(‘adı giriniz:’);readln(ögrenci.ad);write(‘soyadı giriniz:’);readln(ögrenci.soy);seek(ögrencino);Write(dosya,ögrenci);Writeln(‘devam etmek istiyormusunuz (‘E/H’);Cev :=readkey;Until cev in [‘H’,’h’];
Close (dosya);
End,Procedüre liste;
BeginAssing(dosya,’nurdan.dat’);reset(dosya);
Writeln(‘No Ad Soyad’);Writeln(‘----------------------‘);
Begin
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 59/84
Seek (dosya,’ara’); Read(dosya,ögrenci);With ögrenci do
BeginWriteln(No,ad:10,soy:10);
End;
End.
10.Bölüm
PORT’LARIN KULLANIMIPARALEL PORT’UN KULANIMI
Sistem ünitenizin arka tarafında 25 uçlu (pin), D tipi konnektöre paralel port deniBu port kullanarak sisteminizden dışarıya sinyal gönderebilir (Output) ya da dışarı -dan gelen bir sinyali bilgisayarınıza girerek (Input) bilgisayarınızda işleyebilirsiniz.
Bu portta bağlanan cihazlara gönderilen veya alınan sinyallerin seviyesi standTTL seviyesindedir, yani 5 V’tur.Portun adından da anlaşıldığı gibi veri alış verişi 8 bit’lik
bir veri seti ile paralel olarak yapılır.Sistem ünitenize bağlı birden fazla paralel port buluna -bilir. Paralel portlara LPT1, LPT2, LPT3 ... gibi isimler verilir.IBM uyumlu bilgisayarlardabulunan 25-pin’li D-tipi konnektörün uç bağlantı numaraları aşağıda görülmektedir.PORT REGİSTERLERİ Bir paralel porta bağlanan cihazdan veri alış/verişi yerekaydedilmesi gerekir.İşte veri kaydı yapılan bu geçici belleğe register denilir.Her registerinhexadesimal olrak ifada edilen bir adresi vardır.Bu register adresleri 378H, 37AH, 379H’dir.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 60/84
Şimdi bu port registerlerinin kullanılışına, bir paralel printerin kontrolünü örnek overelim.
Data Latch, 378 H:Bu adrese yazılan data, printer buffer’ına ( tampon belleğine
gönderilir ve burada saklanır.Yeni bir daha gönderilene kadar buradaki data sabit kalır.Bu adrestekitalar okununca printer buffer’i içerisinde bulunan veri elde edilir.
Printer Controls, 37A H:Paralel port kontrol sinyalleri bu port aracılığı ile yapılır.Ayradresteki datalar mikroişlemci tarafından okunabilir.Bu adrese gönderilen datalar ile printerinseçimi, çalışmaya başlatılması, otomatik satır ilerlemesi gibi işlemleri yaptırır.
Printer Status, 379 H: Paralel printerin durumu ( status ) hakkındaki datalar mikrop-sörün okuması için bu adreste saklanır.Bu adresteki datalar, printerin meşgul olması, sayfa
na gelinmesi, printerde hata oluşması gibi priterin durumu ile ilgili bilgileri ifade eder.
Aşağıdaki tipik bir printerin giriş/çıkış sinyalleri gösterilmiştir.Bu tabloda “I” harfi Input“O” harfi Output’u “N/A” kullanılmayan ucu gösterir.
PİN I/O DURUMU SİNYAL ADI PİN I/O DURUMU SİNYAL AD
1 O Strobe 14 O Auto Feed X2 I/O D0 15 I Error3 I/O D1 16 O Initialize4 I/O D2 17 O Select Inpu
5 I/O D3 18 N/A Ground
6 I/O D4 19 N/A Ground7 I/O D5 20 N/A Ground8 I/O D6 21 N/A Ground9 I/O D7 22 N/A Ground
10 I ACK 23 N/A Ground11 I Busy 24 N/A Ground12 I Printer Enable 25 N/A Ground
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 61/84
13 I Select
Tablodan da anlaşılacağı gibi 2, 3, 4, 5, 6, 7, 8, 9 numaralı uçlar data uçlarıdır.Bdan hem data çıkışı ( Output ) hem de data girişi ( Input ) yapılır.
Sadece sinyal giriş yapılabilecek uçlar 10, 11, 12, 15 numaraları uçlar,sadece sikışı yapılabilecek uçlar ise 1, 14, 16, 17 numaraları uçlardır.
2-9 numaralı data uçlarına sinyal göndermek için 378 adresi ile belirlenen registe-lanılır.Diğer uçları kullanabilmek için de 37A ve 379 adreslerinin kullanıldığını printer kontrlü için verdiğimiz örneklerde açıkladık.
Paralel Port Test Cihazının YapımıParalel porta veri gönderen programların çalışıp çalışmadığını görebilmeniz ama
basit bir devre kuralım.Bu devreyi kurmak için aşağıdaki malzemelere ihtiyacınız olacak :1 Adet Printer Konnektörü1 Adet Segmet Display7 Adet 330 Ohm Direnç1 Metre 8’li Data Kablosu
Portlara gönderilen sinyalin seviyesini görmek için en basit devre 2-9 uçlarındanbirine LED bağlamaktır.Aşağıda gördüğünüz devreyi bir delikli pertinax üzerine kurduktansonra uygun bir kutu içerisine yerleştirirseniz, port kontrolü için yapacağınız programların çıktısını görmeniz mümkün olacaktır.Aksi halde bizim bu kitapta verdiğimiz örnek programlarınçıktılarını da görmeniz mümkün değildir.
PORT KomutuAmaç :Bilgisayarın bir paralel port register’ine veri yazmak veya registerden veri okumak amkullanılır.
Dizilim : PORT [$Register_adresi ]:=veri; veri göndermek için
Integer_değişken:=PORT [$Register_adresi]; veri okumak için
Örnek : Port [$378]:=5;i:=port[$378];
Port komutu ile bir paralel port registerine veri göndermenizde o veri 2-9 numaraarasında görülür.Bir uca veri göndermek, o uçtaki gerilimin 5 V olması demektir.Yukarıda veilk örnekte 378 adresine 5 verisi gönderildiğinde paralel portun 2 ve 4 numaraları uçlarında5 V’luk gerilim görülür.İkinci örnekte adresi 378 olan port registerleri içerisindeki bilgi okunar“i” değişkeni içerisine atanır .”i” değişkeninin tipi integer olmalıdır.
Port Registeri İçerisine Yazılacak Verinin Tespit Edilmesi Paralel portun data giriş ve çıkış uçları 2-9 olduğuna göre bu uçlara gönderilece
veri 8 bit olmalıdır.Gönderilecek verinin binary karşılığı bulunduktan sonra bu sayı desimaledönüştü- rülmelidir.Örneğin paralel portun 2 ve 4 numaralı uçlarını 5 V’luk gerilimgönderelim.Bunun için 2-9 sırasındaki uçları aşağıdaki gibi gösterebiliriz.
Pin Numarası 9 8 7 6 5 4 3 2Data Numarası D7 D6 D5 D4 D3 D2 D1 D0
Display Segmenti g f e d c b a
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 62/84
Basamak Değeri 128 64 32 16 8 4 2 15 V. Gönderilecek
Olan Uçlar 1 1
Desimal Karşılığı 4 1
Yukarıdaki tablodan registere 5 sayısının gönderilmesi gerektiğini buluruz.Veriyi göndermekprogram içinde “port[$378]:=5” yazmak yeterlidir.Tabloya dikkat edilecek olursanız paraletest cihazında a ve c segmentlerinin yanacağını anlayacaksınız.Örnek 39 :7 segment displayın tüm LED’lerini belirli sürelerde yakıp söndüren program.
Program Port 1;Uses Dos,Crt;
Var I : integer;
BeginRepeat
Port [$378]:=127;Delay (3000);Port [$378]:=0;Delay (3000);
Until Keypressed;End.
Örnek 40 : 7 segment displayın LED’lerini a’dan g’ye doğru belirli aralıklara yakan ve herhatuşa basınca duran program.
4+1=5
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 63/84
Program Port 2;Uses Dos,Crt;Var
I , J :integer;Begin
RepeatFor J:=0 to 7 do
BeginDelay (4000);Port [$378]:=Trunc(Exp (J*Ln (2)));I:=Port [$378];Writeln( I );
End;Until Keypressed;
End.
7 segment displayın LED’lerini sırayla yakmak için 378 adresine 1, 2, 4, 8, 16, 3sayılarını sırasıyla göndermek gerekir. “Trunc (Exp (J* Ln (2)))” ifadesi bu sayıları üretmekkullanılmıştır.
“I:=Port [$378]” ifadesiyle 378 adresinden okunan veri “I” değişkeni içerisine ave “Writeln” komutu ile ekrana yazdırılmıştır.Daha önce de belirtildiği gibi 378 adresindekiLatch” registerine yazılan veri, yeni bir veri gönderilinceye kadar paralel port uçlarında aynetutulur.Bu nedenle 378 adresindeki veri bir önceki komutla gönderilen veridir.
Örnek 41 : 7 segmentli displayın LED’lerini önce a’dan f’ye daha sonra f’den a’ya doğru yabu işleme herhangi bir tuşa basıncaya kadar devam eden program.
Program kara_simsek;Uses Dos,Crt;Var
I, J :integer;BeginRepeat
For J:=0 to 5 doBegin
Delay(4000);Port [$378]:=Trunc(Exp (J*Ln(2)));I:=Port[$378];
Writeln( I );End;For J:=5 downto 0 doBegin
Delay(4000);Port [$378]:=Trunc(Exp (J*Ln(2)));I:=Port[$378];
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 64/84
Writeln( I );End;
Until Keypressed;End;
Örnek 42 : Klavyeden girilen 0-9 arasındaki sayıları 7 segment displayda gösteriri program.
Uses Dos,Crt;Var
I, J:integer;
BeginRepeatClrscr;Writeln(‘ 0-9 Arasında Bir Sayı Giriniz ’);Write(‘ 99 Sayısı Girince İşlem Sona Erer : ‘);Readln( J );Case J of
1: Port [$378]:=6;2: Port [$378]:=91;3: Port [$378]:=79;4: Port [$378]:=102;5: Port [$378]:=109;
6: Port [$378]:=124;7: Port [$378]:=7;8: Port [$378]:=127;9: Port [$378]:=103;0: Port [$378]:=63;
End;I:=Port[$378];Writeln( I );
Until J=99;End.
Örnek 43 : 0-9 arasındaki sayıları sıra ile 7 segment displayda gösteren program.”Delay” ko
ile verilen süreyi değiştirilerek bir kronometre gibi kullanılabilir.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 65/84
Uses Dos,Crt;Var
I, J:integer;Begin
Repeat
For J:= 0 to 9 doBegin
Delay(4000);Case J of
1: Port [$378]:=6;2: Port [$378]:=91;3: Port [$378]:=79;4: Port [$378]:=102;5: Port [$378]:=109;6: Port [$378]:=124;7: Port [$378]:=7;
8: Port [$378]:=127;9: Port [$378]:=103;0: Port [$378]:=63;
End;I:=Port[$378];
Writeln( I );End;
Until Keypressed;End.
4. ve 5. Programlarda portlara gönderilecek verinin tespiti aşağıdaki gibi yapılmıştır.Örneğinsegment displayda 3 sayısının görülmesi için a, b, c, d, g segmentlerinin yanması gerektiği lunur.Daha sonra bu segmentlerin yanması için porta gönderilmesi gereken desimal sayı heedilir.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 66/84
Port Numarası 9 8 7 6 5 4 3 2Data Numarası D7 D6 D5 D4 D3 D2 D1 D0
Display Segmenti g f e d c b ABasamak Değeri 128 64 32 16 8 4 2 1
5 V GönderilecekOlan Uçlar
1 1 1 1 1
Desimal Karşılığı 64 8 4 2 1
Yukarıdaki tabloda göre basamak değerlerinin desimal karşılığı toplanacak (64+8+4+2+1=7olursa 3 sayısını displayda göstermek için parelel porta 79 sayısının gönderilmesi gerektiğibulunur.
Örnek 44 : 7 segment display’ın tüm LED’lerini belirli sürelerle yakıp söndüren program.
Uses Dos,Crt;
Var I, J:integer;
BeginRepeat
Writeln(‘1.Fırını Çalıştır ‘);Writeln(‘2.Kapıyı Aç ‘);Writeln(‘3.Televizyonu Aç‘);Writeln(‘4.Müzik Setini Aç‘);Writeln(‘5.Salon Işığını Aç ‘);Writeln(‘6.Programdan Çıkış ‘);Write(‘Seçiminiz -------->‘);Readln( J );
Case J of 1:Port [$378]:=1;2:Port [$378]:=2;3:Port [$378]:=4;4:Port [$378]:=8;5:Port [$378]:=16;6:Exit;
End;I:=Port[$378];Writeln ( I );
Until J = 99 ;
End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 67/84
1 13
25 14
Şekil 1-1:Paralel Port’un Pin’lerinin Yerleşimi
Şekil 1-2 :Paralel Port Test Cihazı
SERİ PORT’UN KULLANIMI
Sistem ünitesinin arkasında 25 pinli ve D tipindeki konnektörlerden biriside seriport’tur.Bo seri port’a RS-232 port’u da denir.Pin sayısı ve görünüş olarak paralel port’a çokbenzer, ancak pin numaraları farklıdır.
7x330ohm
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 68/84
13 1
14 25Seri iletişim için bir tek kablo yeterlidir.Ancak gönderilen veri bit’lerinin karşı tara
doğru algılanabilmesi için zamanlamada yanlışlık olmaması gerekir.Yani bir birim ne zamanne kadar sürer gibi problemlerin aşılması gerekir.Bunun için yapılacak iki şey vardır.Birincisikablosunun yanına bir adet clock palsi kablosu ilave edilir ve bu kablo üzerinden peryodik puygulanır.Her pals’in boyu bir birimin iletim süresi olarak kabul edilir.İkinci yol ise; sadece vkablosu olur.Veriler gönderildikten daha önceden alıcı tarafla anlaşılmış bir protokole uyuluryönteme eşzamansız seri iletişim denilir.Bu tür iletişimde gönderilen her birime ayrılan süre,
birimlerinin birbirini nasıl takip edeceği önceden belirlenmiştir.
PİN I/O DURUMU SİNYAL ADI PİNI/O
DURUMUSİNYAL
1 N/A Bağlı değil 14 N/A Bağlı de2 O Data gönderme 15 N/A Bağlı de3 I Data alma 16 N/A Bağlı de4 O Gönderme isteği 17 N/A Bağlı de
5 I Göndermek için sil 18 N/A Bağlı de
6 I Data seti hazır 19 N/A Bağlı de
7 N/A Bağlı değil 20 O Data transfe8 I RLDS 21 N/A Bağlı de9 N/A Bağlı değil 22 I Ring ind
10 N/A Bağlı değil 23 N/A Bağlı de11 N/A 20. pin’e bağlı 24 N/A Bağlı de12 N/A Bağlı değil 25 N/A Bağlı de
13 N/A Bağlı değil
PC’LERDELİ PORT ADRESLERİ
Adresi Register Adı Açıklama
03F8 Transmitter Holding Gönderilecek verinin yazıldığı register 03F8 Receiver Buffer Karşı taraftan alınan verinin yazıldığı register03F8 Divisor Latch, Low Byte İletişim hızının yazıldığı register
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 69/84
03F9 Divisor Latch, High Byte İletişim hızının yazıldığı register 03F9 Interrupt Enable Register Veri iletişiminin hangi koşullar altında kesme
üreteceğini belirleyen register 03FA Interrupt Idendification Kesme olmuşsa, bu kesmenin hangi sebeple
oluştuğu bilgisini içeren register
03FB Line Control Register İletişin parametrelerini belirleyen register 03FC Modem Control Register Port uçlarındaki işaretlerin değerlerini belirley03FD Line Status Register İletişimde bir hata oluşup oluşmadığını bilgisi
içeren register 03FE Modem Status Register Port uçlarına karşı taraftan verilen işaretlerin
durumunu içeren register
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 70/84
11.BölümGRAFİK
GRAFİK MOD KAVRAMI
Çoğu programlama dillerinde olduğu gibi Turbo Pascal’da da PC’lerin ekran modkontrol eden çok güçlü prosedür ve fonksiyonlarına sahiptir.Şimdiye kadar yapılan programl25x80 boyutlarındaki text modunda yapıldı.Bu bölümde Turbo Pascal’ın en sık kullanılan grafonksiyon prosedürlerini kullanmasını öğreneceksiniz.
Sisteminizin grafik sürücüsünü belirleyen “ *.BGI “ dosyaları da yine sisteminizinulaşabileceği bir disket veya hard diske kayıtlı olması gerekir.
Grafik ortamında yazılan yazıların istenilen fontta olmasını sağlayan “ *.CHR “dosyaları da yine sisteminizle ulaşabileceğiniz bir sürücüde hazır bulunması gerekir.
EKRAN BOYUTLARI Aşağıda, pek çok kullanılan HERCULES ve VGA grafik kartlarında kullanabilece
sayılarını vermemize rağmen, kitapta verilen programlar her tür PC’de çalışacak şekildehazırlanmıştır.Ancak, bizim burada verdiğimiz grafik kartından farklı bir grafik kartına sahip obilgisayar kullanıyorsanız, ekranda herhangi bir noktayı doğru olarak tanımlayabilmemiz içikartınızın pixel sayısını bilmeniz gerekir.Bu grafik elemanının X ve Y eksenlerinde tanımlancek nokta sayısına çözünürlük denir.
Y Y
X X
VGA ekran pixel sayıları HERCULES ekran pixel sayıları
0,0 0,0
639,479 719,347
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 71/84
Bazı Sürücüler ve Çözünürlükleri
Ekran Kartı Çözünürlük
CGACO 320x200
CGAHi 640x200MCGACO 320x200MCGAMed 640x200MCGAHi 640x480EGALo 640x200EGAHi 640x350HercMonoHi 720x348
ATT400CO 320x200 ATT400Med 640x200 AT400Hi 640x480PC3270Hi 720x350
IBM8514Lo 640x480IBM8514Hi 1024x768
Grafik Ekranına Geçmek
Grafik komutlarının kullanıldığı bir Pascal programı çalıştırabilmek için ekranı gramoduna geçirmek gerekir.Pascal’da bu işi gerçekleştiren prosedürleri aşağıda inceleyeceğiz
Detect fonksiyonu
Amaç : Default grafik sürücüyü arayıp sisteme otomatik olarak dahil etmek için kullanıl Dizilim : int_değişken := DETECT
Örnek : Grsur : Detect;DETECTGRAPH Prosedürü
Amaç : Sistemin grafik sürücüsünü ve grafik modunu otomatik olarak bulur.
Dizilim : DETECTGRAPH (Grsürücü,Grmodu) ;
Örnek 45 : Sistemin sürücü kod numarasını ve grafik modunu bulup ekrana yazdıran prog
Program Grsur_GR_mod_Bul;Uses Graph ;Var
Gs, Gm :Integer;Begin
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 72/84
Detectgraph(Gs,Gm) ;Writeln (‘ Sisteminizin Grafik Sürücü Numarası =’,Gs) ;Writeln (‘ Sisteminizin Grafik Modu Numarası = ’,Gm);
End.
INITGRAPH Prosedürü
Amaç : Sistemi text modundan grafik moduna geçirmek için kullanılır.
Dizilim : INITGRAPH (Grsürücü, Grmodu, GrsürücüPath) ;
Not : “ GrsürücüPath “ parametresinin değeri ‘ ‘ olarak verilirse, grafik sürücü dosaranacağı yer aktif sürücü olduğu varsayılmış olur.
CLOSEGRAPH Prosedürü
Amaç : Grafik modunu kapatıp tekrar text moduna geçmek için kullanılır.
Dizilim : CLOSEGRAPH ;
Her grafik moduna geçtikten sonra, genellikle program sonunda kullanılır.Kullanıldığında eksiler.
GRAPHRESULT Fonksiyonu
Amaç : Grafik komutlarının kullanılması esnasında oluşan hataları kontrol etmek içinamacıyla kullanılır.
Dizilim : Hatakodu := GRAPHRESULT ;
SETCOLOR Prosedürü
Amaç : Ekrana çizilecek çizgi rengini belirlemek için kullanılır.
Dizilim : SETCOLOR (Renk_kodu );
GETMAXCOLOR Fonksiyonu Amaç : Kullanılan bilgisayarda kullanılabilecek en büyük renk kodu numarasını elde etiçin kullanılır.
Dizilim : GETMAXCOLOR ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 73/84
LINE Prosedürü (Ekrana Çizgi Çizmek)
Amaç : Ekrana belirlenen iki koordinatı arasına çizgi çizmek için kullanılır.
Dizilim : LINE ( X1, Y1, X2, Y2 ) ;
Örnek 46 : Ekranın sol-üst köşesindeki belirlenen bölgeye rasgele renkte ve boyutta çizgilçizdiren program.
Program line_ciz ;Uses Crt, Graph ;Var
Gs, Gm:Integer ;Begin
Detectgraph(Gs,Gm) ;Initgraph (Gs, Gm, ‘ ‘) ;
If GraphResult <> 0 thenHalt (1) ;
Randomize ;Repeat
Setcolor ( random (getmaxcolor+1)) ;Line (Random (200) , Random (200),Random (200), Random (200)) ;Delay (100) ;
Until Keypressed ;Readln ;Closegraph ;
End.
GETMAXX ve GETMAXY Fonksiyonları
Amaç : Ekranda kullanılabilecek maximum X ve Y koordinatlarını bulmak için kullanılırDizilim : int_değ := GETMAXX ;
int_değ := GETMAXY ;
RECTANGLE Prosedürü ( Dikdörtgen Çizmek )
Amaç : Ekrana iki köşe koordinatı belirlenen bir dikdörtgen çizmek için kullanılır.
Dizilim : RECTANGLE (X1, Y1, X2, Y2 ) ;
Örnek 47 : Ekranın kullanılabilecek alanını sınırlayan bir dikdörtgen çizen program.
Program rectangle_ciz ;Uses Graph ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 74/84
Var Gs, Gm :Integer ;
BeginDetectgraph (Gs, Gm) ;Initgraph (Gs, Gm, ‘ ‘ ) ;
If GraphResult <> 0 then Halt (1) ;Rectangle (0, 0, GetMaxX,GetMaxY) ;Readln ;CloseGraph ;
End.
CIRCLE Prosedürü ( Daire Çizmek )
Amaç : Koordinatları ve yarıçapı belirlenen bir daireyi ekrana çizmek için kullanılır.
Dizilim : CIRCLE ( X, Y, YARIÇAP ) ;
Örnek 48 : Ekrana değişik renklerde iç içe daireler çizdiren program.
Program circle_ciz ;Uses Crt, Graph ;Var
Gs, Gm : Integer ;Yaricap : Integer ;Ch : char ;
BeginGs :=Detect ;
Initgraph (Gs, Gm, ‘ ’) ;if GraphResult <> 0 then Halt (1);Randomize ;Repeat
For yaricap := 1 to 5 doBegin
Setcolor (Random (GetMaxcolor+1 )) ;0 Circle (100, 100, yaricap*10) ;
Delay (100) ;End ;
Ch := Readkey ;
Until ch = # 27 ;End.
ELLIPSE Prosedürü
Amaç : Ekrana koordinatları belirlenen bir yere elips çizmek için kullanılır.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 75/84
Dizilim : ELLIPSE ( X, Y, Baş_açı, Bit_açı, Xyarıçap, Yyarıçap ) ;
Örnek 49 : Ekranın belirlenen koordinatlarına bir tam, bir de yarım elips çizen program.
Program elips_ciz ;
Uses Graph ;Var
Gs, Gm :Integer ;Begin
Gs := Detect ;Initgraph (Gs, Gm, ‘ ‘) ;if GraphResult <> 0 then Halt (1) ;Ellipse (100, 100, 0, 360, 30, 50) ;Ellipse (100, 100, 0, 180, 50, 30) ;Readln ;CloseGraph ;
End.
PUTPIXEL Prosedürü (Nokta Koymak)
Amaç : Ekranın belirlenen koordinatlarına belirlenen renkte nokta koymak için kullanılı
Dizilim : PUTPIXEL (X, Y, Renk_kodu ) ;
Örnek 50 : Ekranın sol-üst köşesinde belirlenen bir alana içerisindeki rasgele yerlere rasgerenklerde nokta çizen program.
Program put_pixel_ciz ;Uses Crt, Graph ;Var
Gs, Gm :Integer ;Renk : Word ;
BeginGs := Detect ;Initgraph (Gs, Gm, ‘ ‘) ;if GraphResulr <> 0 then Halt (1) ;Randomize ;Repeat
Renk := Random (100) ,Random (100), Renk ) ;Delay (10) ;Until KeyPressed ;Readln ;CloseGraph;
End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 76/84
SETLINESTYLE Prosedürü
Amaç : Ekrana çizilecek olan çizginin tipini belirlemek amacıyla kullanılır.
Dizilim : SETLINESTYLE ( Çizgi_stili, Pattern, Çizgi_kalınlığı ) ;
Örnek 51 : Ekrana değişik çizgi stilinde ve kalınlıkta çizgi ve dikdörtgen çizen program.
Program ciz_stili ;Uses Graph ;Var
Gs, Gm : Integer ;Begin
Gs := Detect ;Initgraph (Gs, Gm, ‘ ‘) ;if GraphResulr <> 0 then Halt (1) ;
Line (0, 0, 100, 0, ) ;SetLineStyle (DottedLn, 0, ThickWidth ) ;Line ( 0, 10, 100, 10 ) ;SetLineStyle (DashedLn, 0, NormWidth ) ;Rectangle (0, 20, 100,40 ) ;Readln ;CloseGraph ;
End.
SETFILLSTYLE Prosedürü
Amaç : Sütun grafiği çizilirken, sütunları birbirinden ayırt etmek için içerisine çizilen çeşpaternleri seçmek için kullanılır.
Dizilim : SETFILLSTYLE ( Pattern, renk ) ;BAR Prosedürü (Sütun Grafiği Çizmek)
Amaç : Ekrana boyutları ve renkleri belirlenmiş sütun grafiği çizmek için kullanılır.
Dizilim : BAR (X1, Y1, X2, Y2 );
Örnek 52 : Ekrana rasgele renklerde ve rasgele patternlerle doldurulmuş sütun grafikleri çprogram.
Program bar_ciz ;Uses Crt, Graph ;Var
Gd, Gm, I, Gen : Integer ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 77/84
Ch :char ;Begin
Gs := Detect ;Initgraph (Gs, Gm, ‘ ‘) ;if GraphResulr <> 0 then Halt (1) ;
Gen := 20 ;Randomize ;Repeat
For I := 1 to 5 doBegin
SetFillStyle (Random (12), Random (GetMaxcolor)) ;Bar ( I* Gen, I*10, Succ ( I ) *Gen, 300 ) ;
End ;Ch :Readkey ;
Until ch = # 27 ;CloseGraph ;
End.
BAR3D Prosedürü ( 3 Boyutlu Sütun Grafiği Çizmek )
Amaç : Ekrana üç boyutlu sütun grafiği çizmek için kullanılır.
Dizilim : BAR3D ( X1, Y1, X2, Y2, Derinlik, Üst ) ;
Örnek 53 : Ekrana değişik boy ve renkte 3 boyutlu sütun grafiği çizen program.
Program bar_boy3 ;İUses Crt, Graph ;Var
Gs, Gm, I, Width :Integer ;Ch : Char ;
BeginGs := Detect ;Initgraph (Gs, Gm, ‘ ‘) ;if GraphResulr <> 0 then Halt (1) ;Width := 20 ;Randomize ;
Repeati := 5 ;While I < 20 do
BeginSetFillStyle ( Random (12), Random (GetMaxcolor)) ;Bar3d (I*Width, I*10, Succ ( I )*Width, 300, 20, true ) ;İ := i+3 ;
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 78/84
End ;Ch := Readkey ;
Until Ch = # 27 ;CloseGraph ;
End.
OUTTEXT ve OUTTEXTXY Prosedürleri
Amaç : Grafik ortamında ekrana yazı yazmak için kullanılır.
Dizilim : OUTTEXT ( ‘ String ‘) ;OUTTEXTXY (‘ String ‘) ;
Örnek 54 : Grafik ortamında default karakter stilinde Yazı yazdıran program.Program out_text_ciz ;
Uses Graph ;Var
Gs, Gm :Integer ;Begin
Gs := Detect ;Initgraph (Gs, Gm, ‘ ‘) ;if GraphResulr <> 0 then Halt (1) ;Outtext (‘ Outtext komutu ile yazılıdı ‘) ;Outtext (‘ Karakterler Default Stildedir. ‘) ;OuttextXY (‘ 100, 100, ‘OuttextXY Komutu İle Yazılmıştır. ‘) ;Readln;
CloseGraph ;End.
SETTEXSTYLE Prosedürü
Amaç : Grafik modunda ekrana yazılacak yazı tipini belirtmek amacıyla kullanılır.
Dizilim : SETTEXTSTYLE ( Font, Doğrultu, Genişlik ) ;
Örnek 55 : Grafik ortamında ekrana çeşitli font, doğrultu ve büyüklüklerde yazı yazdıran p
Program Set_text_style ;Uses Graph ;Var
Gs, Gm : Integer ;Begin
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 79/84
Gs := Detect ;Initgraph (Gs, Gm, ‘ ‘) ;if GraphResulr <> 0 then Halt (1) ;SetTextStyle (TriplexFont, Horizdir, 1 );OuttextXY (0, 1, ‘ Yatay TriplexFont ‘) ;
SetTextStyle (GothicFont, Horizdir, 2 );OuttextXY (0, 20, ‘ Yatay GothicFont ‘) ;SetTextStyle (3, Horizdir, 9 );OuttextXY (0, 40, ‘ SansSerifFont ‘) ;SetTextStyle (3, VertDir, 4 );OuttextXY (200, 100, ‘ Dikey SmallFont ‘) ;Readln ;CloseGraph;
End.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 80/84
12.BölümTURBO PASCAL HATA MESAJLARI
COMPİLER HATA MESAJLARI
Hata Kodu Mesaj Açıklama
1 Out of memory Sistemin hafızası yetersiz veya pçok büyük, CONFIG.SYS’den geçsürücüleri çıkarınız.FILES=20,BUFFER=20 yapınız.
2 Idenfiler expected Bir pascal reserved kelimesinin tama bloğunda kullanılıyor.
3 Unkown idenfiler Var bloğunda tanımlanmamış birdeğişken programda kullanılıyor.
4 Duplicate idenfiler Bir değişken veya sabit aynıtanımlamama bloğunda iki defatanımlanıyor.
5 Synaxt error Program içerisinde geçersiz bir karakter kullanılıyor.
6 Error in real constant Sabit real tanımlamada hata var.7 Error in integer constant Sabit integer tanımlamada hata v8 String constant String sabitlerinin sonundaki tırna
unutulmuş veya fazladan tırnakkonulmuş.
10 Unexpected end of file Bir program bloğu sonuna endyazılmamış veya “.” unutulmuş.
11 Line too long Bir satıra 126 karakterden dahafazla yazılmış.
12 Type idenfiler expected Type tanımlayıcı bekleniyor.13 Too many open files Aynı anda açık olan dosya sayısı
çok fazla CONFIG.SYS dekiFILES=20 olmalı.
14 Invalid file name Dosya ismi geçersiz ya dabelirtilen path yanlış.
15 File not found Belirtilen dosya aktif directoryiçerisinde bulunamıyor.
16 Disk full Disket veya harddisk dolu.
17 Invalid compiler directive Geçersiz Compiler bildirisi.18 Too many files Aynı anda açılmış çı-ok sayıdadosya var.Gereksiz dosyalarıkapatınız.
19 Undefined type in pointer Pointer tanımında bilinmeyen tip.Defination
20 Veriable idenfiler expected Değişken tanımlayıcısı
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 81/84
bekleniyor.21 Error in type Bu sembol ile tip tanımlamasına
başlanamaz.Tip hatası var.26 Type mismatch Bir atama deyiminde değişken
içine atanan değer ile değişken
tipi arasında uyuşmazlık var.28 Lower bound greater than Sınırlı tip veri tanımında
upper bound alt sınır, üst sınırdan fazla.Örneğin “type a=3..1”
29 Ordinal type expected Real, string veya sınırlı tipveri burada kullanılamaz.
30 Integer constant expected Sadece integer sabitkullanılabilir.
31 Constant expected Burada sadece sabit kullanılır.32 Integer or real constant Sadece sayısal sabit kullanılabilir33 Type idenfiler expected Tip tanımı gerekiyor.Tipinin
tanımlanması gerekli olan bir değişkenin tipi tanımlanmamış.34 Invalid function result type Geçerli olan fonksiyon tipi
sadece standart veri tipleri vestring tiptir.
36 BEGIN expected Begin kelimesi unutulmuş.37 END expected End kelimesi unutulmuş.38 Integer expression expected İfade integer tipte olmalı.39 Ordinal expression expected İfade sıralı (ordinal) tip olmalı.40 Boolean expression expected İfade boolean olmalı.41 Operand type does not match Aritmetik operatör bu tip
operator veriler için uygun değil.Örneğin (‘A’ div ‘2’)42 Error in expression Bir ifade içersinde operatör
yazmak unutulmuş.Örneğin“ a:=5* ”
50 DO expected DO yazılmamış.54 OF expected OFF yazılmamış.55 INTERFACE expected INTERFACE yazılmamış.57 THEN expected THEN yazılmamış.58 TO or DOWNTO expected DO veya DOWNTO yazılmamış.62 Division by zero /, div veya mod operatörü ile
bir sayının sıfıra bölümüoluşuyor.
63 Invalid file type Readln komutu record tipdosyada veya Seek komutu texttipi dosyada kullanılmış.
64 Cannot read or write Bu tip veri read veya writevariables of this type komutu ile kullanılmaz.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 82/84
66 String variable expected Bu değişken string tip olmalı.67 String expression expected İfade string tipte olmamlı.73 Implementation expected Implementotion yazılmamış.74 Constant and case type Case deyiminin seçici değişkeni
do not match ile etiket tipleri arasında
uyumsuzluk var.75 Record variable expected Bu değişken record tip olmalı.76 Constant out of range Sınır dışında kalan bir sabit
değer, değişkene atanmış.79 Integer or Real expected İfade integer veya real tipte
olmalı.84 UNIT expected Unit yazılması gerekir.85 “;” expected “;” yazılması gerekir.86 “:” expected “:” yazılması gerekir.87 “,” expected “,” yazılması gerekir.88 “(“ expected “(“ yazılması gerekir.
89 “)” expected “)” yazılması gerekir.90 “=” expected “=” yazılması gerekir.91 “:=” expected “:=” yazılması gerekir.92 “[“ or “(.” Expected “[“ veya “(.” yazılması gerekir.93 “]” or “.)” expected “]” veya “.)” yazılması gerekir.94 “.” Expected “.” yazılması gerekir.95 “..” expected “..” yazılması gerekir.97 Invalid FOR control For deyimi içerisindeki kontrol
variable değişkeni imteger tipte olmalı.
98 Integer variable expected Integer değişken kullanılmalı.
102 String constant expected String sabit kullanılmalı.113 Error in statement Bu sembol ile bir deyim yazmayabaşlanamaz.
116 Must be in 8087 mode to Bu ifadenin derlenmesi içincompile this compiler 8087 modunda olmalı.
121 Invailed qualifier Array olarak tanımlanmamış bir değişken indexli olarakkullanılmaya çalışıyor.
132 Critical disk error Kritilk bir disk hatası var.Örneğin sürücüde disket yok.
133 Cannot evaluate this Bu ifade DEBUG fonksiyonu ileexpected değerlendirilemez.Örneğin Sin
fonksiyonu veya bir sabit watchpenceresinde yazılmış.
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 83/84
RUN-TIME HATA MESAJLARI
Hata Kodu Mesaj Açıklama
1 Invalid function number Geçersiz fonksiyon numarası.Mevcut olmayan DOSFonksiyonu çağrılıyor.
2 File not found Reset,Append,Rename veyaErase komutlarıyla belirlenendosya bulunamıyor.
3 Path not found Reset, Rewritre, Append,Rename, Erase, Chdir, Mkdir Veya Rmdir komutlatıylaBelirtilen path bulunamıyor.
4 Too many open file Aynı anda açılan dosya sayısıçok fazla FILES=20 olmalı.
5 File access errror Reset, Append, Rewrite, renameErase, Rmdir komutlarıkullanıldığında ortaya çıkar.
6 Invalid file handle Geçersiz bir dosya isteği DOSsistemine letilmiş.
12 Invalid file access code Geçersiz dosya erişim kodu.15 Invalid drive number Getdir komutu ile geçersiz bir
sürücü numarası kullanılmış.
16 Connat remove accross Rmdir komutu ile aktif directorydirectory silinmeye çalışıyor.
17 Connat rename accross Rename komutu ile aynıdrivers sürücüdeki dosyaların ismi
değiştirilmeye çalışılıyor.100 Disk read error Read komutu ile EOF
karakterinden sonraki bir kayıtokunmaya çalışıyor.
101 Disk write error Close, write, writeln komutları iledolu bir diskete işlem yapılıyor.
102 File not assigned Assign komutu ile dosya bir
temsilci değişkene atanmamış.103 File not open Açılmamış bir dosya üzerindeişlem yapılıyor.
104 File not open for input Text dosyası giriş için açık değil.105 File not open for output Text dosyası çıkış için açık değil.106 Invalid numeric format Text dosyasından read veya
readln komutu ile sayısal bir veri
5/14/2018 Turbo Pascal - slidepdf.com
http://slidepdf.com/reader/full/turbo-pascal-55a92f281923a 84/84
okunurken uygun olamayan bir sayısal değer ile karşılaşıldı.
150 Disk is write protected Disket yazmaya karşı korumalı.151 Unknown unit Tanımsız ünite.152 Drive not ready Disket sürücüye takılmamış veya
sürücü kolu kapatılmamış.154 CRC error in data Diskete kaydedilmiş datada hata156 Disk seek error Disktekten data okunurken hatay
rastlandı.157 Unknown media type Disket DOS tarafından tanınmıyo158 Sector not found Disket bozuk olduğundan data
bulunamıyor.159 Printer out of paper Printer’e kağıt takılmamış.160 Device write fault Hardware hatası nedeniyle disket
veya harddisk’e kayıtyapılamıyor.
161 Device read fault Hardware hatası nedeniyle disketveya harddisk’ten data okunamıy162 Hardwae failure I/O portunda arıza tespit edildi.200 Division by zero /, div ceya mod operatörleriyle
yapılan bölme işleminde sayınınsıfıra bölümü oluşmakta.
201 Range check error {$R+} compiler bildirisikullanıldığında bir değişkenesınırları dışında verigirilmekte veya bir dizideğişkenin boyutları sınır dışında
kalıyor.205 Floating point overflow Tanımlanmamış bir real değişkensınırları dışında veri atanmayaçalışılıyor.