![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Анжелика |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 35 Пол: Женский Реальное имя: Анжелика Репутация: ![]() ![]() ![]() |
Ребят, у меня есть еще одно задание. Помогите мне понять его: все слова, которые не содержат заданной подстроки, заменить на «[censored]». Это обозначает, что я должна найти слова, потом помотреть есть ли в нем подстрока, причем слово должно быть больше подстроки, а потом если такая подстрока не нашлась в слове, то его надо заменить на «[censored]»? Я правильно поняла. Если нет, то укажите на ошибки.
|
![]() ![]() |
Анжелика |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 35 Пол: Женский Реальное имя: Анжелика Репутация: ![]() ![]() ![]() |
Ребят, скажите, что у меня не так. результат не такой какой нужен. как избавиться от смещения индексов. Вот программа:
Код uses crt; const delimiter = [#32, ',', '.', '!', ':']; type wrd_info = record start, len: byte; end; function get_words(s: string; var words: array of wrd_info): integer; var count: integer; i, curr_len: byte; begin count := -1; i := 1; while i <= length(s) do begin while (s[i] in delimiter) and (i <= length(s)) do inc(i); curr_len := 0; while not (s[i] in delimiter) and (i <= length(s)) do begin inc(i); inc(curr_len); end; if curr_len > 0 then begin inc(count); with words[count] do begin start := i - curr_len; len := curr_len end; end; end; get_words := count + 1; end; const max_word = 255; var words: array[1 .. max_word] of wrd_info; i, n: integer; s,p,h:string; begin clrscr; Write('Vvedite glavnuu stroku'); readln(s); Write('Vvedite podstroku'); readln(h); n := get_words(s, words); for i := 1 to n do if pos(h, copy(s, words[i].start, words[i].len)) = 0 then begin delete(s,words[i].start, words[i].len); insert('[consored]', s,words[i].start); end; writeln(s); end. |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 8:27 |