![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Kumpi |
![]()
Сообщение
#1
|
Гость ![]() |
Нада сложить 2а числа в троичной симметричной системе, а числа заданны символьным типом данных..Помогите пожалуйста!
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Смотри:
const Теперь о том, что творится если сумма не равна 0... Тогда возможны такие комбинации: 1а) s = 1 ==> в результат добавляется 1, перенос = 0 1б) s = -1 ==> в результат добавляется -1, перенос = 0 2а) s = 2 ==> в результат пишем -1, переносим 1 (то есть, отнимаем 1, добавляем 3; в итоге +2) 2б) s = -2 ==> в результат пишем 1, переносим -1 (прибавляем 1, отнимаем 3; итого -2) 3а) s = 3 ==> в результат пишем 0, переносим 1 3б) s = -3 ==> в результат пишем 0, переносим -1 Как видим, все результаты и переносы для разнознаковых сумм тоже имеют разный знак, поэтому вместо того, чтобы описывать массив sum[-3 .. 3], я сделал его от 1 до 3, и если сумма отрицательная, то я просто меняю знак для ch и p... (изменение знака достигается умножением на s div abs(s), что будет содержать 1 если S > 0, и -1 если S < 0)... В качестве теста: 73у + 73у = "+-+" + "+-+" = "+---" = 33 - 32 - 31 - 30 = 27 - 9 - 3 - 1 = 143у Вопросы? Сообщение отредактировано: volvo - 5.06.2008 15:57 |
![]() ![]() |
![]() |
Текстовая версия | 12.08.2025 13:13 |