Скачать .zip

Реферат: Билеты, решения и методичка по Информатике (2.0)

КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 1

1. Общие сведения о реляционной модели данных.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:

Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. Работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК

Вывести поля TAB, FIO, DATA, OBR первой записи в БД для работника, проработавшего на фирме не менее 10 лет.

3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 2


1. Структура команд СУБД FoxPro.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и вывести на экран количество работников, средняя зарплата которых не менее 250 грн.

3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 3


1. Создание и изменение структуры БД. Типы данных (типы полей).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и вывести на экран количество работников фирмы, родившихся позднее 1954 года.

3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 4


1. Средства редактирования данных. Команда BROWSE. Ключи и опции команды.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и вывести на экран количество работников (женщин), имеющих высшее образование.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 5


1. Средства просмотра содержимого БД (DISPL, LIST, их отличие).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и вывести на экран количество работников (женщин), владеющих навыками работы на ПК.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 6


1. Средства редактирования и добавления новых записей в БД (EDIT, CHANGE и APPEND).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и вывести на экран среднюю зарплату для работников фирмы (женщин), имеющих 3-х и более детей.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 7


1. Логическое упорядочивание БД. Создание и использование индексных файлов.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и вывести на экран среднюю зарплату на фирме.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 8


1. Последовательный поиск информации в БД (LOCATE, CONTINUE).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК

Вывести в BROWSE-окне список работников со стажем 10 лет. Предусмотреть вывод названия таблицы и заголовков полей по-русски.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 9


1. Средства создания и отладки программ (MODI COMM, DO).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и вывести на экран «средний стаж» работников фирмы.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 10


1. Средства алгоритмического языка в FoxPro. Команды присваивания и STORE. Работа с массивами.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и вывести на экран содержимое полей FIO, DATA, SRZAR, COMP записи для самого молодого работника фирмы.

3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»


Экзаменационный билет № 11


1. Средства алгоритмического языка FoxPro. Команды IF и CASE.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Вывести в BROWSE-окне список работников с высшим образованием. Предусмотреть вывод названия таблицы и заголовков полей по-русски.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»


Экзаменационный билет № 12


1. Средства алгоритмического языка FoxPro. Команды DO – WHILE, LOOP, EXIT.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Написать фрагмент программы, реализующей обработку меню, которое содержит следующие пункты: ввод новой записи в БД, просмотр, удаление, выход.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»


Экзаменационный билет № 13


1. Использование встроенных функций FoxPro. Функции работы со строками. (LEN(), AT(), ALLTRIM(), SPACE() ).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и удалить (логически и физически) из БД все записи, содержащих в поле дата рождения ссылку на 1966 год.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»


Экзаменационный билет № 31


1. Использование встроенных функций FoxPro. Функции проверки файлов и дисков (FILE ( ), EOF ( ), FOUND ( ), RECNO ( ), RECCOUNT ( ) ) .

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК

Вывести в BROWSE-окне список всех работников, которые владеют иностранными языками. Предусмотреть вывод названия таблицы и заголовков полей по-русски.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»


Экзаменационный билет № 14


1. Изобразительные средства FoxPro.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК

Вывести в BROWSE-окне список работников, владеющих навыками работы на ПК. Предусмотреть вывод названия таблицы и заголовков полей по-русски, предусмотреть видимый размер поля FIO – 15 символов.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 15


1. Команды перемещения в БД. (GO TOP/BOTTOM, SKIP) , привести примеры.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Определить, каков процент работников фирмы не владеет иностранными языками.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»


Экзаменационный билет № 16


1. Удаление записей в БД (логическое и физическое).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Определить, каков процент работников фирмы владеет навыками работы на ПК.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 17


1. Средства разработки меню (LIGHTBAR – меню).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Найти и удалить (логически и физически) из БД все записи для работников, не владеющих навыками работа на ПК.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 19


1. Структура программы, реализующая обработку меню.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Определить, каков процент работников фирмы (женщин) достиг пенсионного возраста.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 20


1. Неформатированный ввод/вывод, команды INPUT, ACCEPT, WAIT, «?».

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Определить, каков процент работников фирмы получает в месяц более 500 грн.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 21


1. Средства форматированного ввода/вывода. Команды @…SAY…GET. Использование их опций и шаблонов.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Отобразить содержимое БД по возрастанию среднемесячной зарплаты.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 22


1. Команды установки SET. (DATE, TALK, MESSAGE, FILTER, PROCEDURE).

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Вывести на экран каждую четную запись БД.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 23


1. Структура окна FoxPro. Работа с окнами. Команды описания, активизации, перемещения.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Отобразить содержимое БД в алфавитном порядке фамилий работников.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 24


1. Модульность программ. Последовательность поиска процедур.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК

Вывести в BROWSE-окне список работников (мужчин). Предусмотреть вывод названия таблицы и заголовков полей по-русски.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 25


1. Модульность программ. Работа с процедурами. Описание и вызов процедур с параметрами и без параметров.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Вывести на экран каждую пятую запись БД.


3. Задача


Зав. кафедрой Преподаватель



КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 26


1. Работа с несколькими БД. Понятие рабочей области. Использование псевдонимов. Составное имя поля.

2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет №27


1. Типы бинарных связей. Привести примеры.

2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 28


1. Пример программы работы с двумя БД (с использованием окон).

2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 29


1. Работа с фильтрами.

2. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


Определить, каков процент работников фирмы имеет детей.


3. Задача


Зав. кафедрой Преподаватель


КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 30


1. Установление связей 1:1 и 1:N в FoxPro.

2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:



3. Задача


Зав. кафедрой Преподаватель




КИЕВСКИЙ НАЦИОНАЛЬНЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

КРЫМСКИЙ ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

по дисциплине: «Информатика и компьютерная техника»

Экзаменационный билет № 18


1. Средства разработки меню (POPUP – меню).


2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:



3. Задача


Зав. кафедрой Преподаватель





2
. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:


2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:





2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:





2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2
. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




2. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:



Экзаменационный билет № 1

3. Вывести в BROWSE-окне список работников, средняя зарплата которых находится в интервале [350;700). Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Создать вычисляемое поле-nadbavka: 4% от среднемесячной зарплаты за знание каждого языка. Оформить задачу в виде процедуры, обеспечить ее вызов.



Экзаменационный билет № 2

3. Вывести в BROWSE-окне список работников (женщин). Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Оформить в виде процедуры, стаж работы должен быть параметром при оформлении процедуры. Предусмотреть вызов процедуры.



Экзаменационный билет № 3

3. Вывести в BROWSE-окне список работников (женщин). Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Оформить в виде процедуры, дату рождения передавать как параметр.



Экзаменационный билет № 4

3. Вывести в BROWSE-окне список работников, имеющих 3-х и более детей. Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Добавить вычисляемое поле-nadbavka: 3% за каждого ребенка (от средней зарплаты).



Экзаменационный билет № 5

3. Вывести в BROWSE-окне список работников, фамилии которых начинаются на букву ‘Л’. Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Добавить вычисляемое поле для сотрудников, стаж работы которых более 10 лет-надбавка-10% от средней зарплаты.



Экзаменационный билет № 6

3. Вывести в BROWSE-окне список работников, работающих не менее 10 лет на фирме. Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Добавить вычисляемое поле-субсидии, для этих сотрудников, которая начисляется, если средняя зарплата меньше 100-10 % от средней зарплаты.



Экзаменационный билет № 7

3. Вывести в BROWSE-окне список работников с высшим образованием. Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски, и вычисляемое поле-надбавка за знание ПК-10% от средней зарплаты.



Экзаменационный билет № 8

3. Вывести в BROWSE-окне список работников, владеющих не менее, чем двумя иностранными языками. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Если работник проработал на фирме более 15 лет, предусмотреть надбавку в размере 10 % от годового оклада. Вывод списка оформить в виде процедуры. В качестве параметра использовать знание работником иностранного языка



Экзаменационный билет № 9

3. Вывести в BROWSE-окне список работников (мужчин), достигших пенсионного возраста. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Оформить в виде процедуры. Обеспечить вызов этой процедуры.



Экзаменационный билет № 10

3. Вывести в BROWSE-окне список работников (женщин), владеющих навыками работы на ПК. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Оформить в виде процедуры, пол использовать как параметр при реализации процедуры. Предусмотреть вызов процедуры.



Экзаменационный билет № 11

3. Вывести в BROWSE-окне список работников с высшим образованием, владеющих навыками работы на ПК. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Оформить в виде процедуры, которая использует пол сотрудника в качестве параметра. Обеспечить вызов процедуры для пола «М» и «Ж».



Экзаменационный билет № 12

3. Вывести в BROWSE-окне список работников со стажем 10 лет, владеющих навыками работы на ПК. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Оформить решение в виде процедуры, стаж работы предавать как параметр. Предусмотреть вызов процедуры.



Экзаменационный билет № 13

3. Вывести в BROWSE-окне список всех работников, которые владеют иностранными языками. Сформировать вычисляемое поле NADBAVKA, в котором предусмотреть выплату премиальных в размере 15% и 30% от средней зарплаты работникам, владеющим 2 и более языками соответственно. Предусмотреть вывод названия таблицы и заголовков полей по-русски.



Экзаменационный билет № 14

3. Вывести в BROWSE-окне список всех работников, которые владеют иностранными языками. Сформировать вычисляемое поле NADBAVKA, в котором предусмотреть выплату премиальных в зависимости от стажа работы: 25 лет – 20% от средней зарплаты. Предусмотреть вывод названия таблицы и заголовков полей по-русски.



Экзаменационный билет № 15

3. Вывести в BROWSE-окне список всех работников, которые владеют иностранными языками. Сформировать вычисляемое поле SUBSIDIA, в котором предусмотреть выплату субсидий работникам в размере 15% от средней зарплаты работникам, имеющим 3 и более детей. Предусмотреть вывод названия таблицы и заголовков полей по-русски.



Экзаменационный билет № 16


