Z textového súboru ktorý obsahuje iba celé čísla

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Kategória: Zadania Pascal

Program: Pole_cis.pas
Súbor exe: Pole_cis.exe
Potrebné: Pole_cis.txt

Z textového súboru ktorý obsahuje iba celé čísla. Určí počet párnych čísel, ktoré su druhými mocninami nepárnych čísel, a čísel ktoré sú dvojnásobkom nepárnych čísel.
{ 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.