Ho provato a fare un piccolo programmino in pascal per console(codando con il delphi 6.0) che faccia la somma tra due frazioni e riduca la somma ai minimi termini facendo delle semplificazioni; il tutto dovrebbe sfruttare le procedure (è un compito che il prof di programmazione ci ha assegnato per esercitarci a casa )
Supponendo che le frazioni siano di questo tipo
num1/den1 + num2/den2, il codice che ho usato è questo:
codice:
{$APPTYPE CONSOLE}
program somma;
var num1, den1, num2, den2, numnew, dennew, maxcd, ris1, ris2: longint;
procedure addizione(var in1,in2,in3,in4,out1,out2 : longint);
begin
out1:=in2*in4;
out2:=(in1*in4)+(in2*in3);
end;
procedure mcd(var in5,in6,out3,out4,out5: longint);
begin
out4:=in5;
out5:=in6;
out3:=in5 mod in6;
while out3 > 0 do
begin
in5:=in6;
in6:=out3;
out3:=in5 mod in6;
end;
out4:=out4 div out3;
out5:=out5 div out3;
end;
begin
writeln('Calcolo della somma di due numeri frazionari');
writeln('Scrivi le frazioni inserendo solo i numeri:');
read(num1);
read(den1);
read(num2);
read(den2);
writeln('Eseguo...');
addizione(num1,den1,num2,den2,numnew,dennew);
mcd(numnew,dennew,maxcd,ris1,ris2);
writeln('La somma è pari a',ris1,'\',ris2);
readln;
end.
Solo che mi da errore di runtime... sarà che non ho capito le procedure (dato che non saprei dove inserire la costante)?