1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Анжелика |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 35 Пол: Женский Реальное имя: Анжелика Репутация: 0 |
Ребят, у меня есть еще одно задание. Помогите мне понять его: все слова, которые не содержат заданной подстроки, заменить на «[censored]». Это обозначает, что я должна найти слова, потом помотреть есть ли в нем подстрока, причем слово должно быть больше подстроки, а потом если такая подстрока не нашлась в слове, то его надо заменить на «[censored]»? Я правильно поняла. Если нет, то укажите на ошибки.
|
![]() ![]() |
| Анжелика |
Сообщение
#2
|
|
Новичок ![]() Группа: Пользователи Сообщений: 35 Пол: Женский Реальное имя: Анжелика Репутация: 0 |
Ребят, скажите, что у меня не так. результат не такой какой нужен. как избавиться от смещения индексов. Вот программа:
Код 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. |
Анжелика Строки, подстроки. 19.12.2005 0:54
klem4 1) Разбиваешь строку на слова : Разбиение строки н… 19.12.2005 0:59
Анжелика
После этого идешь по массиву и проверяешь
Все … 19.12.2005 1:03
klem4 Ну тогда не надо заносить слова в массив !;) Д… 19.12.2005 1:05
volvo
А там, извини, есть алгоритм разбиения (конкретно… 19.12.2005 2:02
volvo :yes2: Стандартная ошибка... Нужно проходить по с… 29.12.2005 3:17![]() ![]() |
|
Текстовая версия | 6.11.2025 20:38 |