Program zamieniający ułamek zwykły na dziesiętny
Kod źródłowy:
uses crt;{lub wincrt;}
var dz:double;
licznik,mianownik:longint;
function NWD(a,b:longint):longint;
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
NWD:=a;
end;
procedure zwykly(dzie:double;var licz,mian:longint);
var pom,l,m:double;
i:byte;
nw:longint;
begin
l:=dzie;
m:=1;
while(int(l)<>l)do
begin l:=l*10;m:=m*10;end;
licz:=trunc(l);
mian:=trunc(m);
nw:=NWD(licz,mian);
licz:=round(licz/nw);
mian:=round(mian/nw);
end;
begin
Writeln('Program zamienia ulamek dziesietny na zwykly.');
writeln('Podana wartosc zawierac sie musi miedzy 0..1');
writeln('Liczba ma miec max 5 cyfr po przecinku');
write('Podaj wartosc ulamka w formie dziesietnej : ');readln(dz);
if (dz>=1)or(dz>0.99999)then
begin
writeln('Bledne dane !!!');
readkey;
halt;
end;
zwykly(dz,licznik,mianownik);
writeln;
writeln('Ulamek zwykly to :');
writeln('Licznik : ',licznik);
writeln('Mianownik : ',mianownik);
readkey;
end.
Komentarze
Prześlij komentarz