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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2013, 22:36   #1
nazar113
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 5
По умолчанию Дано текст состоящий из предложений

Дано текст состоящий из предложений Предложение начинается с большой буквы и заканчивается точкой. Определите количество предложений в тексте.

помогите написать на паскалє. сам никак
nazar113 вне форума Ответить с цитированием
Старый 15.01.2013, 22:44   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
c:=0;
txt:=txt+' ';
For i:=1 to Length(txt)-1 do
if (txt[i]='.') and (txt[i+1]<>'.') then inc(c);
writeln(c);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 16.01.2013 в 08:39.
Mad_Cat вне форума Ответить с цитированием
Старый 16.01.2013, 00:14   #3
nazar113
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 5
По умолчанию

а как с начала описать текст?
nazar113 вне форума Ответить с цитированием
Старый 16.01.2013, 08:24   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

кстати.
во-первых, в приведённом выше фрагменте ошибка (выход за пределы массива:
Цитата:
Код:
to Length(txt)...
txt[i+1]
во-вторых, зачем проверять многоточие, если об этом не сказано?
в-третьих, если уж проверять, так проверять корректно.

Цитата:
а как с начала описать текст?
неужели всё так плохо?

Код:
var txt : string;
begin
   WriteLn('Введите текст: ');
   Readln(txt);
....
p.s. при таком подходе будет обработана одна строка текста. Если нужно больше - то либо построчно вводите текст, либо помещайте текст в текстовый файл и читайте оттуда..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.01.2013, 20:03   #5
nazar113
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 5
По умолчанию

посмотрите пожалуйста еще раз. что здесь не так. просто я с текстом в паскале никогда не работал. спасибо

Код:
program z1;
uses crt;
var
txt : string ;
c : integer;
i : integer;
begin
clrscr;
   WriteLn('vvedit texst ');
   Readln(txt);
c:=0;
txt:=txt+' ';
For i:=1 to Length(txt) do
if (txt[i]='.') and (txt[i+1]<>'.') then inc(c);
writeln(c);
end.

Последний раз редактировалось nazar113; 16.01.2013 в 20:05.
nazar113 вне форума Ответить с цитированием
Старый 16.01.2013, 21:21   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну, я бы написал так:
Код:
For i:=1 to Length(txt)-1 do
if (txt[i]='.') and (txt[i+1]<>'.') then inc(c);
но в целом, выглядит нормально. должно работать.
Вас что-то смущает?
В конце ещё добавьте ReadLn;, чтобы программа сразу не закрывалась, ждала нажатия Enter.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.01.2013, 02:23   #7
nazar113
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 5
По умолчанию

все работает .. спасибо
nazar113 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текст, состоящий из букв и пробелов, слова разделяются пробелом. Поменять первую и вторую букву каждого слова. danteone Помощь студентам 6 21.05.2012 12:31
вектор, состоящий из обьектов класса sinestro Visual C++ 3 20.04.2012 15:07
Поиск предложений (C#) Dimfn Помощь студентам 0 30.05.2010 16:21
Ввести одномерный массив, состоящий из 10 элементов zergon Помощь студентам 3 24.12.2009 21:34
Поиск предложений varvara16 Общие вопросы Delphi 4 11.09.2008 09:33