Díky moc za rady. Právě jsem úspěšně doprogramoval a funguje to. Ještě jednou díky.
Příspěvky odeslané z IP adresy 188.134.220.–
alex
alex
ať se snažím sebe víc, vždycky skončím na první větě a dál nevím jak to udělat abych pokračoval na druhé a dalších větách v souboru. Mohli by jste mi poradit?
Procedure VypisVet;
var
soubor:text;
pocets, pocet,:integer;
znak:char;
vetsiveta:string;
assign(soubor,'c:/text.txt');
reset(soubor);
while not eof(soubor) do
begin
read (soubor, znak);
write(znak);
if znak = '.' then
begin vetsiveta:=vetsiveta+'.';
break
end
else
vetsiveta:=vetsiveta+znak;
if ((znak>='0') and (znak<='9')) or ((znak>='A') and (znak<='z')) then
pocet:=pocet+1
else
begin
if pocet>0 then
pocets:=pocets+1;
pocet:=0;
end;
end;
close(soubor);
if pocet>0 then pocets:=pocets+1;
writeln;
writeln(vetsiveta,' ',pocets);
alex
Dobrý den, potřebuji poradit s tímto zadáním:
{Zadani: Vytvorte program, ktery ze vstupniho souboru cte text slozeny z vet ukoncenych teckou.
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.}
Všechno až na zobrazení vět s počtem slov větším než průměr, budu tedy rád za každou radu a nakopnutí.
program zadani8;
uses crt;
Procedure Zobrazeni;
var
soub:text;
vypis:string;
begin
{zobrazeni textoveho souboru}
writeln('Nacteny soubor obsahuje tento text: ');
writeln(' ');
assign (soub,'C:\text.txt');
reset(soub);
while not EOF(soub) do
begin
readln(soub,vypis);
writeln(vypis);
end;
close(soub);
writeln(' ');
end;
Procedure PrumPocSlov;
const
konecVety=['.'];
konecSlova=[' '];
var
soubor:text;
pocetVet, pocetSlov:integer;
znak:char;
pps:real;
begin
assign (soubor,'C:\text.txt');
reset (soubor);
pocetVet:=0;
pocetSlov:=0;
znak:=' ';
while not EOF(soubor) do
begin
if EOLN(soubor) then
begin
readln(soubor);
znak:=' ';
end
else if not EOF(soubor) then
begin
if not (znak in (konecSlova+konecVety)) then
begin
while not (znak in (konecSlova+konecVety)) and not (EOF(soubor)) and not (EOLN(soubor)) do read(soubor,znak);
Inc (pocetSlov);
end;
if znak in konecVety then
Inc(pocetVet);
while (znak in (konecSlova+konecVety)) and not (EOF(soubor)) and not (EOLN(soubor)) do read (soubor,znak);
end;
end;
close(soubor);
{vypis statistiky souboru}
pps:=(pocetSlov/pocetVet);
writeln('Pocet vet: ',pocetVet);
writeln('Pocet slov: ',pocetSlov);
writeln('Prumerny pocet slov ve vete: ', pps:0:1);
end;
Procedure ZobrazeniVet;
begin
writeln('Vety, ktere maji vetsi pocet slov nez je prumerny pocet: ');
end;
{hlavni program}
begin
clrscr;
Zobrazeni;
PrumPocSlov;
ZobrazeniVet;
readln;
end.