program project1;
var cislo:integer;

procedure nadruhu;
begin
  writeln('Cislo umocnene na druhu je: ',sqr(cislo));
end;

procedure natretiu(zcoho:integer);
var vysl:integer;
begin
  vysl:=zcoho*zcoho*zcoho;
  writeln('Cislo umocnene na tretiu je: ',vysl);
end;

function odmocni(co:integer):real;
var cislo:real;
begin
   if co>=0 then cislo:=sqrt(co)
            else cislo:=-1;
   odmocni:=cislo;
end;

function parita(co:integer):boolean;
begin
   if co mod 2 = 0 then parita:=true
                   else parita:=false;
end;

function zvysok(a:integer; var b:integer):integer;
begin
  zvysok:= a mod b;
  b:=11111;
end;

procedure bonus;

  function ciastocnypodiel(a,b: integer; var z:integer):integer;
  begin
    ciastocnypodiel:=a div b;
    z:= a mod b;
  end;

var druhe, zvysok:integer;
begin
  writeln('kedze si stlacil ine pismenko ako som ti ponukal, urobime si bonus:');
  writeln('k tvojmu cislu ',cislo,' mi este zadaj jedno cislo');
  readln(druhe);
  zvysok:=0;
  writeln('Po vydeleni tvojho prveho cisla druhym dostanes ',ciastocnypodiel(cislo,druhe,zvysok));
  writeln('a zvysok pri deleni je ',zvysok);
end;

var cim, druhe :integer;
    pismenko:char;
    vysledok_odmocnenia:real;
begin
  writeln('Zadaj mi jedno kladne cele cislo');
  readln(cislo);
  if ((cislo<0) or (cislo=0))
    then writeln('asi nevies citat...')
    else
      begin
        writeln('vyber si co s tvojim cislom urobime:');
        writeln('d ... umocnime ho na druhu');
        writeln('t ... umocnime ho na tretiu');
        writeln('o ... odmocnime ho');
        writeln('p ... zistime, ci je parne');
        writeln('z ... zistime, aky zvysok da po deleni niecim');
        readln(pismenko);
        case pismenko of
         'd': nadruhu;
         't': natretiu(cislo);
         'o': begin
                vysledok_odmocnenia:=odmocni(cislo);
                writeln(vysledok_odmocnenia:0:2);
              end;
         'p': if parita(cislo)=true then
                                       begin
                                         writeln('tvoje cislo ',cislo);
                                         writeln('je parne');
                                         writeln('lebo dava nulovy zvysok pri deleni dvoma');
                                       end
                                     else
                                       begin
                                         writeln('tvoje cislo ',cislo);
                                         writeln('je neparne');
                                         writeln('lebo dava zvysok jedna pri deleni dvoma');
                                       end;
         'z': begin
                writeln('cim by si chcel delit?');
                readln(cim);
                writeln('zvysok pri deleni tvojho cisla ',cislo,' pri deleni cislom ',cim, ' je: ',zvysok(cislo, cim),'.');
                writeln('a ked si po funkcii vsimneme co mame v premennej cim = ', cim);
                writeln('vidime, ze doslo k zmene hodnoty delitela - vdaka sposobu definovania funkcie s var parametrom.');
              end;
          else bonus;
        end;

      end;
  readln;

end.