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:
Solo che mi da errore di runtime... sarà che non ho capito le procedure (dato che non saprei dove inserire la costante)?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.


)
Rispondi quotando