1. Найти максимальное значение из двух величин.
CLEAR
INPUT “ Введите X” TO X
INPUT “ Введите Y” TO Y
IF X > Y
max = X
ELSE
max = Y
ENDIF
? “ Максимальное значение равно: ”, max
WAIT
2
.
Найти значение
функции Y.
CLEAR
INPUT “Введите X” TO X
DO CASE
CASE X < 0
Y = -2*X^2 +5*X
CASE X>=0 AND X < 5
Y = 15 – 2*X^2
CASE X>=5
Y = ABS(12*X – SIN(12))
ENDCASE
? "Y = " ,Y
CLOSE ALL
ОРГАНИЗАЦИЯ ЦИКЛОВ
Цикл с условием
DO WHILE Выход из цикла - EXIT
Возврат к началу цикла - LOOP
ENDDO
Цикл вида DO WHILE .T. ENDDO применяется как операторные скобки.
Цикл с параметром
FOR = ТО [STEP ]
ENDFOR
ЦИКЛ СКАНИРОВАНИЯ
SCAN [] [FOR] [WHILE] ENDSCAN - применяется для перемещения в базе данных и выполнения команд
для каждой записи, отвечающей условиям.
Примеры:
Приводятся фрагменты программ поиска в БД Kadr всех записей
с фамилией на букву 'И'.
1) USE Kadr 2) USE Kadr
LOCATE FOR fio = 'И' SCAN FOR fio= 'И'
DO WHILE ! EOF( )
ENDSCAN
CONTINUE
ENDDO
ПРОЦЕДУРЫ
В FoxPro используются процедуры как внутренние так и внешние, а также процедуры-функции. Внутренняя процедура должна начинаться командой PROCEDURE и заканчиваться командой RETURN. Внешние процедуры могут быть объединены в prg-файл и подключаются командой SET PROCEDURE TO .
Обращение к процедуре :
DO [WITH ] [IN FILE ], где - список фактических параметров. Все входные фактические параметры перед вызовом процедуры должны быть определены.
Формальные параметры описываются в процедуре командой PARAMETERS.
Процедура-функция начинается командой FUNCTION , вырабатывает в результате своей работы единственное значение и может непосредственно использоваться в других командах. Процедура-функция завершается командой
RETURN , где выражение есть результат функции.
Процедуры
В FoxPro используются процедуры как внутренние так и внешние, а также процедуры - функции. Внутренняя процедура должна начинаться командой PROCEDURE и заканчиваться командой RETURN. Внешние процедуры могут быть объединены в prg-файл и подключаются командой SET PROCEDURE TO . Обращение к процедуре :
DO [WITH ] [IN FILE ]
Параметры описываются в процедуре командой PARAMETERS.
Процедура-функция начинается командой FUNCTION, вырабатывает в результате единственное значение и может непосредственно использоваться в других командах. Завершается командой RETURN, где выражение есть результат функции.
Параметры процедур и функций могут изменяться внутри них, но для передачи этих изменений в вызывающую программу требуется использовать команду
Использование процедур рассмотрим далее в разделе организации меню.
ЗАДАНИЕ
1. Приведенную выше Программу 1, представьте в виде ряда процедур:
р21 - просмотр данных по штатному расписанию (отношение STATE)
р22 - поиск данных по штатному расписанию
р31 - просмотр данных по списку сотрудников (отношение SOTR)
р32 - поиск данных по списку сотрудников
р4 - совместный просмотр двух таблиц (состояние)
info - заставка с краткой информацией (дополнительная процедура).
Пример 1.
*********** поиск в таблице Kadr ***********
PROCEDURE p21
SELECT a
CLEAR
с = 0
@ 5, 10 SAY 'Введите табельный номер: ' GET с PICTURE '###'
READ
@ 6, 2 SAY 'Результат поиска '
LOCATE ALL FOR tab = c
DO WHILE ! EOF( )
? 'должность - ', dolg, ' оклад - ', zarp
CONTINUE
ENDDO
WAIT 'Продолжение – Enter ' WINDOW
CLEAR
RETURN
Пример 2.
********* заставка **************
PROCEDURE info
CLEAR
@ 8, 15 ТО 20, 60 DOUBLE && изображение рамки
@ 9, 25 SAY 'ШТАТНОЕ РАСПИСАНИЕ' && вывод текста
@ 12, 20 SAY 'Модель информационной системы'
WAIT 'Продолжение – Enter ' WINDOW && пауза
CLEAR
RETURN
Меню являются основной формой поддержания диалога в информационных системах. Среда FoxPro обладает большим набором средств организации световых и клавишных меню. Выделим две основных технологии построения меню, которые порождают «меню - программы» и «меню - объекты».
Меню-программа является частью программы, где оно создается, используется и удаляется. При этом вырабатываются числовые переменные, фиксирующие выбор из меню, которые анализируются командами DO CASE, требуют использования циклов DO WHILE и т.д. Рассмотрим два типа таких меню. Будем использовать приведенную выше программу, которую предварительно разобьем на ряд процедур.
LIGHTBAR - меню строится с использованием команд:
@ Y, X PROMPT [MESSAGE] - выдает в
позиции Y,X строку меню и дополнительное сообщение,
если указано MESSAGE, в строке заданной командой
SET MESSAGE .
MENU TO - запоминает цифру, соответствующую выбору.
PULLDOWN - меню (двухуровневое меню) использует команды
MENU BAR , - определяет пункты горизонтального
BAR-меню, задавая их как элементы первого столбца
двумерного , во второй столбец заносятся
сообщения, N- общее число пунктов меню.
MENU , , - определяет содержание
вспомогательного вертикального меню (POPUP-меню)
READ MENU BAR TO , - активирует меню.
Пример
1) ********** LIGHTBAR МЕНЮ *******
SET TALK OFF
SET DATE BRITISH
USE KADR.DBF
DO WHILE .T.
CLEAR
P=1
@5,20 PROMPT “Редактирование данных ”
@7,20 PROMPT “Поиск данных ”
@9,20 PROMPT “Средняя заработная плата ”
@11,20 PROMPT “Конец работы ”
MENU TO P
DO CASE
CASE P=1
BROWSE
CASE P=2
CLEAR
F=SPACE(20)
@ 10,15 SAY “ Введите ФИО “ GET F
READ
LOCATE FOR FIO = F
IF !FOUND( )
@ 12,15 SAY “Запись нe найдена”
WAIT
EXIT
ELSE
DISPL
ENDIF
CASE P=3
CALCULATE SUM(SRZAR) TO SUMM
SUMM = SUMM/RECCOUNT( )
@ 12,15 SAY STR(SUMM)
WAIT
CASE P=4
EXIT
ENDDO
CLOSE ALL
2) ********** PULLDOWN МЕНЮ *******
SET MESSAGE ТО 15
DIMENSION a(5, 3) && задание массива, содержащего
а(1, 1) = 'Информация' && тексты пунктов горизонтального меню
а(2, 1) = 'Штатное расписание'
а(3, 1) = 'Список сотрудников'
а(4, 1) = 'Состояние'
а(5, 1) = 'Выход'
а(1, 2) = ' ' && тексты сообщений
а(2, 2) = 'Работа с таблицей должностей'
а(3, 2) = 'Работа с данными о сотрудниках'
а(4, 2) = 'Совместный просмотр штатного расписания и списка сотрудников' а(5, 2) = '3авершение работы'
DIMENSION b(2) && задание массивов для вложенных меню
b(1) = 'просмотр'
b(2) = 'поиск'
DIMENSION c(2)
с(1) = 'просмотр'
с(2) = 'поиск'
** образ меню** && определение меню
MENU BAR a, 5
MENU 2, b, 2
MENU 3, c, 2
g = 1 && номер пункта горизонтального меню
v = 1 && номер пункта вложенного меню
DO WHILE .T.
CLEAR
READ MENU BAR TO g, v && активация меню
DO CASE && обработка выбора
CASE g = 1
DO info
CASE g = 2 .AND. v = 1
DO p21
CASE g = 2 .AND. v = 2
DO p22
CASE g = 3 .AND. v = 1
DO p31
CASE g = 3 .AND. v = 2
DO p32
CASE g = 4
DO p4
CASE g = 5
CANCEL
ENDCASE
ENDDO
Меню - объекты являются независимыми объектами и могут вызываться из любого места прикладной системы. Обработка выбора из меню не требует введения переменных и организации циклов, дает возможность создавать меню из имен файлов и обладает другими преимуществами. Рассмотрим один из вариантов меню такого типа.
Вертикальное POPUP - меню создается с помощью следующих команд.
DEFINE РОРUР - определение меню,
ON SELECTION POPUP - реакция на выбор,
ACTIVATE POPUP - активация меню.
3) ********** POPUP - меню ****************
CLEAR
DEFINE POPUP mmenu MARGIN && определение главного меню
DEFINE BAR 1 OF mmenu PROMPT 'Информация' && определение пунктов
DEFINE BAR 2 OF mmenu PROMPT 'Штатное расписание'
DEFINE BAR 3 OF mmenu PROMPT 'Список сотрудников'
DEFINE BAR 4 OF mmenu PROMPT 'Состояние'
DEFINE BAR 5 OF mmenu PROMPT 'Выход'
ON SELECTION BAR 5 OF mmenu DEACTIVATE POPUP && обработка выбора
ON SELECTION BAR 1 OF mmenu DO info
ON SELECTION BAR 4 OF mmenu DO p4
ON BAR 2 OF mmenu ACTIVATE POPUP ww && выбор вложенных меню
ON BAR 3 OF mmenu ACTIVATE POPUP ss
DEFINE POPUP ww && определение вложенных меню
DEFINE BAR 1 OF ww PROMPT 'Просмотр'
DEFINE BAR 2 OF ww PROMPT 'Поиск'
ON SELECTION BAR 1 OF ww DO p21
ON SELECTION BAR 2 OF ww DO p22
ON SELECTION POPUP ww DO ww
DEFINE POPUP ss
DEFINE BAR 1 OF ss PROMPT 'Просмотр'
DEFINE BAR 2 OF ss PROMPT 'Поиск'
ON SELECTION BAR 1 OF ss DO p21
ON SELECTION BAR 2 OF ss DO p22
ON SELECTION POPUP ss DO ss
ACTIVATE POPUP mmenu && активация меню
ЗАДАНИЕ
Программу 1, представленную в виде ряда процедур, дополните организацией МЕНЮ одного из предложенных типов. В приложении дан полный текст программы с использованием POPUP-меню для выбора процедур.
Из большого списка возможностей рассмотрим лишь некоторые
... = πR2, L = 2πR). 28) Критерии выбора конфигурации персонального компьютера. Зав. кафедрой -------------------------------------------------- Экзаменационный билет по предмету ИНФОРМАТИКА. РАСШИРЕННЫЙ КУРС Билет № 9 29) Что называется связью «один к одному»? Определите тип связи между объектами предметной области Институт: ...
... полезно учителю при подготовке рассказа на уроке. В данной публикации сделана попытка выделить тот самый минимум, который ученику необходимо включить в свой ответ на экзамене. Примечания для учеников При ответе надо быть готовым к дополнительным вопросам об обосновании тех или иных утверждений. Например, каковы максимальное и минимальное значения 8-битного целого числа со знаком и почему их ...
... такое машинная графика и система машинной графики? Что такое мультимедиа? Что такое гипертекст? Что такое гипермедиа? Что такое электронная таблица? Ответы на задачи из “Дидактических материалов” Казиева В.М. Тема 1. “Информация. Кодирование. Инфологические задачи” Вариант 1 x=41. xn=32n—2. A=7, B=3. Система кодировки - одношаговый код Цезаря. “АВТОМОБИЛЬ” - “БГУПНУВКМЪ”. Вариант 2. x= ...
... в широкую практику разработки программ объектно-ориентированного программирования, впитавшего в себя идеи структурного и модульного программирования, структурное программирование стало фактом истории информатики. Билет № 9 Текстовый редактор, назначение и основные функции. Для работы с текстами на компьютере используются программные средства, называемые текстовыми редакторами или текстовыми ...
0 комментариев