3. Найти и вывести на экран содержимое полей FIO, DATA, SRZAR, POL для работника, дольше всех проработавшего на фирме



Экзаменационный билет № 17

3. Найти и удалить (логически и физически) из БД все записи для работников, достигших 40 лет. Оформить в виде процедуры.



Экзаменационный билет № 18


3. Найти и удалить (логически и физически) из БД все записи для работников (мужчин), достигших пенсионного возраста.



Экзаменационный билет № 19


3. Вывести в BROWSE-окне список работников со стажем 10 лет, владеющих навыками работы на ПК. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Выводимые в BROWSE-окне упорядочить по дате рождения, предварительно удалив записи, в которых возраст сотрудника более 50 лет.



Экзаменационный билет № 20

3. Вывести в BROWSE-окне список работников с высшим образованием, владеющих навыками работы на ПК. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Выводимые в BROWSE-окне упорядочить по дате рождения. Оформить в виде процедуры, предусмотреть ее вызов.


Экзаменационный билет № 21


3. Вывести в BROWSE-окне список работников с высшим образованием. Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Выводимые в BROWSE-окне упорядочить по табельному номеру, предварительно удалив записи сотрудников пенсионного возраста (женщин).


Экзаменационный билет № 22

3. Вывести в BROWSE-окне список работников (женщин), владеющих навыками работы на ПК. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Выводимые в BROWSE-окне упорядочить по фамилии. Оформить в виде процедуры, в которой пол передается как параметр. Обеспечить вызов процедуры.


Экзаменационный билет № 23


3. Вывести в BROWSE-окне список работников с высшим образованием, владеющих навыками работы на ПК. Предусмотреть вывод названия таблицы и заголовков полей по-русски. Выводимые в BROWSE-окне упорядочить по полю «стаж». Оформить в виде процедуры, предусмотреть вызов процедуры. В качестве параметра использовать работников с высшим образованием.


Экзаменационный билет № 24


3. Вывести в BROWSE-окне список работников, имеющих 3-х и более детей. Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Выводимые в BROWSE-окне упорядочить по полю «количество детей». Добавить вычисляемое поле-надбавка: 2 % от зарплаты за каждого ребенка. Оформить в виде процедуры.


Экзаменационный билет № 25


3. Вывести в BROWSE-окне список работников, имеющих 3-х и более детей. Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Выводимые в BROWSE-окне упорядочить по дате рождения. Добавить вычисляемое поле-надбавка: 15 % от зарплаты, если она меньше 150. Оформить в виде процедуры. Обеспечить вызов процедуры.


Экзаменационный билет № 26


3. Вывести в BROWSE-окне список работников, имеющих 3-х и более детей. Предусмотреть вывод названия таблицы и заголовков полей базы данных по-русски. Выводимые в BROWSE-окне упорядочить по дате рождения. Добавить вычисляемое поле – надбавка: 3% за ребенка (каждого) от средней зарплаты


Экзаменационный билет № 27

3. Найти максимальное значение из двух величин. Оформить нахождение максимального значения в виде функции. Написать фрагмент программы, реализующей вызов данной функции.



Экзаменационный билет № 28


3. Найти минимальное значение из 2 величин. Оформить нахождение минимального значения в виде функции.

Написать фрагмент программы, реализующей вызов данной функции.


Экзаменационный билет № 29


3. Дано 2 переменных. Найти количество нулевых значений. Оформить нахождение нулевых значений в виде функции.

Написать фрагмент программы, реализующей вызов данной функции.



Экзаменационный билет № 30


3. Дано 2 переменных. Найти количество положительных значений. Оформить нахождение положительных значений в виде функции. Написать фрагмент программы, реализующей вызов данной функции.



Экзаменационный билет № 31


3. Дано 2 переменных. Найти количество отрицательных значений. Оформить нахождение отрицательных значений в виде функции. Написать фрагмент программы, реализующей вызов данной функции.



Экзаменационный билет № 32


3. Дано 2 переменных. Найти количество значений, меньших 10 . Оформить нахождение значений, меньших 10, в виде функции. Написать фрагмент программы, реализующей вызов данной функции.



Экзаменационный билет № 33


3. Написать фрагмент программы, устанавливающую связь один ко многим между двумя базами данных KADR1 и KADR2 по полю TAB



Экзаменационный билет № 34


3. Написать фрагмент программы, устанавливающую связь один к одному между двумя базами данных BRIG1 и BRIG2 по полю KOD



Экзаменационный билет № 35


3. Создать справочник товаров по базе данных SUPPLY. В справочник должны быть включены поля код_товара и наименование_товара.



Экзаменационный билет № 36


3. Найти и вывести на экран максимальную зарплату на фирме.





ВВЕДЕНИЕ

Методические указания предназначены для проведения практических и лабораторных занятий по дисциплине «Информатика и компьютерная техника» для всех форм обучения. В них кратко изложены технологии реляционных СУБД, реализация их средствами СУБД FoxPro, а также даны практические приемы их реализации. Основное внимание уделено изложению команд языка программирования среды FoxPro с пояснениями на конкретных примерах и заданиях по основным темам.


РЕЛЯЦИОННАЯ МОДЕЛЬ

По способу установления связей между данными различают реляционную, иерархическую и сетевую модели.

Реляционная модель является удобной и наиболее привычной формой представления данных в виде таблицы. В математических дисциплинах таблице соответствует термин отношение (relation). Отсюда и произошло название модели – реляционная.

Одним из основных преимуществ реляционной модели является ее однородность. Все данные рассматриваются как хранимые в таблицах, в которых каждая строка имеет один и тот же формат. Каждая строка в таблице представляет некоторый объект реального мира или соотношение между объектами. Пользователь модели сам должен для себя решить вопрос, обладают ли соответствующие сущности реального мира однородностью. Этим самым решается проблема пригодности модели для предполагаемого применения.

Реляционная модель имеет два главных свойства:

  1. базовые порции данных представляют собой отношения (relations);

  2. операции над таблицами затрагивают только соотношения (relation closure).

Соотношение – это математическая концепция, описывающая, как соотносятся между собой элементы двух множеств.

Модель предъявляет к таблицам следующие требования:

  1. данные в ячейках таблицы должны быть структурно неделимыми. Каждая ячейка может содержать только одну порцию данных. Это свойство часто определяется как принцип информационной неделимости. Недопустимо, чтобы в ячейке таблицы реляционной модели содержалось более одной порции данных, что иногда называется информационным кодированием. Примером служит идентификационный номер автомобиля. Если записать его в одну ячейку, то будет нарушен принцип неделимости информации, поскольку в ячейке окажутся разделяемые данные такие, как наименование производителя, модели, сведение о нахождении предприятия и т.д.;

  2. данные в одном столбце должны быть одного типа;

  3. каждый столбец должен быть уникальным (недопустимы дублирования столбцов);

  4. столбцы размещаются в произвольном порядке;

  5. строки размещаются в таблице также в произвольном порядке;

  6. столбцы имеют уникальные наименования.

Два фундаментальных правила: правило целостности объектов (entity integrity rule) и правило ссылочной целостности (referential integrity rule).

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

Внешний ключ – это столбец или подмножество одной таблицы, который может служит в качестве первичного ключа для другой таблицы. Внешний ключ таблицы является ссылкой на первичный ключ другой таблицы. Правило целостности объектов утверждает, что первичный ключ не может быть полностью или частично пустым, т.е. иметь значение null. Правило ссылочной целостности гласит, что внешний ключ может быть либо пустым, либо соответствовать значению первичного ключа, на который он ссылается.

Формальное определение следующее:

Схемой отношения R называется конечное множество имен атрибутов {A,A,…,A}. Каждому имени атрибута A ставится в соответствие множество D, называемое доменом атрибута A, 1<=i<=n. Домен атрибута A обозначается также dom(A). Имена атрибутов иногда называются символами атрибутов или просто атрибутами. Домены являются произвольными непустыми конечными или счетными множествами. Пусть D=DDD.

Отношение r со схемой R – это конечное множество отображений {t,t,…,t} из R в D; причем каждое отображение tr должно удовлетворять следующему ограничению: t(A) принадлежит D, 1<=i<=n. Эти отображения называются кортежами.

Семейство систем управления базами данных FoxPro, является продуктом известной фирмы Fox Software и имеет широкую популярность во всем мире. В настоящем пособии рассматривается версия FoxPro2.6 (нерусифицированная), работающая под управлением Windows.


ТИПЫ ДАННЫХ

Visual FoxPro 6.0 типы данных


Тип

Описание

Размер

Диапозон

Character

Любой текст 1 byte per character to 254 Любой символ

Currency

Monetary amounts (денежно-кредитные количества)

8 bytes - 922337203685477.5807 to 922337203685477.5807

Date

Хронологические данные, состоящие из месяца, года, и дня 8 bytes

When using strict date formats, {^0001-01-01}, January 1st, 1 A.D to {^9999-12-31}, December 31st, 9999 A.D.

DateTime

Хронологические данные, состоящие из месяца, года, дня, и времени

8 bytes

When using strict date formats, {^0001-01-01}, January 1st, 1 A.D to {^9999-12-31}, December 31st, 9999 A.D., plus 00:00:00 a.m. to 11:59:59 p.m.

Logical

Boolean значения true или false

1 byte True (.T.) or False (.F.)

Numeric

Integers or fractions(Целые числа или фракции(доли))

8 bytes in memory;
1 to 20 bytes in table

- .9999999999E+19 to .9999999999E+20

Variant

A variant can contain any of the Visual FoxPro data types and the null value. Once a value is stored to a variant, the variant asosumes the data type of the data it contains. Variants are designated with an e prefix in language syntax (Вариант может содержать любой из Визуальных FoxPro типов данных и нулевое(пустое) значение).

See data types above. См. типы данных выше.

See data types above. См. типы данных выше.


В среде FoxPro установлены следующие стандартные типы файлов (всего свыше 60, приводятся лишь некоторые):

