Sozluk Sitesi
  Prosedur ve Fonksiyonlar
 
     
               PROSEDÜR VE FONKSİYONLAR  
                                  Prosedür ve fonksiyonlar program kodlarının modüler kısımları olup özel görevler üstlenirler. Bunlar aynı zamanda "Altprogram" olarak da bilinirler. Delphi uygulamaları geliştirmek için çok sayıda hazır prosedür ve fonksiyonu kullanıcının hizmetine sokar. Her biri özel bir amaca yönelik olan bu prosedür ve fonksiyonları Delphi uygulamalarında kullanmak İçin onlarıçağırmak gerekir. Programlarınızda Delphi prosedürlerini çağırabileceğiniz gibi kendi prosedürlerinizi de yazıp çağırabilirsiniz.
                Prosedüre ve fonksiyonlar nesnelerle birlikte kullanıldığı zaman Methods adını alırlar.
               Fonksiyon, Procedure'den farklı olarak geriye bir değer gönderebilir.Bu değer gönderme İşlemi fonksiyon ismine geri dönecek değerin atanmasıyla olur.
 
PROSEDÜR
 
    Bir Prosedür Şu Şekilde Tanımlanır.
 
                Procedure ProsedürAdı(Giriş Parametreleri:İnteger);
Sabit, Değişken,Tip Tanımı
      Begin
Program Kodları;
       [Exit;]
              End; 
 
ProsedürAdı                                           Prosedüre verilecek addır. Prosedür bu isim  kullanılarak tanımlanır. Değişken tanımı için geçerli o sıtlamalar bu ad içinde geçerlidir.
GirişParametreleri                                     Prosedüre çağrıldığı yerden gönderilen bilgilerdir. Araya virgül konarak birden fazla giriş parametresi tanımlanabilir. Parametrenin tanımından sonra o parametrenin tipi iki nokta işaretiyle belirtilir.
                                                       A(x:Integer, s:String) gibi.
    
      Sabit,değişken,tip tanımı                 Prosedürün kullanacağı değişkenler, sabitler veya tipler bu blokta tanımlanır. Bu blokta tanımlanan de­ğişkenler local değişkendir.Yani bu değişkenleri sa­dece bu prosedür kullanabilir.
 
Program Kodları                                                  Bu kısımda prosedürün yapması gereken işi belirleyen kodlar bulunur.
 
 
 Normalde bir prosedür bloğun sonuna kadar çalışır. Ancak belirli şartlar gerçekleştiğinde tamamıçalışmadan çıkmak için Exit komutu kullanılır.
 
 
 
 
 
 
 
 
 
                         PROSEDÜR ÖRNEKLERİ
 
1.)Soru=Girilen 2 Sayının Üstünü Alan Programı Yapınız.
 
Şekli
 
            
 
Kodları
 
procedure TForm1.Button1Click(Sender: TObject);
   var
s,a,b:integer;
Procedure ustalma(x,y:integer;var sonuc:integer);
   var
i:integer;
 begin sonuc:=1;
        For i:=1 to y do
                 sonuc:=Sonuc*x;
end;
begin
a:=strtoint(edit1.Text);
b:=strtoint(edit2.Text);
      ustalma(a,b,s);
   label4.Caption:=floattostr(s);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
   begin
halt;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
 begin
                         edit1.Text:='';
edit1.SetFocus;
edit2.Text:='';
label4.Caption:='';
end;
 
end.
 
Çalışma Şekli
 
       
 
       Gördüğümüz Gibi Burada Bir Sayı Ve Sayının Üssünü Girerek üst Hesaplaması Yapıyoruz.Temizle Butonu İse Girdiğimiz Sayıların Editlerin Üzerinden Silinmesini Yardımcı Oluyor.Çıkış Butonu İse Prograndan Çıkmaya Yarar.
 
 
 
 
2.)Soru=Klavyeden 3 Not Girilen Ve Bu Notların Ortalamasını Alan Programı Prosedürde Yapınız.
 
 Şekli
                  
 
 Kodları
              
         procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z:integer;
ort:real;
sonuc:Real;
         Procedure ortalama(a,b,c:integer; var ortala:real);
           begin
        Ortala:=(a+b+c)/3;
         end;
           begin
x:=strtoint(edit1.Text);
y:=strtoint(edit2.Text);
z:=strtoint(edit3.Text);
                   ortalama(x,y,z,ort);
Sonuc:=trunc(ort);
label5.Caption:=floattostr(sonuc);
   if ort >=45 then Label6.Caption:='Geçti'
else
                    Label6.Caption:='Kaldı';
           end;
procedure TForm1.Button2Click(Sender: TObject);
 begin
edit1.Text:='';
edit1.SetFocus;
edit2.Text:='';
edit3.Text:='';
label5.Caption:='';
label6.Caption:='';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
  begin
             halt;
end;
 
end.
 
Çalışma Şekli
   
 
Burada ise 3 Not Giriyoruz Ve 3 Notun Ortalamasına Göre “Geçti” veya “Kaldı” Mesajını Veriyoruz. Temizle Butonu ise Yazdığımız Notların Editlerin Üzerinden Silinmesini Sağlıyor.Çıkış Butonu ise Programdan Çıkmak İçin Kullanılıyor.
 
 
3.)Soru=Klavyeden Girilen Bir Otomobilin Yaşı Ve Alış Fiyatı Verildiğinde Alım-Satım Vergisini Hesaplayan Programı Procedürde Yapınız.
 
   Otomobilin Yaşı                               Vergi Oranı
     10 ve üstü                                           %5
          6 - 9                                                %15
          4 - 5                                                %15
          1 - 3                                                %40
 
Şekli
 
    
 
Kodları
 
                 procedure TForm1.Button1Click(Sender: TObject);
     var
                             yas:byte;
                              af:longint;
                               vo:real;
 
Procedure hesap(y:byte;alisf:longint; var vergi:real);
    begin
                    if y>=10 then vergi:=(alisf*(5/100))
             else if (y>=6) and (y<=9) then vergi:=(alisf*(15/100))
           else if (y>=4) and (y<=5) then vergi:=(alisf*(18/100))
             else if (y>=1) and (y<=3) then vergi:=(alisf*(40/100));
               end;
begin
                              yas:=strtoint(edit1.text);
                              af:=strtoint(edit2.text);
                         hesap(yas,af,vo);
                   label4.Caption:= floattostr(vo)+ ' '+'YTL';
       end;
 
procedure TForm1.Button2Click(Sender: TObject);
 begin
edit1.Text:='';
edit2.Text:='';
                              label4.Caption:='';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
 begin
halt;
end;
                  end.
 
 
 
 
 
 
 
 
 
Çalışma Şekli
 
  
 
                         Bu Soruda İse Otomobilin Yaşını Giriyoruz.Ve Yaşa Göre Alım-Satım Vergisi Şekilleniyor. Ve Otomobilin Alış Fiyatını Giriyoruz. Hesapla Butonuna Bastığımızda Bize Direk Olarak Hesaplama Sonucunu Veriyor.Temizle Butonu İse Editlerde Ve Sonucun Yazdırıldığı Yerleri Sıfırlar.Çıkış İse Programdan Çıkmaya Yarar.
 
 
 
4.Soru=Soru:Girilen Sayının Pozitif Mi, Negatif Mi Veya O'a Esit Olup Olmadığını Kontrol Eden Programı Prosedürde Yapınız.
 
Şekli
 
 
Kodları
    procedure TForm1.Button1Click(Sender: TObject);
var
                 x:integer;
    Procedure tamsayi(y:integer);
      begin
 if y<0 then label3.Caption:='Negatif Sayıdır'
     else if y>0 then label3.Caption:='Pozitif Sayıdır'
     else label3.Caption:='Sayı Sıfırdır';
end;
       begin
    x:=strtoint(edit1.Text);
           tamsayi(x);
end;
procedure TForm1.Button2Click(Sender: TObject);
      begin
   Edit1.Text:='';
               label3.Caption:='';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
   begin
halt;
end;
 
