|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 1
|
[Pascal] problema somma vettori. attenzione e complicato!
sono giorni che mi scervello: ho tentato di scrivere un programma che faccia somme di numeri con molte cifre semplicemente caricando due array e facendo i conti in colonna. il problema è che sputa fuori risultati come "10-78" anche se gli chiedo esplicitamente con un writeln una variabile intera. ecco il programma:
program somma_vettori; uses EmptyPlaceHolderUnit; var add1,add2:string[50]; var ad1,ad2,sum:array[0..50]of integer; var i,x:integer; var esc:char; function myint(mychar:char):integer; begin myint:=ord(mychar)-48; end; begin for i:=0 to 50 do write('-'); for i:=0 to 6 do writeln; repeat write('a='); readln(add1); write('b='); readln(add2); (*---- Caricamento vettori---*) x:=length(add1); for i:=0 to x do begin ad1[i]:=myint(add1[i]); end; (*---control---*) writeln; for i:=x downto 0 do write(ad1[i]); writeln; (*---end control---*) x:=length(add2); for i:=0 to x do begin ad2[i]:=myint(add2[i]); end; if length(add1)>length(add2) then x:=length(add1); writeln('a+b='); (*----- Somma-----*) for i:=x downto 0 do begin sum[i]:=ad1[i]+ad2[i]; if sum[i]>9 then begin sum[i]:=sum[i]-10; ad1[i-1]:=ad1[i-1]+1; end; end; for i:=x downto 0 do write(sum[i]); writeln; write('Ancora? [S/N]'); readln(esc); until (esc='n')or(esc='N'); end. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:05.



















