Pascala yeni başlayanlar için Temel Giriş düzeyinde bilgiler

Başlatan kadem83, 16 Nisan 2009 - 17:27:38

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

kadem83

Turbo Pascal
Turbo Pascal Nedir: Pascal, Basic ve C gibi yüksek seviyeli programlama dilleri ailesindendir. Pascal'ın geliştirilmesi ve daha kullanışlı bir hale getirilmesi sonucunda Turbo Pascal ortaya çıkmıştır. Turbo Pascal dili okullarada en çok öğretilen ve programlamayı öğrenmeye başlamak için en çok tercih edilen dildir. Turbo Pascal dilinin bu kadar çok kullanılmasının en büyük nedeni kolay ve cabuk anlaşılabilir bir dil olmasıdır.
Neler Yapılabilir: Turbo Pascal ile yapa bileceğiniz şeyler sadece sizin hayal gücünüzle sınırlıdır. Gelişmiş ticari programlardan, kaliteli oyunlara kadar her şey yapılabilir. Tabi hayalgücünüzü çok fazla zorlamaya kalkarsanız daha temel ve daha hızlı bir dile ihtiyaç duymanız olağan  ) Neyse... eğer şimdillik bir işletim sistemi yazmayı düşünmüyorsanız Turbo Pascal size yeter.
Turbo Pascal'da Komut Yapısı : Turbo Pascal programları bloklardan oluşur. Kullanılacak olan komutlar görevlerine göre gerekli blokların içinde yeralırlar.
Blokları anlayabilmek için basit bir pascal programına göz atalım.
Uses crt;
var
x:string[24];

begin
x:='http://forum.ubuntu-tr.net';
clrscr;
write(x);
end.


Yukarıdaki örnekte görüldüğü gibi öncelikle Uses bloğunda programda kullanacağımız yardımcı programı çağırrıyoruz. Daha  sonra Var bloklarını kullanarak değişkenlerimiz varsa onları tanımlıyoruz. Ve Begin .... End. bloğuna programımızı yazıyoruz. Turbo Pascal'da bunların dışında Const, Type,Procedure,Function ve Label gibi bir kaç blog daha kullanılmaktadır. İlerki derslerimizde bunları detaylı olarak göreceğiz
Turbo Pascal Dilinin Özellikleri (Önemli):
•   Kullanılacak değişkenler ve değişkenlerin tipleri önceden tanımlanmak zorunludur.
•   Komut ve değişkenlerde büyük küçük harf ayrımı yoktur.
•   İfadelerin sonuna mutlaka ";" noktalı virgül eklenmelidir.
•   Alt programlar ana programdan önce tanımlanmalıdır.
*Derslerimizde yazacağımız örneklerde hata yapmamak için bu özelliklere mutlaka gözatın.
Değişkenler Ve Değişken Tipleri
Turbo Pascal dilinde kulanılacak olan değişkenlerin ve budeğişkenlerin tiplerinin önceden tanımlanması zorunluluğu vardır. Bu nedenle değişken mantığının ve değişken tiplerinin iyi anlaşılması büyük önem taşır.
Değişken: Değişken, adındanda anlaşılabileceği ğibi  programcı tarafından tanımlanan ve  istenildiğinde değeri değiştirilebilen nesneleridir. Örneğin, programcı "isim" adına bir değişken tanımlayıp program içerisinde bu değişkene "Ahmet", "Mehmet" gibi istediği herhangi bir değerlri atayabilir. Ve ihtiyaç olduğunda bu değeri değiştirebir.
Turbo Pascal'da değişkenler begin ... end  bloğundan önce var bloğu içerisinde tanımlanırlar. Değişken tanımlama aşağıdaki şekilde yapılır.
var
isim:integer;
begin
......
end.
Değişken Tipleri: Daha öncede söylediğimiz gibi Turbo Pascal dilinde program yazılırken kullanılacak değişkenler ve tipleri daha öncaden tanımlanmalıdır. Aslında bu işlem bir çoğunuz formalite icabı ve gereksiz olduğunu düşünebilir. Ama bu özellik aslında çok önemlidir. Değişkenin tipinin belirtilmesi ile bilgisayarın okuyacağı değişken için en uygun alanı ayırarak gereksiz bellek kulanımı engellemesi sağlanır. Ayrıca değişken tibi belirtilmesi sayasinde girilen değişkenin sayısal bir değermi yosa bir yazımı olduğu bilgisayar tarafından anlaşılmış olur.
Tamsayı Değişken Tipleri: Tamsayı değişkenleri genellikle matematiksel işlem yapmak için kullanılan değişken tipleridir. Yalnızca tam sayı değeri kabul eder girilen değer reel sayı yada alfanumerik karekter olamaz.
Degişken Tipi   Değer Aralığı   Kapladığı Byte
ShortInt   -128   127   1 Byte
Byte   0   255   1 Byte
İnteger   -32768      32767   2 Byte
Word   0   65535   2 Byte
LongInt   -2147483648   2147483647   4 Byte
Reel Saayı Değişken Tipleri: Genellikle küsüratlı değerleri tanımlamak için kullanılır. Tam sayı değeride girile bilir fakat girilen değer alfanumerik olamaz.
Degişken Tipi   Değer Aralığı   Kapladığı Byte
Real   2.9 x 10 -39   1.7 x 10 38   6 Byte
Single   1.5 x 10 -45   3.4 x 10 38   4 Byte
Double   5.0 x 10 -324   1.7 x 10 308   8 Byte
Extended   3.4 x 10 -4932   1.1 x 10 4932   10 Byte
Comp   -2 63 + 1+....2 63 -1   8 Byte
String Değişken Tipi: String değişken tibi alfnumerik değişkenler tanımlamak için kullanılır. Yani string değişkenlere girilen değer bilgisayar tarafından yazı olarak algılanır ve üxerinde matematiksel işlem yapılamaz.
String[n] şeklinde tanımlanır ve n karekterlik bilgi alır, n+1 Byte'lık yer kaplar. Uzunluk belirtilmeden yalnızca string şeklinde tanımlanırsa 256 byte'lık yerkaplar ve 255 karektere kadar değişken girilebilir.
Degişken Tipi   Değer Aralığı   Kapladığı Byte
String   Maxsimum  255 karakter   n+1 Byte
Char Değişken Tipi: Yalnızca bir karakterden oluşan değişkenleri tanımlamak için kullanılır. Üzerinde matematiksel işlem yapılamaz.
Degişken Tipi   Değer Aralığı   Kapladığı Byte
Char   1 karakter   1 Byte
Bolean Değişken Tipi: Yalnızca True(doğru), False(Yanlış) değerleri kullanılmak istenen değişkenleri tanımlamak için kullanılır.
Degişken Tipi   Değer Aralığı   Kapladığı Byte
Bolean   True - False  yada 1 - 0   1 Byte

