Dze je subor www.TrSek.com/zadania/pole_cis.pas
{ POLE_CIS.PAS              Copyright (c) TrSek alias Zdeno Sekerak }
{ Je dany textovy subor f, ktoreho prvky su cele cisla. Urcite      }
{ - pocet vsetkych parnych prvkov v subore f                        }
{ - pocet vsetkych prvkov, ktore su druhymi mocninami neparnych cisel}
{ - pocet vsetkych prvkov, ktore su dvojnasobkom neparnych cisel    }
{                                                                   }
{ Datum:23.05.2004                             http://www.trsek.com }

program pole_cisel;

var f:text;
    pom:real;
    cislo:integer;
    pc:integer;   { pocet parnych }
    po:integer;   { pocet ktore su druhymi mocninami neparnych }
    pd:integer;   { pocet ktore su dvojnasobkom neparnych      }

{ Urci ci je cislo parne/neparne }
function JeNeparne(cislo:integer):boolean;
begin
  if(round(cislo/2)=cislo/2)then
     JeNeparne:=false
  else
     JeNeparne:=true;
end;


begin
  WriteLn('Spracujem textovy subor ktory obsahuje cisla.');
  WriteLn('Spracujem subor Pole_cis.txt');

  Assign(f, 'Pole_cis.txt');
  ReSet(f);

  { znuluje pocitadla }
  pc:=0;
  po:=0;
  pd:=0;

  while not Eof(F) do
  begin
    ReadLn(f, cislo);

    { test je neparne }
    if( JeNeparne(cislo)) then inc(pc);

    { test je mocninou neparneho }
    pom:=sqrt(cislo);
    if( int(pom)=pom) and (JeNeparne(trunc(pom))) then inc(po);

    { test je dvojnasobkom neparnych }
    pom:=cislo/2;
    if( int(pom)=pom) and (JeNeparne(trunc(pom))) then inc(pd);

  end;

  Close(f);

  { vysledok }
  WriteLn('Pocet neparnych cisel v subore je:',pc);
  WriteLn('Pocet cisel ktore su druhymi mocninami neparnych cisel je:',po);
  WriteLn('Pocet cisel ktore su dvojnasobkom neparnych cisel je:',pd);
  ReadLn;
end.

Copyrigth by Zdeno Sekerak 2007, http://www.trsek.com