Главная страница
Навигация по странице:

  • Арифметические функции

  • Функции символьной обработки

  • Функции выделения

  • Функции изменения регистра

  • Функция вычисления длины заданного выражения

  • Функция определения типа

  • Функции ввода, вывода и работы с файлами

  • Функции работы с копилкой

  • Системные функции

  • М. В. Ломоносова Факультет вычислительной математики и кибернетики Е. И. Большакова, Н. В. Груздева Основы программирования на языке Рефал Учебное пособие


    Скачать 0.92 Mb.
    НазваниеМ. В. Ломоносова Факультет вычислительной математики и кибернетики Е. И. Большакова, Н. В. Груздева Основы программирования на языке Рефал Учебное пособие
    Анкорqewqe
    Дата02.01.2022
    Размер0.92 Mb.
    Формат файлаdoc
    Имя файлаRefalP-1.doc
    ТипУчебное пособие
    #323127
    страница14 из 22
    1   ...   10   11   12   13   14   15   16   17   ...   22

    3.4.Встроенные функции


    Приведём перечень основных встроенных функций языка Рефал-5, характеризуя подробно лишь те функции, аналоги которых отсутствуют в языке Рефал-2. Если формат задания аргументов встроенной функции не указывается, то он точно такой же, как и в языке Рефал-2. Более подробное описание встроенных функций Рефала-5 можно найти в [9, 10].

    Арифметические функции

    Аргументами арифметических функций и вычисляемыми ими значениями являются числа, представленные как знак числа и макроцифра, причём знак может отсутствовать. Так же, как и в Рефале-2, формат задания аргументов для двухместных арифметических функций (N1)N2. Перечислим основные арифметические функции:

    1. Add (может обозначаться как +) вычисляет сумму своих аргументов.

    2. Sub (может обозначаться как -) вычисляет разность своих аргументов.

    3. Mul (может обозначаться как *) вычисляет произведение своих аргументов.

    4. Div (может обозначаться как /) вычисляет частное целочисленного деления первого аргумента на второй.

    5. Mod возвращает остаток от целочисленного деления первого аргумента на второй.

    6. Divmod (аналог Dr в языке Рефал-2) возвращает результат в формате (частноеостаток, причём остаток имеет знак первого аргумента и выполняется равенство: N1=N2*частное+остаток.

    7. Compare (аналог Nrel в Рефале-2) – выполняет сравнение двух заданных чисел: возвращается либо знак '-', если первый аргумент-число N1 меньше второго аргумента N2, либо знак '+', если первый аргумент больше второго, либо '0', когда аргументы равны.

    Функции символьной обработки охватывают несколько групп:

    • Функции-преобразователи типа, к которым относятся:

    1. Numb – перевод заданной цепочки десятичных цифр в число (макроцифру), представленное этими символами.

    2. Symb – обратное преобразование, т.е. перевод заданного числа (макроцифры) в цепочку десятичных цифр.

    3. Explode – перевод заданного идентификатора в цепочку символов-литер.

    4. Implode – создание идентификатора из всех начальных алфавитно-цифровых символов заданного выражения, возвращается идентификатор, за которым следует остаток строки, или макроцифра 0 и исходная строка, если строка начинается не с буквы. Например:
      → Asd12
      → Asd12y '/89'
      → 0 '12(Аas)kl'

    • Функции выделенияв заданном выражении заданного количества термов на верхнем уровне:

    1. First выделяет нужное количество термов верхнего уровня от начала заданного выражения и заключает их в структурные скобки. Если в аргументе функции задано число, превышающее количество термов выражения (на верхнем уровне), то всё выражение заключается в скобки. Например:
      → ('А+'('B-C')'*')'D'
      → ('А+'('B-C')'*D')

    2. Last – выделяет нужное количество термов с конца заданного выражения и заключает оставшиеся в начале выражения термы в структурные скобки. Например:
      → ('А+')('B-C')'*D'
      → ()'А+'('B-C')'*D'

    • Функции изменения регистра букв, входящих в заданное выражение:

    1. Lower замещает прописные буквы на строчные.

    2. Upper замещает строчные буквы на прописные.

    • Функция вычисления длины заданного выражения, т.е. количества входящих в него термов верхнего уровня:

    1. Lenw (аналог функции Lengw Рефала-2), её результат – макроцифра – длина выражения в термах, за которой следует само выражение. Например,
      → 5 'А+'('B-C')'*D'

    • Функция определения типа первого символа заданного выражения:

    1. Type возвращает два символа-индикатора типа первого терма выражения-аргумента, за которыми следует само исходное выражение. Возвращаемые индикаторы соответствуют:

    'Ll' – символ-буква;

    'D0' – символ-цифра;

    'Wi' – идентификатор;

    'N0' – макроцифра;

    'В0' – выражение начинается с левой структурной скобки;

    'Pl' – любой другой объектный символ;

    '*0' – если исходное выражение является пустым.

    Например:

    → 'D05bn9'(36)

    → 'В0'(Num)'5bn9'(36)

    → 'Pl/5bn9'(36)

    → '*0'

    Функции ввода, вывода и работы с файлами

    1. Card выполняет чтение цепочки символов из входного файла, её значение – считанная цепочка литер; по окончании файла функция возвращает число 0.

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

    3. Open – открытие файла для записи или чтения. Обращение к функции имеет вид: , где
      Mode – либо 'r' или 'R' (открыть для чтения), либо 'w' или 'W' (открыть для записи);
      Descr – файловый дескриптор (число в диапазоне 1-19, 0 соответствует терминалу);
      File-name – строка, задающая имя файла.

    4. Get вводит строку текста из файла, заданного дескриптором, значением функции является считанная цепочка символов.

    5. Put выводит заданное выражение в заданный дескриптором файл, результат функции – выводимое выражение.

    6. PutOut аналогична Put, но возвращает пустое значение.

    Заметим, что использование файловых дескрипторов позволяет, в отличие от Рефала-2, работать одновременно с несколькими файлами чтения или записи.

    Функции работы с копилкой

    1. Br – закапывание выражения в копилку.

    2. Dg – выкапывание выражения из копилки.

    3. Cp – копирование выражения из копилки.

    4. Rp – замена выражения, закопанного под заданным именем.

    5. Dgall – выкапывание всей копилки.

    Системные функции

    1. Функция без аргумента Time возвращает строку, обозначающую текущий день недели, месяц, дату, время и год.

    2. Функция Mu задаётся в одном из двух форматов: или . Она осуществляет вызов функции с именем Fname (для первого формата), либо функции с именем, являющимся результатом вычисления (для второго формата) и аргументом – выражением Expr. Результатом функции является результат вычисления или < Expr>. Если в точке вызова функции Mu нужная функция не является видимой (т.е. либо определенной в текущем модуле, либо объявленной как внешняя), то возникает ошибка.
    1   ...   10   11   12   13   14   15   16   17   ...   22


    написать администратору сайта