готовые строки, додумайте |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
готовые строки, додумайте |
Янычар |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 115 Пол: Мужской Реальное имя: Александр Репутация: 1 |
короче написал прогу, которая очень хорошо удаляет слово, кторое повторяется в тексте три раза, но надо чтобы программа могла удалить сколько уугодно слов, которые встречаются в ней три раза, подскажите что в нее добаввить для этого, а вот и она сама:
Program celling; var h,p,s,t:string; posite2,posite,prob,m,k,del,fal,del2,fal2,prob2,rrt,nnt,c,w,i,j:integer; begin writeln('enter the length'); readln(h); i:=1; repeat i:=i+1; p:=p+h; repeat prob:=pos(' ',p); s:=copy(p,0,prob-1); posite:=pos(s,h); m:=length(s); t:=t+s; k:=length(t); delete(p,0,prob); c:=length(p); if pos(s,p)<>0 then begin del:=pos(s,p); fal:=del+k; delete(p,-1,fal-1); del2:=pos(s,p); prob2:=pos(' ',p); fal2:=fal+m+prob2; if (del<>0) and (del2<>0) and (posite<>0) then begin delete(h,posite,m); rrt:=pos(s,h); delete(h,rrt,m); nnt:=pos(s,h); delete(h,nnt,m); end; while h[1]=' ' do delete(h,1,1); posite2:=pos(' ',h); while h[length(h)]=' ' do delete(h,length(h),1); end; until c=0; j:=length(p); delete(p,0,j+1); writeln(h); until i=10; end. |
Sam0784 |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: 0 |
Проще заново написать чем в чужом коде разобраться тем более без коментариев совсем.
предлагаю алгоритм: Берёш слово (выделяешь в переменную стринг) и дальше по тексту сканишь находиш такоеже запоминаешь координату и тд до конца текста если к концу текста совподений >3 то удаляеш с символы с запомнинных позиций столько штук сколько букв в слове. потом перходишь к следующему слову т. до конца текста. |
Bokul |
Сообщение
#3
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Sam0784, уточню: удалять надо с конца, чтобы не повлиять на индексы.
Например:
если ты удалишь сначала первою 'б' (индекс - 3), то индекс 9 будет указывать не на 'б', а на пробел. P.S. Янычар, пользуйся тегами! Сообщение отредактировано: Bokul - -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Янычар |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 115 Пол: Мужской Реальное имя: Александр Репутация: 1 |
мне надо чтобы вы мне сказали как сделать так чтобы мой цикл с постусловием повторялся хотя бы несколько раз с той же самойй строкой
|
volvo |
Сообщение
#5
|
|||
Гость |
Цитата короче написал прогу, которая очень хорошо удаляет слово, кторое повторяется в тексте три раза Да? А может, расскажешь, как НАМ это посмотреть? Я, например, ввел строку: "aha uhu aha haha aha hehe wow" - и программа намертво зависла... Что я делаю не так?
|
|||
Текстовая версия | 10.10.2024 18:21 |