Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program SzamBetuvel;
- {$mode objfpc}{$H+}
- uses SysUtils;
- const
- Egyesek: array[0..9] of string = ('','egy','kettő','három','négy','öt','hat','hét','nyolc','kilenc');
- Tizesek: array[0..9] of string = ('','tíz','húsz','harminc','negyven','ötven','hatvan','hetven','nyolcvan','kilencven');
- Extra: array[0..2] of string = ('','tizen','huszon');
- function szazas(szam:integer):string;
- var
- tmp: string;
- begin
- if szam>999 then
- begin
- Result:='#';
- exit;
- end;
- tmp:='';
- case Length(IntToStr(szam)) of
- 1: Result:=Egyesek[szam];
- 2: begin
- if (((szam div 10)=1) or ((szam div 10)=2)) and (szam-((szam div 10)*10)<>0) then tmp:=Extra[szam div 10]
- else tmp:=Tizesek[szam div 10];
- Result:=tmp+Egyesek[szam-((szam div 10)*10)];
- end;
- 3: begin
- tmp:=Egyesek[szam div 100]+'száz';
- if (((szam-((szam div 100)*100)) div 10) in [1,2]) and (((szam-((szam div 100)*100)) mod 10)>0) then tmp:=tmp+Extra[((szam-((szam div 100)*100)) div 10)]
- else tmp:=tmp+Tizesek[((szam-((szam div 100)*100)) div 10)];
- Result:=tmp+Egyesek[((szam-((szam div 100)*100)) mod 10)];
- end;
- end;
- end;
- function SzambolBetu(szam:longint): string;
- var
- tmpstr: string='';
- tmpint: integer=0;
- tmpszam: longint=0;
- begin
- if szam=0 then
- begin
- Result:='nulla';
- exit;
- end;
- tmpszam:=szam;
- if Length(IntToStr(tmpszam))>9 then
- begin
- Result:='A szám túl nagy';
- exit;
- end;
- tmpint:=tmpszam div 1000000;
- if tmpint<>0 then
- begin
- tmpstr:=tmpstr+szazas(tmpint);
- if szam mod 1000000 > 0 then tmpstr:=tmpstr+'millió - '
- else
- begin
- Result:=tmpstr+'millió';
- exit;
- end;
- end;
- tmpszam:=tmpszam-(tmpint*1000000);
- tmpint:=tmpszam div 1000;
- if tmpint<>0 then
- begin
- tmpstr:=tmpstr+szazas(tmpint);
- if (szam > 2000) and (tmpszam mod 1000 <> 0) then tmpstr:=tmpstr+'ezer - '
- else
- begin
- tmpstr:=tmpstr+'ezer';
- if tmpszam mod 1000 = 0 then
- begin
- Result:=tmpstr;
- exit;
- end;
- end;
- end;
- tmpszam:=tmpszam-(tmpint*1000);
- tmpstr:=tmpstr+szazas(tmpszam);
- Result:=tmpstr;
- end;
- begin
- writeln(SzambolBetu(1234553));
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement