Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 20, 2010 22:21:12

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста

maxwell
caesar('xyz', 1) должен возвращать ‘yza’, а не следующие символы по ASCII.
А почему бы и нет?
В любом случае придётся выбирать таблицу символов, так почему бы не воспользоваться стандартной?
(Кстати, варьируя ((char + X)%Y) легко можно выбрать в ASCII нужный диапазон ;))

maxwell
Для «обучения» не обязательно писать все в одну строчку, тем более что это напрочь отбивает понимание «эффективности» программы.
Для обучения вообще не стоит давать решения :)
А если и давать то такие которые требуют для своего разбора больше труда чем для самостоятельного написания :) :)

maxwell
остаток от деления на 255 не дает «правильного» решения.
Насколько помню модульную арифметику - таки даёт.

maxwell
В случае с русскими символами работать вообще не будет.
С чего вдруг?
На DOS-терминале вообще будет работать без проблем. На UTF-8 тоже… но результат может не соответствовать ожиданиям :)



Отредактировано (Сен. 20, 2010 22:26:16)

Офлайн

#2 Сен. 20, 2010 23:20:31

maxwell
От:
Зарегистрирован: 2008-08-26
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста

knkd,

А почему бы и нет?
В любом случае придётся выбирать таблицу символов, так почему бы не воспользоваться стандартной?
(Кстати, варьируя ((char + X)%Y) легко можно выбрать в ASCII нужный диапазон ;))
Да, алфавит нужен, но я детям даю конкретное задание — используя ASCII получить «правильный Цезарь», т.е. именно поворот алфавита.
((char + X)%Y) — не получится варьировать.

Для обучения вообще не стоит давать решения :)
А если и давать то такие которые требуют для своего разбора больше труда чем для самостоятельного написания :) :)
Ну, если сложность разбора заключается в использовании специфических конструкций, которые ничего общего с программированием не имеют, то вы абсолютно правы.

Насколько помню модульную арифметику - таки даёт.
Модуль 255 дает числовой диапазон от 0..254, но это не относится к задаче.

И я не горю желанием лезть в чужой монастырь.



Офлайн

#3 Сен. 21, 2010 00:49:07

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста

maxwell
Модуль 255 дает числовой диапазон от 0..254
упс… :)

maxwell
используя ASCII получить «правильный Цезарь», т.е. именно поворот алфавита.
Дык ASCII это ведь тоже алфавит. И мы его прибавлением по модулю поворачиваем.

maxwell
тем более что это напрочь отбивает понимание «эффективности» программы.
Если уж говорить за эффективность - за конкатенацию в цикле нужно бить по пальцам линейкой :)
Мне этого когда-то никто не сказал и я долго думал почему всё так медленно работает.
Какой глубинный смысл в джойне из одного элемента - науке тоже неизвестно.



Отредактировано (Сен. 21, 2010 01:02:04)

Офлайн

#4 Сен. 21, 2010 10:40:18

maxwell
От:
Зарегистрирован: 2008-08-26
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста

knkd, я нигде и не утверждал, что то решение хорошее :)

Остается надеется, что автор еще зайдет в этот топик и прочитает все что было написано после 7го ответа. ;)



Офлайн

#5 Сен. 21, 2010 12:50:32

ArsenEverlast
От:
Зарегистрирован: 2010-09-20
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста

все прочитал, не переживайте :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version