Podprogram - součet cifer

21. 2. 2014 00:00

Při řešení tohoto podprogramu budeme využívat lekce č. 12 - podprogramy. Program, který budeme vytvářet získá na vstupu nějaké celé číslo, které rozdělí na jednotlivé cifry a poté dané cifry sečte. K tomuto použijeme funkci DIV a MOD, které číslo budou rozdělovat. Div je funkce pro celočíselně dělení, která vrací část před desetinnou čárkou a mod je funkce celočíselného dělení, která vrací zbytek. Použijeme podprogram typu funkce, který nám vrátí hodnotu a tu poté zobrazíme.

Program soucetcif;
 
Uses CRT;
Var zjisti:integer;
    c: char;
 
function cifer(cislo:integer):integer;
begin
   cifer:= 0;
   repeat
      if cislo <> 0
      then
      begin
        cislo:= ABS(cislo);
        cifer:= cifer + (cislo mod 10);
        cislo:= cislo DIV 10;
      end;
   until cislo = 0;
end;
 
 
begin
 
clrscr;
 
repeat
   write('Zadejte cislo pro zjisteni ciferneho souctu: ');
   readln(zjisti);
   writeln('Cislo ', zjisti, ' ma ciferny soucet ', cifer(zjisti));
 
   writeln('');
   writeln('================================================================================');
   writeln('Chcete skoncit? ');

V další lekci se podíváme na možnost kořenového ciferného součtu