.dbf - файл базы данных;

.fpt - файл для хранения текстов memo- полей;

.idx - индексный файл;

.cdx - мультииндексный файл;

.prg - командный, программный файл;

.mem - файл для хранения временных переменных;

.fxp - откомпилированный комадный prg- файл;

.pjx - файл проекта.


1. СУБД FOXPRO: ОЗНАКОМЛЕНИЕ С СИСТЕМОЙ РАБОТА В МЕНЮ-ОРИЕНТИРОВАННОМ РЕЖИМЕ


Работа в среде FoxPro выполняется в одном из следующих режимов:

- непосредственная интерпретация команд;

- меню - ориентированный режим;

  • выполнение программ.


При работе в первом режиме пользователь вводит текст команды в командном окне. Среда осуществляет синтаксический контроль и выполняет команду. Некоторые команды в процессе выполнения проводят собственный диалог с пользователем, другие могут выдавать лишь краткие сообщения об итогах работы. Второй режим предназначен для начинающего пользователя, который не освоил еще языка команд. Наконец, режим выполнения программ подразумевает, что пользователь будет писать программы, используя язык команд xBase, дополненный специальными командами программирования. Весь цикл по написанию, отладке и выполнению программ можно осуществлять в среде системы.

МЕНЮ - ОРИЕНТИРОВАННЫЙ РЕЖИМ.

Рабочее пространство FoxPro представлено окном, верхняя строка которого является строкой главного меню системы. Под ней - рабочая зона пользователя. В рабочем пространстве открыто также командное окно, размер и положение которого можно изменять либо удалить.


Активизация строки меню F10

Выбор заголовка меню клавиши управления курсором

Вход в меню следующего уровня Enter

Отмена Esc


За клавишами F1-F10 закреплены стандартные директивы, назначение клавиш можно переопределить.

Горячие клавиши (например, CTRL+F2 - активизация командного окна, CTRL+D - выполнение программ)

Главное меню состоит из заголовков групп операций и команд:

Для FoxPro 2.6 системное меню выглядит следующим образом

SYSTEM FILE EDIT DATABASE RECORD PROGRAM WINDOW

Каждой группе соответствует меню второго уровня - меню операций и директив, некоторые из них открывают свои диалоговые окна. Перемещения внутри окон – клавишами управления курсором, по полям окон - Tab. В диалогах используются командные "кнопки", изображенные на экране. К ним относятся, например. Ok (подтверждение установок). Cancel (отмена установок). Save (сохранение) и многие другие. Недоступные пункты главного меню и директивы имеют пониженную яркость.

Рассмотрим некоторые пункты главного меню.

System-меню – вспомогательные средства FoxPro,

в том числе:

About FoxPro - предъявление фирменного знака.

Help - помощь. Просмотр и выбор варианта помощи –

клавиши управления курсором.

Вход в следующее меню - Enter. Перемещение –

клавиши управления курсором.

Контекстная помощь вызывается из любого

режима - F1.

Macros - закрепление макрокоманд за клавишами F1 - F10.

Filer - менеджер файлов - выполняет функции управления

файлами.

Выбор полей - Tab. Левое поле - просмотр файлов

(скроллинг).

Правое поле - выбор накопителя, каталога,

маркировка. Нижнее поле -манипуляция файлами.

Calculator - вызов калькулятора.

Calendar-Diary - вызов календаря для внесения записей. Левое поле –

выбор дня (по стрелкам), месяца (PgUp, PgDn), года

(Shift +PgUp, Shift+PgDn), текущая дата - Т. Правое

поле - для записей (Вход - Tab, Выход -Shift Tab).

Special Characters - таблица символов псевдографики.

ASCII Chart - таблица ASCII-кодов.

Capture - взятие в буфер заданной области экрана.

Puzzle - игра

File-меню:

New - создание

Open - открытие

Close - закрытие

Save - сохранение

Save as - сохранение с новым именем

Revert - возврат предыдущей версии файла

Printer Setup - установки принтера

Print - печать файла

Quit - выход

При создании нового файла (New) пользователю предлагается выбрать тип создаваемого файла: базы данных, программный, текстовый, индексный, генератора отчетов или др. Выбранный тип получает пометку (•) .

Edit – меню – встроенный текстовый редактор системы.


Undo - отмена последнего действия,

Redo - повторение отмененного действия,

Cut - вырезка части текста в буфер,

Сoру - копирование части текста в буфер,

Paste - вывод содержимого буфера в текст,

Clear - очистка части текста,

Select All - выделение всего текста окна,

Goto Line - переход к строке,

Find - поиск заданного фрагмента текста,

Find Again - поиск следующего вхождения,

Replace and Find Again - последовательный поиск с заменой,

Replace All - полная замена всех вхождений,

Preference - настройка редактора.


Database меню – работа с данными, хранимыми в БД

Setup - модификация баз данных, индексов, фильтров,

Browse - вызов команды полноэкранного редактирования,

Append From - добавление записей из других БД или файлов,

Copy То - копирование в другие БД или файлы,

Sort - сортировка записей,

Total - создание БД с суммами по заданному признаку,

Average - среднее арифметическое числовых полей,

Count - подсчет записей с указанным признаком,

Sum - суммирование числовых полей,

Calculate - вычисления в БД,

Report - подключение ранее созданной формы отчета,

Pack - физическое удаление помеченных полей,

Reindex - переиндексирование базы.


Record-меню – работа с записями файлов БД

Append - вызов окна дополнения БД новыми записями,
Change - вызов окна редактирования записей,
Goto - переход к указанной записи,
Locate - последовательный поиск записи по ключу,
Continue - продолжение поиска,
Seek - ускоренный индексный поиск по ключу,
Replace - изменения (вычисления) в БД,

Delete - пометка записей для удаления,

Recall - снятие пометок для удаления.


Program – меню – средства работы с программами

Do - выбор командного файла и исполнение,

Cancel - прерывание программы,

Resume - продолжение программы,

Compile - переход в окно компиляции,

Generate - вызов генератора приложений,

FoxDoc - вызов документатора программ,

FoxGraph - вызов графического пакета.


Window-меню – работа с окнами

Hide - удаление командного окна с экрана,

Clear - очистка рабочего поля,

Move - перемещение командного окна,

Size, Zoom - изменение размера командного окна,

Cycle - циклическое переключение активных окон,

Color - выбор цветовой схемы,

Command - активизация командного окна,

Debug - вызов отладочного окна,

Trace - трассировка программ,

View - переход в View

Подробную информацию о работе в меню - ориентированном режиме можно получить из контекстной помощи (Help - F1).


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

- добавление, ввод данных;

- изменение, корректировка полей записей;

- пометка записей к удалению;

- отмена пометки к удалению;

- замена значений полей;

- переход к записи, положение которой указывается в

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

<Тор> - к первой записи,

- к последней записи

- по указанию номера записи,

- смещение от активной записи по указанию шага

- поиск данных путем указания в окне критериев поиска:

- область поиска выбирается из альтернатив:

- все записи файла;

- следующая за активной записью;

- по указанию номера записи;

- оставшиеся, начиная с активной;

- указание логических условий отбора по значениям полей в

окне редактора выражений;

- отбор данных, пока истинно логическое условие ;

- быстрый поиск для индексированного файла данных


Команды Record-меню не затрагивают физической структуры базы данных. Замечание: В открытом Browse-окне удобно использовать комбинации клавиш:

^ N - дополнение, ^Т - пометка к удалению, ^W- выход с сохранением изменений.

Команды Database-меню дают следующие возможности:

- аналоги одноименных команд из меню Window/View;

- сжатие данных, удаление помеченных записей.

- сортировка записей по заданному ключу с перезаписью в

другой файл данных.

Дополнительные возможности работы с данными в меню — ориентированном режиме можно освоить с помощью Help-меню.

Более широкий круг возможностей работы с созданной базой данных, удовлетворяющих всем информационным потребностям пользователя, обеспечивает покомандный режим работы (набор команд в Command-окне) либо программный режим (создание командных prg-файлов).


2.ОСНОВНЫЕ КОМАНДЫ FOXPRO

В настоящем разделе приводится краткое описание основных команд языка программирования среды FoxPro, которые можно задавать непосредственно в Command- окне либо использовать в тексте программ. Получение командные файлы выполняются в режиме интерпретации. Продуктивное освоение языка возможно только при практической проработке материала на компьютере.

Формат команды FOXPRO:


ИМЯ_КОМАНДЫ [<границы>] [<список выражений»]

[ FОR<условие>] [WHILE< условие>]


Здесь < зона действия > - границы действия команды:

ALL - все записи;

REST - все записи от текущей до конца;

NEXT - следующие N записей;

RECORD - запись с номером N;

FОR<условие> - выполнение команды только для записей,

удовлетворяющих условию;

WHILE< условие > - выполнение команды только до тех пор, пока не

перестанет выполняться условие.

Пример:

LIST ALL FIELDS num, name FOR name = 'A'


Для длинных записей команд используется символ переноса на следующую строку - ";".

КОМАНДЫ УСТАНОВКИ

Кроме приведенных выше команд в FOXPRO имеется большой класс команд, называемых командами установки. Они не выполняют каких-либо действий, но влияют на работу других команд.

Имеется два типа команд установки:

SET < параметр > ON|OFF

SET < параметр1 > TO < параметр2 >

ON|OFF – означает, что установка либо включена, т.е. работает,

либо выключена.

Примеры:

SET TALK OFF – погашения вывода служебных

сообщений о работе команд на экран;

SET PROCEDURE TO a:\proc1 – назначение процедурного файла.

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

Перейдем к рассмотрению конкретных команд.


ДИАЛОГОВЫЕ КОМАНДЫ

Создание и изменение структуры файла базы данных.

СRЕАТЕ<имя_файла> - создание структуры БД в диалоге.

Пример

Название поля Тип Пояснение

TAB numeric табельный номер

FIO character ФИО

POL character пол

DATA date дата рождения

