Школа179: Oner Xaum/RL2
 

Язык 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-ое число Фибоначчи» .