end.
 
 
 
 
 
 
 
 
Çalışma Şekli
 
     
 
            Burda İse Klavyeden Bir Sayı Giriyoruz.Ve Sayı (+),(-) Veya 0 Eşit Mi Butonuna Tıkladığımızda Sayının Pozitif, Negatif Veya Sıfıra Eşit Olup Olmadığını Kontrol Ederiz.Temizle Butonu İse Editdeki ve Sonucu Yazdıran Label’i Sıfırlar.Çıkış İse Programdan Çıkmaya Yarar.
 
 
 
5.)Soru=Girilen 3 Sayıdan En Büyüğünü Bulan Programı Prosedürde Yapınız
 
Şekli
 
  
 
Kodları
 
           procedure TForm1.Button1Click(Sender: TObject);
 var
                  a,b,c,eb:integer;
Procedure buyuk(x,y,z:integer; var enbyk:integer);
               begin
if x>y then enbyk:=x else enbyk:=y;
            if z>enbyk then enbyk:=z;
               end;
begin
                                   a:=strtoint(edit1.Text);
                                   b:=strtoint(edit2.Text);
                                   c:=strtoint(edit3.Text);
                         buyuk(a,b,c,eb);
                                    label5.Caption:='En büyük sayı =' + ' ' + inttostr(eb);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
label5.Caption:='';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
halt;
end;
 
end.
 
 
Çalışma Şekli
 
  
 
       Burda ise Klavyeden 3 Sayı Giriyoruz Ve Bu Sayılar Arasından “En Büyük Sayıyı Bul” Butonuna Tıklayarak En Büyük Sayıyı Göstermiş Oluruz.Temizle Butonu İse Editlerde Ve Sonucun Yazdırıldığı Labeli Sıfırlar.Çıkış İse Programdan Çıkmak İçin Kullanılır.
 
 
6.Soru= Girilen Sayının Aralığını Bulan Programı Prosedürde Yapınız
              Sayı Aralığı
                     1-10
                   10-100
                 100-1000
                           1000-10000
 
Şekli
 
             
 
Kodları
 
               procedure TForm1.Button1Click(Sender: TObject);
      var
sayi:integer;
Procedure basamak(s:integer);
    begin
if (s>=1) and (s<=10000) then
    begin
if s>=1000 then label3.Caption:='1000-10000 Arasında'
else if s>=100 then label3.Caption:='100-1000 Arasında'
else if s>=10 then label3.Caption:='10-100 Arasında'
else if s>=1 then label3.Caption:='1-10 Arasında'
end
else
                           label3.Caption:='Sayi 1 İle 10000 arasında Olmalıdır.';
              end;
begin
sayi:=StrtoInt(edit1.Text);
   basamak(sayi);
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
label3.Caption:='';
end;
 
 
procedure TForm1.Button3Click(Sender: TObject);
                   begin
                             halt;
end;
end.
 
Çalışma Şekli
 
  
 
                           Bu Programda ise Bir Sayı Giriyoruz Ve “Sayı Aralığını Bul” Butonunu Tıkllayarak Sonuc Olarak Belirtiğimiz Kriterlere Göre Sayı Aralığını Bulur. Temizle Butonu İse Editdeki Sonucu Yazdırılan Label’i Sıfırlar.Çıkış İse Programdan Çıkmaya Yarar.
 
 
7.Soru=Klavyeden Girilen 3 Sayının Üçgen Olup Olmadığını ve Türünü Kontrol Eden Programı Prosedürde Yapınız.
 
Şekli
            
 
 
Kodları
 
procedure TForm1.Button1Click(Sender: TObject);
   var
       x,y,z:integer;
    begin
x:=strtoint(edit1.Text);
y:=strtoint(edit2.Text);
z:=strtoint(edit3.Text);
      ucgen(x,y,z);
 end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit1.setfocus;
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
halt;
end;
 
procedure tform1.ucgen(a,b,c:integer);
begin
 if (a = b) And (b = c) Then
edit5.Text := 'EŞKENAR ÜÇGEN'
 Else if a = b Then
