![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Янычар |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
короче написал прогу, которая очень хорошо удаляет слово, кторое повторяется в тексте три раза, но надо чтобы программа могла удалить сколько уугодно слов, которые встречаются в ней три раза, подскажите что в нее добаввить для этого, а вот и она сама:
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 Пол: Мужской Репутация: ![]() ![]() ![]() |
Проще заново написать чем в чужом коде разобраться тем более без коментариев совсем.
предлагаю алгоритм: Берёш слово (выделяешь в переменную стринг) и дальше по тексту сканишь находиш такоеже запоминаешь координату и тд до конца текста если к концу текста совподений >3 то удаляеш с символы с запомнинных позиций столько штук сколько букв в слове. потом перходишь к следующему слову т. до конца текста. |
Bokul |
![]()
Сообщение
#3
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Sam0784, уточню: удалять надо с конца, чтобы не повлиять на индексы.
Например:
если ты удалишь сначала первою 'б' (индекс - 3), то индекс 9 будет указывать не на 'б', а на пробел. P.S. Янычар, пользуйся тегами! Сообщение отредактировано: Bokul - 2.01.2007 19:54 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Янычар |
![]()
Сообщение
#4
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 115 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
мне надо чтобы вы мне сказали как сделать так чтобы мой цикл с постусловием повторялся хотя бы несколько раз с той же самойй строкой
|
volvo |
![]()
Сообщение
#5
|
|||
Гость ![]() |
Цитата короче написал прогу, которая очень хорошо удаляет слово, кторое повторяется в тексте три раза Да? А может, расскажешь, как НАМ это посмотреть? Я, например, ввел строку: "aha uhu aha haha aha hehe wow" - и программа намертво зависла... Что я делаю не так?
|
|||
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:19 |