Mantıksal ve Matematiksel İşlemler
Karşılaştırmalar : Karşılaştırma işlemleri genellikle koşul vermek için kullanılır. Değerler koşula uygunsa sonuç "true", değilse "false" dir.
Operatör   Adı   Anlamı
=   Eşit   Sol ve sağdaki değerler biribirlerine eşitse
<>   Eşitdeğil   Sol ve sağdaki değerler birbirlerine eşitdeğilse
<   Küçük   Soldaki değer sağdaki değerden küçüse
>   Büyük   Soldaki değer sağdaki değerden büyükse
<=   Küçük yada eşit   Soldaki değer sağdaki değere eşit yada küçükse
>=   Büyük yada eşit   Soldaki değer sağdaki değere eşit yada büyükse
Mantıksal İşlemler : Mantıksal işlemler genelde birden fazla karşılaştırma işlemi arasında bağ kurmak içim kullanılır. Örneğin iki koşul arasında "Or" operatörü kullanıldığında sağdaki yada soldaki koşullardan herhangi birinin sonucu "true" (doğru) ise mantıksal işlemin sonucunda "true" dir.
Operatör   Adı   Anlamı
And   Ve    Sol ve sağdaki koşulların her ikiside doğruysa
Or   Veya   Sol ve sağdaki koşullardan herhangi biri doğruysa
Not   Değil   Verilen koşul doğru ise
Xor   Veya Değil   Verieln koşullardan herhangi biri doğru değilse
Matematiksel İşlemler : Dört işlem (toplama, çıkartma, çarpma ve bölme) için kullanılan basit matematiksel ifadelerdir.

"+","-" ve "*" işelemlerinde işlem yapılan sayı cinsi reel ise sonuç ta reel 'dir. İşlemyapılan sayılar tamsayı ise sonuçta tammsayıdır. "/" işleminde ise sonuç herzaman reel sayıdır. 
Operatör   Adı   Anlamı
+   toplama   Sol ve sağdaki değerleri birbirine ekler.
-   çıkarma   Soldaki değerden sağdaki değerleri çıkarır.
*   çarpma   Sol ve sağdaki değerleri birbiri ile çarpar.
/   bölme(Reel)   Soldaki değeri sağdaki değere böler.
Div   bölme(Tamsayı)   Soldaki değeri sağdaki değere böler.
mod   kalan   Soldaki değerin soldaki değere bölünmesinden kalan
Mod ve Div işlemlerinin sonuçları herzaman  tamsayıdır.
4 div 12 = 0,    13 div 4 = 3       3 mod 2 = 3,   4 mod 2 = 0   
12 div 4 = 3,    16 div 4 = 4       5 mod 2 = 1,   4 mod 0 = (tanımsız) 

WriteVe Read Komutları
Write: Write komutu ekrana herhangi şey yazdırmak için kullanılır. Ve kullanımı write('metin') şeklindedir. Ayrıca write komutu ile ekrana write(değişken) şeklinde bir değişkenin değeride yazdırılabilir. Burada dikkat edilmesi gereken nokta, metinin tekli tırnak ' ' içerisinde, değişkenin ise direk yazılıyor olmasıdır.
Örnek:

const
site = 'http://forum.ubuntu-tr.net';

begin
write('Türkiyenin bilgi paylaşım merkezi');
write(site);
end.


Bu program ekrana; "Türkiyenin bilgi paylaşım merkezi http://forum.ubuntu-tr.net" şeklinde bir metin yazar.

Yukardaki örnekte bu yazıyı yazmak için iki write komutu kullandık. Bunun yerine tek write komutuda kullanabilirdik.
yani iki write komutu yerine, write('Türkiyenin teknoloji merkezi',site); Şeklindeki kullanımda ekrana aynı görüntüyü verecektir. Bu kullanım şekliyle biden fazal yazı ve değişken aynı anda ekrana yazdırılabilir.
WriteLn: WriteLn komutunun kulanımıda aynen write komutunun kullanımı gibidir. Aralarındaki terk farkvardır. Dikkat ettiyseniz birden fazla write komutu ile yazdırılan yazılar ekranda yan yana yazılmaktaydı. WriteLn komutu ile yazılan yazlılar ise alt alta yazılır.
Örneğin yukardaki ilk örnekte write yerine writeln komutunu kullansaydık ekranda;

Türkiyenin bilgi paylaşım merkezi
http://forum.ubuntu-tr.net
şeklinde bir metin görülecekti.
Sayısal Bilgilerin Formatlıyazılması: Write yada WriteLn komutlarıyla ekrana  "510.4542" gibi reel bir sayı yazdırılmak istendiğinde, ekranda 5.1045420000E+02 gibi karmaşık bir değer görülür. Bu değeri anlaşılır bir şekle dönüştürmek için bir yazım formatı belirtilmesi gerekir.
Örnek:
var
a:real;

begin
a:=510.4542;
write(a:6:2);
end.
Bu örnek ekrana "510.45" şeklinde bir sayı yazar. Buradaki 6 nokta dahil sayının karakter uzunluğu, 2 ise virgülden sonraki kısımın uzunluğudur
Eğer verilen karakter uzunluğu, sayının olması gereken karakter uzunluğundan küçükse, ekrana olması gereken uzunlukta sayı yazılır, yani verilen uzunluk dikkate alınmaz. Eğer girilen uzunluk olması gerkenden fazla olursa, sayının başına fazlalık kadar boşluk eklenir.
Bu format tam sayılar içinde kullanılabilir. Bu durumda kullanım şekli sayı:uzunluk şeklinde olur.
Örneğin; write(1:5); komutu ekrana dört nane boşluk koyduktan sonra 1 yazar "    1" .
Read: Read komutu daha önceden tanımlanmış bir değişkene program çalıştırıldıktan sonra dışarıdan değer girilmesi için kullanılır.
Örnek
var
x,:integer;

begin
read(x);
write('girdiğiniz say=',x);
end.
Bu örnek çaalıştırıldığında bilgisayar herhangi bir sayı girip "Enter" tuşuna basmanızı bekleyecektir. Sayı girilim "Enter" tuşuna basılınca girdiğiniz değeri ekrana yazcaktır.
ReadLn: ReadLn komutunun kullanımıda aynen read komutunun kullanımı gibidir. Aradaki terk fark. ReadLn komutuna değer girilip "Enter" tuşuna bastıktan sonra bir alt satıra geçer.
if - Then - Else  Ve  Case - Of
if....then Komutu: Belirtilen koşulun doğru olması durumunda belirtilen işlemin yapılmasını sağlamak için kullanınlır. Daha açık bir tabirle eğer verdiğim koşul gerçekleşirse şu işlemi yap manasında kullanılır.
if a>b then write('a, b den büyük'); bu komutla eğer a, b'den büyükse "a, b den büyük" metninin ekrana ekrana yazılmasını sağlamış oluyoruz.
Eğer  if koşulu sağlandığında yapacağımız işlem birden fazlaysa bu işlemleri görünüm güzelliği ve anlaşılırlık bakımında şu şekilde yaptıra biliriz.
Örnek:
begin
if a>b then
    begin
    write('a, b den büyük');
    a:=3;
   end;
end.
Bu örnekte a'nın b'den büyük olması durumunda a, b den büyük" metninin ekrana ekrana yazdırıyor ve a'ya "3" değerini veriyoruz.
Else Komutu: Else komutu, if...then kalıbından sonra kullanılır ve if koşulu gerçekleşmediği taktirde yapılması istenen işlemler varsa onları yaptırmak için kullanılır. 
Örnek:
begin
if a>b then write('a, b den büyük');
Else write ('b, a'dan büyük'');
end.
Bu örnekte a>b koşulu sağlanırsa ekrana "a, b'den büyük" yazdırıyoruz. Eğer koşulsağlanmazsa, ekranna "b, a'dan büyük" yazısını yazdırmışoluyoruz.
Case - Of: Case - Of  komutunun kulanım amacı if komutuyla hemen hmen aynıdır ve koşul belirtmek için kullanılır..Bir değişkenin değişik değerleri için birden fazla koşul konulmak istenildiğinde ayrı ayrı  if  komutları yazmak yerine kolaylık sağlamak için case - of  komutu kullanılır. Else komutu case - of  komutu ile birlikte kullanıldığında, case - of  komutu ile belirtilen koşulların hiç birinin gerçekleşmediği durumda yapılması istenilen komutların işlnmesi sağlanır.
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.
Döngüler
For - Do Döngüsü: For-Do döngüsü herhangi bir işlemi istenilen sayıda tekrarlamak yada bir değişkene belirtile değer aralığındaki değerleri sırayla vermek için kullanılır.
For I := 1 To 10 Do writeln(I);  Şeklindeki bir kulanım ile I değişkenine sırasıla 1'den 10'a kadar tamsayı değerler atanıp ekrana  yazdırılması sağlanılır.
For I := 1 DownTo 10 Do writeln(I); Şeklindeki bir kulanım ile I değişkenine sırasıla 10'den 1ea kadar tamsayı değerler atanıp ekrana  yazdırılması sağlanılır.
Döngü içerisinde yaptırılacak işlemler birden fazlaysa  begin.....end  kalıbı kullanılabilir.
Örnek:
begin
for I :=1 to 10 Do
   begin
   writeln"http://forum.ubuntu-tr.net";
   end ;
end.
Yukarıdaki örnekte for - do döngüsünü kullanarak ekrana; altalta 10 kez "http://forum.ubuntu-tr.net" yazdırmış oluyoruz.
While - Do döngüsü: While - Do döngüsü ile isteğe göre belirtilen şart sağlandığı sürece, döngü içerisinde  belirtilenlen işlemlerin tekrarlanması sağlanır.
While - do döngüsünün kulanım formatı for - do döngüsünün farmatıyla aynıdır.
Örnek:
var
a:integer;

begin
a:=0;
while a<10 do
    begin
    a:=a+1;
    write("http://forum.ubuntu-tr.net");
    end;
end.

Bu örnekte başlangıçta sıfır değeri verilen a değişkeninin değeri döngü içerisinde devamlı 1 arttırılıyor. a değişkeninin değeri 10 olduğunda program döngüden çıkıyor. Böylece bu örnek de ilk örnekte olduğu gibi ekrana altalta 10 kez "http://forum.ubuntu-tr.net" yazıyor.
Repeat - Until Döngüsü: Bu döngü şekli Pascal'a özgü bir döngü şeklidir. Repeat - Until döngüsünde belirtilen kuşul sağlanana kadar belirtilen komutların tekrarlanması sağlanılır.
Repeat - Until döngüsünde begin...end kalıbına gerek yoktur. Yapılacak işlem sayısı birden fazlada olsa repeat....until kalıbı içrisine yazılabilir.
Örnek;
var
a:integer;

begin
a:=0;
repeat
a:=a+1;
writeln("http://forum.ubuntu-tr.net");
until a=10;
end.
Bu örnek de ilk iki örnek gibi ekrana 10 kez altalta "http://forum.ubuntu-tr.net" yazılmasını sağlar.
Continue Komutu: Contınue komutu döngü içlerinde kullanılır. For - next döngüsü içrisinde kullanıldığında döngünün to yada downto ile kurulmuş olmasına bağlı olarak, döngü değişkenini 1 artırıp yada 1 azaltıp döngü içerisindeki işlemlerin tekrar yapılmasını sağlar. Repeat - until döngüsünde sonraki işlemleri atlayarak direk until komutuna gider. While - do döngüsünde ise while komutuna geri gidilmesini sağlar.
Break Komutu: Break komutu döngünün yarıda kesilerek döngüden çıkılmasını ve döngüden sonraki işlemlerin yapılamsını sağlamak amacı ile kullanılır.
Alt Programlar
Procedure: Procedure Turbo Pascal dilinde en çok kullanıla alt program tipidir. Procedure ile tanımlanan alt programlar ana programda bir komut gibi kullanılabilirler. Alt programları tanımlarken yapılmasını istediğimiz komutları begin...end kalıbının içerisne yazmamız gerekmektedir.
Örnek:
procedure yaz;
    begin
    write('http://forum.ubuntu-tr.net');
    End;
begin
yaz;
end.

Bu örnekte öncelikle yaz isminde bir alt program tanımlıyoruz. Daha sonra ana programda "yaz" procedure'sini bir komut gibi kullanarak ekrana "http://forum.ubuntu-tr.net" yazdırıyoruz.
Procedure'ye  Parametre Girme: Proceduremizi tanımlarken beraber tanımlayacağımız değişkenler sayesinde proceduremizi parametreli bir komut olarak kullana biliriz.
Örnek:
procedure isim(a:integer);
   Begin
   if a:=1 then writeln('Ahmet');
   if a:=0 then writeln('Mehmet');
   end;

begin
isim (0);
isim (1);
isim (0);
end;
Bu örnekte ana programda ilk olaram isim altrrogramını 0 parametresiyle çağırdığımız için ekrana Mehmet yazacak. Daha sonra ise 1 ve takrar sıfır parametrelerini kullandığımız için Ahmet, Mehmet yazacak. Yani program ekrana alt alta Mehmet, Ahmet, Mehemet yazacak.
Procedure'de Forward: Procedure ler ana programdan önce tanımlanmalıdır. Eğer görünüm güzelliği ve anlaşırlık açısından alt program ana programdan sonra yazılmak istenirse. Ana programdan önce procedure'nin adı ve değişkenleri tanımlanıp sonuna Forward eklenir. Bu durumda alt program ana programdan sonra yazıla bilir. Fakat ana programdan önce tannımlanmış olur.
Örnek:
procedure isim(a:integer); Forward;
   
begin
isim (0);
isim (1);
isim (0);
end;
procedure isim
   Begin
   if a:=1 then writeln('Ahmet');
   if a:=0 then writeln('Mehmet');
   end;
Bu örnek ikinci örnekle aynı işlemi yapmaktadır. Tek farkı alt programın ana programdan sonra yazılmış olmasıdır.
Function: Functionlar da procedureler gibi komut olarak kullanılabilen alt programlardır. Function, Procedureden farklı olarak geriye bir değer döndürür. Döndüreceği değer tibi function tanımlanırken belirtilir. Function içerisinde kullanılacak olan değişkenlerin önceden tanıtılmasına grek yoktur. Değişken isimleri ve tipleri function ile birlikte tanımlanır.
var
x,y:integer;

function ucgenalan (a,h:integer):integer;
   begin
   ucgenalan := (a*h) div 2;
   end;

begin
write('Üçgenin taban uzunluğunu giriniz');readln(x);
write('Üçgenin yüksekliğini giriniz');readln(y);
writeln(ucgnalan(x,y))
end.

