![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Real |
![]()
Сообщение
#1
|
Гость ![]() |
![]() |
![]() ![]() |
Bokul |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
А какие могут быть проблемы?
Код var s : строка; i: byte; Begin Берем строку(s); от i:=1 до длина(s) делаем если (i = четное) и (s[i] = 'А') то удаляем(со строки s, в позиции i, 1 элемент); выводим результат; конец. Что не можешь сделать сам? Сообщение отредактировано: Bokul - 19.05.2006 19:39 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата(Bokul @ 19.05.2006 19:33) А какие могут быть проблемы? А очень простые ![]() Вот тебе пример: S := 'fAfAfA'; По строке надо от конца в начало проходить, иначе твой алгоритм идет лесом - при удалении символа в позиции №2 все остальные символы сдвинутся на 1 вправо, и обе оставшиеся буквы 'A' не будут удалены, хотя изначально находились именно на четных позициях... ![]() Кстати, ты можешь в своем алгоритме получить еще одну проблему - длина строки при использовании цикла For вычислится перед началом цикла, и то, что ты будешь изменять длину строки при удалении элементов никак не будет замечено. Результат - возможен выход за пределы строки. |
Bokul |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Спасибо Volvo
![]() Коректируем Код var s : строка; i,len: byte; Begin Берем строку(s); len:=длина(s); от i:=len до 1 делаем {роль "до" - downto} если (i = четное) и (s[i] = 'А') то удаляем(со строки s, в позиции i, 1 элемент); выводим результат; конец. Сообщение отредактировано: Bokul - 19.05.2006 20:00 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
И что ты изменил ? помоему ничего ... кроме направления просмотра строки.
Сообщение отредактировано: klem4 - 20.05.2006 18:47 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Bokul |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Цитата И что ты изменил ? помоему ничего ... кроме направления просмотра строки. ![]() Не только, во-первых, тепер длина строки вычисляется не в цикле. А во-вторых, больше ничего не надо изменять, все и так работает ![]() Вот код этого алгоритма: Код var s:string; i,len:byte; begin writeln('Enter string'); readln(s); len:=length(s); for i:=len downto 1 do if ((i mod 2)=0) and (s[i]='A') then delete(s,i,1); writeln('Result :',s); readln; end. -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Malice |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
И что ты изменил ? помоему ничего ... кроме направления просмотра строки. Точно подмечено ![]() 2Bokul: Length теперь и в for можно ставить - следуя в обратном направлении за пределы строки не вылетишь. Сообщение отредактировано: Malice - 20.05.2006 19:21 |
klem4 |
![]()
Сообщение
#8
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Да я погорячился по ходу, извиняюсь.
Я бы решал так i := 2; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 19:05 |