Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
Type
TForm1 = Class(TForm)
Topla : TButton; // Form üzerine bir buton koyun ve adını Topla yapın
Sayi_1 : TEdit; // Form üzerine bir Edit koyun ve adını Sayi_1 yapın
Sayi_2 : TEdit; // Form üzerine bir Edit koyun ve adını Sayi_2 yapın
Sonuc : TLabel; // Form üzerine bir Label koyun ve adını Sonuc yapın
Procedure ToplaClick(Sender:TObject);
Function Hesapla(Sayi_1,Sayi_2:String):String;
Function FormatString(Yazi:String):String;
Function WriteOutput(Rakam:Integer):String;
Function RemoveExcessZeros(Yazi:String):String;
Private
Public
End;
Var
Form1 : TForm1;
Sayi : String;
Implementation
{$R *.dfm}
Function TForm1.Hesapla(Sayi_1,Sayi_2:String):String;
Var
Birinci_Sayi : Array[1..100] Of Char;
Ikinci_Sayi : Array[1..100] Of Char;
Sayi_1_Uzunlugu : Integer;
Sayi_2_Uzunlugu : Integer;
x,y,z : Integer;
Deger_1,Deger_2 : Integer;
Alt_Toplam : Integer;
Yazi_1 : String;
Yazi_2 : String;
Ara_Toplam : Integer;
Yazi_3 : String;
Begin
Result:='';
Sayi:='';
Yazi_3:='';
Sayi_1_Uzunlugu:=0;
Sayi_2_Uzunlugu:=0;
Deger_1:=0;
Deger_2:=0;
Alt_Toplam:=0;
Sayi_1:=FormatString(Sayi_1);
Sayi_2:=FormatString(Sayi_2);
Sayi_1_Uzunlugu:=Length(Sayi_1);
Sayi_2_Uzunlugu:=Length(Sayi_2);
Yazi_1:='';
Yazi_2:='';
Yazi_1:=Sayi_1;
Yazi_2:=Sayi_2;
For x:=100 DownTo 1 Do Birinci_Sayi[x]:=Yazi_1[x];
For y:=100 DownTo 1 Do Ikinci_Sayi[y]:=Yazi_2[y];
Ara_Toplam:=0;
For z:=100 DownTo 1 Do
Begin
Deger_1:=StrToInt(Birinci_Sayi[z]);
Deger_2:=StrToInt(Ikinci_Sayi[z]);
Alt_Toplam:=Deger_1+Deger_2;
If Ara_Toplam>0 Then Begin
Alt_Toplam:=Alt_Toplam+Ara_Toplam;
Ara_Toplam:=0;
End;
If Alt_Toplam>9 Then Begin
Ara_Toplam:=0;
Yazi_3:='';
Ara_Toplam:=Alt_Toplam;
Yazi_3:=IntToStr(Alt_Toplam);
Result:=WriteOutput(StrToInt(Yazi_3[2]));
Ara_Toplam:=StrToInt(Yazi_3[1]);
End
Else Result:=WriteOutput(Alt_Toplam);
End;
Result:=RemoveExcessZeros(Result);
End;
Function TForm1.FormatString(Yazi:String):String;
Var
Hane_No : Integer;
Begin
Result:='';
For Hane_No:=1 To 100-Length(Yazi) Do Yazi:='0'+Yazi;
Result:=Yazi;
End;
Function TForm1.WriteOutput(Rakam:Integer):String;
Begin
Result:='';
Sayi:=IntToStr(Rakam)+Sayi;
Result:=Sayi;
End;
Function TForm1.RemoveExcessZeros(Yazi:String):String;
Var
Yeni_Yazi : String;
Load : Boolean;
Hane_No : Integer;
Begin
Result:='';
Yeni_Yazi:='';
Load:=False;
For Hane_No:=1 To Length(Yazi) Do
Begin
If Yazi[Hane_No]<>'0' Then Load:=True;
If Load=False Then Begin
If Yazi[Hane_No]<>'0' Then Load:=True;
End
Else Yeni_Yazi:=Yeni_Yazi+Yazi[Hane_No];
End;
Result:=Yeni_Yazi;
End;
Procedure TForm1.ToplaClick(Sender: TObject);
Begin
Sonuc.Caption:=Hesapla(Sayi_1.Text,Sayi_2.Text);
End;
End.
// Kolay gelsin.
//
// Hakan HAMURCU
//
// hakan@hamurcu.com