к оглавлению

КЛАРИОH. Справочное руководство

Перевод всей документации выполнил Сергей Агарков. Если возникли какие-либо вопросы или предложения по качеству перевода, обращайтесь:

капитан Агарков
Домашний телефон +7-(421)-626-8486 ўс 13:00 до 0:30 по москве.

Содержание

Предисловие переводчика

ГЛАВА 1 - Введение

    Введение____________________________________________________
         Справочное руководство по языку________________________
         Организация главы______________________________________
         Формат описания элементов языка________________________
         Условные обозначения и символы_________________________

ГЛАВА 2 - Формат Исходного Текста Программы

    Формат оператора____________________________________________
         Метки операторов и описаний____________________________
         Завершение структуры___________________________________
         Зарезервированные слова________________________________
         Специальные символы____________________________________
         Глобальные, Локальные, Статические и Динамические Дан-
	   ные__________________________________________________
    Формат программы____________________________________________
         PROGRAM (объявляет программу)__________________________
         MEMBER (идентифицирует принадлежность модуля-члена_____
         MAP (объявляет прототипы процедур и/или функций)_______
         MODULE (описывает файл модуля-члена)___________________
         Прототипы процедур и функций___________________________
         PROCEDURE (объявляет процедуру)________________________
         FUNCTION (объявляет функцию)___________________________
         CODE (начинает выполняемые операторы)__________________
         ROUTINE (объявляет локальную подпрограмму)_____________
         END (завершение структуры)_____________________________
    Директивы компилятора_______________________________________
         BEGIN (начинает структуру кода)________________________
         COMPILE (определяет текст, подлежащий копиляции)_______
         EJECT (начать новую страницу листинга)_________________
         EMBED (вложенная секция исходного кода)________________
         INCLUDE ([при]компилировать текст из другого файла)____
         LIST (включает исходный текст в листинг компилятора)___
         OMIT (указывает текст не подлежащий компиляции)________
         SECTION (определяет секцию исходного кода)_____________
         SUBTITLE (печатает ПОДзаголово модуля)_________________
         TITLE (печатает заголовок модуля)______________________

ГЛАВА 3 - Описание переменных

    Операторы описания__________________________________________
         BYTE (однобайтное целое без знака)_____________________
         SHORT (двухбайтное целое со знаком)____________________
         USHORT (двухбайтное целое без знака)___________________
         LONG (четырехбайтное челое со знаком)__________________
         ULONG (четырехбайтное целое без знака)_________________
         SREAL (четырехбайтное вещественное со знаком)__________
         REAL (восьмибайтное вещественное со знаком)____________
         DECIMAL (упакованное десятичное фикс. длины со знаком)_
         PDECIMAL (то же, что и DECIMAL)________________________
         STRING (строка фиксированной длины)____________________
         CSTRING (строка фикс. длины, завершающаяся нулем)______
         PSTRING (строка со встроенным байтом длины)____________
         DATE (четырехбайтная дата)_____________________________
         TIME (четырехбайтное время)____________________________
         GROUP (составная структура данных)_____________________
         LIKE (определяемые пользователеме типы данных)_________
    Неявные переменные__________________________________________
    Шаблоны форматов____________________________________________
         Отображение чисел и валюты_____________________________
         Научная нотация (экспоненциальный формат)______________
         Форматы даты___________________________________________
         Форматы времени________________________________________
         Форматы "по образцу"___________________________________
         Key-in   Template   Pictures___________________________
         Форматы строк__________________________________________
    Атрибуты переменных_________________________________________
         PRE (префикс метки)____________________________________
         DIM (размерность массива)______________________________
         Массивы как параметры процедур и функций_______________
         EXTERNAL (переменная описана вне программы)____________
         NAME (внешнее имя переменной)__________________________
         OVER (разделяет место в памяти с другой переменной)____
    Директивы компилятора_______________________________________
         EQUATE (назначить метку)_______________________________
         SIZE (размер памяти в байтах)__________________________

ГЛАВА 4 - Выражения

    Выражения___________________________________________________
         Числовые константы_____________________________________
         Числовые выражения_____________________________________
         Арифметические операторы_______________________________
         Строковые константы____________________________________
         Оператор конкатенации__________________________________
         Строковые выражения____________________________________
         Логические операторы___________________________________
         Логические ввыражения__________________________________

ГЛАВА 5 - Операторы присваивания

    Операторы присваивания______________________________________
         Простые операторы присваивания_________________________
         Операторы присваивания-операции________________________
         CLEAR (очистить переменную)____________________________
    Правила преобразования данных_______________________________

ГЛАВА  6  -  Управляющие операторы

    Управление программой_______________________________________
         Последовательность выполнения операторов_______________
         Вызовы процедур________________________________________
    Управляющие структуры_______________________________________
         CASE (структура условного выполнения)__________________
         EXECUTE (структура выбора оператора)___________________
         IF (структура условного выполнения)____________________
         LOOP (итерационная структура, цикл)____________________
    Управляющие операторы_______________________________________
         BREAK (немедленное завершение цикла)___________________
         CHAIN (выполнить другую программу)_____________________
         CYCLE (перейти в начало цикла)_________________________
         DO (вызвать подпрограмму)______________________________
         EXIT (выйти из подпрограммы)___________________________
         GOTO (перейти к метке)_________________________________
         HALT (выйти в DOS)_____________________________________
         NOTIFY (обработка критических ошибок)__________________
         RESTART (перезапуск программы)_________________________
         RETURN (вернуться в точку вызова)______________________
         RUN (выполнить команду ДОС)____________________________
         RUNSMALL (выполнить команду ДОС)_______________________
         SHUTDOWN (определить процедуру завершения)_____________
         STOP (приостановить выполнение программы)______________

ГЛАВА 7 - Доступ к монитору и клавиатуре

    Видеопроцедуры______________________________________________
         BLANK (очистить прямоугольник на экране)_______________
         Коды цветовых стилей (видеоатрибуты)___________________
         PAINT (закрасить прямоугольник на экране)______________
         SCROLL (прокрутить прямоугольную область экрана)_______
         SETBLINK (разрешить мигание)___________________________
         SETCOLOR (установить видеоатрибуты)____________________
         SETCURSOR (включить курсор)____________________________
         SETGRAPHIC (установить графический режим)______________
         SETMOUSE (позиционировать курсор мышки)________________
         SETNOBLINK (запретить мигание)_________________________
         SETTEXT (установить размер экрана в текстовом режиме)__
         SHOW (показать на экране)______________________________
         TYPE (вывести строку на экран)_________________________
    Видеофункции________________________________________________
         BACKCOLOR (возвращает цвет фона)_______________________
         COLOR (возвращает код цветового стиля)_________________
         FORECOLOR (возвращает цвет переднего плана)____________
         GRAPHIC (возвращает текущий видеорежим)________________
         LOOK (считать символ(Ы) с экрана)______________________
         MAKECOLOR (формирует код цветового стиля)______________
         MOUSECOL (X-координата мышки)__________________________
         MOUSEROW (Y-координата мышки)__________________________

    Процедуры клавиатуры
         ALIAS (установить альтернативный код клавиши)__________
         ASK (получить один символ)_____________________________
         PRESS (поместить символ в буфер клавиатуры)____________
         SETKEYCODE (задать код клавиши)________________________
    Функции клавиатуры__________________________________________
         ENTRY (возвращает введенное с клавиатуры)______________
         KEYBOARD (возвращает ожидающее нажатие на клавишу)_____
         KEYCODE (код клавиши завершения поля)__________________

ГЛАВА 8 - Screen-структуры

    Экраны Кларион______________________________________________
         Что такое SCREEN_______________________________________
         Equate-метки полей_____________________________________
         Equate-метки меню______________________________________
    Screen-структуры____________________________________________
         SCREEN (описывает screen-структуру)____________________
         AT (задает коорлинаты экрана)__________________________
         CENTER (размещение в центре физического экрана)________
         CUA (использовать SAA/CUA-подобный интерфейс
	   пользователя_________________________________________
         EXPAND (задает размножаемую строку)____________________
         GRAPHIC (задает графический режим)_____________________
         SHADOW (автоматически ставить тень под окном)__________
         ZOOM, FADE, WIPE, FALL (методы открытия экрана)________
    Размещение полей на экране__________________________________
         ROW (строка и столбец)_________________________________
         COL (столбец в текущей строке)_________________________
    Поля экрана_________________________________________________
         BUTTON (поле-кнопка)___________________________________
         CHECK (поле отметки (чекбокс)__________________________
         ENTRY (поле для ввода)_________________________________
         IMAGE (поле-рисунок)___________________________________
         LIST (список (листбокс)________________________________
         OPTION (меню опций)____________________________________
         PAINT (закраска участка экрана)________________________
         PAUSE (поле ожидания нажатия на клавишу)_______________
         POINT (указатель структуры REPEAT)_____________________
         PROMPT (строка подсказки для нижеследующего поля)______
         RADIO (поле-радиокнопка)_______________________________
         REPEAT (структура-повторение)__________________________
         STRING (экранная переменная)___________________________
         TEXT (область для ввода текста)________________________
    Атрибуты полей______________________________________________
         ALRT (установить клавишу завершения поля)______________
         CAP (первые буквы слов делать заглавными)______________
         COLOR (задать цвета вывода)____________________________
         COLS (задает столбцы в листбоксе)______________________
         ESC (куда перейти при нажатии ESC)_____________________
         EVERY (расстояние между элементами REPEAT)_____________
         FILL (переменная, получающая значение из листбокса)____
         FROM (очередь для просмотра через LIST)________________
         FIX (заголовки листбокса)______________________________
         HIDE (скрыть содержимое поля)__________________________
         HLP (идентификатор окна помощи для данного поля)_______
         HSCROLL,VSCROLL,HVSCROLL (полосы прокрутки для LIST)___
         IMM (немедленное исполнение)___________________________
         INDEX (индексная переменная для REPEAT)________________
         INS (ввод - в режиме вставки)__________________________
         LFT (выравнивание влево)_______________________________
         MAX (переменная счетчик строк в REPEAT)________________
         MSG (вывод сообщения на экран)_________________________
         NAME (имя графического файла для вывода)_______________
         OVR (ввод - в режиме замены)___________________________
         REQ (поле не может быть пустым или нулевым)____________
         REUSE (использовать ранее установленную палитру)_______
         SKIP (пропустить это поле)_____________________________
         TRN (прозрачное изображение)___________________________
         UPR (ввод преобразовывать в верхний регистр)___________
         USE (связать переменную с полем)_______________________
    Структуры "выпадающее меню" (Pull-Down)_____________________
         PULLDOWN (описание выпадающего меню)___________________
         SINGLE,DOUBLE,FULL,HALF (виды рамок для меню)__________
         LOCAL (позиция, в которой открывается PullDown)________
    Поля в PULLDOWN_____________________________________________
         ITEM (элемент PULLDOWN)________________________________
         MENU (подменю в PULLDOWN)______________________________
    Атрибуты полей в PULLDOWN___________________________________
         KEY (клавиша быстрого выбора)__________________________
         RIGHT (позиция для MENU)_______________________________
         TOGGLE (элемент-переключатель)_________________________

ГЛАВА 9 - Команды обработки экранов

    Процедуры работы с экраном__________________________________
         ACCEPT (обработчик полей экрана)_______________________
         ALERT (установка клавиши завершения поля)______________
         BEEP (звуковой сигнал динамиком)_______________________
         CLOSE (закрыть текущий экран)__________________________
         DISABLE (затемнить поле и запретить ввод в него)_______
         DISPLAY (вывести USE-переменные на экран)______________
         ENABLE (разрешить использование затемненного ранее
	   поля)________________________________________________
         ERASE (очистить поле и его USE-переменную)_____________
         GETSTYLES (считать цветовые стили из файла)____________
         HELP (доступ к окну подсказки)_________________________
         IDLE (периодически вызываемая процедура)_______________
         LOADSYMBOLS (загрузка псевдографики)___________________
         OPEN (открыть экран для обработки)_____________________
         SELECT (выбрать поле для обработки)____________________
         SETAREA (установить размер виртуального экрана)________
         SETMSG (задать строку сообщений экрана)________________
         SETSTYLES (установить коды цветовых стилей)____________
         SHOWIMAGE (показать .PCX или .GIF)_____________________
         UPDATE (обновить USE-переменные полей экрана)__________
         USESYMBOLS (символы, используемые под псевдографику)___
    Функции работы с экраном____________________________________
         CHOICE (относительная позиция элемента)________________
         COL (номер столбца)____________________________________
         COLS (число столбцов)__________________________________
         CONTENTS (содержимое USE-переменной)___________________
         FIELD (последнее завершенное поле)_____________________
         FIELDS (количество полей на экране)____________________
         REFER (было обращение к полю или нет)__________________
         ROW (номер строки)_____________________________________
         ROWS (количество строк)________________________________
         SELECTED (выбранно для обработки поле)_________________
         STYLES (внутренний массив кодов цветовых стилей)_______

ГЛАВА 10 - Отчеты

    Структура отчетов___________________________________________
         REPORT (описывает структуру отчета)____________________
         APPEND (дописывать выводимое в конец файла)____________
         DEVICE (устройство, на которое выводить отчет)_________
         LENGTH (строк на странице)_____________________________
         LINE (переменная - счетчик строк)______________________
         PAGE (переменная - счетчик страниц)____________________
         PRINTER (логическая поддержка принтера)________________
         WIDTH (максимально возможная ширина страницы)__________
    Элементы отчета_____________________________________________
         HEADER (заголовок страницы)____________________________
         DETAIL (тело отчета)___________________________________
         FOOTER (подножие страницы)_____________________________
    Атрибуты элементов отчета___________________________________
         ALLOW (контроль висячей строки)________________________
         ALONE (структуру DETAIL печатать без заголока/подножия)
         FIXED (структура постоянной длины)_____________________
         SEPARATE (промежуток между структурами)________________
    Размещение полей____________________________________________
         ROW (строка)___________________________________________
         COL (столбец)__________________________________________
         SUPPRESS (если строка пустая, то не печатать ее)_______
    Поля в отчете_______________________________________________
         CONTROL (управляющие коды для принтера)________________
         STRING (переменная отчета)_____________________________
         TEXT (многострочное поле отчета)_______________________
    Атрибуты полей______________________________________________
         CLIP (отсечь хвостовые пробелы)________________________
         LFT, RHT, CENT (методы выравнивания полей)_____________
         UPR, LWR, CAP (методы капитализации слов)______________
         USE (связать переменную с полем)_______________________
         WRAP (разрешить перенос слов)__________________________
    Команды отчета______________________________________________
         OPEN (открыть отчет для обработки)_____________________
         CLOSE (закрыть текущий отчет)__________________________
         PRINT (напечатать элемент отчета)______________________
         ROWS (количество строк)________________________________
         Переполнение страницы__________________________________
         Шаблоны управляющих кодов принтера_____________________

ГЛАВА 11 - Файлы данных

    Структура файла данных______________________________________
         FILE (описание структуры файла данных)_________________
         CREATE (разрешить создание файла)______________________
         DRIVER (тип файола данных)_____________________________
         ENCRYPT (шифровать файл данных)________________________
         OWNER (пароль для шифрования)__________________________
         RECLAIM (использовать место из-под удаленных записей)__
    Операторы структуры файла___________________________________
         INDEX (статический индекс файла)_______________________
         KEY (динамический индес файла)_________________________
         MEMO (текстовое поле)__________________________________
         RECORD (структура записи)______________________________
    Атрибуты для INDEX, KEY и MEMO______________________________
         BINARY (MEMO содержит двоичные данные)_________________
         DUP (разрешить повторяющиеся значения ключевых полей)__
         NOCASE (индекс - не чувствителен к регистру)___________
         OPT (отбрасывать пустые)_______________________________
    Команды работы с файлами____________________________________
         BUILD (построить ключи и/или индексы)__________________
         CLOSE (закрыть файл)___________________________________
         COPY (копировать файл)_________________________________
         CREATE (создать пустой файл)___________________________
         EMPTY (очистить файл данных)___________________________
         FLUSH (сбросить буфера ДОС на диск)____________________
         LOCK (монопольный доступ к файлу)______________________
         OPEN (открыть файл)____________________________________
         PACK (физически стереть удаленные записи)______________
         REMOVE (стереть файл)__________________________________
         RENAME (переименовать файл)____________________________
         SHARE (открыть файл в совместном режиме)_______________
         STREAM (разрешить буферизацию через ДОС)_______________
         UNLOCK (разблокировать заблокированный файл)___________
    Команды работы с записями___________________________________
         ADD (добавить запись)__________________________________
         APPEND (дописать запись в конец файла)_________________
         DELETE (удалить запись)________________________________
         GET (считать запись по прямому доступу)________________
         HOLD (монопольный доступ к записи)_____________________
         NEXT (прочитать следующую запись последовательности)___
         PREVIOUS (--/-- предыдущую запись последовательности)__
         PUT (записать запись обратно в файл)___________________
         RELEASE (освободить захваченную запись)________________
         RESET (сброс указателя текущей записи)_________________
         SET (инициировать последовательность обработки файла)__
         SKIP (пропустить записи в последовательности)__________
    Функции работы с файлом_____________________________________
         BOF (начало файла)_____________________________________
         BYTES (размер файла в байтах)__________________________
         DUPLICATE (проверить на дублирование ключевых полей)___
         EOF (конец файла)______________________________________
         POINTER (относительный номер записи)___________________
         POSITION (номер записи в последовательности)___________
         RECORDS (количество записей)___________________________
         SEND (полсать сообщение файловому драйверу)____________
    Обработка транзакций________________________________________
         COMMIT (закончить успешно проведенную транзакцию)______
         LOGOUT (начать транзакцию)_____________________________
         ROLLBACK (завершить ошибочную транзакцию)______________

ГЛАВА 12 - Очереди

    Структура очереди___________________________________________
         QUEUE (описывает QUEUE-структуру)______________________
    Процедуры работы с очередями________________________________
         ADD (добавить элемент)_________________________________
         DELETE (удалить элемент)_______________________________
         FREE (удалить очередь)_________________________________
         GET (получить элемент)_________________________________
         PUT (перезаписать элемент)_____________________________
         SORT (отсортировать очередь)___________________________
    Функции работы с очередями__________________________________
         POINTER (указатель на последний элемент)_______________
         RECORDS (количество элементов)_________________________

ГЛАВА 13 - Вспомогательные процедуры и функции

    Математические функции______________________________________
         ABS (абсолютное значение)______________________________
         INRANGE (принадлежность числа диапазону)_______________
         INT (отсечь дробную часть)_____________________________
         LOGE (натуральный логарифм)____________________________
         LOG10 (десятичный логарифм)____________________________
         RANDOM (случайное число)_______________________________
         ROUND (округление числа)_______________________________
         SORT (квадратный корень)_______________________________
    Тригонометрические функции__________________________________
         SIN (синус)____________________________________________
         COS (косинус)__________________________________________
         TAN (тангенс)__________________________________________
         ASIN (арксинус)________________________________________
         ACOS (арккосинус)______________________________________
         ATAN (арктангенс)______________________________________
    Строковые функции___________________________________________
         ALL (строка из повторяющихся символов)_________________
         CENTER (центрирование строки)__________________________
         CHR (переводит ASCII-код символа в символ)_____________
         CLIP (отсечь хвостовые пробелы)________________________
         DEFORMAT (удалить форматирование из цифровой строки)___
         FORMAT (форматировать число по шаблону)________________
         INSTRING (позиция подстроки в строке)__________________
         LEFT (выравнивание строки влево)_______________________
         LEN (длина строки)_____________________________________
         LOWER (нижний регистр)_________________________________
         NUMERIC (в строке только цифры?)_______________________
         RIGHT (выравнивание строки вправо)_____________________
         SUB (возвращает подстроку строки)______________________
         UPPER (верхний регистр)________________________________
         VAL (код символа)______________________________________
    Битовые функции_____________________________________________
         BAND (логическое И)____________________________________
         BOR (логическое ИЛИ)___________________________________
         BXOR (логическое ИСКЛЮЧАЮЩЕЕ ИЛИ)______________________
         BSHIFT (побитовый сдвиг)_______________________________
    Процедуры и функции даты и времени__________________________
         Стандартная дата_______________________________________
         Стандартное время______________________________________
         TODAY (системная дата)_________________________________
         SETTODAY (установить системную дату)___________________
         CLOCK (системное время)________________________________
         SETCLOCK (установить системное время)__________________
         DATE (стандартная дата)________________________________
         DAY (число)____________________________________________
         MONTH (месяц)__________________________________________
         YEAR (год)_____________________________________________
         AGE (возраст)__________________________________________
    Процедуры и функции ДОС_____________________________________
         COMMAND (командная строка)_____________________________
         MEMORY (доступная память)______________________________
         PATH (текущий диск и каталог)__________________________
         RUNCODE (код завершения ДОС)___________________________
         SETCOMMAND (установить параметры командной строки)_____
         SETPATH (изменить текущие диск и/или каталог)__________
    Вспомогательные процедуры и функции_________________________
         ADDRESS (адрес структуры в памяти)_____________________
         ERROR (сообщение об ошибке)____________________________
         ERRORCODE (номер кода ошибки)__________________________
         ERRORFILE (имя файла, приведшего к ошибке)_____________
         IN (читать данные из порта)____________________________
         MAXIMUM (максимальное значение индекса массива)________
         NAME (имя файла или устройства в ДОС)__________________
         OMITTED (проверка на пропущенные параметры)____________
         OUT (запись данных в порт)_____________________________
         PEEK (читать память по адресу)_________________________
         POKE (записать в память по адресу)_____________________
         STATUS(состояние принтера/диска/файла/клавиатуры)______

ПРИЛОЖЕНИЯ

Приложение A

    Коды клавиш в Кларионе______________________________________
         Формат кода клавиши в Кларионе_________________________
         Таблицы кодов клавиш___________________________________
         KEYCODES.EQU___________________________________________

Приложение B

    Коды ошибок_________________________________________________
         ERRORS.EQU_____________________________________________

Приложение C

    Управление виртуальной памятью______________________________
         CLAVM (конфигурация виртуальной памяти)________________

Index___________________________________________________________

к оглавлению

Знаете ли Вы, что диаграмма классов, Class diagram - это методология объектно-ориентированного проектирования, предназначенная для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution