Girilen iki basamaklı sayıyı ifade edebilen program kodları

Kodla Büyü

SADETTİN

Seçkin Üye
Seçkin Üye
Mesajlar
334
Girilen iki basamaklı sayıyı ifade eden program kodları buyrun :
Programı indirmek için :


Kod:
procedure TForm1.Button1Click(Sender: TObject);
var
sayi1:integer;
rakam:array[1..9] of string;
i:integer;
m:integer;
begin
sayi1:=StrToInt(Edit1.Text);
edit2.Text:=inttostr(sayi1 div 10);
edit3.Text:= inttostr(sayi1 mod 10);
if (edit3.Text='1') then begin rakam[1]:='bir';m:=1;end;
if (edit3.Text='2') then begin rakam[2]:='iki';m:=2;end;
if (edit3.Text='3') then begin rakam[3]:='üç';m:=3;end;
if (edit3.Text='4') then begin rakam[4]:='dört';m:=4;end;
if (edit3.Text='5') then begin rakam[5]:='beş';m:=5;end;
if (edit3.Text='6') then begin rakam[6]:='altı';m:=6;end;
if (edit3.Text='7') then begin rakam[7]:='yedi';m:=7;end;
if (edit3.Text='8') then begin rakam[8]:='sekiz';m:=8;end;
if (edit3.Text='9') then begin rakam[9]:='dokuz';m:=9;end;
if (edit2.Text='1') and (edit3.Text='0') then edit4.Text:='on';
if (edit2.Text='1') then edit4.Text:='on'+rakam[m];
if (edit2.Text='2') and (edit3.Text='0') then edit4.Text:='yirmi';
if (edit2.Text='2') then edit4.Text:='yirmi'+rakam[m];
if (edit2.Text='3') and (edit3.Text='0') then edit4.Text:='otuz';
if (edit2.Text='3') then edit4.Text:='otuz'+rakam[m];
if (edit2.Text='4') and (edit3.Text='0') then edit4.Text:='kırk';
if (edit2.Text='4') then edit4.Text:='kırk'+rakam[m];
if (edit2.Text='5') and (edit3.Text='0') then edit4.Text:='elli';
if (edit2.Text='5') then edit4.Text:='elli'+rakam[m];
if (edit2.Text='6') and (edit3.Text='0') then edit4.Text:='altmış';
if (edit2.Text='6') then edit4.Text:='altmış'+rakam[m];
if (edit2.Text='7') and (edit3.Text='0') then edit4.Text:='yetmiş';
if (edit2.Text='7') then edit4.Text:='yetmiş'+rakam[m];
if (edit2.Text='8') and (edit3.Text='0') then edit4.Text:='seksen';
if (edit2.Text='8') then edit4.Text:='seksen'+rakam[m];
if (edit2.Text='9') and (edit3.Text='0') then edit4.Text:='doksan';
if (edit2.Text='9') then edit4.Text:='doksan'+rakam[m];
end;
 

Ekli dosyalar

  • programsayikelime.rar
    166.3 KB · Görüntüleme: 37
  • sayikelimesi.png
    sayikelimesi.png
    30.6 KB · Görüntüleme: 1,522
Sayın hocam, dizi kavramını kullanmak dururken bu kadar kendinizi yormaya ne gerek vardı.
Ayrıca Delphi artık demode oldu, C# üzerine yoğunlaşmanız tavsiye olunur.
 
Hocam dizi olarak nasıl bir algoritma olur? Merak ettim. C# de çözümü sizden bekliyorum.
 
