Podprogram - kořenový 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 je téměř stejný jako předchozí. V programu použijeme jednu z úžasných možností programování. Podprogram bude volat sám sebe, ale jen s jinými hodnotami.

Program ciferkor;  
Uses CRT;
Var zjisti:integer;
    c: char;
 
function ciferkor(cislo:integer):integer;
begin
   ciferkor:= 0;
   repeat
      if cislo <> 0
      then
      begin
        cislo:= ABS(cislo);
        ciferkor:= ciferkor + (cislo mod 10);
        cislo:= cislo DIV 10;
      end;
   until cislo = 0;
 
   if ciferkor > 9
   then
      ciferkor:=ciferkor(ciferkor);
end;
 
begin
 
clrscr;
 
write('Vita vas program podprogramy, ktery byl vytvoren jako nazorna ukazka prace s');
writeln('podprogramy. Lze si vybrat z peti typu podprogramu pomoci menu.');
repeat
         write('Zadejte cislo pro zjisteni korenoveho ciferneho souctu: ');
         readln(zjisti);
         writeln('Cislo ', zjisti, ' ma korenovy ciferny soucet ', ciferkor(zjisti));
   writeln('');
   writeln('================================================================================');
   writeln('Chcete skoncit? ');
   readln(c);
 
until upcase(c) = 'A';
end.