Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2008, 11:53   #1
Noxil
Пользователь
 
Регистрация: 30.10.2008
Сообщений: 22
По умолчанию Количество предложений в тексте

С помощью текстового редактора создать файл, содержащий текст, длина кото¬рого не пре-вышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT. Написать программу, которая:
- выводит текст на экран дисплея;
- определяет количество предложений текста и количество слов в каждом предложении


Прогу я набрасал, но почему-то не считается кол-во предложений. Посмотрите, что не так:

Код:
var
p,d,i,k:integer;
s:string;
f:text;
begin
 assign(f,'test.dat');
 reset(f);
 while not EOF(f) do
  begin
   readln (f,s);
   writeln(s);
  end;
 i:=1;
 k:=0;
 while not EOF(f) do
  begin
  if s[i]='.' then
   k:=k+1;
   inc(i);
 close(f);
 end;
 writeln('Кол-во предложений: ',k);
 readln;
 end.
Noxil вне форума Ответить с цитированием
Старый 25.12.2008, 12:10   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
var
p,d,i,k:integer;
s:string;
ch:char;
f:text;
begin
 assign(f,'c:\test.dat');
 reset(f);
 while not EOF(f) do
  begin
   readln (f,s);
   writeln(s);
  end;
  close(f);
 i:=1;
 k:=0;
  assign(f,'c:\test.dat');
 reset(f);
 while not EOF(f) do
  begin
  read(f,ch);
  if ch='.' then
   k:=k+1;
  end;
  close(f);
 writeln('Кол-во предложений: ',k);
 readln;
 end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 25.12.2008, 15:23   #3
Noxil
Пользователь
 
Регистрация: 30.10.2008
Сообщений: 22
По умолчанию

спс.
Что-то не получается найти кол-во слов:
Код:
var
p,d,i,k:integer;
s:string;
ch:char;
f:text;
begin
 assign(f,'test.dat');
 reset(f);
 while not EOF(f) do
  begin
   readln (f,s);
   writeln(s);
  end;
  close(f);
 i:=1;
 k:=0;
  assign(f,'test.dat');
 reset(f);
 while not EOF(f) do
  begin
  read(f,ch);
  if ch='.' then
   k:=k+1;
  end;
For i:= i to length (s) do
 begin
p:=1; {счетчик слов}
While s[i]<>'.' do
  begin
if s[i]=' ' then
inc(p);
 end;
 end;
close(f);
 writeln('Кол-во предложений: ',k);
 writeln('Кол-во слов ',p);
 readln;
 end.
Noxil вне форума Ответить с цитированием
Старый 25.12.2008, 15:49   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
var
p,d,i,k:integer;
s:string;
ch:char;
f:text;
begin
 assign(f,'test.dat');
 reset(f);
 while not EOF(f) do
  begin
   readln (f,s);
   writeln(s);
  end;
  close(f);
 i:=1;
 k:=0;
  assign(f,'test.dat');
 reset(f);
 while not EOF(f) do
  begin
  read(f,ch);
  if ch='.' then
   k:=k+1;
  end;
///Вот здесь конец файла. Что у Вас хранится при этом в s???

For i:= i to length (s) do
 begin
p:=1; {счетчик слов}
While s[i]<>'.' do
  begin
if s[i]=' ' then
inc(p);
 end;
 end;
close(f);
 writeln('Кол-во предложений: ',k);
 writeln('Кол-во слов ',p);
 readln;
 end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 25.12.2008, 16:14   #5
Askar_g
под кайфом
Пользователь
 
Аватар для Askar_g
 
Регистрация: 21.12.2008
Сообщений: 41
По умолчанию поправьте

Цитата:
Сообщение от alex_fcsm Посмотреть сообщение
Код:
var
p,d,i,k:integer;
s:string;
ch:char;
f:text;
begin
 assign(f,'test.dat');
 reset(f);
 while not EOF(f) do
  begin
   readln (f,s);
   writeln(s);
  end;
  close(f);
 i:=1;
 k:=0;
  assign(f,'test.dat');
 reset(f);
 while not EOF(f) do
  begin
  read(f,ch);
  if ch='.' then
   k:=k+1;
  end;
///Вот здесь конец файла. Что у Вас хранится при этом в s???

For i:= i to length (s) do
 begin
p:=1; {счетчик слов}
While s[i]<>'.' do
  begin
if s[i]=' ' then
inc(p);
 end; <-------------------------у меня почему то тормозит на этой строке
 end;
close(f);
 writeln('Кол-во предложений: ',k);
 writeln('Кол-во слов ',p);
 readln;
 end.
вввввввввввв
  • Как-то одного программиста спросили, а потом горько пожалели об этом.
Askar_g вне форума Ответить с цитированием
Старый 25.12.2008, 16:27   #6
Noxil
Пользователь
 
Регистрация: 30.10.2008
Сообщений: 22
По умолчанию

Как определить кол-во слов в каждом предложении?
Noxil вне форума Ответить с цитированием
Старый 25.12.2008, 16:49   #7
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Пример для одного предложения

Код:
uses crt;
var s,sub:string;
    i,n:integer;

begin
clrscr;
writeln('Input str');
readln(s);
i:=0;n:=0;
repeat
inc(i);
if (s[i]=' ')and(s[i+1]<>' ') then begin
                   inc(n);
                   end
else if (s[i]<>' ')and(s[i]<>'.') then sub:=sub+s[i];
until i=length(s);
if sub<>'' then
inc(n);
writeln(n);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 25.12.2008, 17:55   #8
Noxil
Пользователь
 
Регистрация: 30.10.2008
Сообщений: 22
По умолчанию

С одним предложением проблем нет. Я вот не могу сделать, чтобы для каждого предложения показывало кол-во слов
Noxil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество цифр и количество символов до первой гласной буквы 111111 Общие вопросы C/C++ 2 22.12.2008 12:15
посчитать количество предложений и вывести случайное dymych Общие вопросы C/C++ 0 21.11.2008 14:28
Поиск предложений varvara16 Общие вопросы Delphi 4 11.09.2008 09:33
Число перемен знака в массиве. Количество слов в тексте. Pascal. Cartman18 Помощь студентам 1 10.12.2007 12:58
подсчитать количество символов слов и предложений nev Помощь студентам 4 09.06.2007 21:22