Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Ders İçeriği: Kitaplar:

Benzer bir sunumlar


... konulu sunumlar: "Ders İçeriği: Kitaplar:"— Sunum transkripti:

1 Ders İçeriği: Kitaplar:
Algoritma ve akış diyagramları, Pascal ‘da program yapısı, Giriş/Çıkış komutları, karşılaştırma komutları, döngü komutları, procedure, function, pointer, yapısal veri tipleri, unit, dosyalama. Kitaplar: 1. Pascal Programlama Dili, Murat Tekin, Nahid Tekin, İstanbul Kültür Üniversitesi, 2003. 2. Turbo Pascal, Prof.Dr. Behiç Çağal, İstanbul Kültür Üniversitesi. 3. Turbo Pascal ve Programlama Sanatı, Ömer Akgöbek, Beta yayınları, 1998. 4. Pascal, Prof.Dr. Mustafa Dikici, Beta yayınları, 1998.

2 GİRİŞ Blaise Pascal Pascal 1968 yılında Prof. Dr. Niklaus Wirth (Zürih Teknik Üniversitesi, İsveç) tarafından geliştirilmiştir. 17. yüzyılın ünlü matematikçisi Blaise Pascal ‘a hitaben Pascal olarak isimlendirilmiştir.Bundan önce benzer özelliklere sahip bir dil olan ALGOL (Algoritmic Languages) 1950 yılında geliştirilmiştir.

3 Pascal ‘ın programcıya sunduğu en önemli özellik; program parçaları hazırlandıktan sonra, farklı programlar içerisinde kullanılabilmektedir. Günümüzde turbo pascal geliştirilerek, programın kullanımında kolaylıklar sağlanmıştır. Programın yazıldığı editörde, programlar anında makina diline çevrilir, hata bulma ve düzeltmeler pratik ve hızlıdır. Borland tarafından Turbo Pascal gilştirilmiştir, kitap Turbo Pascal komutlarını içermektedir. Pascal yapısal bir dildir. Komut cümleleri bloklar halinde yazılır. Goto kullanılarak yönlendirilmeler kullanılmaz.

4 Elektronik ilk dijital bilgisayarlar, Dr
Elektronik ilk dijital bilgisayarlar, Dr. Jhon Atanasof tarafından, Iowa State Üniversitesi ‘nde lisans üstü matematik öğrencilerinin ihtiyaçları için tasarlanmıştır yılında genel amaçlı ilk dijital bilgisayar, Pennsylvania Üniversitesi ‘nde tasarlandı ve ENIAC adı verildi. 30 ton ağırlığında ve boyutları 30X50 fit idi. Ddaha sonra Princeton Üniversitesi ‘nde Dr. John Von Neumann sistemi çalıştıran programları bilgisayarın belleğine yerleştirilmesini tasarladı, günümüzdeki bilgisayarların temelleri atılmış oldu.

5 Programlama dillerini üç ana başlıkta toplayabiliriz
Programlama dillerini üç ana başlıkta toplayabiliriz. Makina dili, Assemly dili ve Yüksek seviyeli programlama dilleri. Makina dili, bilgisayarların anlayabileceği tekdildir. 0 ve 1 sayılarından oluşur. Makinaya bağımlıdır. Assembly dili, 0 ve 1 sayılarının yerine kelimeler ve semboller kullanılır, makinaya bağımlıdır. Makina ve assamble dillerinde yazılan programlar sadece yazıldığı bilgisayarda işletebilir. Bilgisayarlar sadece makina dilinde çalışırlar. Bundan dolayı yüksek seviyede yazılan programlar derleyiciler ile makina diline çevrilirler. Yüksek seviyeli programlama dilleri, kullanımı kolaydır, taşınabilir. Örneğin; Basic, Cobol ,Fortran, Pascal, vb. Bunlara; visual C++, delphi, visual basic, acces, foxpro, vb. çok yüksek seviyeli diller, C, C++, vb. orta seviyeli dilleri ilave edebiliriz.

6 Bu dillerin kullanıldığı alanlara örnekler verirsek: Pascal, fortran, C, C++ dilleri bilim ve mühendislikte, Dbase, Foxpro, Sql, Access veri tabanı programcılığında, Prolog, Lisp yapay zeka kullanımında, C, C++ ve makina dilleri sistem programcılığında kullanılır. Bir bilgisayar programı yazmaya başlamadan problemin algoritmasını oluşturmamız gerekir. Algoritma problemin çözümünü bulabilmek için tasarlanan adımlar, yöntemlerdir. Algoritma kullanacağımız programlama dilinin seviyesi ve programın zorluk derecesine göre farklılıklar gösterecektir.

7 Algoritma yazdıktan sonra programlama dilinin seçiminde, programın kullanım düzeyi, kullnım süresi ve kullanım amacı dikkate alınmalıdır. Programda görsellik, veri tabanı aranıyorsa, kısa sürede sonuca ulaşabilmek için visual dillerden biri Visual C++, Delphi, Visual Basic, vb. seçilmelidir. Fakat bilgisayarınızın bir donanımı için program yazmak istiyorsanız, bu programı bu visual dillerle yazamazsınız. Buradaki seçiminiz C, C++, Assamly, vb. olmalıdır. Programlama dillerini kendi kullanım alanlarında kullanmalıyız. Yukarıda verilen örnekteki görsellik ve veri tabanı iletişimi aranan programı C, C++ veya hatta Assembly ilede yazabiliriz. Bu verimli olmaz ve çok aşır uzun süreler alır.

8 Günümüzde yazılım teknolojisiyle farklı programlama dillerinde yazılmış program parçaları birlikte kullanılabilmektedir. Bu model Component Object Model (COM) ‘dir. Örneğin C++ ‘da yazdığınız bir parçayı Delphi ‘den çağırarak, programınıza dahil edebilirsiniz. Bu teknolojilerin geliştirilmesinde C++ kullanılmıştır.

9 Turbo Pascal Editörü (TP7.0)
Editörü ilk açtığımızda karşımıza, NONAME00.PAS isimli dosya gelir. Bu daosya içerisine kod satırlarını yazmaya başlayabiliriz. Yazma işlemimiz bittikten sonta Compile menüsü yardımıyla derleriz, daha sonra Run menüsü ile programı çalıştırabilirsinizmiz zaman hatalarımız var ise editör bize hatanın bulunduğu satırı, hatayı ve kodunu verir. Hatayı düzelttikten sonra tekrar derleyebilirsiniz. Daha sonra File menüsünden save ‘e basark programı kaydedebilirsiniz, istenirse 8 karakterlik yeni bir isim verilebilir.

10 Önek 1 program ilk(input, output); Uses crt; begin
writeln(‘pascal öğreniyorum.’); end.

11

12 İlk Programımızın çıktısı aşağıdaki gibi olacaktır.

13 BÖLÜM 1 PASCAL ‘DA PROGRAM YAPISI Program yapısı Semboller DEĞİŞKEN TİPLERİ OPERATÖRLER Aritmetik Operatörler Mantıksal Operatörler Karşılaştırma Operatörleri

14 PASCAL ‘DA PROGRAM YAPISI
Pascal programlama dili, yapısal bir dildir. Yazacağımız pascal programı, program parçalarında oluşur. Ana program parçası çok kısa olur. Programın büyük bir bölümünü procedure ve function ‘lar oluşturur. Program yapısı program program_adı(input,output); Tanımlamalar uses unitler;     type     özel veriler;     const     sabitler;     var     değişkenler;     label     etiketler; procedure ve functionlar; Ana program parçası.

15 İlk olarak program yazılır ve programa bir isim verilir
İlk olarak program yazılır ve programa bir isim verilir. Verilecek isimde bir değişken için uyulacak kurallar geçerlidir. Bunlar; türkçe karakter, sembol, boşluk olamaz. Sayı ile başlanamaz. Alt çizgi kullanılabilir. Örnekler; ogrenci_isleri, soru1, ornek1, gunluk_ver3. Daha sonra tanımlamalar bölümünde program içerisinde kullanacağımız unitler, veriler, sabitler, değişkenler, etiketler bulunur. Tanımlamalar kısmında program içerisinde kullanacağımız unitleri, özel veri tiplerini, sabitleri, değişkenleri ve etiketleri tanımlarız.

16 Procedure: Alt programdır
Procedure: Alt programdır. Program parçasını procedure altında yazarak, istenilen yerde çalıştırabiliriz. Procedure parametre ile kullanmıyorsak, çalışması için ismini yazmamız yeterlidir. Procedure ve function ‘larda type, const, var ve label tanımlamaları kullanılabilir. Function: Function ‘da alt programdır. Yazdığımız function doğrultusunda, ana program parçasından gönderdiğimiz datayı işleme tabi tutarak, sonucunu gönderir.

17 Semboller Harfler :İngiliz alfabesinin harfleri , A-Z ve küçük harfler. Sayılar: 0-9 Hexaesimal(Onaltılık) sayılar: A-F , a-f , 0-9 Özel karakterler(Tek olarak kullanılanlar): + :aritmetik ve string toplama. - */ :aritmetik işlemler. = < > :karşılaştırma. : :geğişken tanımlanırken ve case of ‘da kullanılır. ; :komut satırı bitimi. @ :adres belirtmede kullanılır.

18 ( ) :aritmetik işlemlerde öncelik için, procedure ve function ‘ların parametrelerini yazmak için kullanılır. {}(* *) :açıklama yazmak için kullanılır. # :bu sembol ile yazılan kon numaraları ile karakter veya tuş belirtilebilir. [ ] :indis. . :program sonu ve real sayılarda kullanılır. , :birden fazla aynı tipte tanımlama yapılırken aralara konulur. := :değişkende değer atamak için kullanılır. { $ } :compiler bildirilerinin belirtilmesi için.

