Ввод переменных по запросу

Ввод в переменные любого типа, при выполнении программы, может происходить командой ввода по запросу:

INPUT <запрос> ТО <переменная>

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

 

Например, для присвоения значения переменной a введите команду:

INPUT ‘Введите значение переменной a’ TO a && программа выводит указанный текст и ожидает введения значения переменной а

* введите значение и нажмите ввод

?a && выводится ввёденное значение переменной.

Сохранение переменных

Созданные переменные могут быть использованы только в текущем сеансе работы. Для их сохранения в файлах с расширением .mem или в Memo-поле текущей записи используется следующая команда:

SAVE TO <файл> | ТО MEMO <имя Меmо-поля> [ALL LIKE/EXCEPT <маска>]

Например:

SAVE TO fsave

* сохраняются все переменные в файле fsave.mem

SAVE TO fsave ALL LIKE a*

* сохраняются все переменные, начинающиеся с символа 'а'

SAVE TO fsave ALL EXCEPT a*

* сохраняются все переменные, кроме тех,

* которые начинаются с символа 'а'.

SAVE ALL LIKE a? TO fsave

* сохраняются все переменные, имена которых начинаются

* с символа ‘а’ и состоят из двух символов.

 

Для восстановления переменных необходимо выполнить команду

RESTORE FROM <файл> │ FROM MEMO<мемо-поле> [ADDITIVE]

При отсутствии опции ADDITIVE будут удалены все имеющиеся в памяти переменные.

Команда ожидания

Команда WAIT без операндов приостанавливает программу для просмотра промежуточных результатов. При этом на экран выводится сообщение "Press any key to continue". После нажатия любой клавиши или перемещения мыши, выполнение программы продолжается.

 

Для вывода символьного сообщения выполните команду:

WAIT ‘Нажмите любую клавишу’

Для вывода вашего собственного системного сообщения в верхнем правом углу экрана выполните команду: WAIT WINDOW ‘Привет программистам!’

 

27.Функции в FoxPro используются для анализа или преобразова­ния данных. Синтаксическая особенность функций - обязательное наличие скобок. Пробел между скобками недопустим. Всего функций более 450. Здесь рассмотрены лишь некоторые.

 

Использование функции обязательно приводит к возврату (выдаче) какого-либо значения. Например, чтобы узнать значение числа пи, используем функцию:

?PI() && выводится 3,14 (число десятичных знаков определяется настройками VFP

 

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

ABS(<выpN>) - вычисляет абсолютное значение <вырМ>.

Пример:

? ABS(-24.8) && 24 . 8

 

BETWEEN(<выp>,<выpl>,<выp2>) - возвращает значение "Истина" (.Т.), если <выр> больше или равно <выр1> и меньше или равно <выр2>, иначе - "Ложь" (.F.). Тип всех трех выра­жений должен быть одинаковым (строка, число, дата).

Пример:

? BETWEEN(4 ,1, 6) && .Т.

? BETWEEN({^2016.06.05},{^2003.10.10},{^2015.12.01}) && . F.

 

USE kadrLIST FOR BETWEEN(YEAR(dtr),1943,1960) fam,dtr

Последняя команда выводит все записи из базы KADR.DBF, где дата рождения находится между 1943 и 1960 годами.

СEILING(<ВырN>) - возвращает ближайшее целое число боль­шее или равное <вырN>. Аргумент может иметь любой знак.

Пример:

? CEILING(6.3), CEILING(-8.4) && 7 и -8

FLOOR(<выpN>) - ближайшее целое меньшее или равное <вырN>.

Пример:

? FLOOR(6.3), FLOOR(-8.4) && 6 и -9

INT(<выpN>) -целая часть <вырN>

Пример:

? INT (18.7) && 18

ROUND(<вырNl>,<вырN2>) - округление <вырNl> до задан­ного в <вырN2> количества знаков после запятой.

Пример:

? ROUND (-342.268,1) && -324 .3

SIGN(<вырN>) - возвращает значения: 1, если число положительное, -1, если отрицательное, 0, если нуль.

Пример:

? SIGN(5), SIGN(-7), SIGN(O) && 1, -1 и 0

Степенные функции

ЕХР(<вырN>) - экспонента <вырN> - основание натурального логарифма "е" в степени <вырN>.

LOG(<вырN>) - натуральный логарифм <вырN>. Аргумент должен быть больше нуля.

LOG10(<вырN>) - десятичный логарифм <вырN>. Аргумент должен быть больше нуля.

SQRT(<вырN>) - квадратный корень <вырN>. Аргумент должен быть положительным.