OBR logical наличие высшего образования

LANG numeric кол-во ин. языков, кот-ми влад. Работник

STAG numeric стаж работы на фирме

DETI numeric количество детей

SRZAR numeric среднемесячная зарплата

COMP logical знание ПК


MODIFY STRUCTURE - изменение структуры открытой БД.


При вызове этих команд среда открывает диалог, предоставляя экран-форму для ввода данных о структуре создаваемого файла базы данных.


КОМАНДЫ РЕДАКТИРОВАНИЯ

APPEND [BLANK] - добавление записи в конец открытой БД

([BLANK] -пустая запись).

INSERT [BLANK] [BEFORE] - вставка записи до [BEFORE] или после

текущей записи.

CHANGE [<зона действия>] [FIELDS<список полей>] [WHILE <условие>]

[ FOR < условие >] - редактирование значений полей.

DELETE [зона действия] [WHILE <условие>][FОR<условие>] пометка

записей признаком удаления.

BROWSE... - команда доступа пользователя к данным.

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


ПРОСМОТР ДАННЫХ.

Команды DISPLAY и LIST

DISPLAY [<зона действия >][<поля>]FOR[<условие>]WHILE[<условие>]

[OFF] [TO PRINT / TO FILE<файл>]

Команда LIST с похожими функциями не делает остановок при выдаче данных и по умолчанию область ее действия - весь файл, а команды DISPLAY- одна текущая запись.

Примеры:

DISPLAY REST FOF fio= ’И’

LIST 'фамилия', fio FOR dolg = "инженер"


Удаление данных

ERASE <файл> - удаление закрытого файла;

ZAP - удаление всех записей с сохранением структуры;

DELETE [<зона действия >] [WHILE< условие >] [FOR< условие >] - пометка к удалению или логическое удаление записей;

PACK - физическое удаление, помеченных к удалению записей;

RECALL [<зона действия >] [WHILE< условие >] [FOR< условие >] - снятие пометок к удалению;

Замечание. помеченные к удалению записи остаются в БД, однако они могут не обрабатываться другими командами, если была выполнена установка

SET DELETE ON.

Выполнение команды PACK приводит к физическому уничтожению записей,

БД при этом сжимается.


Фильтрация данных

SET FILTER ТО [<условие>] - установка FOR-условия для всех команд обработки данных (остальные данные недоступны).

SET FILTER TO без параметра - отменяет ограничения.

Пример:

Изменение данных

REPLACE [<границы>] [WHILE<условие>] [FОR<условие>] <поле1>

WITH<выражение>[,<поле2> WITH<выражение> …] [ADDITIVE]

- множественное изменение полей в соответствии с выражениями.


Пример: REPLACE zarp with zarp* 1.25 for dolg=”инженер”


Последовательный поиск

LOCATE FОR<условие> [<границы>] [WHILE<условие>] - поиск первой

удовлетворяющей FOR-условию записи, При успешном поиске

указатель записей устанавливается на найденную запись.

CONTINUE - продолжение поиска


Пример:

USE KADR

LOCATE FOR stag > 12

DO WHILE ! EOF() && пока не достигнут конец файла данных

? FIO

CONTINUE

ENDDO


Перечисленные команды могут быть выполнены путем выбора из в системном меню или непосредственным набором в Command-окне. Наряду с другими командами и средствами программирования, приводимыми далее, они могут использоваться также в текстах программ.

3. СОЗДАНИЕ КОМАНДНЫХ ФАЙЛОВ


Командные файлы представляют собой исходные тексты программ и имеют тип .prg. Они создаются с помощью встроенного редактора FoxPro , вызываемого командой

MODIFY COMMAND <имя файла >

По команде MODI COMM (допустимое сокращение) без указания имени по умолчанию создается prg-файл без имени. Присвоить имя следует при первом сохранении текста программы. Удобно использовать комбинацию клавиш ^W для сохранения текста программы. Для редактирования ранее созданной программы используют команду

MODI СОММ <имя>.

Для запуска программ используется команда

DO <имя командного файла>

Созданная программа выполняется в режиме интерпретации . При обнаружении ошибки выполнение прерывается и комментируется сообщением.

Пример. Приводится текст программы, предназначенной для отображения всех записей БД, содержащих информацию о сотрудниках, получающих зарплату меньше 200.

SET TALK OFF

SET DATE BRITISH

USE KADR

LOCATE FOR Zarp < 200

DO WHILE !EOF() && пока не достигнут конец файла данных

DISPL

CONTINUE

ENDDO


4.Команда полноэкранного редактирования BROWSE

Команда BROWSE представляет собой целую среду редактирования. Она имеет более 20 различных параметров. Рассмотрим наиболее часто используемые из них.

Формат команды.

BROWSE

[FIELDS<пoля>] [FОR<условие1>]

[FORMAT] [FREEZE<поле>]

[КЕУ,<выр 1 >[,<выр2>]] [LAST]

[LEDIT / REDIT] [LOCK<вырN1>]

[LPARTITION] [NOAPPEND]

[NOCLEAR] [NODELETE]

[NOEDIT/NOMODIFY] [NOLGROD / NORGRIG]

[NOLINK] [NOMENU]

[NOOPTIMIZE] [NORMAL]

[NOWAIT] [PARTITION<вырN2>]

[REST] [PREFERENCE<вырC1>]

[TIMEOUT<вырN3>] [ТITLЕ<вырС2>]

[NOOPTIMIZE] [WHEN< ycловие3>]

[window<окно>] [NOWAIT]

[VALID[F:] [ERROR<вырC3>]

[COLOR SCHEME<вырN5> / COLOR<список цветовых пар>]


Действие некоторых опции команды.

1. Выбор полей

FIELDS< список полей> - перечень полей (по умолчанию - все).

Ключи:

:R - разрешен только просмотр поля;

:<выр N> - видимый размер поля;

:У=<выр L1> - контроль выхода из поля;

:F - проверка вводимых и существующих данных;

:Е=<вырС2> - выдача собственного сообщения;

:Р=<вырС2> - задание формата отображения данных по шаблону;

:Н=<вырСЗ> - указание собственного заголовка поля;

:В=<выр1>,<выр2>[:Е] - указание границ чисел или дат;

:W=<вырL2> - контроль входа в поле.

В список полей могут включаться так называемые вычисляемые поля, которые являются функциями других полей или переменных.

2. Отбор данных

FОR <условие 1> - устанавливает фильтр для записей; выводятся только

записи, удовлетворяющие <условкю1>;

REST - предотвращает повторный поиск сначала;

КЕУ<выр1>[,<выр2>] - ограничение действия команды диапазоном

ключевого выражения активного индексного файла

З. Разделение окна

LOCK<вырN1> BROWSE - окно делится на две части, где первые <вырN1> полей

дублируются в левой части окна (переход ^Н);

PARTITION<вырN2> - то же, но граница проходит по полю <вырN2>

LEDIT/REDIT - действуют только в разделенном окне и задают

форму представления данных (формуляр);

LPARTITION - курсор устанавливается в левой половине окна;

NOLINK - несинхронное перемещение видимых записей;

NOLGRID/NORGRID - удаляет вертикальные линии разделители полей.

4. Контроль редактирования записей

VALID<условие2>[ERROR<вырC3>] - анализирует условия для текущей записи;

WHEN<условие3> - определяет возможность доступа к записи;

NOAPPEND - дополнение по Ctrl-N невозможно;

NOEDIT/NOMODIFY - редактирование невозможно;

NODELETE - редактирование невозможно;

FREEZE<поле> - единственное доступное поле.

5. Конфигурирование BROWSE-окна

LAST - сохранение конфигурации;

PREFERENCE FORMAT - использование форматного файла;

NOCLEAR - после выхода окно не удаляется;

NOMENU - подавляет вывод системного меню;

TIMEOUT - время работы с окном;

TITLE<вырC3> - заголовок окна;

WINDOW - позволяет открыть другое окно.


Пример:

Set talk off

set date British

use kadr.dbf

browse ;

title '^t-удаление ^n-добавление ^w-выход';

fields ;

fio :h='ФИО' :20, ;

dolg :h='должность', ;

zarp :h='зарплата ' ,;

birth :h='день рождения' ,;

pol :h='рол' ,;

adress :h='адрес' ,;

godzarp = zarp*12 :h='год.зарплата' :p='#####,##'

pack

close all


5.КОМАНДЫ ВВОДА-ВЫВОДА

Средства неформатированного ввода/вывода


Команда вывода ? / ??


? / ?? [<выр1>] [АТ<выр N>][,<выр 2>...]


Команда ? выводит выражения [<выр1>] …[,<вырN>] с новой строки,

?? - в текущей строке; AT -номер столбца в строке вывода.


Команда вывода TEXT

TEXT

<текст >

ENDTEXT

Эта команда удобна для вывода больших объемов текста, текст выводится в том виде, как он выглядит в команде.


Команды вывода \ и \\

\ <строка текста> - вывод строки и перевод курсора в начало следующей строки.

\\ <строка текста> - вывод без перевода курсора.


Другие команды ввода-вывода

INPUT <сообщение> ТО <переменная>

ACCEPT <сообщение> ТО <символьная переменная>

WAIT [<сообщение>] [ТО<символьная переменная>]

[TIMEOUT<вырN>] [WINDOW] [CLEAR]

Подробные комментарии и примеры можно найти в соответствующем разделе HELP среды FoxPro.


СРЕДСТВА ФОРМАТНОГО ВВОДА/ВЫВОДА

Команда @ ... SAY ... GET

Формат команды :

@

[SAY<вырl>

[PICTURE<вырCl>] [COLOR SCHEME<вырN1> /

COLOR<список цветовых пар>]]

[GET

[PICTURE<вырC2>]

[DEFAULT<выр2>] [ENABLE / DISABLE]

[MESSAGE<вырC3>] [[OPEN] WINDOW ]

[RANGE [<выр3>][<выр4>]]

[SIZE<вырN2>,<вырN3>]

[VALID<вырLl>/<вырN4>[ERROR<вырC4>]]

[WHEN<вырL2>]

[COLOR SCHEME<вырN5>/COLOR<список цветовых пар>]]


Здесь Y,X - пара чисел или переменных, определяющих номер строки и столбца. Команда @ без других параметров устанавливает курсор в заданную позицию и очищает строку Y вправо от X.


Параметры команды

@ Y,X SAY<вырl> - выдает с заданной позиции <выражение> любого

типа (поля БД, переменные и пр.); в сложном

выражении элементы соединяются знаком "+";

@ Y,X GET <переменная/поле> - с заданной позиции выдается переменная или

поле записи с возможностью редактирования

(переменная уже должна существовать);

DEFAULT <выр2> - действует только при работе с переменными;

задает выражение по умолчанию и предъявляет к

редактированию;

ENABLE/DISABLE - разрешает/запрещает доступ к get-полю;

MESSAGE <вырСЗ> - для данного поля выдает пояснение в строке

вывода сообщений;

RANGE<выр3><выр4> - контролирует диапазон значений;

SIZE<вырN3><вырN4> - определяет область, отводимую под

редактирование;

VALID... - логический контроль ввода;

WHEN<вырL2> - вход в редактируемое поле допускается только при

истинности выражения;

[OPEN] WINDOW - используется с memo-полями;

COLOR SCHEME <вырN>/COLOR<список цветовых пар>- определяет

раскраску полей ввода-вывода.


Возможно соединение фраз SAY и GET в одной команде. При этом GET осуществляет предъявление и возможность редактирования. После команды или группы команд GET должна обязательно следовать команда READ. Эта команда приостанавливает выполнение программы до заполнения всех GET -полей и присваивает соответствующие значения переменным или полям базы данных.


Примеры:

1) В 10 строке, 15 колонке вывести текст 'ЗАРПЛАТА - ', в этой же строке обеспечить поле ввода для переменной и контроль за правильностью ввода (введенное значение должно находится в интервале [100.00,1778.00] ).

