Просмотр кода страницы RL 2 страница

====%%(wacko wrapper=text wrapper_align=center) Язык RL (II)%%==

=====%%(wacko wrapper=text wrapper_align=center)Часть 2.  Унарная и бинарная арифметика.%%== 


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

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


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

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


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

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


**6.**  
Описать функции нахождения частного и остатка от деления
  a.две разных программы,  
  a.одну, выдающую ответ в виде (частное)(остаток)).


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

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


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


**9.**  
Сложение.


**10.** 
  a.усечённое вычитание.
  a.сравнение.


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


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


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

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


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


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


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