edit5.Text := 'İKİZ KENAR'
Else if a = c Then
edit5.Text := 'İKİZ KENAR'
Else if b = c Then
edit5.Text := 'İKİZ KENAR'
Else if (a <> b) and (b<> c) and (a<>c) Then
edit5.Text := 'ÇEŞİT KENAR';
if (((a - b) < c) And ((a + b) > c)) And (((b - c) < a) And ((b + c) > a)) And (((a - c) < b) And ((a + c) > b)) Then
edit4.Text := 'Üçgendir'
Else
begin
edit4.Text := 'Üçgen Degildir';
edit5.Text := 'Türü Yoktur' ;
end;
end;
end.
 
Çalışma Şekli
 
       
 
                   Burda İse 3 Sayı Giriyoruz.Ve Hesapla Butonuna Tıklayarak Üçgen Olup Olmadığını Ve Üçgen İse Türünün Ne Olduğunu Bulur.Temizle Butonu İse Editlerin Hepsini Sıfırlar.Çıkış İse Programdan Çıkmak İçin Kullanılır.
 
 
 
8.Soru=Soru:Klavyeden Girilen 2 Sayının Arasında Toplama,Çıkarma,Çarpma veya Bölme Yapan   Programı Prosedürde Yapınız.
 
 
 
Şekli
 
           
 
 
 
 
 
Kodları
 
Procedure topla(a,b:integer; var s:real);
 begin
s:=a+b;
end;
Procedure cikar(a,b:integer; var s:real);
 begin
s:=a-b;
end;
 
Procedure carp(a,b:integer; var s:real);
    begin
s:=a*b;
end;
 
Procedure bol(a,b:integer; var s:real);
    begin
s:=a/b;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
sonuc:real;
begin
x:=strtoint(edit1.text);
y:=strtoint(edit2.text);
     topla(x,y,sonuc);
label4.Caption:=floattostr(sonuc);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
    var
x,y:integer;
sonuc:real;
 begin
x:=strtoint(edit1.text);
y:=strtoint(edit2.text);
      cikar(x,y,sonuc);
label4.Caption:=floattostr(sonuc);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
    var
x,y:integer;
sonuc:real;
 begin
x:=strtoint(edit1.text);
y:=strtoint(edit2.text);
      carp(x,y,sonuc);
label4.Caption:=floattostr(sonuc);
end;
 
procedure TForm1.Button4Click(Sender: TObject);
var
x,y:integer;
sonuc:real;
begin
x:=strtoint(edit1.text);
y:=strtoint(edit2.text);
     bol(x,y,sonuc);
label4.Caption:=floattostr(sonuc);
end;
 
 
procedure TForm1.Button5Click(Sender: TObject);
    begin
edit1.Text:='';
edit1.SetFocus;
edit2.Text:='';
label4.Caption:='';
end;
 
procedure TForm1.Button6Click(Sender: TObject);
    begin
halt;
end;
end.
 
Çalışma Şekli
 
 
 
                                               Topla Butonuna Bastığımızda İki Sayının Toplamını Verir.
 
                           Cıkar Butonuna Bastığımızda İlk Sayının İkinci Sayıdan Çıkarma Sonucunu Verir.
 
                            Çarp Butonuna Bastığımızda İki Sayının Çarpımını Verir.
 
 
           Bölme Butonuna Bastığımızda İlk Sayının İkinci Sayıya Bölümünün Sonucunu Verir.
Temizle Butonu İse Editleri Sıfarlar.Ve Çıkış Butonu İse Programdan Çıkar.
 
Fonksiyon
           Prosedür verdiğiniz bir işi yapar ve geriye bir değer döndürmez. Fonksiyon ise verdiğiniz işi yapar ve geriye bir değer döndürür. Geriye döndürdüğü de­ğer yaptığı işin durumu hakkında olabileceği gibi bir işlemin sonucu da olabi­lir. Örneğin faktöriyel hesaplaması için bir fonksiyon tanımlarsanız fonksi­yondan geriye faktöriyelin sonucu döner.
Bir Fonksiyon şu şekilde tanımlanır.
Function FonksiyonAdı (GirişParametreleri:Tipi):FonkTipi;
Sabit, değişken, Tip tanımı
Begin                                                                                                                                                                                                                                                                     
Program Kodları;
[Exit;]
FonksiyonAdı:=Değer;
Bnd;
               Prosedür tanımında farklı olarak fonksiyon geriye bir değer göndereceği için bu değerin tipi fonksiyon tanımından sonra FonkTipi parametresi ile belirlenir. Ayrıca geri dönecek değer, fonksiyon adına yada Result ifadesine atanan değer ile yapılır.
             
     FONKSİYON ÖRNEKLERİ
1.Soru= Girilen Sayıyı String'e Çevirmeyi Functionda Yapınız.
 
Şekli
 
 
 
Kodlar
 
procedure TForm1.Button1Click(Sender: TObject);
begin
        Label1.Caption:=SayiYazi(StrToFloat(Edit1.Text));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
     edit1.Text:='';
     edit1.SetFocus;
     label1.Caption:='';
end;
procedure TForm1.Button3Click(Sender: TObject);
    begin
              halt;
end;
 
 
Function SayiYazi(Sayi: Extended): String;
Const
Yuzler: Array[1..3,0..9] of String=(
        ('','YÜZ','İKİYÜZ','ÜÇYÜZ','DÖRTYÜZ','BEŞYÜZ','ALTIYÜZ','YEDİYÜZ','SEKİZYÜZ','DOKUZYÜZ'),
        ('','ON','YİRMİ','OTUZ','KIRK','ELLİ','ALTMIŞ','YETMİŞ','SEKSEN','DOKSAN'),
        ('','BİR','İKİ','ÜÇ','DÖRT','BEŞ','ALTI','YEDİ','SEKİZ','DOKUZ'));
Binler: Array[1..8] of String=
        ('KATTRİLYAR','TRİLYAR','KATTRİLYON','TRİLYON','MİLYAR','MİLYON','BİN','');
Var
        FloR: TFloatRec;
        FloV: TFloatValue;
        i, y, z: Integer;
        Parca : String;
        ASt: String[24];
        EkSt: String[26];
        AraSonuc, Sonuc: String;
        n, hane: Integer;
Begin
        Sonuc:='';
        FloV:= fvExtended;
        FloatToDecimal(FloR,Sayi,FloV,18,0);
        ASt:=FloR.Digits;
        n:=length(ASt);
        if FloR.Exponent<>Length(ASt) then
        begin
                EkSt:='';
                FillChar(EkSt,FloR.Exponent-n+1,'0');
                EkSt[0]:=Chr(FloR.Exponent-n);
                ASt:=ASt+EkSt;
        end;
        n:=Length(ASt);
        if n<24 then
        begin
                EkSt:='';
                FillChar(EkSt,24-n+1,'0');
                EkSt[0]:=Chr(24-n);
                ASt:=EkSt+ASt;
        end;
        n:=Length(ASt);
        i:=1;
        hane:=1;
        while i<n do
        begin
                Parca:=Copy(ASt,i,3);
                AraSonuc:='';
                for y:=1 to 3 do
                begin
                        z:=StrToInt(Copy(Parca,y,1));
                        AraSonuc:=AraSonuc+Yuzler[y,z];
                end;
                if AraSonuc<>'' then AraSonuc:=AraSonuc+Binler[hane];
                if AraSonuc='BİRBİN' then AraSonuc:='BİN';
                i:=i+3;
                Inc(hane);
                Sonuc:=Sonuc + ' ' + AraSonuc;
        end;
        SayiYazi:=Sonuc;
end;
end.
 
 
 
 
 
 
 
Çalışma Şekli
 
 
 
                Burada İse Klavyeden Bir sayı Giririz.Ve Stringe Çevir Butonuna Bastığımızda Girdiğimiz Sayının Stringleşmiş Halini Görürüz.Temizle Butonu İse Edit Ve Label ‘i Sıfırlar. Çıkış İse Programdan Çıkmak İçin Kullanılır.
 
 
 
 
2.Soru= Soru:Girilen Sayıyı Romen Rakamına Çeviren Programı Functionda Yapınız.
 
 
Şekli
   
         
    
 
Kodları
 
function LongToRoman( LI: LongInt ): String;
const
 Nummers: Array[1..13] of Integer =
    ( 1, 4, 5, 9, 10, 40, 50, 90, 100,
      400, 500, 900, 1000);
 Romeins: Array[1..13] of string =
    ( 'I', 'IV', 'V', 'IX', 'X', 'XL',
      'L', 'XC', 'C', 'CD', 'D', 'CM', 'M' );
var
 i: Integer;
begin
 Result := '';
 for i := 13 downto 1 do
    while ( LI >= Nummers[i] ) do
    begin
      LI := LI - Nummers[i];
      Result := Result + Romeins[i];
    end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
begin
a:=strtoint(edit1.Text);
Label1.Caption:=LongToRoman(a);
end;
 
 
 procedure TForm1.Button2Click(Sender: TObject);
 begin
edit1.Text:='';
edit1.SetFocus;
label1.Caption:='';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
halt;
end;
 
end.
 
Çalışma Şekli
 
           
 
                                    Bu Programda İse Klavyeden Bir Sayı Girilir.Ve Romen Rakamına Çevir Butonuna Tıklandığında Otomatik Olarak Romen Rakamına Çevrildiği Görülür.Temizle Butonu İse Edit Ve Labeli Sıfırlar.Çıkış Butonu İse Programdan Çıkar.
 
 
3.Soru= Klavyeden Girilen Sayıyı Functionda Faktoriyelini Alan Programı Yapınız.
 
   Şekli
 
 
 
Kodları
 
          Function faktoriyel(n:integer; var f:integer):integer;
var
i:integer;
  begin f:=1;
if n>19 then showmessage('Sayı 20den Küçük Olmalıdır')
else
For i:=1 to n do
 f:=f*i;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
sayi:integer;
sonuc:integer;
 begin
sayi:=strtoint(edit1.Text);
faktoriyel(sayi,sonuc);
label3.Caption:=floattostr(sonuc);
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit1.SetFocus;
label3.Caption:='';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
halt;
end;
end.
 
Çalışma Şekli
     
            
 
Bu Programda İse Klavyeden Girilen Sayının Faktoriyelini Bulur. Temizle Butonu İse Edit Ve Labeli Sıfırlar.Çıkış İse Bu Programdan Çıkmak Kullanılır.
 
4.Soru= Girilen Karakterlerin Basamak Sayısını Bulan Programı Functionda Yapınız.
 
Şekli
 
          
Kodları
 
Function basamak(s:string):integer;
 begin
basamak:=length(s);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
sayi:string;
    begin
sayi:=edit1.Text;
label3.Caption:=inttostr(basamak(sayi)) + ' ' + 'Basamaktan Oluşmaktadır';
end;
 
procedure TForm1.Button2Click(Sender: TObject);
 begin
halt;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
 begin
edit1.Text:='';
edit1.SetFocus;
label3.Caption:='';
end;
end.
Çalışma Şekli
 
   
 
                                   Burda İse Klavyeden Girdiğimiz Herhangi Bir Karakterin Kaç Karakter Olduğunu Bulur.Temizle Buton İse Edit Ve Labeli Sıfırlar.Çıkış İse Programdan Çıkmak İçin Kullanılır.
 
5.Soru=Girilen 2 Sayı Arasındaki Tam Sayıları Toplayan Programı Functionda Yapınız.
 
Şekli
 
               
 
Kodları
 
procedure TForm1.Button1Click(Sender: TObject);
    var
a,b:integer;
top:real;
Function fak(x,y:integer; var t:real):real;
     var
i:integer;
 begin
if (x>y) Or (x=y) then showmessage('1.Sayı 2.Sayıdan Büyük Veya Eşit Olamaz')
else
For i:=x+1 to y-1 do
      t:=t+i;
end;
       begin
     a:=strtoint(edit1.Text);
     b:=strtoint(edit2.Text);
fak(a,b,top);
     label4.Caption:=floattostr(top);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
    begin
