Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к экзамену.doc
Скачиваний:
69
Добавлен:
16.03.2015
Размер:
1.59 Mб
Скачать

12. Операторы, макроопределения и шаблоны в guru.

Макроопределение – это имя, которое пользователь может назначить в строке текста, чтобы использовать её многократно. В тексте можно использовать выражения, что позволяет уменьшить размер кода.

MACRO <имя><текст>

По умолчанию он глобальный

Локальный: LOCAL MACRO <имя><текст>

Пример1: таблицу определили SOTR

LAST NAME

F NAME

M ORL

MACRO LFM LAST NAME, F NAME, M ORL

SELECT LAST NAME, F NAME, M ORL, D

FROM SOTR (использование макроса)

SELECT FROM LFM, D FROM SOTR

Пример2: число пи с большой точностью

MACRO P1 3,141592853

MACRO COS SIN (P1/2-X)

MACRO TAN SIN (X)/COS

MACRO FSGN IF X-0 THEN SIN=0, ELSE SIN-X/ABS(X);

X=0, 1,-1

Макросы можно собрать в отдельном файле MACROS.IPF

PERFORM MACROS

Шаблоны – В командах ввода/ вывода можно использовать шаблоны

USING

Input x sfr using “a”

В шаблонах принята следующая кодировка:

A – любая буква

C – буква или цифра

D – цифра или знак +,-

U – любой символ ASCII

%10 – 10ти кратное повторение символа

“dddd.ddd” – 4цифры.3цифры

Операторы языка: IF <логич. выражение> THEN <набор операторов> ELSE <набор операторов> ENDIF Пример: IF Var1 < 17 THENVAR1=VAR1 + 1 ENDIF Цикл с условием продолжения WHILE <логич. выражение> DO <набор операторов> ENDWHILE Команда CONTINUE требует немедленной проверки условия для продолжения цикла. Например: WHILE i<10 DO IF ARRY(i)>123 THEN i=i +2; CONTINUE ENDIF TOT = ARRY(i) + TOT LET i=i+1 ENDWHILE

13. Работа с таблицами и записями в guru.

ЭС GURU поддерживает работу с электронными таблицами.

Не ограничивается количество таблиц, как созданных, так и открытых.

Мкс. длина записи – 16 кб, количество полей – 255.

Команды для работы с таблицами:

  • Создание таблицы - DEFINE <имя таблицы>

  • Добавление полей (в интерактивном режиме) – FIELD ? <имя поля> <тип>

  • Создание записи (в интерактивном и. программном режиме) CREATE [RECORD]

  • ENDDEF – завершение создания таблицы.

  • Открыть таблицу – USE <Имя таблицы>.

Активной может быть только 1 таблица, 1 запись 1-го поля.

  • Закрыть таблицу(ы) – FINISH <Имя таблицы>

FINISH ALL

  • Сортировка таблицы:

SORT <Имя таблицы> TO <Имя файла> BY <выражение для сортировки>

Направление сортировки: ASCENDING (сокр. AZ), DESCENDING (сокр. ZA).

ПРИМЕР:

SORT TO “S.ITB” BY AZ FIO

  • Создание индексного файла:

INDEX <Имя файла> FOR <Имя таблицы> [BY <выражение для сорт-ки>]

ПРИМЕР:

INDEX “S1.IND” FOR SOTR BY AZ SALARY

Команды для работы с записями:

  • Создание записи: CREATE [RECORD]

  • Методы поиска записи:

    • Последовательный

OBTAIN <позиция> [RECORD] FROM <Имя таблицы>

FIRST – первая

LAST – последняя

PRIOR <численное выр-е> - до <число>

NEXT <численное выр-е> - после <число>

ПРИМЕР:

OBTAIN PRIOR RECORD FROM SORT

    • Групповой поиск (фильтрация)

OBTAIN [RECORD] FROM <Имя таблицы> FOR <условие>

OBTAIN FROM SOTR FOR FIO =”Иванов” AND #MARK=FALSE

Меткой можно отметить к-либо запись. Она принимает значение true/false.

Отметить: MARK <имя таблицы> FOR <условие>

Снять метки: UNMARK <имя таблицы> FOR <условие>

    • Индексный поиск по ключу

  • Для вывода групп записей:

SELECT <выражение> FROM <имя таблицы> <область действия>

<область действия>:

CURRENT NEXT <число>

ALL PRIOR <число>

RANGE < число>

Управление выводом на экран с помощью переменных среды:

E.OCON = TRUE – подавить вывод на экран

E.ODSK = TRUE – вывод в файл

E.PAUS = TRUE – паузы при выводе на экран

Сортировка и индексирование таблицы

2 вида сортировки:

- физическая (связана с изменениями в исходной таблице)

- виртуальная (с использованием индексного файла)

Команда прямого доступа по ключу. Предварительно должен быть создан индексный файл и таблица должна быть открыта с индексным файлом командой USE.

PLUCK <выражение > FROM <Имя таблицы> USING <имя инд. файла>

ПРИМЕР

USE Sotr AS S // откр. Таблицу

INDEX “IS.IND” FOR S BY AZ FAM // созд. инд. Файл

FINISH S // закрываем таблицы

USE Sotr AS S WITH “IS.IND” // откр. Таблицу с индексом

PLUCK “Иванов” FROM S// доступ по ключу

Команды редактирования:

  • BROWSE <имя таблицы> - интерактивный просмотр и редактирование таблицы

  • CHANGE <имя поля> IN < имя таблицы > TO < выражение> <область действия>

<область действия> - Current, Next, PRIOR

Удаление записей: COMPRESS < имя таблицы >.

Предварительно записи должны быть отмечены командой MARK.

Удаление таблицы. DESTROY <имя таблицы>.