{ 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.