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

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

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

> Помогите решить задачку на строки
wary
сообщение 19.10.2006 21:34
Сообщение #1


Новичок
*

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

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


Условие: Дана строка символов. Дано слово (например "окно"). Удалить из заданной изначально строки слово "окно"

Алгоритм решения, который я придумал:

1. Определяем как константу слово "окно" (slovo_okno)
2. Вводим произвольную строку (st1)
3. Курабасим в цикле строку (st1) и выявляем в ней слово "окно"
4. Удаляем выявленно слово "окно"
5. Выводим на экран то что осталось от строки (st1)

Поскольку я новичок в паскале, немного трудновато с описание п.3 и п.4.

Если не трудно подскажите код как их описать, а также замечания по алгоритму.

Заранее всем спасибо! huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Bokul
сообщение 20.10.2006 1:20
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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


 var s,word:string; b:boolean; buf:byte;
begin
writeln('Enter string');
readln(s);
writeln('Enter word');
readln(word);
b:=true;
if s=word then
s:=''
else
repeat
if copy(s,1,length(word)+1)=word+' ' then
delete(s,1,length(word));
if copy(s,length(s)-length(word),length(word)+1)=' '+word then
delete(s,length(s)-length(word)+1,length(word));
buf:=pos(' '+word+' ',s);
if buf<>0 then
delete(s,buf+1,length(word))
else
b:=false;
until b=false;
writeln('Result :');
writeln(s);
readln;
end.


Сообщение отредактировано: volvo - 3.11.2006 18:32


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 12.08.2025 8:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"