X = 100.00

@ 10,15 SAY 'ЗАРПЛАТА - ' GET X RANGE 100.00,1778.00

READ

2) Обеспечить ввод значений зарплат только кратным 10

@ 10,15 SAY 'ЗАРПЛАТА - ' GET X VALID MOD(X/10) = 0

READ

Шаблон PICTURE разрешает ввод только определенных символов данных:

А - ввод только букв;

L - ввод только логических данных T / F;

N - ввод только букв и цифр;

Х - ввод любых символов;

Y - ввод только логических данных Y/N;

9 - ввод только цифр в символьных данных, цифр и знаков "+","-" - в числовых

данных;

# - ввод цифр, пробелов и знаков "+","-";

! - преобразует строчные буквы в прописные;

* - перед числами;

. - задает позицию десятичной точки.


Пример:

@ 10,8 SAY 'ЗАРПЛАТА - ' PICTURE ###.##'


3) Пример создания форматного файла CADR.FMT, для редактирования данных в отношении CADR.DBF. Вид экранной формы:

ДАННЫЕ О СОТРУДНИКЕ


Текст файла CARD.FMT

@ 4, 30 SAY 'ДАННЫЕ О СОТРУДНИКЕ'

@ 5, 9 ТО 11, 70 DOUBLE

@ 5, 41 SAY ‘Сегодня '+DТОС(DАТЕ( )) + ' '

@ 6, 18 SAY 'Фамилия, инициалы: ' GET fio

@ 7, 18 SAY ‘Табельный номер: ' GET tab

@ 7, 40 SAY Должность: ' GET Dolg

@ 10, 12 SAY 'Выход с сохранением изменений - ^End, без - Esc'

Созданный форматный файл может быть использован в программе с помощью команды SET FORMAT ТО <имя файла>.

Фрагмент программы:

SET FORMAT TO CARD.FMT

CHANGE

SET FORMAT TO


6.СРЕДСТВА ПРОГРАММИРОВАНИЯ


Приведенные выше команды относятся к языковым средствам определения данных и манипулирования данными. Наряду с ними язык программирования среды FoxPro обладает присущими языкам высокого уровня возможностями, такими как использование переменных и массивов, организация ветвлений и циклов, создание процедур и другими.

ПЕРЕМЕННЫЕ

В FoxPro разрешается иметь переменные тех же типов, что и поля таблиц БД (кроме мемо). Тип переменной определяется типом последнего присваиваемого ей выражения.

Команда присваивания:

<переменная> = <выражение> или

STORE <выражение> ТО <имена переменных:».

Примеры:

a = b^2 + 2*c – 3*a

STORE 0 ТО a,b,c – присвоение нулевого значения переменным a,b,c


МАССИВЫ ПЕРЕМЕННЫХ

Разрешена работа с одномерными и двумерными массивами переменных.

Описание массивов выполняет команда:

DECLARE / DIMENSION < переменная >(<выpNl>[,<выpN2>]) .


Пример:

DIMENSION а(3,4), b(4)

Максимальное количество и максимальная размерность массивов 3600. Значения элементов массива формируются присваиванием им значений выражений либо в результате обмена с БД посредством следующих команд:


Команды управления

Команда IF : Команда DO CASE:

IF <условие> DO CASE

<команды> CASE <условие1>

[ELSE <команды>

<команды>] CASE <условие2>

ENDIF <команды>

[OTHERWIZE

<команды>]

ENDCASE


Кроме этих команд имеется очень полезная функция IIF ( ) (см. приложение)


Примеры:

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 <переменная> = <вырN1> ТО <вырN2> [STEP <вырN3> ]

<команды> 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


7.ОРГАНИЗАЦИЯ МЕНЮ

Меню являются основной формой поддержания диалога в информационных системах. Среда FoxPro обладает большим набором средств организации световых и клавишных меню. Выделим две основных технологии построения меню, которые порождают «меню - программы» и «меню - объекты».

Меню-программа является частью программы, где оно создается, используется и удаляется. При этом вырабатываются числовые переменные, фиксирующие выбор из меню, которые анализируются командами DO CASE, требуют использования циклов DO WHILE и т.д. Рассмотрим два типа таких меню. Будем использовать приведенную выше программу, которую предварительно разобьем на ряд процедур.

LIGHTBAR - меню строится с использованием команд:

@ Y, X PROMPT <выражение> [MESSAGE<выpaжeниe>] - выдает в

позиции Y,X строку меню и дополнительное сообщение,

если указано MESSAGE, в строке заданной командой

SET MESSAGE .

MENU TO <переменная> - запоминает цифру, соответствующую выбору.


PULLDOWN - меню (двухуровневое меню) использует команды

MENU BAR <массив>, - определяет пункты горизонтального

BAR-меню, задавая их как элементы первого столбца

двумерного <массива >, во второй столбец заносятся

сообщения, N- общее число пунктов меню.

MENU <выр1>, <массив>, <выр2> - определяет содержание

вспомогательного вертикального меню (POPUP-меню)

READ MENU BAR TO <перем1>, <перем2> - активирует меню.


Пример


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-меню для выбора процедур.


8.ИЗОБРАЗИТЕЛЬНЫЕ СРЕДСТВА

Из большого списка возможностей рассмотрим лишь некоторые

1. Построение рамки

