IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача по проверке слов в предложении., Проблема в выделении слова из текста.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Здравсвуйте.
Есть такая задача.
Вводится строка. Требуется в ней перебрать все слова и проверить их на что-то. Другими словами вычленить слова из строки.
Сначала забивал все слова из строчки в (array [1..n] of string) - все было отлично. Теперь препод хочет что бы я забивал каждое слово в другую строку и проверял ее. Вот не пойму, как сразу в цикле перебора строки получать слово , записывать его в перем. типа string , затем проверять(ну это все под контр-ем), а затем сбрасывать и снова записывать очередное слово...
Может кто сталкивался.
Заранее огромное спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Цитата(kost85)
Теперь препод хочет что бы я забивал каждое слово в другую строку и проверял ее. Вот не пойму, как сразу в цикле перебора строки получать слово , записывать его в перем. типа string , затем проверять(ну это все под контр-ем), а затем сбрасывать и снова записывать очередное слово...

Давай посмотрим что у тебя..
Ты используешь алгоритм repeat .. until. Теперь посмотри, что у тебя получилось:
var S,word:string;
i,j: integer;
begin
clrscr;
write('Sentence>> : ');
readln(S);
repeat
repeat
if s[1] = ' ' then delete(s,1,1);{<<---Зачем? Ведь ты не чистил строку!}
until s[1] <> ' ';
if s <> '' then
if pos(' ',s) > 0 then word := copy(s,1,pos(' ',s)-1) {<<---Допустим..Но получается бесконечный цикл, ведь строка не отчищается!Он берет ближайший пробел!}
else word := s; {<<---И тут тоже..Досюда в твоем и не дойдет..}
{вот мы получили наше слово и далее здесь же можем делать
с ним чё хочешь, любые условия ставить и т.д}
{При повторение цикла на этом этапе мы будем получать очередное слово в предложение} {<<---Да ну?}
until S = ''; {<<----И когда она по-твоему становится пустой?}
end;


Раз взялся драть s так и делай:
var S,word:string;
i,j: integer;
begin
write('Sentence>> : ');
readln(S);
repeat
repeat
if s[1] = ' ' then delete(s,1,1);
until s[1] <> ' ';
if s <> '' then begin
if pos(' ',s) > 0 then begin
word := copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s)-1);
end;
if pos(' ',s) = 0 then begin
word := s; s:='';
end;
end;
{вот мы получили наше слово и далее здесь же можем делать
с ним чё хочешь, любые условия ставить и т.д}
{При повторение цикла на этом этапе мы будем получать очередное слово в предложение}
until S = '';
readln


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.12.2022 5:09
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name