CoderNotes - заметки программиста

Публикации  »  4GL
Скидка 65% на Skillbox

Получите скидку 65% на любой курс программирования на популярной образовательной платформе Skillbox!

Подробнее
Бесплатный хостинг + SSL-сертификат

Зарегистрируйте домен и получите 2 месяца бесплатного хостинга и SSL-сертификат на 1 год в подарок

Подробнее

Стандартные функции 4GL

Стандартные функции языка 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".

Категория: 4GL

Комментарии к статье:

Пока комментариев нет, ваш будет первым ;)

Добавить комментарий: