Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mybook11.05.12.doc
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Задача 11 Троичная сбалансированная система счисления

Троичная сбалансированная система счисления — это нестандартная позиционная система счисления. Основание системы равно , однако она отличается от обычной троичной системы тем, что цифрами являются . Поскольку использовать для одной цифры очень неудобно, то обычно принимают какое-то специальное обозначение. Условимся здесь обозначать минус единицу буквой .

Например, число в троичной сбалансированной системе записывается как , а число — как . Троичная сбалансированная система счисления позволяет записывать отрицательные числа без записи отдельного знака "минус". Троичная сбалансированная система позволяет дробные числа (например, записывается как ).

Алгоритм перевода

Научимся переводить числа в троичную сбалансированную систему.

Для этого надо сначала перевести число в троичную систему.

Ясно, что теперь нам надо избавиться от цифр , для чего заметим, что , т.е. мы можем заменить двойку в текущем разряде на , при этом увеличив следующий (т.е. слева от него в естественной записи) разряд на . Если мы будем двигаться по записи справа налево и выполнять вышеописанную операцию (при этом в каких-то разрядах может происходить переполнение больше , в таком случае, естественно, "сбрасываем" лишние тройки в старший разряд), то придём к троичной сбалансированной записи. Как нетрудно убедиться, то же самое правило верно и для дробных чисел.

Более изящно вышеописанную процедуру можно описать так. Мы берём число в троичной системе счисления, прибавляем к нему бесконечное число , а затем от каждого разряда результата отнимаем единицу (уже безо всяких переносов).

Зная теперь алгоритм перевода из обычной троичной системы в сбалансированную, легко можно реализовать операции сложения, вычитания и деления — просто сводя их к соответствующим операциям над троичными несбалансированными числами.

системысчислениязадачи

К оглавлению

Строки

Опр. Строка – последовательность (цепочка) символов.

Для строк, как и для символьных данных, применимы операция объединения строк (конкатенация) и операции сравнения. Из двух символов больше тот, у которого больше код в таблице кодов ASCII. При сравнении двух строк сравниваются последовательно символы этих строк, начиная с первого. Если символы, стоящие на одном и том же месте не совпадают, то больше та строка, у которой больше код символа. Если все символы первой строки совпадают с первыми символами второй строки и вторая строка имеет большую длину, чем первая, то вторая строка больше.

Объявление строк:

  1. var S : string ; строка длиной 255 cимволов.

  2. var S : string [10] ; строка заданной длины 10.

При объявлении используются и другие разделы (type и const).

Пример:

  • const Month0 : string [10] = ‘January’; типизированная константа Month0 type Month : string [10] ; тип пользователя Month var Mon1, Mon2 : Month ;

Day_of_week : string [12] ; длина строки не более 12 символов

S:string; длина строки не более 255 символов

Обращение к символу строки – S [i], где S- имя строки, i-номер символа. Нумерация символов в строке начинается с 1 (в S[0] помещается длина строки, то есть length(s)=s[0]).

Пустая строка S:=’’; имеет длину равную нулю.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]