Zadání:
Sestavte program, který převede zlomek na základní tvar.
Řešení:
Program využívá program 04.25 - hledání největšího společného dělitele. Na začátku programu otestujeme, zda
jmenovatel není nulový. Pokud ano, vytiskneme chybové hlášení. Poté otestujeme čitatel na nulovou hodnotu.
Pokud ji obsahuje, vytiskneme hlášení o nulovém zlomku. Pokud ani jedna zadaná hodnota není nulová, zjistíme
znaménko výsledného zlomku, absolutní hodnotou odstraníme znaménka čitatele i jmenovatele a dalčí část
programu zjistí největší společný dělitel jmenovatele a čitatele. Poté čitatel a jmenovatele vydělíme největším
společným dělitelem a výsledek vytiskneme včetně znaménka.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a,b,c,j,nsd:integer;
znamenko:char;
begin
write('Zadejte citatel: ');
readln(a);
write('Zadejte jmenovatel: ');
readln(b);
if b=0 then writeln('Nelze vypocitat.')
else
if a=0 then writeln('Zlomek v zakladnim tvaru: 0')
else
begin
if a*b<0 then znamenko:='-'
else znamenko:=' ';
c:=abs(a);
j:=abs(b);
while c<>j do
if c>j then c:=c-j
else j:=j-c;
nsd:=c;
c:=abs(a) div nsd;
j:=abs(b) div nsd;
if j=1 then writeln('Zlomek v zakladnim tvaru: ',znamenko,c)
else writeln('Zlomek v zakladnim tvaru: ',znamenko,c,'/',j);
end;
readln;
end.
program ke stažení