@ ТО [DOUBLE / PANEL<окантовка>

COLOR <список цветовых пар> / COLOR SCHEME

В указанных координатах строится рамка, ограниченная двойной линией (DOUBLE), с сплошным заполнением (PANEL) и желаемого цвета.

2. Управление цветом

Обозначения цветов:

черный N

желтый GR+

бирюзовый BG

коричневый GR

белый W

зеленый G

лиловый RB

красный

Команда

SET COLOR TO [<текст>[,<доп>] [,<рамка>] [,<фон>]]

- устанавливает цвета для основного текста, для вывода сообщений,

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

дополнительных сообщений. Цвет текста и цвет фона под ним

образуют цветовую пару (например, W/B или R+/ GR).


Цветовую схему можно определить в диалоге и сохранить в специальном файле и командой SET COLOR OF SCHEME TO [<список nap>]/[SCHEME]. Можно задать мерцание изображения: SET BLINK ON/OFF.

10. РАБОТА С НЕСКОЛЬКИМИ БАЗАМИ ДАННЫХ


В FoxPro допускается работа сразу со многими базами данных, и при этом можно устанавливать между ними разнообразные связи, которые позволяют синхронно перемещать указатели записей в таких связанных базах. База, в которой указатель движется произвольно, считается старшей, а база (базы), в которой указатель следует за указателем старшей базы, - младший. В старшей и младших базах должны быть совпадающие поля. Допускается сцепление одной базы с несколькими другими. Младшие базы, в свою очередь, могут быть связаны с базами следующего уровня и т.д.

Возможно установление двух типов связей между записями двух сцепленных баз данных. Связь типа одна_запись-к-одной перемещает указатель в младшей базе таким образом, что он всегда устанавливается на первую встреченную им запись с совпадающим признаком. Остальные такие записи (если есть) остаются «не замеченными». Эта связь устанавливается командой SET RELATION. Связь типа одна_запись-ко-многим позволяет обратиться ко всем записям младшей базы с совпадающим признаком (команды SET RELATION и SET SKIP TO).


ПОНЯТИЕ О РАБОЧИХ ОБЛАСТЯХ

В FoxPro обрабатывать сразу несколько файлов баз данных (до 25). Каждый такой файл типа DBF и все вспомогательные файлы (например, индексные) открываются в своей отдельной рабочей области. Переход из области в область осуществляется командой:

SELECT <рабочая область / псевдоним>

Первые десять рабочих областей идентифицируются номерами 1-10 или буквами A – J. Области с 11-й по 25-ю обозначаются номерами или буквенно-цифровыми именами W11 – W25. Если в качестве параметра указать цифру 0, произойдет переход в первую свободную рабочую область. Кроме того, рабочие области и файлы базы данных могут идентифицироваться так называемыми псевдонимами. Псевдонимом области по умолчанию является само имя находящегося в ней файла базы данных.

Область, в которой в данный момент работает пользователь, называется активной рабочей областью, и в ней можно работать с находящейся здесь базой данных. В одной команде можно работать с полями других баз (открытых в других областях). В этом случае имя поля из неактивной базы – составное: имени поля предшествует имя рабочей области или псевдоним, разделенные знаком «точка»:

< рабочая область / псевдоним > .<имя поля>

Рабочая область в составном имени указывается любым разрешенным образом (буквой, именем ее базы данных, псевдонимом), но не номером. Номер может быть указан в команде SELECT и в функциях.

При входе в СУБД активизируется область 1 (или А), и, если пользователь работает только с одной базой, заботиться об открытии областей не нужно.

В команде USE можно одновременно указывать и область, в которой открывается база. Пример:

USE delivery IN b.

Однако переход в указанную область с помощью такой команды не происходит (для перехода необходимо воспользоваться командой SELECT).


ПРИМЕР РАБОТЫ С НЕСКОЛЬКИМИ БАЗАМИ ДАННЫХ

В НЕСКОЛЬКИХ ОБЛАСТЯХ

В приведенной ниже программе приводится пример работы с двумя базами данных, базой Поставщик (Delivery) и базой Поставка (Supply). Структура баз и назначение полей приводится в Приложении № 3. Данная программа позволяет по введенному коду товара найти всех поставщиков, поставляющих данный товар.


CLEAR

SET TALK OFF

SET EXACT OFF

SELE A

USE Supply

KOD=0

@ 1,2 SAY 'Введите код товара' GET KOD PICTURE'#####'

READ

LOCATE FOR indgoods = kod

IF !FOUND()

WAIT 'Такого кода нет'

RETURN

ENDIF

ind = inddel

SELE B

USE Delivery

LOCATE FOR inddel=ind

IF !FOUND ()

WAIT 'Такого поставщика нет'

RETURN

ENDIF

DISPL namedel, count, tel, A.namgoods, A.pricegds

CLOSE ALL


Связь вида одна_запись-к-одной

Команда

SET RELATION TO <ключ> INTO <область> [,<ключ > INTO < область >…] [ADDITIVE]


связывает указатель записей в активной рабочей области с указателем записей из других рабочих областей, которых указаны после слова INTO, по заданному общему полю (ключу). Единственное условие – файл базы данных, с которым устанавливается связь, должен быть проиндексирован по этому полю.


Пример

Связать базы данных SUPPLY.DBF и DELIVERY.DBF по полю INDDEL. По коду поставщика вывести список поставщиков и их реквизиты.


SET TALK OFF

CLEAR

SELE A

IF FILE ('Inddelivery.ind')

USE Delivery INDEX Inddelivery

ELSE

USE delivery

INDEX ON inddel TO Inddelivery

ENDIF

SELE B

USE Supply

SET RELATION TO inddel INTO A

DO WHILE .T.

kod=0

CLEAR

@ 12,23 TO 14,50 DOUBLE

@ 13,25 SAY 'Введите код товара' GET kod PICTURE '#####'

READ

LOCATE FOR indgoods = kod

IF !FOUND()

WAIT 'Такого товара нет'

LOOP

ENDIF

name=namgoods

IF kod <>0

SET FILTER TO indgoods = kod

BROWSE ;

TITLE ' Список поставщиков, поставляющих ' + name ;

FIELDS ;

INDDEL :H = ' Код поставщика ' ,;

A.NAMEDEL :H = 'Название поставщика ' ,;

A.ADRDEL :H = 'Адрес ' ,;

A.TEL :H = 'Телефон '

SET FILTER TO

ENDIF

IF LASTKEY()=27

EXIT

ENDIF

ENDDO

PACK

CLOSE ALL


В этой программе выводятся записи, в которых для каждого кода поставщика inddel из текущей базы данных Supply.dbf (открытой в области В) выводятся поля A.namedel (Название поставщика), A.adrdel (Адрес) и A.TEL (Телефон) из базы данных Delivery.dbf (открытой в области A).

В FoxPro имеется возможность устанавливать связи с несколькими базами одновременно. Если со старшим файлом, который уже связан с другим, необходимо связать некоторый третий (четвертый и т.д.), следует во все последующие команды SET RELATION включать слово ADDITIVE, которое обеспечит сохранение связей, установленных ранее.

Связь между всеми файлами разрывается командой SET RELATION TO без параметров. Связь с отдельным файлом в заданной <области> - командой SET RELATION OF INTO <область>.


Связь вида одна_запись-ко-многим

Команда SET SKIP TO [< область1 > [,< область2 >] … ]

устанавливает связь типа одна_запись-ко-многим между двумя или несколькими базами данных.

С каждой записью из старшей базы могут быть сцеплены несколько записей из младшей базы. Связь может быть установлена сразу с несколькими младшими базами, находящимися в указанных <областях>.

Прежде чем использовать команду SET SKIP TO, необходимо выполнить начальное сцепление вида одна_запись-к-одной командой SET RELATION. Удаление связи одна_запись-ко-многим осуществляется командой SET SKIP TO без параметров.


Пример

Установить связь между тремя базами данных. В программе используется

третья база Товаров (Goods.dbf), получаемая из БД Supply.dbf


SET TALK OFF

IF FILE ('Goods.dbf')

ERASE Goods.dbf

ENDIF

IF FILE ('Indnum.idx')

ERASE Indnum.idx

ENDIF

SELE A

USE Supply

IF FILE ('Indg.idx')

SET INDEX TO Indg.idx

ELSE

INDEX ON indgoods TO Indg UNIQUE

ENDIF

COPY TO Goods FIELDS indgoods, namgoods, measure

SELE C

USE Smdeliv

IF FILE ('Indexdel.idx')

SET INDEX TO Indexdel.idx

ELSE

INDEX ON indgoods TO Indexdel UNIQUE

ENDIF

SELECT SUPPLY

SET RELATION TO inddel INTO Delivery ADDITIVE

SELE B

USE Goods

INDEX ON namgoods TO Indnum

SET RELATION TO indgoods INTO Supply ADDITIVE

SET SKIP TO Supply

BROWSE TITLE "Товары" ;

FIELDS ;

Goods.Namgoods :H = "Имя Товара" ,;

Delivery.Namdel :H = "Имя Поставщика" ,;

Delivery.Adrdel :H = "Имя Поставщика" ,;

Delivery.Count :H = "Счет", ;

Goods.Measure :H = "Ед.Измерения" ,;

Supply.Pricegds :H = "Цена Единицы" ,;

Supply.Quant :H = "Кол-Во Единиц" ,;

Totalamount=Supply.Quant * Supply.Pricegds :H = "Общая Сумма"

CLOSE ALL


11. РАБОТА С ОКНАМИ

Использование окон - очень удобное и эффектное средство создания пользовательского интерфейса в прикладной программе.

Определение окна

DEFINE WINDOW <имя окна> FROM, TO , <Х2>

[FOOTER<выр>] [TITLE<выр>] [SYSTEM/DOUBLE/PANEL/NONE]

[CLOSE][FLOAT][GROW][SHADOW][ZOOM][FILL<выр>][MINIMIZE]


FOOTER, TITLE - нижний и верхний заголовки;

форма границ окна:

SYSTEM - стандартная,

DOUBLE - двойная линия,

PANEL - сплошная полоса,

NONE - не определяется,

CLOSE - допускает закрытие окна мышью,

FLOAT - перемещение с помощью ^F7 или мышью,

GROW - изменение размера (^F8 или мышью),

ZOOM /

MINIMIZE - распахивание и свертывание окна;

SHADOW - теневая рамка,

FILL - символ заполнения окна.


Активация уже определенного окна

ACTIVATE WINDOW [[<окно1>][,< окно2>]] [,...]] ALL [BOTTOM / TOP]]

Здесь указаны имена открываемых или всех (ALL) окон. BOTTOM / TOP - размещение нового окна под/перед уже имеющимся.

Удаление с экрана

DEACTIVATE WINDOW <окно1>[,<окно2>][,...] /ALL

Удаление с экрана и из памяти

CLEAR WINDOW - Удаление с экрана и из памяти ВСЕХ окон

RELEASE WINDOW <окна> - Перечисленных окон.


Восстановление окна

RESTORE WINDOW


Сохранение в файле

SAVE WINDOW <окна> /ALL TO <файл>


12.ПРИЛОЖЕНИЯ


12.1. СТАНДАРТНЫЕ ФУНКЦИИ FOXPRO


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


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

BETWEEN(<выр>,<выр1 >,<выр2>) - истинно (.Т.), если <выр1> <выр>

 <выр2>, иначе ложно (.F.) (для чисел,

строк, дат)

CEILING(<вырN>) - округление числа<вырN>с избытком

FLOOR(<вырN>) - округление числа <вырN> с недостатком

INТ(<вырN>) - целая часть числа <вырN>

МАХ(<выр>,<выр1>[,<выр2>...]) - максимальное значение из списка

аргументов (числа, строки, даты)

MIN<выр>,<выр1>[,<выр2>...]) - минимальное значение из списка

аргументов

MOD(<вырN1 >,<вырN2>) - целочисленный остаток от деления

<вырN1 > на <вырN2>

ROUND(<вырN1 >,<вырN2>) - округление числа <вырN1> до <вырN2>

знаков после запятой

RAND(<вырN>]) - псевдослучайное число в диапазоне 0...1

SIGN(<вырN>) - знак числа <вырN>


Степенные, тригонометрические и другие функции

ЕХР(<вырN>) - экспонента <выpN>

LOG(<вырN>) - натуральный логарифм <вырN>

LOG10(<вырN>) - десятичный логарифм <вырN>

SQRT(<вырN>) - квадратный корень числа <вырN>

SIN(<вырN>) - синус <вырN> от угла в радианах

COS(<вырN>) - косинус <вырN>

