Pascal Fonksiyonları
6 November 2008 ThursdayString Fonksiyonlar
Length
Bir string değişkenin kaç karakterden oluştuğunu bulmak için kullanılır. Fonksiyona parametre olarak bir string değişken veya bir karakter dizesi verilebilir. Fonksiyonun ürettiği sonuç, o string değişkenin karakter sayısını belirten bir sayıdır.
Dizilim;
Length(String);
Length(‘Bilgisayar’); 10 tamsayısını üretir.
Length(‘BALIKESİR’); 9 tamsayısını üretir.
Length(‘ BAU ‘); 12 tamsayısını üretir.
Örnek;
Uses Crt;
Var
isim : string;
Uzunluk : integer;
Begin
Write(‘Adınızı Girin’); readln(isim);
Uzunluk:=Length(isim);
Writeln(‘Adınız ‘,Uzunluk,’ harften oluşuyor’);
Readkey;
End.
Copy
Bir string değişkenin istenilen bir bölümünü elde etmek için kullanılır. String ifadenin N1′inci karakterinden itibaren, N2 tane karakteri elde eder. N1′in değerinin 1-255 arasında olması gerekir. N1′in değeri string uzunluğundan fazla ise NULL karakter elde edilir.
Dizilim;
Copy(String,N1,N2);
Copy(‘Bilgisayar’,6,3); ’say’ elde edilir.
Copy(‘BALIKESİR’,4,5); ‘KESİR’ elde edilir.
Örnek;
Uses Crt;
Var
İsim, bolum: string;
Begin
Write('Adınızı Girin'); readln(isim);
bolum:=Copy(isim,1,3);
Writeln('Adınız ilk 3 harfi..:',bolum);
Readkey;
End.
Delete
Bir string değişkenin belirlenen sayıdaki karakterini, değişkenin içinden çıkarmak için kullanılır. String ifadenin N1′inci karakterinden itibaren, N2 tane karakteri diziden çıkarır. N1 ile verilen sayı string uzunluğundan fazla ise silme yapmaz. N1′in değeri 1-255 arasında bir tamsayı olmalı. Fonksiyon string’in çıkarma işlemi yapıldıktan sonra aldığı değeri üretir.
Dizilim;
Delete(String,N1,N2);
Delete(‘Bilgisayar’,4,2); ‘Bilgayar’ elde edilir.
Delete(‘BALIKESİR’,1,4); ‘KESİR’ elde edilir.
Concat
Birden fazla stringi birleştirmek için Concat fonksiyonu kullanılır. Concat fonksiyonu ile birleştirilen stringlerin toplam uzunluğu 255′i geçmemeli. Concat fonksiyonu yerine ‘+’ operatörünü kullanarak da aynı sonuç elde edilir. Fonksiyon sonucu stringdir.
Dizilim;
Concat(String1,String2,…, StringN);
Concat(‘Veli’,’ AKÇAKAYA’); ‘Veli AKÇAKAYA’ elde edilir.
Concat(‘N’,'E’,'F’); ‘NEF’ elde edilir.
Pos
Bir string içinde bir karakter veya başka bir string’in baştan itibaren kaçıncı sırada olduğunu bulmak için kullanılır. Fonksiyonun ürettiği değer byte tipinde bir tamsayıdır. Aranacak string, string içerisinde varsa ilk rastlandığı pozisyon, fonksiyonun sonucudur. Aranacak string, string içerisinde yoksa, fonksiyonun ürettiği değer 0′dır.
Dizilim;
Pos(Aranacak_string,String);
Pos(‘A’,'BİLGİSAYAR’); 7 elde edilir.
Pos(‘İLGİ’,'BİLGİSAYAR’); 2 elde edilir.
Pos(‘BİLGİN’,'BİLGİSAYAR’); 0 elde edilir.
Pos(”,’BİLGİSAYAR’); 1 elde edilir.
Son örnekte, string içerisinde “NULL(boş) karakteri aranmaktadır. Her stringin başında ve sonunda NULL karakter bulunduğundan, ilk baştaki null karakteri bulunarak 1 elde edilir.
Upcase
Küçük harfleri büyük harfe çevirmek için kullanılır. Eğer harfler zaten büyükse, herhangi bir değişiklik yapılmaz.
Dizilim;
Upcase(String1);
Upcase(‘Veli’); ‘VELİ’ elde edilir.
Upcase(‘nef’); ‘NEF’ elde edilir.
Chr
Chr fonksiyonu ASCII kod numarası verilen karakteri verir. Bu fonksiyona parametre olarak byte türünde bir sayı verilmeli.
Dizilim;
Chr(N);
Chr(65); ‘A’ elde edilir.
Chr(67); ‘C’ elde edilir.
Str
integer veya real tipteki değişkenleri, string tipe dönüştürür. N bir tamsayı veya real bir sayı olabilir. St string tipte bir değişkendir. Str prosedürü N sayısını string tipe dönüştürerek st değişkeni içerisine atar. Eğer sayı formatlı olarak düzenlenmiş ise stringe dönüştürülürken bu format düzeni göz önüne alınır.
Dizilim;
Str(N,St);
Str(165,st); ‘165′ elde edilir.
Str(12.5); ‘12.5′ elde edilir.
Str(25.32:8:1,St); ‘ 25.73′ elde edilir.
Matematik Fonksiyonlar
Abs
Bir sayının mutlak değerini verir. Parametre olarak herhangi bir sayı verilebilir. Eğer sayı negatif ise onun pozitif değerini verir. Fonksiyonun sonucunun tipi, verilen N sayısının tipi ile aynıdır.
Dizilim;
Abs(N);
Abs(-25); 25 elde edilir.
Abs(-5.15); 5.15 elde edilir.
Abs(35); 35 elde edilir.
Arctan
Tanjantı bilinen bir açının değerini radyan cinsinden elde etmek için kullanılır.
Dizilim;
Arctan(N);
Arctan(1.000); 0.78539816340 radyan
Arctan(0.88); 0.72165485086 radyan
Cos
Radyan cinsinden verilen bir açının kosinüsünü elde etmek için kullanılır.
Dizilim;
Cos(N);
Cos(30*pi/180); 0.86602540378
Cos(45*pi/180); 0.70710678119
N sayısı kosinüsü bulunmak istenen açının radyan cinsinden değeridir. Eğer, açı derece cinsinden biliniyorsa, bunu radyana çevirmek için (pi/180) ile çarpmak gerekir. Örnekler içinde yazılan pi’nin daha önceden tanımlanmasına gerek yoktur. Pascal zaten onun değerini önceden bilir. Pi pascal tarafından tanımlanan sabitlerdendir. Fonksiyonun sonucunun tipi real’dir
Sin
Radyan cinsinden verilen bir açının sinüsünü elde etmek için kullanılır.
Dizilim;
Sin(N);
Sin(30*pi/180); 0.50000000000
Sin(45*pi/180); 0.70710678119
N sayısı kosinüsü bulunmak istenen açının radyan cinsinden değeridir.
Int
Kesirli bir sayının tam sayı kısmını elde etmek için kullanılır.
Dizilim;
Int(N);
Int(-25.15); -25.0
Int(2.99); 2.0
Int(2.01); 2.0
Frac
Kesirli bir sayının kesirli kısmını elde etmek için kullanılır.
Dizilim;
Frac(N);
Int(-25.15); -0.15
Int(2.99); 0.99
Int(2.01); 0.10
Int(-2.01); -0.01
Exp
Matematikte e (2.71828183) sayısının N. kuvvetini bulmak için kullanılır. Fonksiyon real tipte bir sonuç üretir. Parametre olarak verilen N sayısı integer veya real bir sayı olabilir.
Dizilim;
Exp(N);
Exp(1); 2.71828183
Exp(0); 1.00
Ln
Bir sayının doğal logaritmasını bulmak için kullanılır. N sayısının doğal logaritmasını ( yani “e ” tabanına göre logaritmasını) bulur. N real veya integer bir sayı olabilir. Fonksiyonun sonucu real tipte bir sayıdır.
Dizilim;
Ln(N);
Ln(1); 0.0
Ln(10); 2.3025850930
Ln(100); 4.6051701860
NOT : Buraya kadar açıklanan matematik fonksiyonlar içinde üs alma fonksiyonunun olmadığını gördünüz. Pascal’daki bu eksiklik EXP ve LN fonksiyonlarının yardımı ile giderilir.
Örneğin ;
A sayısının n. üssünü bulmak için;
An= Exp( n * Ln(A) ); ifadesi,
A sayısının n. kuvvetten kökünü bulmak için ise;
Exp(Ln(A)/n ); ifadesi kullanılır.
Pi
Matematikte kullanılan pi (3.1415926535) sayısının değerine sahip olan bir sabittir. Pascal tarafından önceden tanımlanmış bir sabittir. Program içerisinde tekrar tanımlamaya gerek yoktur.
Dizilim;
Pi;
Sqr
Bir sayının karesini almak için kullanılır. N sayısı integer veya real tipli bir sayı olabilir.
Dizilim;
Sqr(N);
Sqr(2); —> 4
Sqr(8); —> 64
Sqr(2.4); —> 5.76
Sqrt
Bir sayının karekökünü almak için kullanılır. N sayısı integer veya real tipli bir sayı olabilir. Fonksiyonun sonucu N sayısının tipi ile aynıdır.
Dizilim;
Sqrt(N);
Sqrt(4); —> 2
Sqrt(16); —> 4
Sqrt(5.76); —> 2.4
Odd
Bir sayının tek veya çift olduğunu kontrol etmek için kullanılır.
Dizilim;
Odd(N);
Odd(4); —> True
Odd(15); —> False
Odd(5.76); —> True
Round
Kesirli bir sayıyı yuvarlanmış olarak elde etmek için kullanılır. Round fonksiyonu N sayısına en yakın olan tamsayıyı verir. Sayıyı yuvarlama şöyle olur. Kesirli kısım 0.5′den küçük ise alttaki, büyük ise üstteki tamsayı elde edilir. Fonksiyon sonucunun tipi integerdir.
Dizilim;
Round(N);
Round(-15.58); —> -19
Round(2.99); —> 3
Round(2.1); —> 2
Random
Sistemin rasgele sayı üreticisinden, tesadüfi sayılar elde etmek için kullanılır. Random fonksiyonu işlendiğinde 0 ile N arasında rasgele sayı üretir. Ancak random fonksiyonu her çalıştırıldığında aynı sayıyı üretir. Bunun önüne geçmek için random’ dan önce Randomize prosedürü kullanılmalı. Randomize kullanıldığı zaman sistem her zaman rasgele sayı üretir. Random ürettiği sayıları, sistemin saatine göre üretir. Fonksiyon integer tipli bir sayı üretir.
Dizilim;
Random(N);
Randomize;
Random(15); —> 0 ile 15 arasında herhangi bir sayı
Dos Unit Fonksiyonları
DiskFree
Seçilen sürücüdeki boş alanı byte cinsinden verir. Fonksiyona parametre olarak sadece sürücü numarası veya adı verilir. Sürücüler numaralarına göre aşağıdaki gibidir.
Sürücü No
Aktif Sürücü 0
A sürücüsü 1
B sürücüsü 2
C sürücüsü 3
Dizilim;
DiskFree(sürücü);
Örnek;
Uses Crt;
Begin
Writeln(‘Aktif sürücüdeki boş alan ‘,DiskFree(0),’ byte’);
End.
DiskSize
Parametre olarak verilen sürücünün toplam kapasitesini verir. Sürücünün adı verilebileceği gibi, onu temsil eden sürücü numarası da verilebilir.
Dizilim;
DiskSize(sürücü);
Örnek;
Uses Crt;
Begin
Writeln(‘Aktif sürücünün kapasitesi ‘,DiskSize(0) div 1024,’
End.
DosVersion
Sistemde kullanılan DOS’un versiyonunu veriri. Fonksiyonun herhangi bir parametresi yok. Üretilen değer word tipli bir sayıdır. Bunun Lo ve Hi komutları ile çevrilmesi gerekir. Aşağıdaki örneği inceleyin.
Dizilim;
DosVersion;
Örnek;
Uses Crt;
Var
Ver : Word;
Begin
Ver :=DosVersion;
Writeln(‘Dos Versiyonunuz…: ‘,Lo(Ver),’.',Hi(Ver));
End.
GetTime
Sistemin önceden kurulmuş olan saatini okumak için kullanılır. Fonksiyon içerisine yazılan saat,dakika,saniye ve salise değişkenlerine sistemin o anki saati atanır. Daha sonra bu değişkenler program içerisinde kullanılabilir.
Dizilim;
GetTime(saat,dakika,saniye,salise);
Örnek;
Uses Crt;
Var
sa,da,sn,sl : Word;
Begin
GetTime(sa,da,sn,sl);
Writeln(‘Saat.. . ‘,sa,’:',da,’:',sn,’:',sl);
End.
SetTime
Sistemin saatini kurmak için kullanılır. SetTime’ın kullanımı GetTime ile aynıdır. Tek fark SetTime içerisine yazılan değişkenlerin (saa,dakika,saniye,salise) daha önceden tanımlanmış ve değer atanmış olmasıdır.
Dizilim;
SetTime(saat,dakika,saniye,salise);
GetDate
Sistemin önceden kurulmuş olan tarihini okumak için kullanılır. Fonksiyon içerisine yazılan yıl, ay, gün ve haftanın günü değişkenlerine sistemin o anki tarihi atanır. Daha sonra bu değişkenler program içerisinde kullanılabilir.
Dizilim;
GetDate(yil,ay,gun,hafgun);
Örnek;
Uses Crt;
Const
gunler : array[0..6] of string[9]= {‘Pazar’,'Pazartesi’,'Salı’,'Çarşamba’,'Perşembe’, ‘Cuma’,'Cumartesi’};
Var
y,a,g,hg : Word;
Begin
GetDate(y,a,g,hg);
Writeln(‘Bugün.. . ‘,g,’/',a,’/',y,’ ‘,gunler[hg],’ dir.’);
End.
SetDate
Sistemin tarihini kurmak için kullanılır. SetDate ‘nin kullanımı GetDate ile aynıdır. Tek fark SetDate içerisine yazılan değişkenlerin (yil,ay,gun,hafgun) daha önceden tanımlanmış ve değer atanmış olmasıdır.
Dizilim;
SetDate(saat,dakika,saniye,salise);
eda93 says:
May 4th, 2009 at 16:56
işime yaradı çok saOLun…
macit kotil says:
October 21st, 2009 at 11:58
ya super dokumanlar ya cok saolun cok yardımcı oldu
Otea Stinson says:
December 23rd, 2009 at 00:24
Allah Razı olsun Çok işime yaradı Teşekkürler