Podprogram - symetričnost čísla

21. 2. 2014 00:00

Při řešení tohoto podprogramu budeme využívat lekce č. 12 - podprogramy. Symetričnost čísla nebo také palindrom je číslo, které lze číst zleva i zprava stejně -> 202, 15951, ... Náš podprogram vytvoříme tak, že celé číslo převrátím a porovnáme. Pokud se čísla budou shodovat, naše číslo je palindromem. Opět použijeme funkce DIV a MOD pro rozdělení čísla na cifry. Při tom si také ukážeme možnost jen pro převrácení čísla.

Převrácení (podprogram)

function prevrat(cislo:integer):integer;
var zapor:boolean;
begin
   prevrat:= 0;
   if cislo <> 0
   then
   begin
      if cislo < 0
      then
      begin
         zapor:= true;
         cislo:= Abs(cislo);
      end
   else
      zapor:= false;
 
   repeat
      prevrat:= (prevrat * 10) + (cislo mod 10);
      cislo:= cislo DIV 10;
      until cislo = 0;
   end
   else
   begin
      zapor:= false;
      prevrat:= 0;
   end;
 
   if zapor = true
   then
      prevrat:= -prevrat;
end;

Symetričnost (podprogram)

function symetricka(cislo:integer):string;
var a, prevrat:integer;
begin
   prevrat:= 0;
   a:= 0;
   if cislo <> 0
   then
   begin
      cislo:= abs(cislo);
      symetricka := 'Ne neni symetricke';
      a:= cislo;
      repeat
         prevrat:= (prevrat * 10) + (cislo mod 10);
         cislo:= cislo DIV 10;
      until cislo = 0;
   end
   else
   begin
      a:= 1;
      prevrat:= 1;
   end;
 
   if a = prevrat
   then
      symetricka:= 'Ano, je symetricke.'
   else
      symetricka := 'Ne, neni symetricke.';
end;

V další lekci vytvoříme menu pro tyto podprogramy