Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Работа с файлами 3

Автор: @^WARlock^@ 14.08.2006 12:53

Подскажите.

Будем считать, что предложением является любая последовательность символов, начиная пробелом и заканчивающаяся точкой, восклицательным или вопросительным знаком. Напишите программу, которая определяет кол-во предложений и кол-во слов в текстовом файле.

Я составил задачу, она вроди бы находит кол-во предложений, а принахождении кол-ва слов
она не работает :

Код
uses crt;
var
t,k,i:integer;
f:text;
n:string;
begin clrscr;
assign (f,'c:\1.txt');
reset(f);
read(f,n);
for i:=1 to length(n) do
if (n[i]=' ') and ((n[i-1]='.') or (n[i-1]='!') or (n[i-1]='?')) then
t:=t+1;
{for i:=1 to length(n) do        
if (n[1]=' ') or ((n[i-1])=' ') then    
k:=k+1;                                    
writeln('iscomih slov: ',k);
writeln;}
writeln('iskomih predlog: ',t);
readln;
close(f);
end.

Автор: volvo 14.08.2006 15:20

Цитата(@^WARlock^@ @ 14.08.2006 8:53)
Я составил задачу, она вроди бы находит кол-во предложений
Да? А если будет больше одной строки в файле?

uses crt;
var
t, k, i: integer;
f: text;
n: string;
begin
clrscr;
assign (f,'1.txt');
reset(f);
while not eof(f) do begin

readln(f,n);
for i:=1 to length(n) do
if n[i] in ['.', '!', '?'] then inc(t)
else if ((i > 1) and (n[i] = ' ') and
not(n[i-1] in ['.', '!', '?', ' '])) then inc(k);

end;
writeln('iskomih predlog: ',t, ' slov: ', k+t);
readln;
close(f);
end.