19 Korumlı Pascal kelimeleri (Reserved Word)
Absolute And Array Begin Case Const Constructor Destructor Div Do Down to Else End External File For Forward Function Goto If In Inline  Interrupt Label Mod Nil Not Object Of Or Packed Set Shl Shr String Then To Type Unit Until Uses Var Virtual While With Xor

20 Sayılar Tam, gerçel, hexedecimal sayılardır. Hexedecimal sayıların önüne $ sembolü getirilir. On üzeri gösterim için E veya e harfi kullanılır. Stringler İki apostrof arasına tüm harf ve sembolleri yazabiliriz. Maksimim 255 karakterlik bilgi yazılabilir. Program Akışı Komutların yazım sırası ve satırlar takip edilerek program yürütülür. Komut satırı bitimleri noktalı virgül (;) sembolü ile belirlenir. Birden fazla komut satırını aralarına noktalı virgül yazarak tek satırda kullanabiliriz. Atama Bir bilgi hafızada değişken vasıtasıyla tutulur. Hafızadaki bu bilgilere değişken ile ulaşırız. Atama işlemi için := sembolü kullanılır. := sembolünün soluna değişken, sağ tarafına ise ifade yazılır. Burada kullanacağımız değişkenin tipi ile ifadenin tipi uyumlu olmalıdır. değişken := ifade;

21 DEĞİŞKEN TİPLERİ Integer (Tamsayı) Tip
Tamsayılardır. Kullanım amaçlarına göre shortint, integer, longint, byte, word şeklinde ayrılmışlardır. var a, b: integer; cevre: longint;

22 Hafızada kapladığı alan (byte)
Tip Sınırları Hafızada kapladığı alan (byte) shortint integer logint byte (işaretsiz) word (işaretsiz) 0-255 1 2 4

23 Real(Gerçel) Tip Gerçel sayılardır. Örneğin; Kullanım amaçlarına göre real, single, double, extended, comp şeklinde ayrılmışlardır. var sayi1, sayi2, alan: real; cap: single;

24 Hafızada kapladığı alan (byte)
Tip Sınırları Hafızada kapladığı alan (byte) Real Single Double Extended comp 2.9x x1038 1.5x x1038 5.0x x10308 3.4x x104932 6 4 8 10

