program infalkbe; type zongesmsh=(a,b,c,d,kamuelem); {Konkret ertekkel: betu -> ascii} zongetlenmsh=(e,f,g); const max=600; var zgsmsh: set of zongesmsh; zgtlnmsh: set of zongetlenmsh; db:array[0..255] of integer; betudb,szodb,sordb:integer; szo,sor:integer; hossz:array[1..max] of integer; procedure szamol; var k:char; szf:text; function szonakvege(c:char):boolean; begin szonakvege:=(c=''); end; procedure fajta; begin assign(szf,'c:\1\file.txt'); reset(szf); while not(eof(szf)) do begin read(szf,k); inc(db[ord(k)]); inc(betudb); {case ord(k) of 1..20: begin end; - pl. zongesseg szerinti gyujtes lenne 20..40: begin end; 40..60: begin end; end;} if k='' then inc(hossz[sordb]); {enter?} writeln(' ',k,' ',db[ord(k)]); {if (szonakvege(k)=true) then inc(hossz[szodb]); space} end; close(szf); end; procedure minden; begin reset(szf); while not(eof(szf)) do begin while not(eoln) do begin read(szf,k); if ord(k)<>32 then inc(hossz[szo]); {az egybefuggo szavakat szamlalja} if ord(k)=32 then inc(szo); inc(szodb); {veszi a kovetkezo szot} end; inc(sor); inc(sordb); end; {for sor:=1 to sordb do begin betudb:=betudb+hossz[sor]; - A betudb ellenorzesere end;} end; begin fajta; minden; end; procedure kiir; var f:text; i:integer; szoatlag:integer; begin assign(f,'c:\1\ossz.txt'); rewrite(f); write(f,'Az osszes sor: '); writeln(f,sordb); write(f,'A sorok hossza (sor/db szo'); for i:=1 to sordb do begin write(f,i); write(f,' - '); writeln(f,hossz[sor]); end; {write(f,'A sorok atlagos hossza: '); writeln(f,(szodb div sordb));} write(f,'A szavak hossza: (szo/hossz)'); for i:=1 to szodb do begin write(f,i); write(f,' - '); writeln(f,hossz[szo]); end; write(f,'A szavak atlagos hossza: '); for i:=1 to szodb do begin szoatlag:=szoatlag+hossz[szo] end; szoatlag:=(szoatlag div szodb); writeln(f,szoatlag); write(f,'Az szovegben levo betuk, ABC-szerint, Pl: betu(db)'); for i:=34 to 255 do begin write(f,chr(i)); write(f,' '); write(f,'['); write(f,db[i]); write(f,']'); write(f,' , '); if ((i mod 3)=0) then writeln(f,''); end; end; procedure foprogram; var i:integer; begin betudb:=0; sor:=0; sordb:=0; szodb:=0; szo:=0; for i:=1 to 255 do db[i]:=0; szamol; kiir; writeln('Az eredmenyek az "ossz.txt" file-ban vannak'); end; begin foprogram; end.