TAN(<вырN>) - тангенс <вырN>

ASIN(<вырN>) - арксинус <вырN> (результат в радианах)

ATAN(<вырN>) - арктангенс <вырN>

PI ( ) - число

DTOR(<вырN>) - преобразование градусной меры угла в

радианы

RTOD(<вырN>) - преобразование радианной меры угла в

градусы


Строковые функции

<вырС1>$<вырС2> - вхождение <вырС1> в <вырС2>

(результат .Т. или .F.)

AT / ATC(<вырC1>,<вырC2>[,<вырN>) - поиск слева направо в строке

<вырС2> позиции вхождения

подстроки <вырС1>, начиная с

<вырN> позиции строки <вырС2>

RАТ(<вырС1>,<вырС2>[,<вырN>) - то же справа налево

INLIST(<выp1>,<выp2>[,<выp2>…]) - вхождение <выр> в последующий

список (результат .Т. или .F.)

LEN(<вырC>) - длина строки <вырС>

LIKE(<вырC 1 >,<вырС2>) - вхождение <вырС1> в <вырС2>

(результат .Т. или .F.) с

использованием символов маски * и ?

OCCURS(<вырC1>,<вырС2>) - число вхождений <вырС1>в<вырС2>

LEFT(<вырC,<вырN>) - вырезка слева из строки <вырC>

символов в колич. <вырN>

RIGHT(<выpC,<выpN>) - то же справа

SUBSTR(<вырС>,<нач.поз.>,[<число символов>]) - вырезка из строки

<вырС1> подстроки символов от

<нач.поз.> в количестве <число

символов>

LTRIM(<вырC>) - удаление начальных пробелов

TRIM / RTRM(<вырC>) - удаление завершающих пробелов

ALLTRIM(<вырC>) - удаление начальных и завершающих

пробелов

REPLICATE(<выpC>,<выpN>) - повтор <вырN> раз строки <вырC>

SPACE(<вырN>) - формирование строки пробелов

длины <вырN>


Функции преобразования

АSС (<вырC>) - выдает ASCII код первого символа

CHR (<вырN>) - преобразует число в символ в

соответствии с кодом

STR (<выpN>,[,[<дec.знaки>]]) - преобразует число <вырN> в строку

длиной <длина> с указанным

числом <дес.знаки>

VAL (<вырС>) - преобразует символьную запись числа

в число


Функции обработки мемо-полей

ATLINE(<вырc>,<мемо поле>) - первое вхождение строки <вырC>

в <мемо поле>

ATCLINE (<вырC>,<мемо поле>) - то же без различения строчных и

прописных букв

RATLINE(<вырC>,< мемо поле >) - последнее вхождение строки <вырС>

в <мемо поле>

MLINE(<мемо поле >,<вырN>) - возвращает строку <вырN> из

<мемо поля>

MEMLINES(<мемо поле>) - число строк в мемо поле


Функции работы с датами

СТОD(<вырC>) - преобразование даты из строки

символов в формат даты

DATE( ) - системная дата

DAY(<вырD>) - число месяца из даты

DMY(<вырD>) - представление даты в виде

ДД МЕСЯЦ ГГ (или ГГГТ)

DOW (<вырD>) - номер дня недели

DTOC (<вырD>) - преобразование выражения типа даты

в строку символов

GOMONTH(<вырD>,<вырN>) -возвращает дату, которая отстоит от

<вырD> на ±<вырN> месяцев

MONTH(<вырD>) - числовое значение номера месяца по

дате

YEAR(<вырD>) - числовое значение года по дате


Функция анализа условий

BOF(<условие>,<выр1>,<выр2>) - выдает значение<выр1>, если условие

истинно, и <выр2> если ложно.


Функции проверки файлов и дисков

ВОF([<область>]) - достижение начала файла (результат

.Т. или .F.)

ЕОF[(<область>]) - достижение конца файла (результат

.Т. или .F.)

DBF([<область>]) - выдает полное имя файла БД в

текущей области

DISCSPACE ( ) - число свободных байт на активном

диске

DELETED([<область>]) - наличие пометки записи к удалению

(результат .Т. или .F.)

FILE(<имя>) - проверка наличия файла

FIELD(<вырN>[,<область>]) - выдает имя поля по его номеру в

активной БД

FOUND([<область>]) - успешное завершение поиска

(результат .Т. или .F.)

FCOUNT([<область>]) - число полей в открытом файле БД

LOOKUP(<поле1>,<выр>,<поле2>) - ищет первое вхождение выражения в

<поле2> и выдает <поле1>

LUPDATE([<область>]) - дата последнего изменения БД

ORDER([<область>]) - имя главного индексного файла

RECNO([<область>]) - номер текущей записи активного

файла БД

RECCOUNT([<область>]) - общее количество записей

RECSIZE([<область>]) - размер записи в байтах

HEADER([<область>) - размер заголовка БД в байтах

SЕЕK(<выр>[,<область>]) - поиск записи с <выр> в индексном

файле

ЕМРТY(<выр>) - наличие данных в объекте (результат

.Т. или .F.)

ТYРЕ(<вырС>) - выдает букву имени типа


Функции позиционирования

COL ( ) - номер текущей колонки экрана или окна

ROW ( ) - номер текущей строки экрана или окна

РСОL ( ) - номер текущей колонки на принтере

PROW ( ) - номер текущего столбца на принтер


12.2. SET - КОМАНДЫ

Эти команды служат дня задания флажков состояний, параметров среды и т.п., которые обычно задаются в начале текста программы и в случае необходимости переопределяются или отменяются. В среде FoxPro имеется свыше 100 таких команд. Приведем некоторые из них. За дополнительными разъяснениями можно обратиться к HELP.

SET ALTERNATE ON/OFF - установить флаг вывода данных с экрана

в файл

SET BELL ON/OFF - установить флаг звукового сигнала

SET BLINK ON/OFF - установить флаг мигания символов

SET SENTURY ON/OFF - установить флаг отображения столетия

в датах

SET CLOCK ON/OFF - установить флаг вывода времени

SET COLOR TO - задать цвета меню и окон пользователя

SET COLOR OF SCHEME - задать цвета схемы

SET CURRENCY TO - задать денежный знак

SET DATE TO... - определить формат даты

SET DECIMALS TO… - установить число цифр в дробной

части числа

SET DEFAULT TO... - задать диск и каталог по умолчанию

SET DELETED ON/OFF - установить флаг доступа к записям с

пометкой удаления

SET ECHO ON/OFF - установить флаг активизации окна отладки

SET ESCAPE ON/OFF - установить флаг прерывания по

клавише ESC

SET FILTER TO… - задать фильтр доступа к записям

SET FUNCTION...TO... - связать команду с функциональной

клавишей

SET HELP ON/OFF - установить режим доступа к помощи

SET INDEX TO… - открыть индекс

SET KEY TO - задать предельное значение ключевого

индекса

SET MESSAGE TO... - задать местоположение сообщений

SET ORDER TO... - задать основной индекс

SET PATH TO… - задать список каталогов для поиска файлов

SET PRINTER ON... - установить флаг вывода на принтер

SET PROCEDURE TO... - открыть заданный процедурный файл

SET RELATION TO… - установить связь 1:1 с другой БД

SET RELATION OFF - разорвать связь с другой БД

SET SHADOWS ON/OFF - установить флаг наличия тени

SET SKIP TO… - установить связь 1:N с другой БД

SET SPACE ON/OFF - установить флаг вставки пробелов

SET TALK ON/OFF - установить флаг вывода результатов

выполнения команд

SET WINDOW OF MEMO TO... - задать имя окна редактирования

мемо-полей


12.3. ТЕКСТЫ ПРОГРАММ


Структура для базы данных: DELIVERY.DBF

Field Field Name Type Width Dec Index

1 INDDEL Numeric 2

2 NUMDEL Character 10

3 ADRDEL Character 20

4 COUNT Character 8

5 TEL Numeric 6


Структура для базы данных: SUPLY.DBF

Field Field Name Type Width Dec Index

1 INDSUP Numeric 5

2 INDDEL Numeric 2

3 DATE Date 8

4 NAMGOODS Character 15

5 QUANT Numeric 5

6 PRICEGOODS Numeric 5 2

7 MEASURE Character 3

8 INDGOODS Numeric 5


*********************** Работа с несколькими БД *****

USE Suply

ERASE Goods.dbf

INDEX ON indgoods TO Indg UNIQUE

COPY TO Goods FIELDS indgoods;

,namgoods,measure

SELECT 2

USE Goods

BROWSE

CLOSE ALL

SET TALK OFF

DEFINE WINDOW vvod FROM 2, 2 TO 7, 35 DOUBLE FLOAT SHADOW

DEFINE WINDOW vivod FROM 8, 2 TO 20,70 SYSTEM ;

COLOR SCHEME 10

CLEAR

SELECT A

IF FILE ('Inddeliv.idx')

USE Delivery INDEX Inddeliv

ELSE

USE Delivery

INDEX ON inddel TO Inddeliv

ENDIF

SELECT B

USE Suply

SET RELATION TO inddel INTO Delivery

DO WHILE .T.

ACTIVATE WINDOW vvod

CLEAR

A=0

@ 2,5 SAY 'Введите код товара' GET A PICTURE '#####'

READ

LOCATE FOR indgoods=A

IF !FOUND()

WAIT 'Такого кода нет'

LOOP

ENDIF

name=namgoods

IF A<>0

SET FILTER TO indgoods=A

ACTIVATE WINDOW vivod

BROWSE ;

TITLE 'Список поставщиков, поставляющих '+name ;

FIELDS ;

A.inddel :H = 'Код поставщика', ;

A.namdel :H = 'Имя поставщика', ;

A.adrdel :H = 'Адрес поставщика', ;

A.tel :H = 'Телефон поставщика', ;

A.count :H = 'Счет поставщика'

DEACTIVATE WINDOW vivod

SET FILTER TO

ENDIF

DEACTIVATE WINDOW vvod

IF LASTKEY()=27

EXIT

ENDIF

ENDDO

PACK

CLOSE ALL


CLEAR

SET TALK OFF

SELECT B

USE Goods

SELECT A

USE Suply

INDEX ON indgoods TO Indg

SELECT C

USE Delivery

INDEX ON inddel TO Indexdel

SELECT Suply

SET RELATION TO inddel INTO Delivery

SELECT Goods

INDEX ON namgoods TO Indnum

SET RELATION TO indgoods INTO Suply


SET SKIP TO Suply

BROWSE TITLE 'Товары' ;

FIELDS ;

Goods.namgoods :H = 'Имя товара' ,;

Delivery.numdel :H = 'Имя поставщика',;

Delivery.adrdel :H = 'Его адрес',;

Delivery.count :H = 'Счет' ,;

Goods.measure :H = 'Единица измерения' ,;

Suply.pricegoods :H = 'Цена единицы' ,;

Suply.quant :H = 'Количество единиц' ,;

Totalamount=Suply.quant * Suply.pricegoods ;

:H = 'Общая сумма'

CLOSE ALL


3.1. Линейная программа

********** установки ***********

CLEAR

SET TALK OFF

CLOSE ALL

USE state IN a && открыть в зоне а файл STATE

USE sotr IN b && открыть в зоне b файл CADR


*********** работа с таблицей state **************

SELECT a

BROWSE ;

TITLE 'Штаты ^Т – удал ^N - добав ^W – coxp ' ;

FIELDS cod :H = ‘Код’ ,;

dolg :H = 'Должность' ,;

zarp :H = 'Оклад' ,;

kol :H = 'Количество'


*********** поиск данных в таблице STATE ***********

CLEAR

с = 0

@ 5, 10 SAY 'Задайте код должности:' GET с PICTURE '###'

READ

@ 6, 2 SAY 'Результат поиска'

LOCATE ALL FOR cod = C

DO WHILE ! EOF ( )

? 'Должность - ', dolg, ' Оклад - ', zarp

CONTINUE

ENDDO

WAIT 'Продолжение – ENTER ' WINDOW


******** работа с таблицей sotr ****************

SELECT b

BROWSE ;

TITLE 'Список - ^ T-удал ^ N - добав ^W - сохр' ;

FIELDS cod :Н = 'Код' ,;

fio :H = 'Фамилия И.О.' ,;

tab :H = 'Табельный номер'


**** поиск данных в таблице SOTR ****

CLEAR

с = 0

@ 5, 10 SAY 'задайте код должности:' ;

GET с PICTURE '###'

READ

@ 6, 2 SAY 'Результат поиска'

LIST 'Фамилия - ', fio, 'Табельный номер - ', tab;

WHILE cod = c

WAIT 'Продолжение – ENTER ' WINDOW


**** работа с форматом ****

SET FORMAT TO cadr.fmt

CHANGE

SET FORMAT TO


******** установление связи********************

SELECT b

SET ORDER TO cod

SELECT a

SET ORDER TO cod

SET RELATION TO cod INTO b

SET SKIP TO b

BROWSE ;

TITLE 'Информация' ;

FIELDS A.dolg :H = ‘должность' ,;

B.fio :H = 'Ф.И.О.' ,;

A.zarp :H = 'оклад' ,;

nal = A.zarp * 0.2 :H = 'налог'

SET RELATION TO


********* конец программы**********


3.2 Программа, состоящая из процедур, вызываемых из меню

CLEAR ALL

SET TALK OFF

CLOSE ALL

SET SHADOWS ON

USE state IN a

USE cadr IN b


************** МЕНЮ ****************

DEFINE POPUP mmenu

DEFINE BAR1 OF mmenu PROMPT 'Информация'

DEFINE BAR2 OF mmenu PROMPT 'Штатное расписание предприятия'

DEFINE BAR3 OF mmenu PROMPT 'Список сотрудников'

DEFINE BAR4 OF mmenu PROMPT 'Состояние'

DEFINE BAR5 OF mmenu PROMPT 'Запрос'

DEFINE BAR6 OF mmenu PROMPT 'Выход'

ON SELECTION BAR6 OF mmenu DEACTIVATE POPUP

ON SELECTION BAR1 OF mmenu DO about

ON SELECTION BAR4 OF mmenu DO p2table

ON SELECTION BAR5 OF mmenu DO pspr

ON BAR2 OF mmenu ACTIVATE POPUP wow

ON BAR3 OF mmenu ACTUVATE POPUP sos

DEFINE POPUP wow

DEFINE BAR1 OF wow PROMPT ‘Просмотр'

DEFINE BAR2 OF wow PROMPT 'Поиск'

ON SELECTION BAR1 OF wow DO pstate

ON SELECTION BAR2 OF wow DO psearch

ON SELECTION POPUP wow DO wow

DEFINE POPUP sos

DEFINE BAR1 OF sos PROMPT 'Просмотр'

DEFINE BAR2 OF sos PROMPT 'Поиск'

ON SELECTION BAR1 OF sos DO pstate

ON SELECTION BAR2 OF sos DO psearch

ON SELECTION POPUP sos DO sos

ACTIVATE POPUP mmenu


************ работа с таблицей state **************

PROCEDURE pstate

SELECT a

BROWSE ;

TITLE 'Штаты ^T - удал ^N - добав ^W - coxp' ;

FIELDS cod :Н = 'Код' ,;

dolg :H = 'Должность' ,;

zarp :H = 'Оклад' ,;

kol :H = 'Количество'

RETURN


******** поиск данных в таблице STATE ************

PROCEDURE psearch

CLEAR

c = 0

@ 10, 15 SAY 'Задайте код должности:' ;

GET с PICTURE '###'

READ

@ 12, 10 SAY 'Результат поиска'

LOCATE ALL FOR cod = c

DO WHILE ! EOF ( )

? 'Должность - ', dolg, 'Оклад - ', zarp

CONTINUE

ENDDO

WAIT 'Продолжение – ENTER ' WINDOW

CLEAR

RETURN


******** работа с таблицей cadr ***************

PROCEDURE pcadr

SELECT b

BROWSE ;

TITLE 'Список ^T - удал ^N - добав ^W - сохр' ;

FIELDS cod :H = 'Код' ,;

fio :H = 'Фамилия И.О.' ,;

tab :H = 'Табельный номер'

RETURN


******** поиск данных в таблице SOTR *******

PROCEDURE рcadrsr

CLEAR

с = 0

@ 5, 10 SAY ‘Задайте код должности:' ;

GET с PICTURE '###'

READ

@ 6, 2 SAY 'Результат поиска'

LIST 'Фио - ', fio, ' Табельный номер - ', tab;

WHILE cod = c

WAIT 'Продолжение – ENTER ' WINDOW

CLEAR

RETURN


******** установление связи ******************

PROCEDURE p2table

SELECT b

SET ORDER TO cod

SELECT a

SET ORDER TO cod

SET RELATION TO cod INTO b

SET SKIP TO b

BROWSE ;

TITLE 'Информация' ;

FIELDS A.dolg :H = 'Должность' ,;

B.fio :H = 'Ф.И.О.' ,;

A.zarp :H = 'Оклад' ,;

nal = a.zarp*0.2 :H = 'Налог'

SET RELATION TO

RETURN


********* заставка ************

PROCEDURE about

CLEAR

@ 8, 15 TO 20, 60 double

@ 9, 25 SAY ‘Штатное расписание'

@ 12, 20 SAY 'Модель информационной системы'

WAIT 'Продолжение – ENTER ' WINDOW

CLEAR

RETURN

********* запрос ************

PROCEDURE pspr

CLEAR

DEFINE WINDOW spr FROM 10, 10 TO 18, 40 ;

TITLE 'Справка' SHADOW

ACTIVATE WINDOW spr

@ 1, 1 SAY 'Запрос о занятых должностях и общем'

@ 2, 1 SAY 'Количестве ставок по ним'

WAIT 'Продолжение – ENTER ' WINDIW

DEACTIVATE WINDOW spr

SELECT B

SET ORDER TO cod

SELECT A

SET ORDER TO cod

SET RELATION TO cod INTO b

SET SKIP TO B

SELECT A.dolg, A.kol, COUNT(B.fio) AS cnt, SUM(A.zarp) AS ssum ;

FROM state A, cadr B INTO CURSOR qq ;

WHERE B.cod = A.cod ;

GROUP by A.dolg

BROWSE TITLE 'Занятые должности' ;

FIELDS dolg :Н = 'Должность' ,;

kol :Н = 'По штату' ,;

cnt :Н = 'Занято' ,;

ssum :Н = 'Суммарный оклад'

CLEAR

SET RELATION TO

RETURN

11. Задания.

1. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:

2
. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:



3. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:

4
. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:



5. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:

6
. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:



7. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:




8. Обеспечить форматный ввод переменной x и форматный вывод значения функции yзуя оператор ветвления case. Функция имеет вид:





РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА


1. Дейт К. Введение в системы баз данных. - М.: Наука-1980.- 463 с.

2. Мидоу Ч. Анализ информационных систем. - М.: Прогресс. - 1977.- 400 с.

3. Цикритзис Д., Лоховски Ф. Модели данных.- М.: Финансы и статистика. -1985.-344 с.

4. Мейер Д. Теория реляционных баз данных. - М.: Мир. -1987.-608 с.

5. Бойко В.В., Савинков В.Ф. Проектирование баз данных информационных систем.- М.: Финансы и статистика. -1982 .- 382 с.

6. Джексон Г. Проектирование реляционных баз данных для использования с микро-ЭВМ. - М.: Мир. - 1991. - 252 с.

7. Попов А.А. Программирование в среде FoxPro2.0. - М.: Финансы и статистика. - 1993. - 350 с.

  1. Бемер С. FoxPro 2.6 для WINDOWS. - Киев: Торгово-издательское бюро BHV.- 1995.-463 с.