Информатика (Visual FoxPro) / METOD2 / TEMA7 / VFP_T7
.doc
МАТЕРИАЛЫ
для самостоятельной подготовки в период учебной практики на 2 курсе
Тема 7: «Язык программирования XBase»
Цель работы: Освоение основных понятий и методов программирования на языке Xbase в среде Visual FoxPro.
Изучаемые элементы языка СУБД Visual FoxPro: PROCEDURE, PARAMETERS, @…SAY…, STORE, SCAN…ENDSCAN, IF…ENDIF, FOR…ENDFOR, DO WHILE…ENDDO
-
Обратиться к Visual FoxPro. Установить путь по умолчанию к своей папке на рабочем диске. Открыть файл с программой PR_OTBDN.PRG, предназначенной для отбора подмножества данных из таблицы STRU_BDW.DBF по условию, задаваемому пользователем. В этом условии может быть определен интервал дат проведения экспериментов и/или фамилия оператора, управлявшего процессом проведения экспериментов. Выполнить программу PR_OTBDN.PRG и изучить построение интерфейса программы. Обращаясь к помощи (Help), изучить команды, включенные в текст этой программы, а также процедуру VYVOD и форму FRM_OTB2.SCX, вызываемые при выполнении программы. Выявить в текстах программ следующие элементы языка: константы, переменные, поля, функции, выражения, команды, управляющие конструкции. Определить типы всех элементов.
-
По аналогии с программой PR_OTBDN.PRG создать собственный вариант программы PRGRM_B.PRG с процедурой с именем OTBOR и с двумя параметрами в условии отбора: граничные значения расхода воды и температуры пара. Проверить корректность выполнения программы.
-
Изучить текст программы, приведенной в приложении. Проанализировать использование стандартных функций SPACE(.), FILE(.), ALLTRIM(.), FCOUNT(.), FIELD(.), TYPE(.), AT(…), FOUND(.), RECNO(.) в программе. Создать файл с этой программой, выполнить её, задав имя базы данных STRU_BDW.DBF и контекст для поиска "Моск". В скольких записях и в каких полях встретился этот контекст?
-
Написать процедуру с именем Poisk_str, осуществляющую поиск в заданном поле открытой БД заданной подстроки символов. Параметры процедуры: символьные переменные с именем поля и искомой подстрокой, числовая переменная, значение которой равно 0, если подстрока в поле не обнаружена, или равно номеру позиции вхождения подстроки в поле. Проверить процедуру на примере поиска подстроки "МОЛД" в поле MESTO записи 9 из БД STRU_BD.
Создать программу, открывающую таблицу с заданным пользователем именем, вводящую по выбору пользователя значения входных параметров процедуры Poisk_str и вызывающую эту процедуру на выполнение. Проверить корректность этой программы при тех же условиях, при которых проверялась процедура.
-
Открыть меню MEN_2, созданное при выполнении предыдущей темы, и подключить к нему разработанные программы отбора и поиска данных. Создать приложение и проверить его работоспособность.
Контрольные вопросы.
-
Какие команды могут использоваться для задания переменной некоторого значения?
-
Какие типы данных могут получиться в результате расчета некоторого выражения?
-
С помощью каких операторов можно организовать циклы в программе?
-
С помощью каких операторов можно организовать в программе разветвление по некоторому условию?
-
Как можно оформить часть программы в виде самостоятельного модуля?
-
Что такое параметры процедуры? Как правильно следует обращаться к процедуре с параметрами?
-
Какие способы могут применяться для указания в программе места нахождения вызываемой процедуры?
-
Какая команда позволяет из программы обратиться к программному блоку, записанному в отдельный файл?
-
Что такое – стандартные функции в Visual FoxPro? Чем они отличаются от пользовательских функций?
-
Сколько разных стандартных функций в Visual FoxPro? Как осуществляется обращение к стандартным функциям?
-
Какую типовую структуру имеет приложение в Visual FoxPro?
-
Какие команды можно использовать в программе для вывода информации в рабочем окне Visual FoxPro?
-
Какова область действия переменной, введенной в некотором программном блоке?
-
Как переменную, вводимую в некоторой части программы сделать доступной во всей программе?
Приложение. Текст программы для поиска в БД по заданному контексту.
close data all
clear
* Запрос-ввод имени файла с БД
bd_name=space(30)
@1,0 say "База данных :" get bd_name
read
bd_name=ALLTRIM(bd_name)
if !FILE(bd_name)
clear
@1,0 say "НЕТ ТАКОЙ БАЗЫ ДАННЫХ!"
return
endif
use &bd_name alias bd in 0
select bd
* Запрос-ввод контекста для поиска в БД
context=space(40)
@3,0 say "Контекст для поиска в БД :" get context
read
context=ALLTRIM(context)
* Поиск контекста в БД
n_field=FCOUNT()
for i=1 to n_field
fld=FIELD(i)
if TYPE(fld)='C' or TYPE(fld)='M'
go top
locate for AT(context,&fld)>0
do while FOUND()
?RECNO(),' ',fld,'=',ALLTRIM(&fld)
continue
enddo
endif
EndFor
Use