Стандартные функции языка Progress могут быть разбиты на группы в зависимости от типов параметров и результата. Рассмотрим некоторые из них:
Функции с числовыми аргументами:
MAXIMUM( x, y ) |
максимум из двух чисел |
MINIMUM( x, y ) |
минимум из двух чисел |
LOG ( x, y ) |
логарифм x по основанию y |
SQRT ( x ) |
корень квадратный из x |
ROUND ( x, n ) |
округление x c точностью до n знаков после точки |
TRUNCATE ( x, n ) |
отсечение x с точностью до n знаков после точки |
EXP ( x, y ) |
возведение в степень, где x - основание, у - показатель |
Функции преобразования типов:
DECIMAL( s ) |
преобразование строки s к типу DECIMAL |
INTEGER( s ) |
преобразование строки s к типу INTEGER |
STRING( n[,format] ) |
преобразование числа n к строковому виду (возможно, с указанием формата) |
DATE( m, d, y ) |
преобразование трех целых чисел к виду DATE |
Функции работы со строками:
NUM-ENTRIES(list) |
число слов, входящих в строку list, где list - список слов, отделенных друг от друга запятыми ( NUM-ENTRIES("Hello,World") выдает значение 2) |
LOOKUP( s, list ) |
номер строки s, если строка s входит в список list, и 0 - в противном случае (LOOKUP("среда","воскресенье,понедельник, вторник,среда,четверг,пятница,суббота") выдает значение 4 ) |
ENTRY( n, list ) |
слово с номером n из списка list |
CAPS( s ) |
строка s большими буквами |
INDEX( s, s1 ) |
индекс первого символа подстроки s1, если s1 является подстрокой s, и 0 - в противном случае (просмотр строки s происходит слева направо) |
R-INDEX ( s, s1 ) |
индекс первого символа подстроки s1, если s1 является подстрокой s, и 0 - в противном случае (просмотр строки s происходит справа налево) |
TRIM ( s ) |
строка s без хвостовых и ведущих пробелов |
LENGTH ( s ) |
длина строки s |
SUBSTRING ( s, n1[, n2] ) |
вырезка подстроки |
Функции с аргументами типа DATE:
Функция |
Описание |
DAY ( d ) |
номер дня в месяце |
MONTH ( d ) |
номер месяца |
YEAR ( d ) |
номер года |
WEEKDAY ( d ) |
номер дня в неделе |
TODAY |
текущая дата |
Условная функция:
IF B THEN E1 ELSE E2
- в зависимости от значения логического выражения B выдает в качестве результата одно из выражений E1, E2 (следует иметь ввиду, что типы выражений E1 и E2 должны соответствовать друг другу, то есть возможно сочетание типов DECIMAL и INTEGER, но невозможно DECIMAL и CHARACTER).
Пример 1.
Программа по дате определяет номер дня в неделе.
DISPLAY WEEKDAY(TODAY).
Пример 2.
Программа по трем сторонам треугольника определяет возможность построения треугольника и его площадь.
DEFINE VARIABLE a AS DECIMAL FORMAT "99.99".
DEFINE VARIABLE b AS DECIMAL FORMAT "99.99".
DEFINE VARIABLE c AS DECIMAL FORMAT "99.99".
DEFINE VARIABLE p LIKE a.
SET a.
SET b.
SET c.
p = ( a + b + c ) / 2.
DISPLAY IF a + b > c AND b + c > a AND a + c > b
THEN STRING(SQRT(p * ( p - a) * ( p - b ) * ( p - c )))
ELSE "it is not possible" LABEL " s of treangle" FORMAT "x(20)".
Пример 3.
Следующий пример позволит уточнить некоторые приемы работы с датами. Запустите эту программу на исполнение дважды c входными данными 1945 и 1970.
DEFINE VARIABLE d AS DATE.
SET d.
DISPLAY DAY(d) LABEL "DAY"
MONTH(d) LABEL "MONTH"
YEAR(d) LABEL "YEAR".
Пример 4.
Следующий пример демонстрирует приемы работы с функцией TIME
DISPLAY TIME LABEL "TIME" FORMAT ">>>>>9"
TRUNCATE(TIME / 3600, 0) LABEL "HOURS" FORMAT ">9"
TRUNCATE(TIME / 60, 0) MODULO 60 LABEL "MINUTES" FORMAT ">9"
TIME MODULO 60 LABEL "SECONDS" FORMAT ">9"
STRING(TIME,"HH:MM:SS") LABEL "TIME".
Комментарии к статье:
Добавить комментарий: