Команди присвоювання
Для створення змінних і присвоювання їм певних значень використовуються команди:
<змінна> =<вираз>
або
STORE <вираз> TO <список змінних>
Приклад:
A=C*(B+D) і STORE C*(B+D) TO A
В обох випадках змінній А присвоюється одне й теж число, але другу форму краще обирати тоді, коли треба одне й теж значення присвоїти зразу ж декілька змінним.
Приклад:
STORE 0 TO A, B, C, D
Тип змінної визначається типом останнього присвою ванного їй виразу. Символьні константи треба брати в лапки, апостроф або [ ].
Приклад: Х = '45' Х – символьна константа;
У = 45 У – числова константа.
Команда очистки екрану
CLEAR
Команди введення - виведення
@ … SAY… GET
Команда являє собою універсальну команду такого типу. Вона застосовується для форматованного введення – виведення даних на екран або принтер. Формат команди:
@ <Y X>
[SAY<>
[PICTURE
Команди керування
Для зміни порядку виконання команд використовуються команди передачі керування:
IF < умова >
< команди >
[ELSE
< команди >]
ENDIF
Якщо умова істинна, то виконуються усі команди, які йдуть від IF до ELSE.
Якщо умова ложна, то виконуються усі команди, які йдуть від ELSE до ENDIF.
Якщо необов’язкова фраза ELSE відсутня і умова ложна, то всі внутрішні <команди> пропускаються і виконуються ті команди, що йдуть за ENDIF.
Можна також використовувати вкладені один в один команди IF… ENDIF.
Приклад. Обчислити значення величини р, якщо:
A= 0.2
INPUT ' введіть X ' то X
IF X<=100
P = 0
ELSE
P = A*(X – 100)/ 2
ENDIF
? "P = ", P
Командою INPUT вводится спочатку поточне значення Х, а потім командою IF реалізується розгалуження і обчислення значення змінної Р в залежності від воконання умови X<=100. Якщо умова виконується, змінна P = 0, інакше - P = A*(X – 100)/ 2. Завершується фрагмент виведенням одержаного значення змінної Р на екран дисплею.
Приклад: Дано два числа a і b. Вивести найбільше з цих двох чисел, а якщо вони рівні, то вивести повідомлення "числа рівні".
INPUT ' введіть a ' то a
INPUT ' введіть b ' то b
IF a=b
? 'числа рівні'
ELSE
IF a>b
? a
ELSE
? b
ENDIF
ENDIF
В цьому прикладі використано вкладені один в один команди IF… ENDIF.
Команда вибору dо case
Команда вирішує задачі аналогічно команді IF, але в цій команді можна використовувати зразу ж декілька умов, які послідовно перевіряються в усіх фразах CASE.
Формат команди:
DO CASE
CASE <умова 1>
<команди>
CASE <умова 2>
<команди>
. . .
[OTHERWISE
<команди>]
ENDCASE
Якщо зустрілась умова істина, то виконуються команди, які йдуть до наступної фрази CASE, або OTHERWISE, або ENDCASE і конструкція завершується. Якщо ні жодна CASE - умова не істина, то виконуються команди, які йдуть за OTHERWISE до ENDCASE. Якщо фраза OTHERWISE відсутня, то не виконується ні жодна команда
Приклад для умови попередньої задачі:
DO CASE
CASE a=b
? 'числа рівні'
CASE a>b
? 'a= ' , a
CASE a<b
? 'b= ' , b
ENDCASE
Якщо знайдена істина CASE- умова, то інші умови не перевіряються і виконуються команди, які стоять за ENDCASE.
Є також у FoxPro дуже зручна функція аналіза умов – IF( ).
Приклад:
Розглянемо фрагмент програми для організації простого меню роботи з БД.
vibir = 1
CLEAR
@ 6,26 TO 17,52 DOUBLE
@ 8,28 SAY ''Меню для роботи з БД''
@ 10,30 SAY ''1. Доповнення БД''
@ 11,30 SAY ''2. Редагування БД''
@ 12,30 SAY ''3. Перегляд БД''
@ 13,30 SAY ''4. Вихід з меню''
@ 15,30 SAY ''Ваш вибір: '' GET vibir
DO CASE
CASE vibir = 1 && Доповнення БД
APPEND
CASE vibir = 2 &&Редагування БД
GO TOP
EDIT
CASE vibir = 3 &&Перегляд БД
GO TOP
BROWSE NOEDIT
CASE vibir = 4 &&Вихід з меню
Poki = . F . && (Буде використовуватись далі)
ENDCASE