Yukarıdaki örnek üçgenin alanını hesaplamak için kullanılan bir function örneğidir. Ana programda girilen taban uzunluğu ve yükseklik değerleri "ucgenlan" alan isimli functiona gönderilerek ücgenin alanı hesaplanıyor.
Bazı 'Crt' Komutları:
Turbo Pascal dilinde bazı komutlar Unitler içerisinde yer alır ve bunları kullanmak için programın başında ilgili Unitin belirtilmmesi gerekir. Aksi taktirde bu komutlar program tarafından algılanmaz. Bu derste 'crt' Uniti ile kullanılan bazı komutları öğreneceğiz.
Not: Bu sayfadaki komutların kullanılabilmesi için programın başına mutlaka 'Uses crt;' satırı eklenmelidir
Ekran Komutları:
Komut:   Kullanım Şekli:
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 (x,y);
WINDOW: Ekranın belirtilen koordinatlarında pencere oluşturmak için kullanılır   Window (x1,y1,x2,y2);
DELLINE: O an üzerinde bulunan satırı silmek için kullanılır. Diğer satırlar bir yukarı kayar.   DelLıne;
INSLINE: Üzerinde bulunulan satırdan önce bir satır boşluk eklemek için kullanılır.   InsLıne;
LOWVIDEO: Yazılan yazının parlaklık oranını düşürmak için kullanılır.   LowVideo;
NORMVIDEO: Yazılan yazının parlaklık oranını normale çevirmek için kullanılır.   NormVideo;
HIGHVIDEO: Yazılan yazının parlaklık oranını yükseltmek için kullanılır.   HıghVideo;
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.
   
Renk Komutları:
Komut:   Kullanım Şekli:
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 Tablosu:
Değer:     Renk:
0   Siyah
1   Mavi
2   Yeşil
3   Turquaz
4   Kırmızı
5   Pembe
6   Kahverengi
7   Parlak Gri
8   Koyu Gri
9   Açık Mavi
10   Açık Yeşil
11   Açık Turquaz
12   Açık Kırmızı
13   Açık Pembe
14   Sarı
15   Beyaz
Ses Komutları
Komut:   Kullanım Şekli:
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;
Diğer Komutlar:
Komut:   Kullanım Şekli:
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:
Komut:   Kullanım Şekli:
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  0   40 X 25  B / W on CGA
CO40  veya  1   40 X 25 Color on CGA
BW80  veya  2   80 X 25  B / W on CGA
CO80  veya  3   80 X 25 Color on CGA
Mono  veya  7   80 X 25  B / W on MDA or HGC
Font 8x8  veya  256   43- / 50 -line mode EGA / VGA

<<-1-2-3-4-5-6-7-8-9-10->>

Diziler
Bazen birbirleri ile bağlantılı ve aynı tipte birden fazla değişken kullanılmesı gerekebilir bu durumlarda. Tek tek birden fazla değişken tanımlamak yerine hepsini bir arada tanımlamak daha mantıklıdır. Bu şekilde tanımlanan değişkenler dizi değişkenler denir.
Örneğin; 20 farklı isim girilecek bir parogramda, 'isim' adlı dizi değişken kullanılarak 20 isimi tek değişkende tanımlana bilir. Kullandığımız bu dizi  değişkende ilk isim, isim
   , ikinci isim isim[x+1], n'inici isim isim[x+n] olacaktır.
Array Komutu: Dizi değişkenleri tanımlamak için array komutu kullanılır. Bu komutta dizi değişkenin kaç tane değişkeni tanımlayacağı ve bu değişken numaralarının kaçtan başlayıp kaçta bitecğini tanımlanır. Ayrıca değişkenin tibide belirtilmak zorundadır.
tek boyutlu bir dizi değişken:
değişken_adı : Array[X..Y] Of deşiken_tipi 
iki boyutlu bir dizi değişken;
değişken_adı : Array[X..Y,K..L] Of deşiken_tipi 
Tek Boyutlu Diziler: Ortak herhangi bir noktası olmayan fakat aynı özelliği taşıyan birden fazla değişkeni tanımlamak için tek boyutlu diziler kullanılır.
Tek boyutlu dizilrde dizi dğişkeni tanımlama formatı aşğıdaki gibidir.
değişken_adı : Array[X..Y] Of deşiken_tipi 
Bu formatta 'X' dizi değişken numaralarının başlangıç değeri 'Y' ise bitiş değeridir.
Örnek: 10 sayı girilmesini bekleyip bu sayıların toplamını ekarana yazdıran bir örneği dizi değişken kullanarak yapalım.
uses Crt;

var
sayi: array [1..10] of integer;
i,toplam:integer;

begin
for i := 1 to 10 do
   begin
   clrscr;
   write('Bir sayı giriniz.');read(sayi);
   toplam:=toplam+sayi;
   end;
clrscr;
writeln(toplam:3:0);
end.

Çok Boyutlu Diziler: Birbiri ile ortak noktaları bulunan birden fazla değişkenin tanımlanması için çok boyutlu diziler kullanılır.
iki yada üç boyutlu bir dizi tanımlamak için iki ayrı format vardır.
değişken_adı : Array[X..Y] Of  Array[K..L] Of deşiken_tipi 
değişken_adı : Array[X..Y,K..L] Of deşiken_tipi 
Örnek: 5 öğrencinin girilen iki notunu okuyup  ortalamalırını ekrana yazdıran programı çok boyutlu dizi yöntemini kullanarak yazalım. (1. ve 2. sınav notları ortalamaya aynı oranda etki etmektedir.)
uses Crt;

var
ogrenci: array [1..5] of array [1..2] of integer;
i,j,toplam:integer;

begin
for i := 1 to 5 do
   begin
   clrscr;
   write('Birinci notu giriniz.');read(ogrenci[i,1]);
   write('İkinci notu giriniz.');read(ogrenci[i,2]);
   end;
   clrscr;
for j := 1 to 5 do
   begin
   write(j,'. öğrencinin ortalaması=',(ogrenci[j,1]+ogrenci[j,2])/2:3:0);
   end;
end.



Sayısal İşlem Komutları
Turbo Pascal' da dört işlem dışındaki komutlar 'Crt' Untili içerisindedir. Bu komutların çalışabilmesi için; programın başında 'Crt' Untili tanımlanmalıdır.
Not: Bu sayfadaki komutların kullanılabilmesi için programın başına mutlaka 'Uses crt;' satırı eklenmelidir
Komut:   Kullanım Şekli:
ABS: Belirtilen sayısal ifadenin mutlak değerini bulmak için kullanılır.   Abs(x);
SIN: Belirtilen sayısal ifadenin sinüs değerini verir. Sonuc reel tipte bir sayıdır.   Sin(x);
COS: Belirtilen sayısal ifadenin cosinüs değerini verir. Sonuc reel tipte bir sayıdır.   Cos(x);
ARCTAN: Belirtilen sayısal ifadenin arctanjant değerini verir. Sonuc reel tipte bir sayıdır.   ArcTan(x);
INC: Belirtilen sayısal değişkenin değerini istenen sayıda arttırmak için kullanılır.   Inc(x,y);  'x sayısal ifade y ise, x in artış miktarı.
DEC: Belirtilen sayısal değişkenin değerini istenen sayıda azltmak için kullanılır.   Inc(x,y);  'x sayısal ifade y ise, x in azalma miktarı.
INT: Belirtilen sayısal ifadenin ondalık kısmını atmak için kullanılır.   Int(x);
FRAC: Belirtilen sayısal ifadenin ondalık kısmını alıp, tam kısmını atmak için kullanılır   Frac(x);
EXP: Belirtilen sayısal ifadenin e üssü değerini verir, yani ex 'in değerini verir    Exp(x);
LN: Belirtilen ifadenin Ln logaritmik değerini bulmak için kullanılır.   Ln(x);
PI: Pi sabit sayısının değeridir. Karşılığı yaklaşık olarak 3,141592653589 'dır.   Pi  'değer bir değişkene atanarak yada direk formül içerisinde kullanılabilir.
SQR: Belirtilen sayısal ifadenin karesini almak için kullanılır.   Sqr(x);
SQRT: Belirtilen sayısal ifadenin karekökünü almak için kullanılır.   Sqrt(x);
ODD: Belirtilen sayısal ifadenin tek sayı olup olmadığını gösteren bolean tipi bir ifadedir.   Odd(x);
ORD: Belirtilen karakterin ASCII kodunu verir. CHR komutunun tersi.   Ord(x);  'burdaki x char tipi bir ifadedir.
ROUND: Belirtilen ondalıklı sayısal ifadeyi kendisine en yakın tam sayıya yuvarlar.   Round(x);
RANDOM: 0 ile belirtilen sayı arasında rasgele sayı üretmek için kullanılır.   Random(x);
RANDOMIZE: Random komutunun farklı sayılar üretmesini sağlar.   Randomize;   'random(x) komutundan önce kullanılır.
TRUNC: Belirtilen sayısal ifadenin tamsayı kısmını almak için kullanılır.   Trunc(x);
VAL: Sayısal değer içeren sitring ifadeyi sayısal ifadeye çevirmek için kullanılır.    Val(string ifade,sayısal ifade,x);  'çevirme doğru olarak gerçekleşirse x değişkeni 0 değeri alır.


