![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
/7popok |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
это программка перевода из десятичной системы счисления в троичную уравновешенную, но меня смущает её размер. можно ли её реализовать другим путём, чтобы она занимала меньше строк? мне кажется, она должна быть меньше, но я не допираю, куда ещё меньше.
|
![]() ![]() |
/7popok |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Реальное имя: Игорь Репутация: ![]() ![]() ![]() |
до этого не смотрел, но тем не менее тот вариант не работает с отрицательными десятичными числами.
а мой работает. просто подскажите, можно ли его как-нибудь ещё укоротить. Сообщение отредактировано: /7popok - 11.02.2007 20:28 |
hardcase |
![]()
Сообщение
#3
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
до этого не смотрел, но тем не менее тот вариант не работает с отрицательными десятичными числами. а мой работает. просто подскажите, можно ли его как-нибудь ещё укоротить. Цитата изменение знака числа на противоположный осуществляется простой заменой всех 1 на 1 и наоборот тот же код, что привёл volvo, но добавлена проверка на отрицательность. ![]() Код var n, ost: integer; s: string; plus: string; plusminus: string; begin write('n = '); readln(n); if n >= 0 then begin plus := '+'; plusminus := '+-'; end else begin plus := '-'; plusminus := '-+'; n := -n; end; s := ''; while n >= 3 do begin ost := n mod 3; case ost of 0: s := '0' + s; 1: s := plus + s; 2: s := plusminus + s; end; n := n div 3; end; case n of 0: s := '0' + s; 1: s := plus + s; 2: s := plusminus + s; end; writeln('s(3) = ', s); end. -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 13:40 |