Navigace: Hlavní stránka -> PASCAL -> 10 Znaky, texty ->10.10 Součet dvou velkých celých čísel

MENU

10.10 Součet dvou velkých celých čísel

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í