1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
program somme;
uses wincrt;
var
aa,ch1,ch2,a:string;
procedure lecture (var aa:string);
var
n,e:integer;
begin
repeat
readln(aa);
val(aa,n,e);
until (e=0)
end;
procedure ajout(var ch1 :string;var ch2:string);
begin
if length(ch1) < length(ch2) then repeat ch1:= '0'+ch1 until length(ch1) = length(ch2)
else begin repeat ch2 := '0' + ch2 until length(ch1) = length(ch2) end;
end;
function diff (ch1, ch2:string ):string;
var
c,chdif:string;
n1,n2,i,e1,e2,n,aux:integer;
begin
chdif:='';
aux:=0;
for i := length(ch1) downto 1 do begin
val(ch1[i],n1,e1);
val(ch2[i],n2,e2);
n2:=n2 + aux ;
if (n1>n2) then begin n:=n1 - n2;
aux :=0 ;
end
else begin n:= (n1 + 10 ) - n2 ;
aux :=1 ;
end;
str(n,c);
chdif:=c+chdif;
end;
diff:=chdif;
end;
begin
lecture(ch1);
lecture(ch2);
ajout(ch1,ch2);
a:=diff(ch1,ch2);
end. |
Partager