Zadání:
Sestavte program, který sečte dvě celá velká čísla.
Řešení:
Program po zadání dvou celých čísel otestuje pomocí příkazu IF, které z obou čísel je kratší a pomocí cyklu FOR
ho doplní zleva nulami na délku druhého čísla.
Poté program pomocí cyklu FOR prochází obě čísla zprava, převede každý znak na číslo, sečte tato čísla, přičte k nim
přenos, výsledek převede na znak a přidá ho zleva k výsledku. Poté vypočte přenos do vyššího řádu.
Na konci programu se výsledek vytiskne.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var c1,c2,v:string;
i:integer;
z1,z2,prenos,s:byte;
begin
write('Zadejte prvni cislo: ');
readln(c1);
write('Zadejte druhe cislo: ');
readln(c2);
if length(c1)>length(c2) then
for i:=1 to length(c1)-length(c2) do
c2:='0'+c2
else
for i:=1 to length(c2)-length(c1) do
c1:='0'+c1;
prenos:=0;
v:='';
for i:=length(c1) downto 1 do
begin
z1:=ord(c1[i])-ord('0');
z2:=ord(c2[i])-ord('0');
s:=z1+z2+prenos;
v:=chr((s mod 10)+ord('0'))+v;
prenos:=s div 10;
end;
if prenos=1 then v:='1'+v;
writeln('Vysledek: ',v);
readln;
end.
program ke stažení