PASCAL DERS NOTLARI[/CENTER ALIGN]Pascal'da yazılabilecek en küçük program aşağıdaki gibidir.

Begin

End.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>

Yukarıda gösterilen küçük program parçasından da anlaşılacağı gibi pascalda bir program begin ile başlar end. ile sona erer.<o:p></o:p>
Pascal'da bir program yapısını biraz daha genişletecek olursak;<o:p></o:p>
Program programadı;
Tanımlamalar
Procedure ve functionlar<o:p></o:p>
Daha açık anlatımıyla;

Program programadı;
Uses unitler
type Özel veri tipleri
Const Sabitler
Label etiketler
var değişken veya değişkenler<o:p></o:p>
begin

end.<o:p></o:p>
*Yukarıda kullanılan tanımlamlarda koyu harf ile yazılan kelimeler komutları ifade etmektedir. <o:p></o:p>
Program komutu; yazdığınız programa bir isim vermek için kullanılır. Fakat bu görülen satır kullanılmak zorunda değildir. Bu komut kullanıldığı zaman dikkat edilmesi gereken husus şudur. Programa verdiğiniz isim boşluk karakteri içermemelidir. Şayet verdiğiniz isim iki kelimeden oluşuyorsa kelimeler arasında _ karakteri kullanılmalıdır. Örneğin; Program ilk_programım<o:p></o:p>
Unit komutu; bu komut pascal'ın unit'lerini veya kendi yazdığınız unitleri kullanmak içindir. Unit birden fazla procedure veya functiondan oluşan bir program parçasıdır. İleride procedure veya fonksiyon kavramı açıklandığında unit kavramı da daha iyi anlaşılacaktır. Ama bu noktada şunun bilinmesinde fayda vardır: İleride de görüleceği üzere pascal'da kullanılacak olan komutların çoğu unit'ler içerisinde bulunan birer procedure veya fonksiyondur.<o:p></o:p>
Type komutu; özel veri tipleri tanımlamak için kullanılır.
Const komutu; sabit tanımlamak için kullanılır.
Label komutu; etiket tanımlamak için kullanılır.
Var komutu; istenen tiplerde değişken tanımlamak için kullanılır.<o:p></o:p>
Yukarıda belirtilen program yapısında bulunan sıra sabittir. Fakat, bir programın içerisinde bazı kısımlar hariç hepsi bulunmak zorunda değildir. Zorunlu olan kısımlar ; Uses, begin ve end. kısımlarıdır.<o:p></o:p>
[COLOR=#NaNNaNNaN]Pascal'da kullanılan bazı semboller[/COLOR][/B]
*#Sembol#*   *#Anlamı#*
=   Karşılaştırma işlemi için kullanılır.Eşitse.
<><o:p> </o:p>   Karşılaştırma işleminde kullanılır.Eşit değilse.
:=   Değişkenlere değer atama için kullanılır. a:=5 gibi.
{ } veya (* *)   Açıklama yapmak için kullanılır. Basic'teki REM komutuyla aynı işi görür.
:   Değişken tanımlamalarında değişken isminden sonra değişken tipini belirlemeden önce kullanalır. a:integer gibi.
;   Her satırın sonunda (istisnalar dışında) kullanılır.
Değişken isimlerini belirlerken uyulacak kurallar:
1. Değişken isimleri harf veya _ ile başlamalıdır.
Örneğin: ilk, _ilk gibi.
2. İçerisinde boşluk karakteri bulunmamalıdır. Bu kuralı program komutunu anlatırken öğrendiğinizi hatırlayınız.
Örneğin: ilk_sayi,son_sayi gibi.
3. Pascal'da kullanılan komutlar değişken ismi olamaz.
Örneğin: Begin, var gibi.
4. Değişken isimleri arasında özel karakterler bulunamaz. (+,-,*) gibi.
Örneğin: ilk+sayi, ilk-sayi gibi.
5. Değişken isimlerinde türkçe karakterler kullanılamaz. (ş,ğ,İ,ç gibi)
6. Değişken ismi harf ile başladıktan sonra ikinci karakteri sayı veya _ olabilir.
Örneğin:a1,a_b gibi<o:p></o:p>
String İfadeler:
String ifadeler kısaca; Üzerinde sayısal işlem yapılamayan ifadeler olarak tanımlanabilir.
Pascal'da string ifadeler '' işaretleri arasında belirtilir.
Örneğin: 'Isparta', 'Keçiborlu','Fenerbahçe' gibi.<o:p></o:p>
VERİ TİPLERİ
[COLOR=#NaNNaNNaN]Tamsayı Tipleri[/COLOR][/B]
Tip Adı   Sınırları   Kapladığı Alan
Shortint   -128 127   1 Byte
Byte   0 255   1 Byte
Integer   -32768 32767   2 Byte
Word   0 65534   2 Byte
Longint   -2147483648 2147483647   4 Byte
<o:p> </o:p>
[COLOR=#NaNNaNNaN]Gerçek (Reel) Sayı Tipleri[/COLOR][/B]
Tip Adı   Sınırları   Kapladığı Alan
Real   2.9*10^-9 1.7*10^38   6 Byte
Single   1.5*10^-45 3.4*10^38   4 Byte
Double   5.0*10^-324 3.4*10^308   8 Byte
Extended   3.4*10^-4932 1.1*10^4932   10 Byte
Comp   (-2^63)+1 (2^63) -1   8 Byte
STRİNG TİP:
Üzerinde matematiksel işlem yapılmayan alfasayısal değişkenleri tanımlamak için kullanılır.
Örneğin:
    a:string şeklinde bir değişken tanımlarsanız 255 karakterlik bilgi alır.
    a:string[n] şeklinde bir değişken tanımlarsanız n karakterlik bilgi alır. <o:p></o:p>
CHAR TİP:
Sadece bir karakterlik bilgi için kullanılır.<o:p></o:p>
[COLOR=#NaNNaNNaN]String Tipi[/COLOR][/B]
Tip Adı   Kapladığı Alan
Char   1 Byte

BOOLEAN TİP:
Sadece True (doğru) veya False(Yanlış) değerlerini alabilen bir değişkendir.
[COLOR=#NaNNaNNaN]String Tipi[/COLOR][/B]
Tip Adı   Kapladığı Alan
Boolean   1 Byte
TANIMLAMA BLOKLARI

Var tanımlama Bloğu:
Kullanımı:
    Değişkenismi:tip;
Birden fazla değişken tanımlanacak ve aynı tipte olacaksa:
    Değişkenismi1, Değişkenismi2:tip;

Örnek:
Var
    a:integer;
    isim:string[10];
    ortalama:real;
    sayi1,sayi2:byte;

Const tanımlama bloğu:
Daha öncede anlatıldığı gibi sabit tanımlama bloğudur.
Kullanımı:
Const
    Sabit adı=değer;
Biçiminde kullanılırsa sabite verilen değer program içerisinde değiştirilemez.
    Sabit adı:tip=değer;
Biçiminde kullanılırsa sabite verilen değer ilk değer olarak kabul edilir ve program içerisinde bu değer değiştirilebilir.

Örnek:
Const
    Pi=3.14;
    Sayi:integer=15;

OPERATÖRLER:

Div: Bir bölme işleminde bölümü verir.
Örnek:
    15 div 5 =3

Mod: Bir bölme işleminde kalanı verir.
Örnek:
    5 mod 4 =1
[COLOR=#NaNNaNNaN]String Tipi[/COLOR][/B]
Operatör   İşlevi
Not   Değil
Or   Veya
And   Ve
Xor   Veyadeğil
=   Eşit
<<o:p> </o:p>   Küçük
><o:p> </o:p>   Büyük
<=   KüçükEşit
>=   BüyükEşit
<><o:p> </o:p>   Farklı
TURBO PASCAL KOMUTLARI

GİRİŞ - ÇIKIŞ KOMUTLARI

Write - Writeln:

Sabitlerin, değişkenlerin ve işlem sonuçlarının ekrana basılmasını sağlayan komuttur. Yani, basic'teki print komutuyla aynı işlevi görür.

Kullanımı:
Writeln(ifade)

Write(ifade)

Writeln komutu kullanıldığı zaman parantez içerisinde verilen ifade ekrana basıldıktan sonra cursor bir alt satıra iner ve diğer ifadeler buradan itibaren yazılmaya devam eder. Write komutu kullanıldığında ise cursor parentez içerisinde verilen ifade yazıldıktan sonra yazılan ifadenin hemen sonunda bekler ve diğer ifadeler buradan itibaren yazılmaya devam eder.

    Şayet bir string ifade akrana basılmak isteniyorsa '' işaretleri arasında parantezler içerisine yazılmalıdır. Bir sabit veya değişken ekrana basılmak isteniyorsa; parantezler içerisine sabit veya değişkenin isminin yazılması yeterlidir. Burada dikkat edilmesi gereken husus şudur: Birden fazla sabit veya değişkeni aynı anda ekrana basmak istiyorsanız aralarına virgül koyarak yazmalısınız.

    Eğer, hem bir string ifade hem de bir değişken veya sabiti beraber ekrana basmak istiyorsanız; değişen veya sabitten sonra veya önce virgül kullanmalısınız.
    Örneğin; writeln(a,'a') veya
      writeln('b' ,b)

Şimdi bu komutu kullanarak birkaç örnek yazalım.

Örnek 1:
Program ekrana_yaz;
begin
    writeln('İlk programım');
end.

Bu program çalıştırıldığında ekrana İlk Programım stringini yazacak ve sonlanacaktır. Sonuçta ekranda çıktıyı şu an için göremiyorsunuz, Alt+F5 tuşlarına basın ekranda yadığınız string ifadenin basılı olduğunu göreceksiniz. Burada şu noktaya da dikkat etmeyi unutmayın. Cusor bir aşağı satırda beklemektedir.

Aynı programı şu şekilde yazarsak.
Program ekrana_yaz;
begin
    write('İlk programım');
end.

Bu program da yukarıdaki programla aynı çıktıyı verecektir. Aralarındaki tek fark bu sefer cursorun bir alt satıra geçmeyip string ifadenin hemen sonunda beklemesidir.

Örnek 2:
Mesela çıktısı aşağıdaki gibi olan bir program yazmaya çalışalım.
Süleyman Demirel Üniveristesi
Keçiborlu Meslek Yüksekokulu

begin
    writeln('Süleyman Demirel Üniversitesi');
    write('Keçiborlu Meslek Yüksekokulu');
end.


Örnek 3:
Şimdide iki değişken tanımlayalım ve bunların toplamlarını ve farklarını ekrana basan bir program yazalım.

var
    a,b:byte;
begin
    a:=65;
    b:=25;
    writeln('a+b=',a+b);
    writeln('a-b=',a-b);
end.

     
Sayısal Bilgilerin Formatlı Olarak Yazdırılması
Burada amaç sayısal ifadeleri sağa dayalı olarak yazdırmaktır.

Tamsayı ifadeler için kullanımı:
Kullanımı:
    writeln(ifade:uzunluk)
    write(ifade:uzunluk)

Burada uzunluk yazılan sayısal ifadeninitolam hane sayısını belirtir. Verilen ifade bu alana sağa dayalı olarak yazılır.

Örnek 4:
begin
    write(1:6);
end.


Bu program sonuçta 1'i 6 hane sağa kaydırır ve 6. haneye yazar.Yani sonuç şöyle olur.
1
şeklinde bir çıktı olur.

Clrscr:
    Gerçi bu komut bir giriş çıkış komutu değildir ama burada anlatmanın gerekli olduğunu düşünüyorum. Clrscr komutu ekran temizleme komutudur ve crt unit'i içerisinde bulunur. Yani bu şu anlama gelmektedir. Bu komut kullanılacağı zaman mutlaka uses crt komut satırı kullanılmalıdır.


Örnek 5:
uses crt;
begin
    clrscr;
    write('Merhaba');
end.


Read - Readln:

Klavyeden bilgi almak için kullanılan komuttur. Basic'teki input komutuyla aynı işlevi görür.

Kullanımı:
read(değişken veya değişkenler)
    readln(değişken veya değişkenler)
Şayet değşkenler birden fazlaysa aralarına virgül koyulur.

Bilindiği gibi bundan önce yazdığımız programları çalıştrıyor fakat çıktısını görebilmek için alt+F5 tuşlarını kullanıyorduk. İşte readln komutunu öğrendikten sonra artık böyle bir işleme gerek kalmayacaktır. Her programın sonunda end. satırından önce readln; komut satırı kullanılırsa program bütün işlemleri bitirdikten sonra siz bir tuşa basıncaya kadar sizi bekleyecektir.

Örnek 6:
Klavyeden iki sayı alarak bunların toplamlarını ekrana yazan bir program yazınız.

uses crt;
var
    a,b:integer;
begin
    clrscr;
    write('a sayısını giriniz');readln(a);
    write('b sayısını giriniz');readln(b);
    write('a+b=',a+b);
    readln;
end.



Örnek 7:
Klavyeden vize ve final notu girildiğinde o öğrencinin not ortalamasını bulan programı yazınız?
uses crt;
var
    vize,final:shortint;
begin
    clrscr;
    write('vizeyi giriniz');readln(vize);
    write('finali giriniz');readln(final);
    write('ortalama',vize*0.4+final*0.6);
    readln;
end.

Karşılaştırma Komutları

İf - then - else

Verilen şartın doğru veya yanlış olması durumunda istenen işlemleri yapmak için bu program kullanılır.

Kullanımı:
İf şart then şart doğruysa komut veya komutlar else şart doğruysa komut veya komutlar

Bu komut kullanılırken dikkat edilmesi gereken birçok nokta bulunmaktadır. Şayet şart doğru olduğunda kullanılacak komut sayısı 1'den fazla ise bu komutlar begin end bloğu içerisine yazılırlar. Aynı durum şart yanlış olduğu durumda da geçerlidir. Hiçbir zaman else komutundan önceki satırın sonunda ; işareti kullanılmaz. Bu unutulmaması gereken önenli bir kuraldır.


Örnek 8:
Kalvyeden iki sayı alarak büyük olan sayıyı ekrana yazan bir program yazınız?

uses crt;
var
    a,b:byte;
begin
    write('a sayısı');readln(a);
    write('b sayısı');readln(b);
    if a>b then
      write('a sayısı büyük',a)
    else
      write('b sayısı büyük',b);
    readln;
end.

Örnek 9:
Kalvyeden iki sayı alarak büyük olan sayıyı bulup bunu bir artırarak ekrana yazan bir program yazınız?
uses crt;
var
    a,b:byte;
begin
    write('a sayısı');readln(a);
    write('b sayısı');readln(b);
    if a>b then
    begin
      a:=a+1;
write('a sayısı büyük',a);
    end
    else
    begin
b:=b+1;
write('b sayısı büyük',b);
    end;
    readln;
end.



DÖNGÜLER
1. FOR DÖNGÜSÜ
For Döngüsü

1'den N'e Kadar Sayıların Toplamı

N! Hesaplayan Program

Xn'yi Hesaplayan Program

ex'i Hesaplayan Program

Basamaklarının Küplerinin Toplamı Kendisine
Eşit Olan Sayılar 3 Haneli Sayılar

FOR BAŞLANGIÇ DEĞERİ TO SON DEĞER DO


N kez "İşlem" yap
1'den N'e kadar "İşlem" yap
i = 1 den i = N'e kadar "İşlem" yap
Pascal'da Yazımı:
For i := 1 to N do

1'den N'e Kadar Tam Sayıları Toplayan Programın:

Algoritması:
1. Başla
2. N sayısını gir.
3. Toplam'a sıfır ata
4. i=1'den i=N'e kadar tam sayıları topla
5. Toplam'ı yaz.
6. Son

Program Toplama;
{Bir den N e kadar tam sayıları toplayan program}
Var
   i, N, Toplam : Integer;
Begin
   Write('Son sayıyı gir: '); Readln (N);
   Toplam := 0;
   For i := 1 To N Do
       Toplam := Toplam + i;
   Writeln('1´den N´e kadar sayıların toplamı = ', Toplam);
   Readln;
End.

N sayısının Faktöriyelini Hesaplayan Program

Algoritması:
1. Başla
2. N sayısını gir.
3. Faktöriyel değişkenine 1 ata
4. i=1'den i=N'e kadar tüm sayıları birbiriyle çarp
5. Faktoriyel'i yaz.
6. Son

Program Faktor;
{N Faktöriyeli Hesaplayan program}
{$N+}
Var
   i, N : Integer;
   Faktoriyel : Extended;
Begin
   Write('Son sayıyı gir: '); Readln (N);
   Faktoriyel := 1;
   For i := 1 To N Do
       Faktoriyel := Faktoriyel *  i;
   Writeln('N Faktoriyel = ', Faktoriyel:5:0);
   Readln;
End.



Xn 'i Hesaplayan Program

Algoritması:
1. Başla
2. X ve N sayısını gir.
3. Us değişkenine 1 ata
4. i=1'den i=N'e kadar us = us * x çarp
5. Us'su yaz.
6. Son


Program UsAl;
{Xn 'i Hesaplayan Program}
var
   i,x,n: integer;
   us: extended;
begin
   us:=1;
   writeln('Bu program x üzeri n yi hesaplar...');
   write('x ve n yi gir...'); Readln(x,n);
   for i:= 1 to n do
          us:=us*x;
   writeln(x, ' üzeri ',n ,' = ',us);
   readln
end.




ex 'i Hesaplayan Program


Algoritması:
1. Başla
2. X 'i gir.
3. ex değişkenine 1 ata. n değişkenine 10 ata (en fazla 10 kez işlem yapmak için)
4. n kez aşağıdaki işlemleri yap
   a) Fak ve us değerlerine 1 ata
   b) j=1 den i'ye kadar
         Us=us*x
         Fak=Fak*j
   c) ex =ex + us/fak
5. Ex'i yaz.
6. Son


program e_uzeri_x;
var
x, ex, fak, us: real;
i, j, n : integer;
begin
write ('x i gir'); readln (x);
n :=10;
ex := 1;
for i:= 1 to n do
begin
   fak:=1; us:=1;
   for i:=1 to n do
   begin
      fak:=1; us:=1;
      For j:=1 to i do
      Begin
         us:=us*x;
         fak:=fak*j
      End;
      ex:=ex+us/fak;
   end;
end;
writeln('e üzeri x´in değeri = ', ex:2:7);
readln;         
end.
   

Aynı program aşağıdaki gibi de çözülebilir.



Basamaklarının Küplerinin Toplamı
      Kendisine Eşit Olan Sayılar 3 Haneli Sayılar
Algoritması:
1. Başla
2. i=100'den 999'a kadar
    a) birler = i mod 10 (birler basamağındaki sayıyı Birler değişkenine ata)
    b) onlar := trunc (i div 10) mod 10 (Onlar basamağındaki sayıyı Onlar değişkenine ata)
      yuzler := trunc (i div 100) (Yuzler basamağındaki sayıyı Yuzler değişkenine ata)
      eğer (birler * birler * birler + onlar * onlar * onlar +
      yuzler * yuzler * yuzler = i)'ye eşitse i'yi yaz.
6. Son


Program kuplerin_carpimi;
{Basamaklarının küplerinin carpimi kendisine esit olan sayilar}
var
   i, birler, onlar, yuzler: integer;
begin
   for i:= 100 to 999 do
   begin
      birler := i mod 10;
      onlar := trunc (i div 10) mod 10;
      yuzler := trunc (i div 100);
      if (birler * birler * birler + onlar * onlar * onlar +
      yuzler * yuzler * yuzler = i) then write (i:5);
   end;
   readln
end.

Yanıt: 153-370-371-407


KARAR VERME DEYİMİ
IF KOŞUL THEN İŞLEM1 ELSE İŞLEM2


Eğer koşul doğru ise İşlem 1'i yap değilse İşlem 2'yi yap.
Pascalda yazımı:
if Koşul Then İşlem1 Else İşlem2


Eğer koşul doğru ise İşlem 1'i  ve İşlem 2'yi yap.
Pascal'da Yazımı:
if Koşul Then
        Begin
            İşlem1;
            İşlem 2;
         End;
Not: Bir dalda birden fazla işlem yapılıyorsa Begin .. End bloku içine alınır.


Eğer koşul doğru ise İşlem 1'i  ve İşlem 2'yi yap değilse işlem3'ü yap.
Pascal'da yazımı:
if Koşul Then
   Begin
        İşlem1;
        İşlem2;
    End
    Else
        İşlem3;


Eğer koşul doğru ise işlem1'i ve İşlem2'yi yap
     değilse eğer işlem3 ve işlem4'ü yap
               değilse işlem5'i yap.
if Koşul1 Then
   Begin
        İşlem1;
        İşlem2;
    End
    Else
    if Koşul2 Then
        Begin
             Koşul3;
             Koşul4
         End
         Else
            İşlem5;

Tek Sayıları Bulan Program

Algoritması:
1. Başla
2. Sayı gir
3. Eğer sayının Mod 2'ye göre sonucu Birse Tek Sayı yaz
        Değilse Çift Sayı yaz.
4. Son.

Program TekCift;
Var
   a : Integer;
Begin
      Write('Bir sayı giriniz: '); Readln(a);
      If (a mod 2 = 1 Then
            Writeln ('Girdiğiniz Sayı Tekdir')
         Else
            Writeln ('Girdiğiniz Sayı Çifttir')
      Readln
End.


Not Ortalaması 50'den Büyük ise Geçti 50'den küçükse Kaldı yazan program
Algoritması:
1. Başla
2. Not1 ve Not2'yi gir.
3. Ortalamayı hesapla.
4. Ortalama 50'den büyükse Geçti değilse kaldı yaz.
5. Son.

Program GectiKaldi;
Var
    Not1, Not2 : Integer;
    Ortalama: Real;
Begin
    Write('Not 1´i giriniz : '); Readln(Not1);
    Write('Not 2´i giriniz : '); Readln(Not2);
    Ortalama := (Not1+Not2)/2;
   If Ortalama >= 50 Then
       Writeln('Geçtiniz Ortalamanız = ', Ortalama:4:2)
      Else
        Writeln('Kaldınız Ortalamanız = ', Ortalama:4:2);
    Readln
End.

1'den N'e Kadar Tam Sayıları Toplayan Programın:

Algoritması:
1. Başla
2. N sayısını gir.
3. Toplam'a sıfır ata
4. i=1'den i=N'e kadar tam sayıları topla
5. Toplam'ı yaz.
6. Son


Program Toplama;
{Bir den N e kadar tam sayıları toplayan program}
Var
   i, N, Toplam : Integer;
Begin
   Write('Son sayıyı gir: '); Readln (N);
   Toplam := 0;
   For i := 1 To N Do
       Toplam := Toplam + i;
   Writeln('1´den N´e kadar sayıların toplamı = ', Toplam);
   Readln;
End.







 
Eğer Girilen Notların 0-100 arasında olmasını istiyorsanız
yine If..Then..Else ile kontrol etmeniz gerekir.
Algoritması:
1. Başla
2. Not1 ve Not2'yi gir.
3. Eğer Not1 ve Not2 Sıfırdan büyük ve 100'den küçükse
        Ortalamayı hesapla.
        Eğer Ortalama 50'den büyükse Geçti Değilse kaldı yaz.
    Değilse Yanlış Giriş Yaptınız Yaz.
4. Son.

Program GectiKaldi2;
Var
    Not1, Not2 : Integer;
    Ortalama: Real;
Begin {Ana programın Begin i}
      Write('Not 1´i giriniz : '); Readln(Not1);
      Write('Not 2´i giriniz : '); Readln(Not2);
If (Not1 >=0) and (Not1<=100) and (Not2 >=0) and (Not2<=100) Then
Begin
          Ortalama := (Not1+Not2)/2;
          If Ortalama >= 50 Then
             Writeln('Geçtiniz Ortalamanız = ', Ortalama:4:2)
          Else
          Writeln('Kaldınız Ortalamanız = ', Ortalama:4:2);
End
      Else
        Writeln('Yanlış giriş yaptınız...');
      Readln
End. {Ana Programın End i}


Üç kenarı girilen bir üçgenin ne tür bir üçgen (çeşitkenar , ikizkenar, eşkenar) olduğunu yazan program
Algoritması:
1. Başla
2. a, b ve c'yi gir
3. Eğer a=b ve b=c ise EşKenar Üçgen
        Değilse
            Eğer a<>b ve a<>c ve b<>c ise Çeşit Kenar Üçgen
                   Değilse İkiz Kenar Üçgen
4. Son

Program Ucgen;
Var
   a, b, c : Integer;
Begin
      Write('Üçgenin kenarlarını giriniz: '); Readln(a, b, c);
      If (a>0) and (b>0) and (c>0) Then
         if (a=b) and (a=c) Then Writeln ('Eşkenar Üçgen')
           Else
              if (a<>b) and (a<>c) and (b<>c) Then Writeln ('Çeşitkenar Üçgen')
               Else
                   Writeln('İkiz Kenar Üçgen');
       Else
         Writeln('Yanlış Giriş Yaptınız...');
      Readln
End.


Üç Sayının En Büyüğünü Bulan Program

Algoritması:
1. Başla
2. a, b ve c'yi gir
3. Eğer a>b ve a>c ise En Büyük Sayı A'dır
        Değilse
            Eğer b>a ve b>c ise En Büyük Sayı B'dir
                   Değilse En Büyük Sayı C'dir
4. En Büyük Sayıyı Yaz.
5. Son

Program Uc_Sayinin_En_Buyugu;
Var
a, b, c, EnBuyuk : Integer;
Begin
     Write('Üç Sayı giriniz: ');
     Readln(a, b, c);
     If (a>=b) and (a>=c) Then EnBuyuk:=a
      Else
      If (b>=a) and (b>=c) Then EnBuyuk:=b
         Else
            EnBuyuk := c;
Writeln('En Büyük Sayı = ', EnBuyuk);
Readln
End.

İşlemler ve Öncelikleri
İşlem ve Sırası
Öncelik   İşlem
1   Not
2   *, /, Div, Mod, And
3   +, -, Or
4   <, <=, =, <>, >=, >, In
Eğer aynı işlemciden birden fazla varsa işlem soldan sağa doğru yapılır.
Eğer işlemlerde Parantez kullanılmışsa yukarıdaki öncelik sırasına göre öncelikle yapılır.

İşlemler ve Pascal'da Yazım Biçimleri
İfadeler   Pascal'da Yazım Biçimi
b2-4.a.c   b*b-4*a*c
(b2-4.a.c)1/2   sqrt(b*b-4*a*b)
x + y
------
x - y   (x + y) / (x - y)
   

Mantıksal İşlemler ve Sonuçları
(1=Doğru=True) (0=Yanlış=False)
Ve (And) Operatörü
p   q   p ve q
1   1   1
1   0   0
0   1   0
0   0   0

Veya (Or) Operatörü
p   q   p veya q
1   1   1
1   0   1
0   1   1
0   0   0

ALINTIDIR KANAK:www.bilimveteknoloji.com
FORUM GEREĞİ YAZIDA GEÇEN LİNK ADLARI DEĞİŞTİRİLMİŞTİR


ihtiyar said

Güzel bir çalışma olmuş, çok teşekkür ederiz lakin kaynağa bakıp incelemek istedim ama domain düşmüş.

suskun

Çok detaylı bir anlatım olmuş emeğine sağlık:) 

command

Pascal hak ettiği yeri bulamayan bir dil, Umarım free pascal ile hak ettiği yere kavuşur

Mint_85