RL 2

Язык RL (II)

Часть 2. Унарная и бинарная арифметика.


1.
Написать функцию, дающую ответ TRUE, если ее аргумент представляет собой унарную запись некоторого числа, и ответ FALSE в противном случае.


2.
Описать функцию"число термов в выражении", используя унарное представление результата.


3.
Описать функцию сложения двух чисел в этом представлении (корректность записи чисел должна проверяться).


В следующих задачах если это специально не оговаривается, корректность чисел можно не проверять.


4.
Описать функцию умножения двух чисел в этом представлении.


5.

  1. Описать функцию "усеченного" вычитания (если вычитаемое больше уменьшаемого, то получается 0)
  2. Описать функцию, дающую значение TRUE, если первый аргумент меньше или равен второму, и FALSE, если первый аргумент больше второго.

6.
Описать функции нахождения частного и остатка от деления

  1. две разных программы,
  2. одну, выдающую ответ в виде (частное)(остаток)).

7.
Наряду с унарной записью можно пользоваться бинарной (двоичной), используя буквы O, I как 
цифры 0, 1. Описать функции преобразования

  1. из унарной системы в бинарную
  2. наоборот.

Выполните в двоичной системе (без перевода в унарную!)


8.
Проверку корректности записи числа.


9.
Сложение.


10.

  1. усечённое вычитание.
  2. сравнение.

11*.
Умножение (произведение десятизначных чисел должно вычисляться за разумное время).


12*.
Деление с остатком (Две разные функции, или одна, которая даёт ответ в виде (частное)(остаток).


13*.
Возведение в степень.


Следующие задачи можно решить на выбор в унарной или двоичной системе


14.
Описать функцию подсчета числа скобок в выражении, используя унарную запись результата.


15.

  1. описать функцию проверки простоты числа в унарной записи. (Результат TRUE или FALSE)
  2. разложить натуральное число на простые множители

16.
Описать функцию "n-ое число Фибоначчи" .