program TextovySoubor; {$APPTYPE CONSOLE} //program: 4. uloha : 28. Vytvorte program, ktery ze vstupniho textoveho //souboru cte text. Na kazdem radku textoveho souboru je jedna veta. Slova ve //vete jsou oddelena jednou nebo vice mezerami. Program vytiskne zadany text, //vypocte prumerny pocet slov ve vete a vytiskne vsechny vety, ktere maji //vetsi pocet slov nez je prumerny pocet. function ZjistiPocetSlovVeVete(s:string):integer; var VeSlove:boolean; i,ps:integer; begin ps:=0; VeSlove:=false; for i:=1 to length(s) do begin if s[i] = ' ' then VeSlove:=false else if not VeSlove then begin inc(ps); VeSlove:=true; end; ZjistiPocetSlovVeVete:=ps;
const MaxVet=30; var f:text; i,PocetVet,PocetVsechSlov:integer; PoleVet:array[1..MaxVet] of string; PoctySlov:array[1..MaxVet] of integer; PrumernyPocetSlov:real; begin writeln('Nalezeni vet, ktere maji pocet slov vetsi nez prumerny.'); writeln('********************************************************'); assign(f,'data.txt'); reset(f); PocetVet:=0;PocetVsechSlov:=0; // načtení souboru while not eof(f) do begin inc(PocetVet); readln(f,PoleVet[PocetVet]); end; // vytištìní souboru writeln('Zadany text:'); writeln; for i:=1 to PocetVet do writeln(PoleVet[i]); writeln; // vypočet průmerného počtu slov for i:=1 to PocetVet do begin PoctySlov[i]:=ZjistiPocetSlovVeVete(PoleVet[i]); PocetVsechSlov:=PocetVsechSlov+PoctySlov[i];
PrumernyPocetSlov:=PocetVsechSlov/PocetVet; // tisk výsledku writeln('Prumerny pocet slov ve vete: ',PrumernyPocetSlov:3:1); writeln; writeln('Vety, ktere maji vetsi pocet slov nez je prumer:'); for i:=1 to PocetVet do if PoctySlov[i]>PrumernyPocetSlov then writeln(PoleVet[i]); readln; end.
program TextovySoubor2; {$APPTYPE CONSOLE} //program : 4. uloha : 21. //Vytvorte program, ktery ze vstupniho souboru cte text slozeny z vet ukonce- //nych teckou. Slova ve vete jsou oddelena jednou nebo vice mezerami. Program //vytiskne zadany text, zjisti pocet slov zacinajicich samohlaskou a je-li //jich vice nez slov zacinajicich souhlaskou vytiskne je, jinak vytiskne //vsechna slova zacinajici souhlaskou. const MaxSlov=200; var f:text; zn:char; s:string; PoleSlov:array[1..MaxSlov] of string[20]; VeSlove,ViceSamohlasek:boolean; Oddelovace,Samohlasky:set of char; i,PocetSlov, PocetSlovZacinajicichSamohlaskou,PocetSlovZacinajicichSouhlaskou:integer; begin writeln('Zjisteni zda je vice slov zacinajicich na samohlasku nebo souhlasku.'); writeln('*************************************************************** *****'); writeln; writeln('Zadany soubor:');
// načtení slov assign(f,'data2.txt'); reset(f); for i:=1 to MaxSlov do PoleSlov[i]:=''; VeSlove:=false; Oddelovace:=[' ','.',',',#13,#10]; while not eof(f) do begin read(f,zn); write(zn); if zn in Oddelovace then VeSlove:=false else begin if not VeSlove then begin VeSlove:=true; inc(PocetSlov); end; PoleSlov[PocetSlov]:=PoleSlov[PocetSlov]+zn; end writeln;writeln;
// zpracování slov Samohlasky:=['a','e','i','o','u','A','E','I','O','U']; PocetSlovZacinajicichSamohlaskou:=0; PocetSlovZacinajicichSouhlaskou:=0; for i:=1 to PocetSlov do begin if PoleSlov[i][1] in Samohlasky then inc(PocetSlovZacinajicichSamohlaskou) else inc(PocetSlovZacinajicichSouhlaskou); end; if PocetSlovZacinajicichSamohlaskou>PocetSlovZacinajicichSouhlaskou then begin ViceSamohlasek:=true; writeln('Slov zacinajicich na samohlasku je vice') end else begin ViceSamohlasek:=false; writeln('Slov zacinajicich na souhlasku je vice') writeln; writeln('Jsou to slova:'); writeln; for i:=1 to PocetSlov do if (PoleSlov[i][1] in Samohlasky)=ViceSamohlasek then writeln(PoleSlov[i]); readln; end.