Delphi'de nasıl ifade edilir bilmiyorum C# için
Kod:
int sayi =25;
string[] birler = {"sıfır", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz"};
string[] onlar = {"", "on",  "yirmi", "otuz", "kırk", "elli", "atmış", "yetmiş", "seksen", "doksan"};
int birlerbas = sayi % 10;
int onlarbas = sayi / 10;
string yaziyla = onlar[onlarbas] + birler[birlerbas];
Label1.Text = yaziyla;
Sayın hocam, daha büyük sayılarda sayı 10'a bölünmek yerine sayı metne dönüştürülüp, basamaklar tek tek alınarak yine dizilerle işlem yapılabilir.
Ayrıca aşağıdaki excel'de yazılmış bir fonksiyon var ki 15 basamağa kadar sayıları yazıya çevirebiliyor.
Kod:
Private Function Cevir(SayiStr As String) As String
    Dim Rakam(15)
    Dim c(3), Sonuc, e
    
    Birler = Array("", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz")
    Onlar = Array("", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan")
    Binler = Array("trilyon", "milyar", "milyon", "bin", "")
    
    SayiStr = String(15 - Len(SayiStr), "0") + SayiStr
    
    For i = 1 To 15
      Rakam(i) = Val(Mid$(SayiStr, i, 1))
    Next i
    
    Sonuc = ""
    For i = 0 To 4
      c(1) = Rakam(i * 3 + 1)
      c(2) = Rakam(i * 3 + 2)
      c(3) = Rakam(i * 3 + 3)
      If c(1) = 0 Then
        e = ""
      ElseIf c(1) = 1 Then
        e = "yüz"
      Else
        e = Birler(c(1)) + "yüz"
      End If
      e = e + Onlar(c(2)) + Birler(c(3))
      If e <> "" Then e = e + Binler(i)
      If (i = 3) And (e = "birbin") Then e = "bin"
      Sonuc = Sonuc + e
    Next i

    If Sonuc = "" Then Sonuc = "00"
    
    Cevir = UCase(Mid(Sonuc, 1, 1)) + Mid(Sonuc, 2, Len(Sonuc) - 1)
End Function
 
yakuphan' Alıntı:
Delphi'de nasıl ifade edilir bilmiyorum C# için
Kod:
int sayi =25;
string[] birler = {"sıfır", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz"};
string[] onlar = {"", "on",  "yirmi", "otuz", "kırk", "elli", "atmış", "yetmiş", "seksen", "doksan"};
int birlerbas = sayi % 10;
int onlarbas = sayi / 10;
string yaziyla = onlar[onlarbas] + birler[birlerbas];
Label1.Text = yaziyla;

Eline sağlık hocam. Ben de console olarak senin programını editledim.
Kod:
            int sayi ;
            Console.WriteLine("sayi gir");
            sayi = Convert.ToInt32(Console.ReadLine());
            string[] birler = { "sıfır", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz" };
            string[] onlar = { "", "on", "yirmi", "otuz", "kırk", "elli", "atmış", "yetmiş", "seksen", "doksan" };
            int birlerbas = sayi % 10;
            int onlarbas = sayi / 10;
            string yaziyla = onlar[onlarbas] + birler[birlerbas];
            Console.WriteLine("sayımız : " + yaziyla);
            Console.Read();
 
Delphide hazırladığım hocamdam destek alarak aşağıdaki kodları paylaşayım.
Kod:
procedure TForm1.Button1Click(Sender: TObject);
var
sayi,birlerbas,onlarbas:integer;
birler:array[0..9] of string[20];
onlar :array[0..9] of string[20];
begin
birler[0]:=' ';
birler[1]:='bir';
birler[2]:='iki';
birler[3]:='üç';
birler[4]:='dört';
birler[5]:='beş';
birler[6]:='altı';
birler[7]:='yedi';
birler[8]:='sekiz';
birler[9]:='dokuz';
onlar[0]:=' ';
onlar[1]:='on ';
onlar[2]:='yirmi';
onlar[3]:='otuz';
onlar[4]:='kırk';
onlar[5]:='elli';
onlar[6]:='altmış';
onlar[7]:='yetmiş';
onlar[8]:='seksen';
onlar[9]:='doksan';
sayi:=Strtoint(edit1.Text);
onlarbas:=sayi div 10;
birlerbas:=sayi mod 10;
label1.Caption:=onlar[onlarbas]+birler[birlerbas];
end;
 
Delphide aşağıdaki kodu bu şekilde çeviren kod var mı acaba paylaşırsanız sevirim.
Kod:
string[] birler = {"sıfır", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz"};
 
Geri
Üst