25 karakter1, karakter2: char;
Boolean(Mantıksal) Tip Değişken true(doğru) veya false(yanlış) değerini alır. Karar verme ve döngü işlemlerinde kullanılır. Değişkenin aldığı doğru veya yanlış değere göre program farklı bir şekilde yürütülür.       var sonuc, d1, d11: boolean; Char Tip ASCI karakterlerinden oluşur. Değişkene bir karakter tutabilir. Karakter üretmek için chr fonksiyonu kullanılır. Örneğin chr(#77). karakter1, karakter2: char;

26 String Tip Karakter dizisinden oluşur. En fazla 255 karakterlik olabilir. Değişik sınırlar değişken tanımlanırken belirlenebilir.    var ogrenci_adi: string[15]; ogrenci_adresi, aciklama: string[30]; Array Tip Dizi tipidir. Birden fazla aynı tipteki bir kümeyi aynı değişken kullanarak hafızaya yerleştirebiliriz. Köşeli parantez içerisine dizinin boyutu yazılır. Çok büyük dataların okunmasında, bize komut yazımında kolaylık sağlar. ogrenci_adi, ogrenci_soyadı: array[1..50] of string[15]; vize1, vize2: array[1..50] of byte; Buradaki örnekte 50 kişilik bir sınıftaki oğrencilerin bilgileri birlikte tutulmuştur. vize1 dizi değişkeninde 50 tane 1.vize notu tutulabilir. vize2[3] 3.öğrencinin 2.vize notudur.

27 Birden fazla boyut oluşturulabilir. Örneğin, var
vize: array[1..2, 1..3] of byte; Buradaki vize isimli değişken 2 boyutludur. 2X3=6 elemanlıdır. Bu aslında 2 satırlı, 3 sütunlu bir matrisdir. vize[1,1] : 1.dersin 1.vize notu vize[1,2] : 1.dersin 2.vize notu vize[1,3] : 1.dersin 3.vize notu vize[2,1] : 2.dersin 1.vize notu vize[2,2] : 2.dersin 2.vize notu vize[2,3] : 2.dersin 3.vize notu

28 Record(Kayıt) Tip Aynı küme içerisinde birlikte düşünülebilecek değişkenler topluluğudur. Topluluk elemanları farklı tiplerden oluşabilir.     var ogrenci_bilgi= record no: byte; adi,soyadi: string[15]; adresi: string[30]; end; sinif1: ogrenci_bilgi; Burada ogrenci_bilgi isimli topluluğun; no, adi, soyadi, adresi isimli 4 tane elamanı vardır. sinif1 isimli değişken vasıtasıyla bu topluluk program içinde, sinif.no= ; readln(sinif.adi); writeln(‘Soyadı:’, sinif1.soyadi); şeklinde kullanılır.

29 ogrenci_bilgi= record no: byte; adi,soyadi: string[15];
Aşağıdaki örnek dizi şeklinde yazılmıştır; type ogrenci_bilgi= record no: byte; adi,soyadi: string[15]; adresi: string[30]; end; var sinif:array [1..3] of ogrenci_bilgi; i:integer; begin for i:=1 to 3 do readln(sinif[i].no); writeln; writeln(sinif[i].no); readln end.

30 var Değişkenlerin tanımlandığı bölümdür.     var değişken1, değişken2... :tip_adı; Aralarına virgül konularak birden fazla değişken bir satırda tanımlanabilir. a, sayi1, c: integer; isim: string[15]; alan, cevre: real; b: array[1..2, 1..3, 1..5] of integer; Pascal ‘da büyük harf, küçük harf duyarlılığı yoktur.

31 const Sabit değerlerin tanımlanması için kullanılır. Tanımladığımız değer program boyunca aynı kalır. Örneğin pi, max, min vb. değerler. Tanımlamada tip adı belirtilmeyebilir. Sabit_ismi[:tip]=değişken; pi:real=3.14; max=999; il:string[6]=’ANKARA’;     vize: array[1..2,1..3] of =((75,80,90),(55,100,80));

32 type Programcı kendi isteğine göre özel veri tipi oluşturabilir.
type tip_ismi = tip; Buradaki tip pascal tipi veya daha önce programcı tarafından tanımlanmış bir tip olabilir. Örneğin type gercel: real; tamsayi: integer; sayilar: 0..50; giris_tipi: array[1..3, 1..50] of integer;

33 label Etiket tanımlanır. Goto komutu ile belirlenen etikete gidilebilir. Yapısal programlamada kullanılma ihtiyacı duyulmaz.  label etiket adı1, etiket adı2,.....; Örneğin, label giris, liste, 442;

34 OPERATÖRLER Aritmetik Operatörler: Aritmetik işlemleri yapabiliriz.
Tipi Sonuç tipi + - * / div mod Toplama Çıkarma Çarpma Bölme Tamsayı bölme Kalan İnteger Real Integer

35 Örnekler Div Operatörü Mod Operatörü 16 div 3 = 5 18 div 3 = 6
3 mod 0 = tanımsız

36 Mantıksal Operatörler:
Mantıksal işlemler yapmak için bu operatörlerden faydalanılır. Operatör Sonucu And (ve) Or (veya) Not (değil) Xor (veya değil) Boolean

37 Karşılaştırma Operatörleri:
    Karşılaştırma işlemlerinde kullanılan kullanılan operatörlerinin sonuçları boolean ‘dır. = :eşit < :küçük > :büyük <> :farklı <= :küçük eşit >= :büyük eşit Pascal ‘da formül yazımı: Formül yazımında ilk olarak aritmetik operatörlerin işlem önceliğine dikkat etmemiz gerekir. İşlem öncelik sıralaması: parantez, üs alma, çarpma ve bölme, toplama ve çıkarma dır. Örneğin, denkleminin kod satırı ; y:=(a+b)/c şeklindedir. İşlem önceliğinden dolayı parantez kullanmamız mecburidir. Bu denklemi y:=a+b/c şeklinde koda dönüştürseydik karşılığı bizim denklemimizden farklı denklem olacaktı. Örnekler; y:=2*x/3 y:=(a+b)/(c+d) y:=a+b/c+d

38 BÖLÜM 2 PASCAL KOMUTLARI Input/Output (Giriş/Çıkış) Komutları
write/writeln read/readln Karşılaştırma Komutları if – then – else case – of Döngü Komutları for – do repeat - until while - do continue break EKRAN KOMUTLARI

39 PASCAL KOMUTLARI Input/Output (Giriş/Çıkış) Komutları
Data girişlerinin yapılabilmesi, sonuçların ekran veya printer ‘a yazılması için kullanılırlar. write/writeln Ekrana sabit, değişken veya işlem şeklindeki ifadelerin sonuçlarını yazar. Writeln kullanılırsa yazma işlemi sonucunda cursor bir satır atlar. Yazdırılmak istenilen ifade parantez içerisinde yazılır, birden fazla ise virgül ile ayrılır. Bir string yazdırılmak isteniyorsa, iki tırnak arasına yazılır. Örneğin: write(‘istanbul’); ---writeln(sayi1); Örnek Program: program ilk(input, output); Uses crt; begin writeln(‘pascal öğreniyorum.’); end. Çıktısı, pascal öğreniyorum.

40

41 İlk Programımızın çıktısı aşağıdaki gibi olacaktır.

42 Çıktıdaki her kelimeyi alt alta yazdırmak istersek, herbir kelime için writeln komutunu kullanmamız gerekecektir program 2(input, output); Ses crt; begin writeln(‘Pascal’); writeln(‘Öğreniyorum’); end. Çıktısı, Pascal Öğreniyorum Değişken kullanarak bir örnek yazalım, program 3(input,output); var a,b,c: integer; a:=5; b:=10; c:=a+b; writeln(‘c=’,c); writeln(‘c=’,a+b); c=15

43 Her iki writeln aynı sonucu verecektir, writeln komutu içerisinde işlem yapabiliriz.
write/writeln sonuçlarını ekrana formatlı yazdırabiliriz. Toplam hane sayısını ve virgülden sonra kaç karakter kullanılacak belirtebiliriz. program ekran4(input,output); var a:integer; b:real; begin a:=786; b= ; writeln(a:10); {Bu yazım formatına göre yazdırılmak istenilen M değeri n karakterlik alanda sağa dayalı olarak yazılır. M değerini oluşturan dijit veya karakterin uzunluğu n sayısından küçük ise, aradaki fark kadar sol tarafta boşluk bırakılır. M değerinin uzunluğu n sayısına eşit veya büyük ise yazdırma işlemi format belirtilmemiş gibi gerçekleştirilir. }

44 writeln(b:10:2); {Bu yazım formatı real sayılar üzerinde çalışmaktadır
writeln(b:10:2); {Bu yazım formatı real sayılar üzerinde çalışmaktadır. Bu yazım formatıyla reel sayılar üssüz notasyonda yazdırılır. Bunu sağlamak için sadece real sayılar için geçerli olan 2. yazım formatı kullanılır. Yazdırılacak M real değeri n karakterlik alanda sağa dayalı olarak üssüz yazdırılır, k ise n karakterin sonundaki kesirli kısmı göstermektedir. Örneğin; A değeri, A:7:2 şeklinde yazdırılmak istenirse; program real sayı için 7 karakterlik yer ayırır. Bu alanın son iki hanesi ondalıklı kısım için sondan 3. hanesi ise desimal nokta için kullanılır. Sayının tamsayı kısmı ayrılan alanın uzunluğundan küçük ise, aradaki fark kadar sol tarafta boşluk bırakılır. Yazdırılacak sayının tam sayı kısmı bu alana sığmıyor ise, tamsayı için ayrılan alanın uzunluğu yazdırılan sayının tamsayı alan uzunluğuna eşit büyüklükte kabul edilir. Kesirli kısmı ayrılan alandan daha küçük ise aradaki fark kadar sağ tarafa 0 dijiti ilave edilir. Kesirli kısım alana sığmıyorsa yuvarlatılarak yazılır. Yazım sırasında kesirli alanın yazılması istenmiyorsa k sayısının “0” yazılması gerekir. K sayısının sıfır olması desimal noktanın yok olmasını sağlar. } end. Çıktısı, bbbbbbb786 bbbb786.12

45 read/readln Klavyeden veya dosyadan bilgi okumak amacıyla kullanırız. Klavyeden kullanımı; read(değişken1, değişken2, ...); Parantez içerisine değişken ismi yazılır, birden fazla ise aralarına virgül konulur. Readln kullanılırda girişden sora cursor bir satır atlar. Bir readln fonksiyonu ile birden fazla değişken girişi yapıldıysa, klavyeden aralarına boşluk verilerek veya her değişken değerinden sonra enter ‘a basılarak giriş yapılır.   Aşağıdaki örnekte klavyeden girilen iki tamsayının toplamı bulunarak ekrana basılmıştır. program giris1(input,output); var a,b,c: integer; begin write(‘a değerini girin:’);readln(a); { Cursor mesajın hemen bitimine konumlanması için burada writeln yerine write kullanılmıştır. } write(‘b değerini girin:’);readln(b); c:=a+b; writeln(‘c=’,c); end. Çıktısı, a değerini girin:5 b değerini girin:10 c=15 Klavyeden 5 ve 10 değerleri girildiği kabul edilmiştir.

46 Aynı programı bir tane readln kullanarak yazabiliriz.
program giris11(input,output); var a,b: integer; begin write('a ve b değerlerini girin:');readln(a,b); writeln('c=',a+b); readln end. Çıktısı; a ve b değerlerini girin:5 10 c=15

47 Aşağıdaki örnekte Bir kişinin isim ve il bilgileri girildiğinde, ekrana bir cümle şeklinde yazılmaktadır. program giris2(input,output); var isim:string[15]; il:string[10]; begin write(‘İsminizi giriniz:’);readln(isim); write(‘Yaşadığınız ili giriniz:’);readln(il); writeln(isim,’ ‘,il,‘ da yaşamaktadır.’); end. Çıktısı, İsminizi giriniz: Beril Yaşadığınız ili giriniz: İstanbul Beril İstanbul da yaşamaktadır. Klavyeden Beril ve İstanbul değerleri girildiği kabul edilmiştir. Aşağıdaki program klavyeden girilen 3 sayının ortalamasını bulmaktadır. program ornek(input,output); a,b,c:integer; ort:real; write('Ortalaması alınacak 3 sayıyı giriniz:'); readln(a,b,c); ort:=(a+b+c)/3; writeln('ortalama:',ort:10:3); readln Çıktısı; Ortalaması alınacak 3 sayıyı giriniz: ortalama:

48 Karşılaştırma Komutları
Karşılaştırma komutları, programın akışı verilen koşul veya koşullara göre değiştirilebilir. Karşılaştırma sonucuna göre istenilen satırlar çalıştırılabilir. Pascal da 2 tip karşılaştırma komutu kullanılır. «if-then-else» ve «case-of».

49 1.) if – then – else Yazılan koşula göre programda farklı bloklar yapılır. Birden fazla koşul verilebilir ve tüm koşullar denendikten sonra aksi taktirde yapılması istenilen blok varsa else komutundan sonra yazılır. if Koşul then Komut/Komutlar; Koşul doğru ise then komutundan sonraki Komut veya Komutlar yürütülür.

50 if Koşul then Komut/Komutlar;

51 else kullanılırsa, if Koşul then Komut/Komutlar else Komut/Komutlar;
Koşul doğru ise then komutundan sonraki Komut veya Komutlar yürütülür, aksi takdirde else komutundan sonraki Komut veya Komutlar yürütülür.

52 Birden fazla komut satırı kullanıldığında, bu satırlar begin – end arasında yazılmalıdır.
 if Koşul then begin …….. ……. end; else

53 Örnegin klavyeden girilen iki sayıdan büyük olanını bularak ekrana basan programı yazalım.
program kucbuy; Uses crt; var a,b:integer; Begin Clrscr; writeln(‘İki sayı giriniz: ’); readln(a,b); if a>b then writeln(a,’ büyük’) else writeln(b,’büyük’); Readln; end.

54 Örneğin klavyeden fiyatı ve miktarı girildiğinde ödeme turarını aşağıdaki tabloya göre bulan programı yazalım, Miktar(X TL) İndirim Yüzdesi(%) X< Yok 10<=x< %20 20<=x< %30 X>= %50

55 program hesapla; Uses crt; var f,od,m:real; begin Clrscr; Write('Fiyatı:');readln(f);write('Miktar:');readln(m); if m<10 then od:=f*m else if(m>=10) and (m<20) then Begin Od:=(f*m)-(f*m)*0.20; write (‘Tenzilat tutarı:’,f*m*0.2:20:5); End; else if(m>=20) and (m<30) then od:=(f*m)-(f*m)*0.30 else if m>=30 then od:=(f*m)-(f*m)*0.50; writeln('Ödeme Tutarı:',od:10:3); readln; end.

56 PROBLEMLER 1. Bir süpermarket aşağıdaki şekilde alışveriş tutarına göre indirim uygulamaktadır. Klavyeden alışveriş tutarı girildiğinde ödeme miktarını bulan programı yazınız. Alışveriş Tutarı(Xmilyon TL) İndirim(%) 50 altında YOK 50(dahil) 100(dahil) 200 (dahil)ve üzeri 20 2. Klavyeden girilen x değeri için aşağıdaki fonksiyonun sonucunu bulan programı yazınız. x2 x≤0 f(x)= (x+1)2 0<x<15 x x≥15 3. Klavyeden 2 sayı girilmektedir, büyük olanın karesini, küçük olanın küpünü bulunuz.

57 2. case – of : Case-of deyimi bazi durumlarda if'e göre çok daha kisa kod ile ayni isi yapmanizi saglar. Ayrica kullanimi da çok basittir. Mesela bir degiskenimiz var ve bu degiskenin aldigi 10 tane degisik deger için 10 ayri islem yaptirmak istiyoruz. Bunu if ile yapmak hem çok uzun olur hem de hata yapma sansimiz yüksek olur. Ama Case of kullanirsak çok daha anlasilir ve kisa yapabiliriz. Case'in genel kullanimi söyledir: Case degisken of deger 1 : islem 1; deger 2 : islem 2; deger 3 : islem 3; ... End; Çok miktarda seçenek varsa case – of tercih edilir. İfadenin alacağı değere göre istenilen satır/satırlar yürütülür.

58 Koşul araştırılan değişkenin değerlerine göre program akışının değiştirilmesini sağlar. Değişkenin değeri ilk olarak hangi ifadeye uyarsa yalnızca o ifadenin karşısındaki komut veya komutlar işleme alınacak diğerleri işlenmeyecektir. Eğer değişkenin değeri tanımlı olan ifadelerin hiç birisine uymuyorsa ELSE ifadesini karşısındaki komutlar işleme alınır. ELSE bloğunu kullanmak zorunlu değildir.

59 CASE secenek OF { secenek adındaki değişken değerlendiriliyor } 1:secim:=1; { eğer secenek değişkeninin değeri 1 ise secim değişkeninin değeri de 1 oluyor } 2:secim:=2; { eğer secenek değişkeninin değeri 2 ise bir üsteki  satır değerlendirilmiyor ve secimin değeri 2 oluyor } ELSE writeln(‘Hatalı Secenek’); { eğer secenek değişkenin değeri 1 ve 2 den farklı  ise ekrana mesaj yazdırıyoruz } End;{ case of komut bloğunu end ile bitiriyoruz }

60 Tabii yine ifade (ve Pascal'in heryerinde) oldugu gibi birden çok islem yaptiracaksak begin ile and arasina aliriz. Sunun gibi: Case degisken of deger 1 : begin islemler... end; deger 2 : begin ... Ayrica birden çok deger için bir islem yapilacaksa söyle kullanilir: deger 1, deger 2, deger 3 : islem 1; deger 4 : islem 2; deger 5, deger 6 : islem 3; End;

61 Case komutunu genelde bir degiskenin birden çok sonucuna göre farkli islemler yaptirmak istediginizde kullanabilirsiniz. Dikkat etmeniz gereken case degisken of kalibinda belirttiginiz degisken ile alabilecegi degerlerin ayni tipte olmasidir. Yani degisken sayi tipindeyse herhalde degeri 'D' olamaz! Ya da char tipindeyse degeri 5 olamaz, '5' olabilir. Ikisinin arasindaki farki anlatmistim. Önceki sayi, sonraki karakterdir.

62 1 ile 5 arasındaki sayıların yazımlarını ekrana basan program.
program yazicevir; Uses crt; var sayi: integer; Begin Clrscr; write(‘1 ile 5 arasında sayı gir:’);readln(sayi); case sayi of 1:writeln(‘bir’); 2:writeln(‘iki’); 3:writeln(‘üç’); 4:writeln(‘dört’); 5:writeln(‘beş’); else writeln(‘1 ile 5 arasında girmediniz.’); End; Readln; end.

63 end. program hesapmakinesi; uses crt; var sayi1,sayi2: integer;
ÖRNEK 2. Ekrandan girilen iki sayının taoplam, fark, çarpım ve bölümlerini bulan basit bir hesap makinası programı yapalım. program hesapmakinesi; uses crt; var sayi1,sayi2: integer; islem:char; Begin clrscr; write(‘İşlem yapacağınız sayıları giriniz:’);readln(sayi1,sayi2); write(‘Hangi işlemi yapacaksınız [/,*,-,+] :’);readln(islem); case islem of ‘/’:writeln(‘Bölme sonucu:’,sayi1/sayi2); ‘*’:writeln(‘Çarpma sonucu:’,sayi1*sayi2); ‘-’:writeln(‘Çıkarma sonucu:’,sayi1-sayi2); ‘+’:writeln(‘Toplama sonucu:’,sayi1+sayi2); else writeln(‘yanlış giriş’); end; readln; end.

64 program deneme; uses crt; var      ognotu : word;    harfnotu :char; begin    write('Öğrencinin notunu giriniz>');readln(ognotu);    case ognotu of          :harfnotu:='E';          :harfnotu:='D';          :harfnotu:='C';          :harfnotu:='B';          :harfnotu:='A';       else          writeln('Hatalı giriş yaptınız !');    end;    writeln('Öğrencinin harf notu=‘ ,harfnotu);    readln; end.

65 Program ; Uses crt; Var Ch: char; begin case Ch of 'A'..'Z', 'a'..'z' : WriteLn('Harf'); '0'..'9' : WriteLn('Rakam'); '+', '-', '*', '/' : WriteLn('Operator'); else WriteLn('Özel karakter'); End; Readln; End.

66 uses crt; Const I : integer = 500; Var Sayi : integer; Begin Write(‘Bir sayı girin : ‘);readln(Sayi); If (sayi > 0) and (sayi < 128) then I := I+1; If (sayi >= 128) and (sayi < 256) then I := I+10; If (sayi >= 256) then I := I+100; If (sayi < 0) and (sayi > -127) then I := I-1; If (sayi <= -127) and (sayi > -255) then I := I-10; If (sayi =< -255) then I := I-100; writeln('Islem sonunda I değeri =',I); Readln; End.

67 Const I : integer = 500; Var Sayi : integer; Begin Write('Bir sayi girin : '); readln(Sayi); case Sayi of : I:= I + 1; : I := I + 10 ; : I := I + 100; : I := I - 1; : I := I - 10; : I := I - 100; end; writeln('Islem sonunda I değeri =',I); Readln; end.

68 uses crt; var   ads:string[20];   not1:integer; begin   clrscr;   write(' AD Soyad GİRİNİz '); readln(ads); write(' Not GİRİNİz ');   readln(not1);    case not1 of     : not1:='A';     : not1:= 'B';     : not1:= 'C‘;     : not1:= 'D';     0..44: not1:= 'E';   else     writeln('0 ile 100 arasi not giriniz!');   end; Writeln(ads,’isimli öğrencinin harf notu,’not1);   readln; end.

69 Klavyeden girilen notu beşlik sisteme çeviren program
Klavyeden girilen notu beşlik sisteme çeviren program. uses crt; var sayi:integer; begin write(‘notunuzu girin:’);readln(sayi); case sayi of 0..24:writeln(‘0 ile kaldınız’); :writeln(‘1 ile kaldınız’); :writeln(‘2 ile geçtiniz’); :writeln(‘3 ile geçtiniz’); :writeln(‘4 ile geçtiniz’); :writeln(‘5 ile geçtiniz’); else writeln(‘notunuzu arasında giriniz’); end; readln; end.

70 Program FS; Uses Crt; var sayi:longint; begin clrscr; write('Bir Sayi Giriniz: ');readln(sayi); case sayi of 0..9: writeln('Bu sayi 1 basamaklidir'); 10..99: writeln('Bu sayi 2 basamaklidir'); : writeln('Bu sayi 3 basamaklidir'); else writeln('Bu sayi 3''den çok basamaklidir'); end;{Case'in sonu} end.  Burda case ile birlikte else'in de kullanimini gördük. Eger case ile belirttigimiz hiçbir sart dogru degilse bir islem yapmasini isteyebiliriz. Bu durumda bütün sartlarin sonuna else.. koyariz. Yine case kullanirken iki nokta üst üste (:) isaretinin soluna araya virgül koyarak birden çok sart da koyabilirsiniz.

71 var sayi:intger; begin write('1 ile 10 arasında bir sayı girin');readln(sayi); Case sayi Of 1:write('I'); 2:write('II'); 3:write('III'); 4:write('IV'); 5:write('V'); 6:write('VI'); 7:write('VII'); 8:write('VIII'); 9:write(IX'); 10:write('X'); Else write('Girdiğiniz sayı 1 ile 10 arasında değil') end; end. Bu örnekte Case - Of komutu kullanılarak, klavyeden girilen 1 ile 10 rasında sayıların romarakamı karşılığı ekrana yazdırılıyor.

72 Kullanicidan bir sayi istesin ve ekranda bir menü olsun
Kullanicidan bir sayi istesin ve ekranda bir menü olsun. Seçime göre belirli islemler yapilsin. Programi yazmaya baslayalim: Program SF; Uses Crt; Label en_bas; var sayi:longint; secim:char; cikis:boolean; begin clrscr; cikis:=false; write('1 ile 1000 arasi bir sayi giriniz: ');readln(sayi); en_bas: clrscr; gotoxy(30,8);write('::: Menü :::'); gotoxy(30,10);write('[1] Sayinin Karesini Hesapla '); gotoxy(30,11);write('[2] Sayinin Karekökünü Hesapla '); gotoxy(30,12);write('[3] Sayinin Kübünü Hesapla '); gotoxy(30,11);write('[4] Sayinin Logaritmasını Hesapla'); gotoxy(30,11);write('[5] Sayinin Üstel Fonksiyonunu Hesapla'); gotoxy(30,13);write('[6] Programdan çik'); gotoxy(20,18);write('Seçiminizin önündeki sayiya basiniz'); gotoxy(30,15);write('Seçiminiz: '); secim:=readkey;

73 case secim of '1': begin clrscr; gotoxy(30,10); write(sayi,'''nin Karesi= ',sayi*sayi); secim:=readkey; end; '2': begin gotoxy(30,10); write(sayi,'nin Karekökü= ',sqrt(sayi):10:4); secim:=readkey; '3': begin gotoxy(30,10); write(sayi,'nin Kübü=',sayi*sayi*sayi); secim:=readkey; ‘4': begin gotoxy(30,10); write(sayi,'nin Logaritması=',Ln(sayi)); secim:=readkey; ‘5': begin gotoxy(30,10); write(sayi,'nin Üstel Fonksiyonu=',Exp(sayi)); secim:=readkey; ‘6': cikis:=true; end; {Case'in sonu} if (not cikis) then goto en_bas; writeln('Güle Güle... writen by ????'); end. 

74 Gördügünüz gibi secim:=readkey; komutuyla bir tusa basilmasini bekliyor ve case secim of ile de bu tusun '1', '2', '3' veya '4' olmasi durumunda yapilacak islemler belirtiliyor. '4' olmasi durumunda cikis:=true ile cikis isimli boolean degiseknin degeri true oluyor. if (not cikis) then goto en_bas; ile de eger cikis'in degeri false ise (ki '4'e basilmadikça hep false olur, çünkü programin basinda false yaptik) en_nas; labelinin oldugu yere gidiyor. Dolayisiyla da true olunca programdan çikilmis oluyor. Artik programlarimizda menü yapmaya da bir örnek vermis olduk.

75 PROBLEMLER 1. Klavyeden bir dikdörtgenler prizmasının kenar ölçüleri girilmektedir. Bir menü oluşturarak isteğe göre alan ve hacim değerlerini bulun. 2. Aşağıdaki menüyü oluşturarak istenilen geometrik şeklin ölçülerinin girişini isteyerek alan ve çevrelerini bulan programı yazınız. Menü Daire Dikdörtgen Kare

76 Döngü Komutları İstenildiği kadar yapılması istenen tekrarlı işlemlerde veya belli koşullar sağlanıncaya kadar tekrar edilmesi gereken işlemlerde döngü komutları kullanılır. for – do İstenildiği kadar yapılması istenen tekrarlı işlemlerde kullanılır. Yani kaç defa tekrarlanacağı bellidir. Bu başlangıç ve bitiş değerleriyle belirlenir. for değişken:=başlangış_değeri to bitiş_değeri do Komut/Komutlar; Döngüde birden fazla komut satırı varsa begin – end arasına yazılır. Başlangıç değeri, birtiş değerinden büyükse do yerine downto kullanılır. Ekrana 10 defa AKU yazdıralım. program yaz(input,output); var i:integer; begin for i:=1 to 10 do writeln(‘AKU’); end.

77 Klavyeden girilen 3 sayıdan en büyük olanını bulan programı yazalım.
program ornek(input,output); var sayi,enbuyuk,i:integer; begin for i:=1 to 3 do readln(sayi); if (i=1) then enbuyuk:=sayi; if (sayi>enbuyuk) then enbuyuk:=sayi; end; writeln('Enbuyuk sayı:',enbuyuk); readln end. Çıktısı; 10 20 5 Enbuyuk sayı:20

78 2 ‘den 100 ‘e kadar çift sayıları ekrana bastıralım.
Aşağıdaki şekilde for do döngüsü içerisinde artım yapamayız. C ‘de döngü değişkenine müdahale imkanı vardır. program CiftHata(input,output); var i,sayi:integer; begin for i:=2 to 100 do writeln(i); i:=i+2; //Hata end; end. program cift(input,output); for i:=1 to 50 do sayi:=i*2; writeln(sayi); readln

79 1 ‘den 99 ‘a kadar tek sayıların toplamını ve ortalamasını bulan program.
program teksaytoport(input,output); var i,j,toplam,say:integer; ort:real; begin toplam:=1;say:=0; for i:=1 to 97 do if (i mod 2)=0 then continue; j:=i+2; say:=say+1; toplam:=toplam+j; end; ort:=toplam/say; writeln(‘toplamı:’,toplam); writeln(‘ortalaması:’,ort); readln end.

80 İç içe istenildiği kadar for döngüsü oluşturulabilir
İç içe istenildiği kadar for döngüsü oluşturulabilir. Aşağıdaki programı inceleyelim. program icicefor(input,output); var i,j:integer; begin for i:=1 to 3 do for j:=1 to 3 do writeln(i,j); end. Programın çıktısı, 11 12 13 21 22 23 31 32 33 İncelersek; Dıştaki döngü bir kez döndüğünde içerdeki döngüyütamamlamaktadır, 3 kez dönmektedir. 3X3 ‘lük bir matrisin elaman indisleri oluşmuştur.

81 ÖRNEKLER 1. 1 den 10 a kadar sayıların karelerini ve küplerini bulunuz. for i:=1 to 10 do Writeln(i, i*i, i*i*i); Çıktısı; 1 1 1 2 4 8 3 9 27 2. Aşağıdaki şekli oluşturunuz. * * * * * * * * * * for j:=1 to 5 do writeln(‘*’: 21-j, ‘*’: 2*j-1); 3. (1+R)N denklemini yazınız. Temel:=1; For j:=1 to N do Temel:=Temel*(1+R); 4. 10 dan 5 e kadar sayıları yazdırınız. For sayi:=10 downto 5 do Writeln(‘sayı=’, sayi);

82 Aşağıdaki şekilleri oluşturunuz. a) b) c) *** ****** * *** ***** * *
PROBLEMLER Aşağıdaki şekilleri oluşturunuz. a) b) c) *** ****** * *** ***** * * *** **** * * *** *** * * *** * ********** 2. Aşağıdaki formülü kullanarak FarenTemp ‘in 50 den 100 e kadar değerlerine karşılık gelen, CelsTemp ‘in değerlerini bulunuz. CelsTemp=(5/9)*(FarenTemp-32) 3. Klavyeden 50 tane tam sayı girilmektedir. Bu sayıların pozitif olanlarının toplamını , negatif olanlarının sayısını bulan programı yazınız. 4. 10! İn sonucunu bulunuz. 5. Klavyeden girilen pozitif tamsayının faktöryelini bulunuz. 6. Aşağıdaki denklemlerin sonuclarını bulunuz. a) b)

83 repeat - until Until ifadesinden sonra yazılan koşul yanlış olduğu sürece döngü devam eder. Yani koşul sağlanıncaya kadar döngü devam eder. Önemli bir nokta ise, döngü ilk çevrimi koşulsuz olarak mutlaka gerçekleştirir. repeat Komut/Komutlar; until Koşul; KoşulKomut/ KomutlarDoğruYanlış

84 ÖRNEKLER 1 ‘den 99 ‘a kadar tek sayıların toplamını ve ortalamasını bulan program. program teksay_top_ort; Uses crt; var i,toplam,say:integer; ort:real; begin toplam:=0; say:=0;i:=1; repeat toplam:=toplam+i; i:=i+2; say:=say+1; until (i>99); ort:=toplam/say; writeln('toplamı:',toplam); writeln('ortalaması:',ort:10:3); Readln; end.

85 i,r,toplam,say:integer; alan:real; Begin Clrscr;
Klavyeden girilen 10 dairenin alanlarını bularak ekrana basan program. program daire_alan_1; Uses crt; var i,r,toplam,say:integer; alan:real; Begin Clrscr; toplam:=0; say:=0;i:=0; repeat write(i+1,'nci dairenin yarıçapını gir:'); readln(r); alan:=3.14*r*r; writeln(i+1,'nci dairenin alanı:',alan:10:3); i:=i+1; until (i=10); Readln; end. Çıktısı; 1nci dairenin yarıçapını gir:2 , 1nci dairenin alanı: , 2nci dairenin yarıçapını gir:3 , 2nci dairenin alanı: , 3nci dairenin yarıçapını gir: …

86 writeln('ortalama:',ort:10:3); end.
Klavyeden girilen 3 sayının ortalamasını bulan programı repeat until döngüsü ile yazınız. program; Uses crt; var a,i,top:integer; ort:real; Begin Clrscr; writeln('Girilen 3 sayının ortalamasını hesaplar.'); readln; i:=0;top:=0; repeat write(i+1,'.sayıyı gir:');readln(a); top:=top+a; i:=i+1; until(i>2); ort:=top/3; writeln('ortalama:',ort:10:3); end. 1.sayıyı gir:9, 2.sayıyı gir:14, 3.sayıyı gir:23, ortalama:

87 PROBLEMLER 1 den 15 e kadar tek sayıların küplerini bulan programı yazınız. 100 den 2 ye kadar çift sayıları ekrana basan program. Klavyeden girilen bir ismi 10 defa ekrana basan programı yazınız. A aracının hızı 50 km/saaat, B aracının hızı ise 180 km/saat ‘dir. A aracı hızını saniyede %2 arttırmaktadıri B aracı ise hızını saniyede %3 azaltmaktadır. Buna göre A aracının hızı kaç saniye sonra B aracının hızından fazla olur.

88 while - do Koşul doğru olduğu sürece döngü devam eder. Koşul döngü başlamadan sınanır, doğru ise döngü başlar, yanlış ise döngüye girmez. Koşul yanlış oluncaya kadar döngü devam eder. Birden fazla komut satırı var ise begin – end bloğu arasına yazılır. while Koşul do Komut/Komutlar

89 write(i+1,'nci dairenin yarıçapını gir:'); readln(r); alan:=3.14*r*r;
ÖRNEKLER Klavyeden girilen 10 dairenin alanlarını bularak ekrana basan programı while do döngüsü kullanarak tekrar yazalım.  program daire_alan_2; var i,r:integer; alan:real; begin i:=0; while (i<10) do write(i+1,'nci dairenin yarıçapını gir:'); readln(r); alan:=3.14*r*r; writeln(i+1,'nci dairenin alanı:',alan:10:3); i:=i+1; end; end. Çıktısı; 1nci dairenin yarıçapını gir:2 , 1nci dairenin alanı: , 2nci dairenin yarıçapını gir:3, 2nci dairenin alanı: , 3nci dairenin yarıçapını gir: _.

90 Verilen bir x sayısının y. Kuvvetini bulan programı yazınız.
Uses crt; Var x,y,i:integer; f:real; Begin Clrscr; f:=1;i.=1 write('Ussu alınacak sayı:');readln(x); Write('Kuvvet');readln(y); while(i<=y) do i:=i+1; f:=f*x; End; writeln (f:10:3); Readln; End.

91 Klavyeden girilen 3 sayının ortalamasını while do döngüsü ile bulan program
sayiort(input,output); var a,i,top:integer; ort:real; begin writeln('Girilen 3 sayının ortalamasını hesaplar.'); writeln; i:=0; while (i<3) do i:=i+1; write(i,'.sayıyı gir:');readln(a); top:=top+a; end; ort:=top/3; writeln('ortalama:',ort:10:3); readln end. Çıktısı; Girilen 3 sayının ortalamasını hesaplar. 1.sayıyı gir:9 2.sayıyı gir:14 3.sayıyı gir:23 ortalama:

92 PROBLEMLER Klavyeden girilen password doğru ise, dairenin yarıçap değerinin girişine izin vererek çevresini hesaplayan programı yazınız. 3 hatalı girişte program sonlansın. 1 ‘den 99 ‘a kadar tek sayıların ortalamasını bulan program.

93 Continue, break Döngü içerisinde continue komutu işlem görürse, döngü bir sonraki çevrime başlar. Yani continue komutundan sonraki satırlar işlemez. Döngü içerisinde break komutu işlem görürse döngü sonlandırılır. Döngü kırılmış olur. Örneğin 1 ‘den 10 ‘a kadar sayıları yazdıralım. Fakat 5 ‘i yazdırmayalım. program yaz1(input,output); var i :integer; begin for i:=1 to 10 do if i=5 then continue; write(i); end; end. Çıktısı,

94 Yukarıdaki programda break komutunu kullanırsak,
program yaz2(input,output); var i :integer; begin for i:=1 to 10 do if i=5 then break; write(i); end; end. PROBLEMLER 1. Klavyeden girilen sayıların toplamını bulan program, -1 girildiğinde sonucu ekrana yazsın. 2. Klavyeden girilen pozitif sayıların ortalamasını ve sayısını bulan program, negatif girildiğinde tekrar giriş istesin, 0 girildiğinde sonucu versin.

95 -----------------------------------------
Ekran Komutları: CLRSCR: Ekranın temizlenmesi için kullanılır. Eğer programda window tanımlanmışsa windowun içini tmizler.clrscr; GOTOXY: İşlemin yapılması istenilen koordinatları belirtmek için kullanılır. GotoXY (Sütun,Satır); Matematiksel Fonksiyonlar: Exp(x) Ln(x) Sin(x) Cos(x) - Arctan(x) pi Sqr(x) Sqrt(x) Mutlak değer Abs Mod Yuvarlama Round Rasgele sayı Random(x+1)

96 CLREOL: Kursörün bulunduğu noktadan satır sonuna kadar olan kısımı silmek için kullanılır.ClrEOL;WHEREX: Kursörün bulunduğu noktanın x cordinatını öğrenmek için kullanılır.x:=WhereX 'x daha önce tanımlanmış integer bir değişkendir.WHEREY: Kursörün bulunduğu noktanın y cordinatını öğrenmek için kullanılır.y:=WhereY 'y daha önce tanımlanmış integer bir değişkendir.

97 Renk Komutları: TEXTCOLOR: Ekrana yazılan yazının rengini belirtmek için kullanılır.TextColor (Renk); 'Renk 0-16 arasındabir tamsayı olamalıdır. TEXTBACKGROUND: Ekrana yazılan yazının zemin rengini belirlemek için kullanılır.TextBackGround(Renk); 'Renk 0-16 arasındabir tamsayı olamalıdır.Renk Değer: Renk:0Siyah,1Mavi,2Yeşil,3Turquaz,4Kırmızı,5Pembe,6Kahverengi,7Parlak Gri,8Koyu Gri,9Açık Mavi,10AçıkYeşil,11Açık Turquaz,12Açık Kırmızı,13Açık Pembe,14Sarı,15Beyaz. Ses Komutları SOUND: Speakerdan verilen frekansta ses çıkratmak için kullanılır.Sound(frekans); 'frekans herhengi bir sayı değeridir. NOSOUND: Sound komutu ile oluşturulan ses devamlı olarak çalar. Çalmayı durudurmak için NoSound komutu kullanılır.NoSound;

98 Diğer Komutlar: READKEY: Basılan tuş değerini okumak için kullanılır.Bu komut ile char veri tipinde bir değer elde edilir.tus:=ReadKey; 'tus değişkeni daha önce tanımmlanmış olmalıdır.KEYPRESSED: Bir tuşa basılıp basılmadığını algılamak için kullanılır. Sonuç bir bolean değişkendir.if KeyPressed then....DELAY: Programın akışını belirtilen süre kadar durdurmak için kullanılır.Delay(Süre); 'Sure milisaniye cinsinden bir değerdir.TextMode: TEXTMODE: Ekranın satır ve sütün sayısını ayarlamak için kullanılır.TextMode(Mod);TextMode Modları: Değer: Mod: BW40 veya 040 X 25 B / W on CGACO40 veya 140 X 25 Color on CGABW80 veya280 X 25 B / W on CGACO80 veya 380 X 25 Color on CGAMono veya 780 X 25B / W on MDA or HGCFont 8x8 veya / 50 -line mode EGA / VGA

99 Klavyeden girilen ismi alt alta birerli atlayarak yazan program
Klavyeden girilen ismi alt alta birerli atlayarak yazan program. uses crt; var isim:string; i:integer; begin clrscr; gotoxy(30,1); Textbackground(9);Textcolor(3); write(‘isminizi_giriniz:’);readln(isim); for i:=1 to 15 do begin gotoxy(i,i); writeln(isim); end; readln; end.

100 Ekranın iki yanına ismi alt alta 5 kere yazan program
Ekranın iki yanına ismi alt alta 5 kere yazan program. uses crt; var isim:string; i:integer; begin clrscr; writeln(‘isminizi_giriniz:’);readln(isim); for i:=1 to 5 do begin gotoxy(1,i); writeln(‘isim’); gotoxy(70,i); writeln(‘isim’); end; readln; end.

101 İsmi ekrana 3 blok halinde ortalı yazan program
İsmi ekrana 3 blok halinde ortalı yazan program. uses crt; var x,y:integer; begin clrscr; for x:=1 to 3 do for y:=1 to 10 do begin gotoxy(30*x-25,2*y); writeln(’sonnur’); end; readln; end. Saat programı uses crt; var saat,dakika,saniye,salise:integer; begin clrscr; writeln(‘ ′); saat:=15; for dakika:=58 to 59 do for saniye:=0 to 59 do for salise:=0 to 59 do begin gotoxy(5,10); delay(10); writeln(saat,’:',dakika,’:',saniye,’:',salise,’:'); end; readln; end.

102 İsmi ekranda sekiz bloklu yazan program.
uses crt; var x,y:integer; begin clrscr; for x:=1 to 8 do for y:=1 to 10 do begin gotoxy (9*x-3,2*y); writeln(’sonnur’); end; readln; end İsmi ekranda yarısında yazmaya başlayan program. uses crt; var x,y:integer; begin clrscr; for x:=1 to 3 do for y:=1 to 5 do begin gotoxy(30*x-25,2*y+14); writeln(‘sonnur’); end; readln; end.

103 DİZİLER Aynı tipli elamanları küme haline getirerek bir dizide toplayabiliriz. Bellekte dizinin elemanları arka arkaya sıralanır. Kümenin her elamanı için başka bir değişken tanımlamamız gerekmeyecektir. Tek Boyutlu Diziler Aynı veri tipinde, fakat herbiri birbirinden bağımsız elemanları tek boyutlu dizide saklayabiliriz. Kullanımı, var dizi_değişkeni: array[ilk_indis..son_indis] of elemanların_tipi; Type olarak tanımlamak istersek, type dizi_ismi= array[ilk_indis..son_indis] of elemanların_tipi; dizi_değişkeni:dizi_ismi; Örnekler, a: array[1..50] of integer; (x1,x2,x3,…,x50) b: array[1..50] of string[30]; Type olarak tanımlarsak, type okul= array[1..100] of real; sinif1, sinif2:okul;

104 ÖRNEKLER Klavyeden girilen 10 sayıyı bir diziye atarak daha sonra otalamasını bulalım, program dizi1(input, output); var sayilar: array[1..10] of integer; toplam, i: integer; ort: real; begin for i:=1 to 10 do readln(sayilar[i]); toplam:=toplam+sayilar[i]; ort:=toplam/10; writeln(ort);readln; end. Klavyeden girilen 10 sayının en büyüğünü bulan programı dizi kullanarak çözelim, program dizi2(input, output); enbuyuk, i: integer; enbuyuk:=sayi[1]; for i:=2 to 10 do if enbuyuk<sayilar[i] then enbuyuk:=sayilar[i]; writeln(enbuyuk); readln;

105 Çok Boyutlu Diziler Dizinin bütün elamanlarının birbirleriyle olan benzerliklerinin yanında, bazı elemanlar dizinin elemanlarına bağımlı olabilir. Örneğin bir 10 ürünü içeren listede, o ürününlerin fiyatları ve indirimli fiyatları tutulacaksa, burada iki boyutlu dizi kullanabiliriz. Ürünlerin isimlerinide başka bir dizide tutabiliriz. var tutarlar: aray[1..10, 1..2] of real; şeklinde tanımlanır. Program içinde, tutarlar [1,1] 1. ürünün fiyatı, tutarlar [1,2] 1. ürünün indirimli fiyatı, tutarlar [2,1] 2. ürünün fiyatı, tutarlar [2,2] 2. ürünün indirimli fiyatı, . tutarlar [10,1] 10.ürünün fiyatı, tutarlar [10,2] 10.ürünün indirimli fiyatı,

106 program enfazla_indirim; var tutarlar: array[1..3, 1..2] of real;
ÖRNEK 3 ürün için ürünlerin isimlerini ve fiyatlarını klavyeden alarak, daha sonra en fazla indirim yapılan ürünü bularak ekrana basan programı yazalım, program enfazla_indirim; var tutarlar: array[1..3, 1..2] of real; urun: array[1..3] of string[15]; i,j :integer; enfazla: string[15]; yuzde, encokind: real; begin encokind:=0; for i:=1 to 3 do Writeln(i,‘. Ürünün adını giriniz:’) readln(urun[i]); for j:= 1 to 2 do Textcolor(5);gotoxy(5,j+2);Write(‘Ürünün’); Textcolor(3);gotoxy(13,j+2);Write(j); Textcolor(5);gotoxy(15,j+2);Write(‘. Fiatını giriniz:’); readln(tutarlar[i,j]); End; end; yuzde:=(tutarlar[i,1]-tutarlar[i,2])*100/tutarlar[i,1]; if encokind<yuzde then encokind:=yuzde; enfazla:=urun[i]; writeln('En fazla indirim yapılan ürün:', enfazla); writeln('indirim yüzdesi:',encokind); Readln; end.

107 uses crt; var x:array[1..100] of real; n,s:shortint; son, tx, txk, tbx: real; begin clrscr; tx:=0;txk:=0;tbx:=0;s:=0; write('N değerini giriniz'); readln(n); for s:=0 to n do Begin Write(s,'. X değerini giriniz =');Readln(x[s]); tx:=tx+x[s]; txk:=tXk+sqr(x[s]); tbx:=tbx+1/x[s]; end; son :=(txk-tx)*tbx/txk; writeln('İşlemin sonucu =',son:8:2); repeat until keypressed; end.

108 Matematik Bölümü 1.sınıf öğrencilerinin Analiz II dersi arasınavı ve final
sınavı notları klavyeden girilerek sınav sonuç çizelgesi oluşturulacaktır. Öğrencinin vize ve final notları sırasıyla klavyeden girilecektir. Klavyeden girilen notlar aralığında olması sağlanmalıdır, bu koşul sağlanmıyor ise ilgili not klavyeden tekrar girilmelidir. Notların istenilen aralıkta olmasının sağlanması program tarafından otomatik olarak yapılmalıdır. Geçme notu olarak Ortalama >=60 ve Min(Final)=50 olarak dikkate alınacaktır. Programın çıktısı şu şekilde olacaktır; Öğr. No Vize Final Ortalama DURUMU BASARILI BASARISIZ

109 program vize_final_ortalamasi;
uses crt; Type Notlar=array[1..50,1..50] of byte; dersort=array[1..50] of real; ders=array[1..50] of integer; var osay,dsay,tsay,i,j:byte; ogrort,ogtop:dersort; ort:ders; a:Notlar; cl:string[5]; kl:string; begin clrscr; Write('Dersi Alan Öğrenci sayısını giriniz...=');Readln(osay); for i:=1 to osay do begin for j:=1 to 2 do if i<10 then kl:=' ' else kl:=' '; repeat if j=1 then cl:='Vize ' else cl:='Final'; write(kl,i,' numaralı öğrencinin ',cl,' Notunu giriniz = '); Readln(a[i,j]); until (a[i,j]>0) and (a[i,j]<100) end; ogrort[i]:=round(a[i,1]*0.40+a[i,2]*0.60); ort[i]:=trunc(ogrort[i]/1); writeln; writeln('™§r. No Vize Final Ortalama DURUMU'); writeln(' '); if i<10 then kl:=' ' else kl:='942000'; if (ort[i]>=50) and (a[i,2]>=50.0) then writeln(kl,i,' ',A[i,1]:3,' ',A[i,2]:3,' ',ogrort[i]:6:2,' BAŞARILI'); end else writeln(kl,i,' ',A[i,1]:3,' ',A[i,2]:3,' ',ogrort[i]:6:2,' BAŞARISIZ'); Repeat until keypressed; End.

110 PROBLEMLER 1. Girilen 10 sayının en büyüğünü bularak ekrana basan program. 2. Aşağıdaki ürünler ve fiyatları klavyeden girilmektedir. Fiyatı en düşük ürünü bularak ekrana basan programı yazınız. Ürün Kodu Fiyatı(Xmilyon TL) 3. Aşağıdaki 2 matrisin toplamı olan c matrisini bulan programı yazınız. (İki matrisin toplamı her iki matristeki aynı indis numaralı elemanların toplamlarında oluşan matristir.) 4. Klavyeden 50 öğrencinin isim ve bir dersten aldıkları 3 not bilgisi girilmektedir. Bu öğrencilerin not ortalamalarını bularak, en yüksek ortalamalı oğrenciyi bulan programı yazınız.

111 uses crt ;begin write('ADINIZ:') ;readln; write('SOYADINIZ:') ;readln; write('ANNE ADI:') ;readln; write('BABA ADI:') ;write(") ;readln;                     write('kimlik bilgileri:'); gotoxy(12,10);textcolor(yellow);                     ;readln;                     write('dogdugu yer:')                     ;readln;                     write('MERSIN')                     ;readln;                     write('kimlik numarasi:')                     ;readln;                     write(' ')                     ;readln;                     write('Copyright Hüseyin')                     ;readln; ;begin gotoxy(12,10);textcolor(red); readln; end; end. end.

112 Tabanı ve üssü girilen üslü sayıyı hesaplar.
uses crt; var   sayi,sayi1:longint; function us(x,y:integer):longint;   i:integer;   j:longint; begin   j:=1;   for i:=1 to y do j:=j*x;   us:=j; end; Begin   Writeln('Tabani giriniz'); readln(sayi);   writeln('Ussu giriniz'); readln(sayi1);   write('Sonuc: ',us(sayi,sayi1));   readln; End.

113 Girilen sayının faktoriyelini bulan program.
uses crt; var   sayi:integer; function fak(x:integer):real;    i:integer;    s:real; begin   s:=1;   for i:=1 to x do s:=s*i;   fak:=s; end; Begin   clrscr;   writeln('Faktoriyeli alinacaak sayiyi giriniz');   Readln(sayi);Writeln('Sayinin faktoryeli: ',fak(sayi):10:2);   readln; End.

114 Sabit bir metni ekranda kaydıran Pascal programı.
uses crt; var  i,j,k,n:integer;  a,c:string; Begin  clrscr;  repeat    randomize;    n:=random(16);    c:='SAKLA SAMANI CURUSUN';    clrscr;    gotoxy(30,12);write(c);delay(290);    for j:=1 to 20 do    for i:=1 to 20 do    begin      c[i]:=c[i+1];      delay(5);      textcolor(n);      gotoxy(30,12);      write(c);      gotoxy(74,24);      write('Renk ',n);    end;  until keypressed;  readln; end.

115 üçgen oluşturuyorsa bu üçgenin çeşidini ekrana yazar.
Aşağıdaki program, girilen üç kenarın bir üçgen oluşturup oluşturmayacağını, kenarlar üçgen oluşturuyorsa bu üçgenin çeşidini ekrana yazar. uses crt; var  k1, k2, k3: integer; begin  clrscr;  writeln('Üç kenar giriniz');  readln(k1, k2, k3);  if (k1 <> k2 - k3)    and (k2 <> k1 - k3)    and (k3 <> k1 - k2) then  begin    writeln('Üçgen olur');    if (k1 = k2) and (k2 = k3) and (k1 = k3) then      writeln('Eşkenar Üçgen ');    if (k1 = k2) or (k1 = k3) or (k2 = k3) then      writeln('İkizkenar Üçgen ');    if (k1 <> k2) and (k1 <> k3) and (k2 <> k3) then    begin      writeln('Çeşitkenar Üçgen ');      if (sqr(k1) = sqr(k2) + sqr(k3)) or (sqr(k2) = sqr(k1) + sqr(k3)) or (sqr(k3) = sqr(k2) + sqr(k1)) then        writeln('çeşitkenar dik üçgen');    end;  end  else    writeln('Üçgen olmaz');  readln; end.

116 7-Döngü Komutları Döngüler programın akışı sırasında tekrarlanması gereken işlemler için kullanılır. Tekrarlama işlemi için bir koşul seçilir ve bu koşul sağlanıncaya kadar tekrarlama işlemi sürer. İç içe birden fazla döngü komutu kullanılabilir. A) FOR - DO: FOR koşul:=başlangıç değeri TO/DOWNTO bitiş değeri DO Begin komutlar End; FOR döngüsünde koşul, başlangıç değeri ve bitiş değeri değişken olabileceği gibi sabit de olabilir. Eğer döngü azalarak işlem yapacaksa DOWNTO, artarak işlem yapacaksa TO ifadesi kullanılmalıdır. Ayrıca, döngü başa döndükçe koşul ifadesi birer birer arttırılacak/azaltılacaktır. Döngü içinde birden fazla komut kullanılacaksa komutlar Begin – End bloğu içine yazılır. DO ifadesinden sonra noktalı virgül kullanılmaz. Eğer noktalı virgül kullanırsanız derleyiciniz bir hata vermez ancak döngünüz hiç işlem yapmaz. Birkaç örnek verelim:

117 FOR i:=0 TO 10 DO i:=i+1; { Döngü, 0 dan 10‘a kadar olan sayıları topluyor } t:=1; FOR k:=5 DOWNTO 1 DO t:=k*t; { k değişkeni birer birer azalıp 5! değerini buluyor } k:=100; FOR i:=1 TO 5 DO Begin t:=t+1; k:=k-15; End; { i değeri 1 den 5’e kadar artıyor ve her seferinde } { t değeri 1 artıyor, k değeri 15 azalıyor }

118 FOR i:=0 TO 1000 DO; i:=i+1; { DO ifadesinden sonra noktalı virgül kullanıldığı } { için i değeri 1000 oluncaya kadar döngü 1000 kez } { dönüyor sonra i değerini 1 artıyor ve sonuç } { 1001 oluyor. Aksi halde i değeri 1’den 1000’e } { kadar olan sayıların toplamı olacaktı. } t:=1; FOR i:=0 TO 11 DO Begin t:=i+t; i:=i+5; End; { Bu döngü iki kez dönüyor. İlkinde i değeri sıfır ve } { t değeri 1 olarak işlem yapılıyor, son satırda i } { değeri 5 attırılıyor ancak döngü başa döndüğünde } { i değeri otomatik olarak 1 arttırılıyor ve böylece } { i değeri 6 olarak işlemler yapılıyor. Son satırda i } { değeri 5 attırılıyor ve 11 oluyor. Döngü başa } { döndüğünde i değeri 1 daha attırılıyor ve 12 } { oluyor. Bitiş değeri 11 olduğu için döngü } { işlemini bitirmiş oluyor. }

119 B) REPEAT – UNTIL Döngü, Until ifadesindeki koşul sağlanıncaya kadar tekrarlanacaktır. Repeat- Until bloğu içine birden fazla komut yazılabilir ve Begin-End bloğunu kullanmaya gerek yoktur. For-Do döngüsünden farkı, koşulun artış veya azalış miktarını belirtebilmemizi sağlar. Döngü başa döndükçe koşul değerini otomatik olarak değiştirmez. Örnek verelim; Repeat Komutlar Until koşul; i:=0; t:=0; Repeat i:=i+2; { artış miktarını biz belirtiyoruz } t:=t+i; Until i=100; { 0’dan 100’e kadar olan çift sayıların toplamı } i:=1; k:=1; i:=i*k; k:=1+k; i:=i+1; Until i=5; { 5! değerini bulan döngü }

120 Karşılaştırma Komutları
Program akışında, belirli şartlara göre, farklı işlemler yapabilmek için kullanılır. Yani, hangi durumda hangi işlemlerin gerçekleştirileceğini belirleyebilmemizi sağlayan komutlardır. A) IF - THEN - ELSE: IF koşul1,koşul2.... THEN komutlar [ ELSE komutlar ] Program akışının IF ile THEN arasındaki koşula göre yönlendirilmesini sağlar. Eğer bu koşul sağlanırsa THEN ‘den sonraki kısım işlenir. Aksi halde THEN ‘den sonraki kısım atlanıp ELSE ‘den sonraki bölüm işlenir. Ancak ELSE bloğunu kullanmak zorunda değilsiniz. Daha doğrusu, denetlenen her koşul için ELSE bloğu gerekmeyebilir. IF sayac=0 THEN sayac:=sayac+1; { Eğer sayac değişkeninin değeri sıfırsa bu değişkenin değerini bir attır }

121 IF - THEN – ELSE kullanırken dikkat etmeniz gereken birkaç nokta var
IF - THEN – ELSE kullanırken dikkat etmeniz gereken birkaç nokta var. İlki, eğer THEN ‘den sonra birden fazla komut kullanacaksanız bu komutları Begin – End bloğu içinde kullanmalısınız. Aksi halde sadece THEN ‘den sonra gelen ilk komut koşulla birlikte işlenecek, diğer komutlar koşula bağlı olmayacaktır. Aşağıdaki iki örnekteki kodlar aynı olmasına rağmen aynı işi yapmıyor. İlk örnekte, eğer koşul sağlanırsa (sayac değeri sıfıra eşitse) sayac değeri bir attırılıyor ve sira değeri sıfıra eşitleniyor. İkinci örnekte, eğer koşul sağlanırsa sayac değeri bir attırılıyor. Koşul sağlansa da sağlanmasa da sira değeri sıfıra eşitleniyor. IF sayac=0 THEN Begin sayac:=sayac+1; sira:=0; end;

122 end { Noktalı virgül kullanmadık } ELSE Sayac:=1; Sira:=1; End;
kincisi, eğer ELSE bloğunu da kullanacaksanız THEN ile ELSE arasında kalan son komuttan sonra (bu komuta End de dahildir) noktalı virgül işareti koymamanız gerekli. IF sayac=0 THEN Begin sayac:=sayac+1; sira:=0; end { Noktalı virgül kullanmadık } ELSE Sayac:=1; Sira:=1; End; IF sayac=0 THEN sayac:=sayac+1 { buraya dikkat } ELSE sayac:=1;

123 IF (sayac=0) AND (sira=0) THEN
Koşul olarak tek değişken kullanılacağı gibi birden fazla değişken de kullanılabilir. Denetlenecek değişkenler mantıksal operatörler (and,or,…) yardımıyla sıralanır. IF (sayac=0) AND (sira=0) THEN Begin  sayac:=sayac+1;  sira:=sira+1; end; { sayac ve sira değişkenlerinin değeri sıfıra  eşitse sayac değişkeninin değerini ve sira değişkeninin değerini bir attır. } Birkaç örnek verelim;

124 { Aynı değişken için birden fazla IF kullanabilirsiniz }
IF sayi0 THEN tanim:=’Pozitif Sayı’; { İç içe birden fazla IF kullanabilirsiniz } IF sayi<0 THEN tanim:=’Negatif Sayı’ ELSE   IF sayi=0 THEN tanim:=’Sıfır’;   ELSE tanim:= ’Pozitif Sayı’; { Koşul denetlemesinde birden fazla değişken kullanabilirsiniz } { Bu değişkenleri farklı mantıksal operatörlerle bağlayabilirsiniz } IF (A<B OR A=B) AND (sayi=1) THEN ………………

125 Pascal Hata Mesajları H.Kodu Mesaj Açıklama 1 Invalid function number
Geçersiz fonksiyon numarası. Mevcut olmayan DOS fonksiyonu çağırılıyor. 2 File not found Reset, Append, Rename veya Erase komutlarıyla belirlenen dosya bulunamıyor. 3 Path not found Reset, Append, Rewrite, Rename, Erase, Chdir, Mkdir veya Rmdir komutlarıyla belirtilen path bulunamıyor. 4 Too many open file Aynı anda açılan dosya sayısı çok fazla. 5 File access error Reset, Append, Rewrite, Rename, Erase, Rmdir komutları kullanıldığında ortaya çıkar. Read Only bir dosya silinmeye çalışılıyor. Directory dolu İsim değiştirilirken var olan bir dosya ismi kullanılıyor Var olan bir directory açılmaya çalışılıyor. İçi boş olmayan veya var olmayan bir directory silinmeye çalışılıyor. 6 Invalid file handle Geçersiz bir dosya isteği DOS sistemine iletilmiş. 12 Invalid file access code Geçersiz dosya erişim kodu. Reset veya Append komutlarında geçersiz dosya modu değeri kullanılmış 15 Invalid drive number Getdir komutu ile geçersiz bir sürücü numarası kullanılmamış 16 Cannot remove current directory Rmdir komutu ile aktif directory silinmeye çalışılıyor. 17 Cannot rename accross drivers Rename komutu ile aynı 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ıt okunmaya çalışılıyor. 101 Disk write Error Close, write, writeln komutları ile dolu 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 üzerinde işlem yapılıyor. 104 File not open for input Text dosyası giriş için açık değil. Bu hata, Read, Readln, Eof, Eoln, SeekEof ve SeekEoln komutlarının açık olmayan dosyaya kullanılması esnasında çıkar.

126 105 File not open for output Text dosyası çıkış için açık değil. Bu durumdaki dosyaya write ya da writeln komutlarının kullanımı sırasında ortaya çıkan hatadır. 106 Invalid numeric format Text dosyasından read veya readln komutu ile sayısal bir veri okunurken uygun olmayan bir sayısal değer ile karşılaşıldı. 150 Disk is write protect Disket yazmaya karşı korumalı 151 Unkown unit Tanımsız ünite. 152 Drive not ready Disket sürücüye takılmamış veya sürücü kolu kapalı.açık olmayan dosyaya kullanılması esnasında çıkar. 154 CRC error in data Diskete kaydedilmemiş datada hata var. Disket yüzeyinde fiziksel hata olabilir. 156 Disk seek error Disketten data okunurken hataya rastlandı. 157 Unkown media type Disket DOS tarafından tanınmıyor. 158 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 hard disk’e kayıt yapılamıyor. 161 Device read fault Hardware hatası nedeniyle disket veya hard diskten data okunamıyor. 162 Hardware failure I/O port’unda arıza tespit edildi. 200 Division by zero /, div veya mod operatörleriyle yapılan bölme işleminde sayının sıfıra bölümü oluşmakta. 201 Range check error {$R+} compiler bildirisi kullanıldığında bir değişkene sınırları dışında veri girilmekte veya bir dizi değişkenin boyutları sınır dışına kalıyor. 205 Floating point overflow Tanımlanmış bir real değişkene sınırları dışında atanmaya çalışılıyor.


"Ders İçeriği: Kitaplar:" indir ppt

Benzer bir sunumlar


Google Reklamları