Язык RL (II)
Часть 2. Унарная и бинарная арифметика.
1.
Написать функцию, дающую ответ
TRUE, если ее аргумент представляет собой унарную запись некоторого числа, и ответ
FALSE в противном случае.
2.
Описать функцию"число термов в выражении", используя унарное представление результата.
3.
Описать функцию сложения двух чисел в этом представлении (корректность записи чисел должна проверяться).
В следующих задачах если это специально не оговаривается, корректность чисел можно не проверять.
4.
Описать функцию умножения двух чисел в этом представлении.
5.
- Описать функцию «усеченного» вычитания (если вычитаемое больше уменьшаемого, то получается 0)
- Описать функцию, дающую значение TRUE, если первый аргумент меньше или равен второму, и FALSE, если первый аргумент больше второго.
6.
Описать функции нахождения частного и остатка от деления
- две разных программы,
- одну, выдающую ответ в виде (частное)(остаток)).
7.
Наряду с унарной записью можно пользоваться бинарной (двоичной), используя буквы
O,
I как
цифры 0, 1. Описать функции преобразования
- из унарной системы в бинарную
- наоборот.
Выполните в двоичной системе (без перевода в унарную!)
8.
Проверку корректности записи числа.
9.
Сложение.
10.
- усечённое вычитание.
- сравнение.
11*.
Умножение (произведение десятизначных чисел должно вычисляться за разумное время).
12*.
Деление с остатком (Две разные функции, или одна, которая даёт ответ в виде (частное)(остаток).
13*.
Возведение в степень.
Следующие задачи можно решить на выбор в унарной или двоичной системе
14.
Описать функцию подсчета числа скобок в выражении, используя унарную запись результата.
15.
- описать функцию проверки простоты числа в унарной записи. (Результат TRUE или FALSE)
- разложить натуральное число на простые множители
16.
Описать функцию «n-ое число Фибоначчи» .