edit1.Text:='';
edit1.SetFocus;
edit2.Text:='';
label4.Caption:='';
end;
 
procedure TForm1.Button2Click(Sender: TObject);
   begin
halt;
end;
end.
 
 
 
Çalışma Şekli
 
  
 
Burda İse Girilen 2 Sayının Arasından Tam Sayıların Toplamı Bulmaktadır.Temizle Butonu İse Editleri Ve Label’i Sıfırlar.Çıkış İse Programdan Çıkmak İçin Kullanılır.
 
 
 
6.Soru=Soru Klavyeden Girilen Sayının Karesini Hesaplayan Programı Function'da Yapınız.
 
 
Şekli
 
        
 
 
Kodları
 
           procedure TForm1.Button2Click(Sender: TObject);
     begin
edit1.Text:='';
label4.Caption:='';
           end;
 
procedure TForm1.Button3Click(Sender: TObject);
     begin
halt;
end;
 
 
 
procedure TForm1.Button1Click(Sender: TObject);
    var
x:integer;
sonuc:real;
Function kare(a:integer; var s:real):real;
begin
 s:=a*a;
end;
         begin
 x:=strtoint(edit1.Text);
     kare(x,sonuc);
                     label4.Caption:=floattostr(sonuc);
 end;
end.
 
 
 
 
 
 
 
 
 
Çalışma Şekli
 
 
                
 
    
                                 Burda Girilen Sayının Karesini Bulmaktadır.Temizle İse Edit Ve Labeli Sıfırlar.Çıkış İse Programdan Çıkmak İçin Kullanılır.
 
 
7.Soru=Girilen Sayıyı Binlik Hale Çevirme Programını Function Yapınız.
 
 Şekli
 
           
 
 
 
Kodları
 
function Binlik(s:Double):string;
 begin
result:=FormatFloat('#,#',s);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
 begin
Edit2.Text:=Binlik(StrToFloat(Edit1.text));
end;
 
procedure TForm1.Button3Click(Sender: TObject);
    begin
 halt;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
   begin
edit1.Text:='';
edit1.SetFocus;
Edit2.Text:='';
end;
end.
 
 
 
 
 
 
 
 
 
 
 
 
Çalışma Şekli
 
             
 
          Burada İse Bir Sayı Değeri Girdikten Sonra Çevir Butonuna Tıkladıktan Sonra Binlik Değere Çevirir. Temizle Butonu İse Editleri Sıfırlar.Çıkış İse Progamdan Çıkmak İçin Kullanılır.
 
 
 
8.Soru=Girilen Sayının Tek Ve Çift Olan Sayılarını Toplayan Programı Functionda Yapınız.
 
Şekli
 
 
 
Kodları
 
Function tek(n:integer; var top:integer):integer;
     var
k:integer;
 begin top := 0;
For k := 1 To n do
    if k Mod 2 = 1 Then
top := top + k ;
end;
 
Function cift(n:integer; var toplam:integer):integer;
    var
k:integer;
 begin toplam := 0;
For k := 1 To n do
     If k Mod 2 = 0 Then
toplam := toplam + k;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
    var
x:integer;
son:integer;
sonuc:integer;
 begin
    x:=strtoint(edit1.text);
            tek(x,son);
           cift(x,sonuc);
label1.caption:= inttostr(son);
label2.caption:= inttostr(sonuc);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
        begin
edit1.Text:='';
edit1.SetFocus;
label1.Caption:='';
label2.Caption:='';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
    begin
halt;
end;
end.
 
 
Çalışma Şekli
 
                        
 
    Bu Son Örnekte İse Klavyeden Girdiğimiz Sayıları Tek Ve Çift   Diye Kendi İçinde Ayırdıktan Sonra Tek Sayıların Ayrı Çift Sayıların Toplanmış Haline Bulur. Temizle  Butonu  İse  Edit  Ve  Labelleri  Sıfırlar. Çıkış İse Program Çıkmak İçin Kullanılır.





Bu sayfa hakkında yorum ekle:
İsmin:
Mesajınız:

 
  Bugün 3 ziyaretçi (25 klik) kişi burdaydı!