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

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

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

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

Экзаменационный билет № 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. Дана база данных (БД) о кадровом составе фирмы, которая содержит следующие данные:


--PAGE_BREAK----PAGE_BREAK----PAGE_BREAK--

Экзаменационный билет № 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). Отсюда ипроизошлоназвание модели– реляционная.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Семействосистем управлениябазами данныхFoxPro, является продуктомизвестной фирмыFoxSoftwareи имеет широкуюпопулярностьво всем мире.В настоящемпособии рассматриваетсяверсия 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 divfix 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


--PAGE_BREAK--

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

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

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

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

SYSTEM FILE EDIT DATABASE RECORD PROGRAM WINDOW

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

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

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

в томчисле:

AboutFoxPro — предъявлениефирменногознака.

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

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

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

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

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

режима- F1.

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

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

файлами.

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

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

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

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

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

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

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

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

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

SpecialCharacters — таблица символовпсевдографики.

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 FindAgain — последовательныйпоиск с заменой,

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 FORname = 'A'


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

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

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

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

SET ON|OFF

SET TO

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

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

Примеры:

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

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

SETPROCEDURE 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 знаниеПК


MODIFYSTRUCTURE — изменениеструктурыоткрытой БД.


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


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

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-одна текущаязапись.

Примеры:

DISPLAYREST FOF fio= ’И’

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


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

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

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

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

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

RECALL [][WHILE] [FOR] — снятиепометок к удалению;

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

SETDELETE ON.

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

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


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

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

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

Пример:

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

REPLACE[][WHILE][FОR]

WITH[,WITH…] [ADDITIVE]

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


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


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

LOCATE FОR[][WHILE]- поиск первой

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

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

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


Пример:

USE KADR

LOCATE FOR stag > 12

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

? FIO

CONTINUE

ENDDO


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

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

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

MODIFYCOMMAND

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

MODI СОММ .

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

DO

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

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

SET TALK OFF

SET DATE BRITISH

USE KADR

LOCATE FOR Zarp

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

DISPL

CONTINUE

ENDDO


4.КомандаполноэкранногоредактированияBROWSE

КомандаBROWSEпредставляетсобой целуюсреду редактирования.Она имеет более20 различныхпараметров.Рассмотримнаиболее частоиспользуемыеиз них.

Форматкоманды.

BROWSE

[FIELDS] [FОR]

[FORMAT] [FREEZE]

[КЕУ,[,]] [LAST]

[LEDIT/ REDIT] [LOCK]

[LPARTITION] [NOAPPEND]

[NOCLEAR] [NODELETE]

[NOEDIT/NOMODIFY] [NOLGROD/ NORGRIG]

[NOLINK] [NOMENU]

[NOOPTIMIZE] [NORMAL]

[NOWAIT] [PARTITION]

[REST] [PREFERENCE]

[TIMEOUT] [ТITLЕ]

[NOOPTIMIZE] [WHEN]

[window] [NOWAIT]

[VALID[F:][ERROR]

[COLORSCHEME/ COLOR]


Действиенекоторых опциикоманды.

1.Выбор полей

FIELDS- переченьполей (по умолчанию- все).

Ключи:

:R — разрешентолько просмотрполя;

: — видимый размерполя;

: У= — контроль выходаиз поля;

:F — проверкавводимых исуществующихданных;

: Е= — выдача собственногосообщения;

: Р= — задание форматаотображенияданных по шаблону;

: Н= — указаниесобственногозаголовка поля;

: В=,[: Е] — указание границчисел или дат;

:W= — контроль входав поле.

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

2. Отборданных

FОR — устанавливаетфильтр длязаписей; выводятсятолько

записи, удовлетворяющие;

REST — предотвращаетповторный поисксначала;

КЕУ[,] — ограничениедействия командыдиапазоном

ключевоговыраженияактивногоиндексногофайла

З. Разделениеокна

LOCKBROWSE-окно делитсяна две части, где первыеполей

дублируютсяв левой частиокна (переход^Н);

PARTITION -то же, но границапроходит пополю

LEDIT/REDIT — действуюттолько в разделенномокне и задают

формупредставленияданных (формуляр);

LPARTITION — курсор устанавливаетсяв левой половинеокна;

NOLINK — несинхронноеперемещениевидимых записей;

NOLGRID/NORGRID — удаляет вертикальныелинии разделителиполей.

4.Контрольредактированиязаписей

VALID[ERROR] -анализируетусловия длятекущей записи;

WHEN — определяетвозможностьдоступа к записи;

NOAPPEND — дополнениепо Ctrl-Nневозможно;

NOEDIT/NOMODIFY — редактированиеневозможно;

NODELETE — редактированиеневозможно;

FREEZE — единственноедоступное поле.

5.КонфигурированиеBROWSE-окна

LAST — сохранениеконфигурации;

PREFERENCEFORMAT — использованиеформатногофайла;

NOCLEAR — после выходаокно не удаляется;

NOMENU — подавляет выводсистемногоменю;

TIMEOUT — время работыс окном;

TITLE — заголовок окна;

WINDOW — позволяетоткрыть другоеокно.


Пример:

Settalk off

setdate British

usekadr.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

closeall


5.КОМАНДЫВВОДА-ВЫВОДА

Средстванеформатированного ввода/вывода


Командавывода? / ??


вырC3>поле>условие3>вырC3>условие2>вырN2>вырN2>вырN1>вырN1>выр2>выр1>условкю1>условие>вырL2>выр2>выр1>вырСЗ>вырС2>вырС2>вырL1>вырN>список>списокцветовых>вырN5>вырC3>ловие2>окно>ycловие3>вырС2>вырN3>вырC1>вырN2>вырN1>выр2>выр1>поле>условие1>пoля>имякомандногофайла>имя>имяфайла>условие>границы>условие>выражение>поле2>выражение>поле1>условие>условие>границы>условие>условие>условие>зонадействия>условие>условие>зона>файл>файл>условие>условие>поля>зона>условие>условие> условие >условие>списокполей>зонадействия>имя_файла> параметр2> параметр1> параметр> условие>условие> зона действия> условие>условие>границы>оре>Тор>    продолжение
--PAGE_BREAK--

? /?? [][АТ][,...]


Команда ? выводит выражения[] …[,]с новой строки,

?? — в текущейстроке; AT -номерстолбца в строкевывода.


Командавывода TEXT

TEXT

ENDTEXT

Этакоманда удобнадля выводабольших объемовтекста, текствыводится втом виде, какон выглядитв команде.


Командывывода \ и \\

\ — выводстроки и переводкурсора в началоследующейстроки.

\\ — вывод без переводакурсора.


Другиекоманды ввода-вывода

INPUT ТО

ACCEPT ТО

WAIT [] [ТО]

[TIMEOUT][WINDOW] [CLEAR]

Подробныекомментарии и примеры можно найти в соответствующемразделе HELP средыFoxPro.


СРЕДСТВАФОРМАТНОГО ВВОДА/ВЫВОДА

Команда@… SAY… GET

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

@

[SAY

[PICTURE][COLOR SCHEME/

COLOR]]

[GET

[PICTURE]

[DEFAULT][ENABLE / DISABLE]

[MESSAGE][[OPEN] WINDOW]

[RANGE [][]]

[SIZE,]

[VALID/[ERROR]]

[WHEN]

[COLORSCHEME/COLOR]]


ЗдесьY,X — пара чисел илипеременных, определяющихномер строкии столбца. Команда@ без другихпараметровустанавливаеткурсор в заданнуюпозицию и очищаетстрокуY вправоотX.


Параметрыкоманды

@ Y,X SAY — выдает с заданнойпозиции любого

типа(поля БД, переменныеи пр.); в сложном

выраженииэлементы соединяютсязнаком "+";

@ Y,X GET — с заданнойпозиции выдаетсяпеременнаяили

поле записис возможностьюредактирования

(переменнаяуже должнасуществовать);

DEFAULT — действуеттолько приработе с переменными;

задаетвыражение поумолчанию ипредъявляетк

редактированию;

ENABLE/DISABLE — разрешает/запрещаетдоступ кget-полю;

MESSAGE — для данногополя выдаетпояснение встроке

выводасообщений;

RANGE — контролируетдиапазон значений;

SIZE — определяетобласть, отводимуюпод

редактирование;

VALID… — логическийконтроль ввода;

WHEN — входв редактируемоеполе допускаетсятолько при

истинностивыражения;

[OPEN]WINDOW — используетсясmemo-полями;

COLOR SCHEME/COLOR-определяет

раскраскуполей ввода-вывода.


Возможносоединениефраз SAYи GET в одной команде.При этом GET осуществляет предъявление и возможность редактирования.После командыили группыкоманд GET должнаобязательноследоватькоманда READ. Этакоманда приостанавливаетвыполнениепрограммы дозаполнениявсех GET -полейи присваиваетсоответствующиезначения переменнымили полям базыданных.


Примеры:

1) В 10строке, 15 колонкевывести текст 'ЗАРПЛАТА- ', в этой же строкеобеспечитьполе ввода дляпеременнойи контроль заправильностьюввода (введенноезначение должнонаходится винтервале[100.00,1778.00] ).

X= 100.00

@10,15 SAY 'ЗАРПЛАТА- ' GET X RANGE100.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([,]).


Пример:

DIMENSIONа(3,4),b(4)

Максимальноеколичествои максимальнаяразмерностьмассивов3600. Значенияэлементовмассива формируютсяприсваиваниемим значенийвыражений либов результатеобмена с БДпосредствомследующихкоманд:


Командыуправления

Команда IF: КомандаDO CASE:

IF DO CASE

CASE

[ELSE

] CASE

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

Y = -2*X^2+5*X

CASE X>=0 AND X

Y = 15 –2*X^2

CASE X>=5

Y =ABS(12*X – SIN(12))

ENDCASE

? «Y = » ,Y

CLOSE ALL


ОРГАНИЗАЦИЯЦИКЛОВ

Циклс условием


DO WHILE Выход из цикла- EXIT

Возврат кначалу цикла- LOOP

ENDDO


Циклвида DOWHILE .T. ENDDOприменяетсякак операторныескобки.


Циклс параметром

FOR = ТО [STEP ]

ENDFOR


ЦИКЛСКАНИРОВАНИЯ

SCAN [][FOR][WHILE] ENDSCAN — применяетсядля перемещенияв базе данныхи выполнениякоманд

длякаждой записи, отвечающейусловиям.


Примеры:

Приводятсяфрагментыпрограмм поискав БД Kadr всех записей

с фамилиейна букву 'И'.

1) USE Kadr 2) USE Kadr

LOCATEFOR fio = 'И' SCAN FOR fio= 'И'

DOWHILE!EOF( )

ENDSCAN

CONTINUE

ENDDO


ПРОЦЕДУРЫ


В FoxProиспользуютсяпроцедуры каквнутренниетак и внешние, а также процедуры-функции.Внутренняяпроцедурадолжна начинатьсякомандой PROCEDURE и заканчиватьсякомандой RETURN.Внешние процедурымогут бытьобъединенывprg-файли подключаютсякомандой SETPROCEDURE TO.

Обращениек процедуре:

DO [WITH ][IN FILE ], где — список фактическихпараметров.Все входныефактическиепараметры передвызовом процедурыдолжны бытьопределены.


Формальныепараметрыописываютсяв процедурекомандой PARAMETERS.

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

RETURN, где выражениеесть результатфункции.


Процедуры


В FoxProиспользуютсяпроцедуры каквнутренниетак и внешние, а также процедуры- функции.Внутренняяпроцедурадолжна начинатьсякомандой PROCEDURE и заканчиватьсякомандой RETURN.Внешние процедурымогут бытьобъединенывprg-файли подключаютсякомандой SETPROCEDURETO. Обращениек процедуре:


DO [WITH][INFILE]


Параметрыописываютсяв процедурекомандой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обладает большимнабором средстворганизациисветовых иклавишных меню.Выделим двеосновных технологиипостроенияменю, которыепорождают «меню- программы»и «меню — объекты».

Меню-программаявляется частьюпрограммы, где оно создается, используетсяи удаляется.При этом вырабатываютсячисловые переменные, фиксирующиевыбор из меню, которые анализируютсякомандами DOCASE, требуют использованияциклов DOWHILEи т.д. Рассмотримдва типа такихменю. Будемиспользоватьприведеннуювыше программу, которуюпредварительноразобьем наряд процедур.

LIGHTBAR- менюстроитсяс использованиемкоманд:

@ Y,X PROMPT[MESSAGE]- выдаетв

позицииY,Xстроку менюи дополнительноесообщение,

еслиуказано MESSAGE, в строке заданнойкомандой

SET MESSAGE .

MENUTO — запоминаетцифру, соответствующуювыбору.


PULLDOWN- меню(двухуровневоеменю) используеткоманды

MENUBAR, — определяетпункты горизонтального

BAR-меню, задавая их какэлементы первогостолбца

двумерного, вовторой столбецзаносятся

сообщения,N-общее числопунктов меню.

MENU,, — определяетсодержание

вспомогательноговертикальногоменю (POPUP-меню)

READMENUBARTO, — активируетменю.


Пример


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 “Конец работы ”

MENUTOP

DOCASE

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

DIMENSIONa(5, 3) &&заданиемассива, содержащего

а(1,1) = 'Информация' &&тексты пунктовгоризонтальногоменю

а(2, 1) = 'Штатноерасписание'

а(3, 1) = 'Списоксотрудников'

а(4, 1)= 'Состояние'

а(5, 1) = 'Выход'

а(1, 2) = '' &&тексты сообщений

а(2, 2) ='Работа с таблицейдолжностей'

а(3, 2) ='Работа с даннымио сотрудниках'

а(4, 2) ='Совместныйпросмотр штатногорасписанияи списка сотрудников'а(5, 2) = '3авершениеработы'

DIMENSIONb(2) && заданиемассивов длявложенных меню

b(1)= 'просмотр'

b(2)= 'поиск'

DIMENSIONc(2)

с(1) = 'просмотр'

с(2) = 'поиск'

**образ меню** &&определениеменю

MENUBAR a, 5

MENU2, b, 2

MENU3, c, 2

g= 1 &&номер пунктагоризонтальногоменю

v= 1 &&номер пунктавложенногоменю

DOWHILE .T.

CLEAR

READ MENU BAR TO g, v &&активацияменю

DOCASE &&обработкавыбора

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Р — определениеменю,

ONSELECTION POPUP — реакциянавыбор,

ACTIVATEPOPUP — активацияменю.


3)**********POPUP- меню****************

CLEAR

DEFINE POPUPmmenuMARGIN &&определениеглавного меню

DEFINEBAR1 OFmmenuPROMPT'Информация'&& определениепунктов

DEFINEBAR 2OF mmenu PROMPT 'Штатноерасписание'

DEFINEBAR 3OF mmenu PROMPT 'Списоксотрудников'

DEFINEBAR 4OF mmenu PROMPT 'Состояние'

DEFINEBAR 5OF mmenu PROMPT 'Выход'

ONSELECTION BAR5OF mmenu DEACTIVATE POPUP &&обработкавыбора

ONSELECTION BAR1OF mmenu DO info

ONSELECTION BAR4OF mmenu DO p4

ONBAR 2OF mmenu ACTIVATE POPUP ww &&выборвложенныхменю

ONBAR 3OF mmenu ACTIVATE POPUP ss

DEFINEPOPUPww &&определениевложенных меню

DEFINEBAR 1OF ww PROMPT 'Просмотр'

DEFINEBAR 2OF ww PROMPT 'Поиск'

ONSELECTION BAR1 OF ww DO p21

ONSELECTION BAR2OF ww DO p22

ONSELECTION POPUP ww DO ww

DEFINEPOPUP ss

DEFINEBAR 1 OF ss PROMPT 'Просмотр'

DEFINEBAR 2OF ss PROMPT 'Поиск'

ONSELECTION BAR1OF ss DO p21

ONSELECTION BAR2OF ss DOp22

ONSELECTION POPUP ss DO ss

ACTIVATEPOPUP 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[]/[SCHEME].Можно задатьмерцание изображения:SET BLINK ON/OFF.

10. РАБОТАС НЕСКОЛЬКИМИБАЗАМИ ДАННЫХ

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

Возможноустановлениедвух типовсвязей междузаписями двухсцепленныхбаз данных.Связь типа одна_запись-к-одной перемещаетуказатель вмладшей базетаким образом, что он всегдаустанавливаетсяна первую встреченнуюим запись ссовпадающимпризнаком.Остальные такиезаписи (еслиесть) остаются«не замеченными».Эта связьустанавливаетсякомандой SETRELATION.Связь типа одна_запись-ко-многим позволяетобратитьсяко всем записяммладшей базыс совпадающимпризнаком(команды SETRELATION и SETSKIPTO).


список>фон>рамка>доп>текст>списокцветовых>окантовка>,>,>имя>перем2>перем1>выр2>массив>выр1>массива>массив>переменная>выpaжeниe>выражение>выражение>имяфункции>список>имя>список>имяпроцедуры>имяфайла>имя>выражение>имя>список>списокпараметров>имя>списокпараметров>имяпроцедуры>имя>имя>команды>команды>команды>условие>условие>границы>команды>вырN3>вырN2>вырN1>переменная>команды>команды>условие>команды>команды>условие2>команды>команды>условие1>команды>условие>выpN2>выpNl>переменная>выражение>выражение>переменная>имя>списокцветовых>вырN>вырL2>вырN4>вырN3>выр4>выр3>вырСЗ>выр2>переменная/поле>выражение>вырl>,X>списокцветовыхпар>вырN5>вырL2>вырC4>вырN4>вырLl>вырN3>вырN2>выр4>выр3>вырC3>выр2>вырC2>списокцветовых>вырN1>вырCl>вырl>,X>вырN>символьнаяпеременная>сообщение>символьнаяпеременная>сообщение>переменная>сообщение>строкатекста>строка>текст>вырN>выр1>выр2>выр>выр1>    продолжение
--PAGE_BREAK--

ПОНЯТИЕО РАБОЧИХ ОБЛАСТЯХ

В 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

SETTALK OFF

SETEXACT OFF

SELEA

USESupply

KOD=0

@1,2 SAY 'Введитекодтовара'GET KOD PICTURE'#####'

READ

LOCATEFOR indgoods = kod

IF!FOUND()

WAIT'Такого коданет'

RETURN

ENDIF

ind=inddel

SELEB

USEDelivery

LOCATEFOR inddel=ind

IF!FOUND ()

WAIT 'Такого поставщиканет'

RETURN

ENDIF

DISPLnamedel, count, tel, A.namgoods, A.pricegds

CLOSEALL


Связьвида одна_запись-к-одной

Команда

SET RELATION TO ключ> INTO область> [,ключ> INTO область>…] [ADDITIVE]


связываетуказательзаписей в активнойрабочей областис указателемзаписей издругих рабочихобластей, которыхуказаны послеслова INTO, по заданномуобщему полю(ключу). Единственноеусловие– файл базыданных, с которымустанавливаетсясвязь, долженбыть проиндексированпо этому полю.


Пример

Связатьбазы данных SUPPLY.DBF и DELIVERY.DBF по полю INDDEL.По коду поставщикавывести списокпоставщикови их реквизиты.


SETTALK OFF

CLEAR

SELEA

IFFILE ('Inddelivery.ind')

USEDelivery INDEX Inddelivery

ELSE

USEdelivery

INDEXON inddel TO Inddelivery

ENDIF

SELEB

USESupply

SETRELATION TO inddel INTO A

DOWHILE .T.

kod=0

CLEAR

@12,23 TO 14,50 DOUBLE

@13,25 SAY 'Введитекод товара' GET kod PICTURE '#####'

READ

LOCATEFOR indgoods = kod

IF!FOUND()

WAIT 'Такого товаранет'

LOOP

ENDIF

name=namgoods

IF kod 0

SETFILTER TO indgoods = kod

BROWSE;

TITLE' Список поставщиков, поставляющих' + name;

FIELDS;

INDDEL :H= ' Код поставщика' ,;

A.NAMEDEL :H= 'Названиепоставщика' ,;

A.ADRDEL :H= 'Адрес ' ,;

A.TEL :H= 'Телефон '

SETFILTER TO

ENDIF

IFLASTKEY()=27

EXIT

ENDIF

ENDDO

PACK

CLOSEALL


В этойпрограммевыводятсязаписи, в которыхдля каждогокода поставщикаinddelиз текущей базыданных Supply.dbf(открытой вобласти В) выводятсяполя A.namedel (Названиепоставщика),A.adrdel (Адрес) и A.TEL(Телефон) избазы данных Delivery.dbf (открытой вобласти A).

В FoxProимеется возможностьустанавливатьсвязи с несколькимибазами одновременно.Если со старшимфайлом, которыйуже связан сдругим, необходимосвязать некоторыйтретий (четвертыйи т.д.), следуетво все последующиекоманды SETRELATION включатьслово ADDITIVE, которое обеспечитсохранениесвязей, установленныхранее.

Связьмежду всемифайлами разрываетсякомандой SETRELATIONTO безпараметров. Связь с отдельнымфайлом в заданной — командой SETRELATION OF INTO .


Связьвида одна_запись-ко-многим

Команда SET SKIP TO [область1> [,область2 >]… ]

устанавливаетсвязь типа одна_запись-ко-многим между двумяили несколькимибазами данных.

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

Преждечем использоватькоманду SETSKIPTO, необходимовыполнитьначальноесцепление вида одна_запись-к-одной командой SET RELATION.Удаление связи одна_запись-ко-многимосуществляетсякомандой SET SKIP TO без параметров.


Пример

Установитьсвязь междутремя базамиданных. В программеиспользуется

третьябаза Товаров(Goods.dbf), получаемаяиз БД Supply.dbf


SETTALK OFF

IFFILE ('Goods.dbf')

ERASE Goods.dbf

ENDIF

IFFILE ('Indnum.idx')

ERASE Indnum.idx

ENDIF

SELEA

USE Supply

IF FILE ('Indg.idx')

SETINDEX 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 IndexdelUNIQUE

ENDIF

SELECT SUPPLY

SET RELATION TO inddel INTODelivery ADDITIVE

SELE B

USE Goods

INDEX ON namgoods TO Indnum

SET RELATION TO indgoods INTOSupply 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 = «ОбщаяСумма»

CLOSEALL


11. РАБОТАС ОКНАМИ

Использованиеокон- оченьудобное и эффектноесредство созданияпользовательскогоинтерфейсав прикладнойпрограмме.

Определениеокна

DEFINEWINDOW FROM,TO ,

[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 — символ заполненияокна.


Активацияуже определенногоокна

ACTIVATEWINDOW [[][,]][,...]] ALL [BOTTOM/TOP]]

Здесьуказаны именаоткрываемыхили всех (ALL) окон.BOTTOM / TOP — размещениенового окнапод/перед ужеимеющимся.

Удалениес экрана

DEACTIVATE WINDOW[,][,...]/ALL

Удалениес экрана и изпамяти

CLEAR WINDOW — Удаление сэкрана и изпамяти ВСЕХокон

RELEASE WINDOW — Перечисленныхокон.


Восстановлениеокна

RESTORE WINDOW


Сохранениев файле

SAVE WINDOW /ALL TO


12.ПРИЛОЖЕНИЯ
12.1.СТАНДАРТНЫЕФУНКЦИИ FOXPRO

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


ABS() — абсолютноезначение числа

BETWEEN(,,) — истинно (.Т.), если  

, иначе ложно(.F.) (длячисел,

строк, дат)

CEILING() — округлениечисласизбытком

FLOOR() — округлениечисла снедостатком

INТ() — целая частьчисла

МАХ(,[,...]) — максимальноезначение изсписка

аргументов(числа, строки, даты)

MIN,[,...]) — минимальноезначение изсписка

аргументов

MOD(,) — целочисленныйостаток отделения

на

ROUND(,) — округлениечисла до

знаковпосле запятой

RAND(]) — псевдослучайноечисло в диапазоне0...1

SIGN() — знак числа


Степенные, тригонометрическиеи другие функции

ЕХР() — экспонента

LOG() — натуральныйлогарифм

LOG10() — десятичныйлогарифм

SQRT() — квадратныйкорень числа

SIN() — синус отугла в радианах

COS() — косинус

TAN() — тангенс

ASIN() — арксинус (результат врадианах)

ATAN() — арктангенс

PI ( ) — число 

DTOR() — преобразованиеградусной мерыугла в

радианы

RTOD() — преобразованиерадианной мерыугла в

градусы


Строковыефункции

$ — вхождение в

(результат.Т. или .F.)

AT /ATC(,[,N>) — поиск слеванаправо в строке

позиции вхождения

подстроки, начиная с

позиции строки

RАТ(,[,) — то же справаналево

INLIST(,[,…]) — вхождение в последующий

список(результат.Т.или .F.)

LEN() — длина строки

LIKE(,) — вхождение в

(результат.Т. или .F.) с

использованиемсимволов маски* и ?

OCCURS(,) — число вхожденийв

LEFT() — вырезка слеваиз строки

символов в колич.

RIGHT() — то же справа

SUBSTR(,,[]) — вырезка изстроки

подстрокисимволов от

вколичестве

символов>

LTRIM() — удаление начальныхпробелов

TRIM /RTRM() — удаление завершающихпробелов

ALLTRIM() — удаление начальныхи завершающих

пробелов

REPLICATE(,) — повтор раз строки

SPACE() — формированиестроки пробелов

длины


Функциипреобразования

АSС() — выдает ASCII кодпервого символа

CHR() — преобразуетчисло в символв

соответствиис кодом

STR(,[,[]]) — преобразуетчисло встроку

длиной с указанным

числом

VAL() — преобразуетсимвольнуюзапись числа

в число


Функцииобработкимемо-полей

ATLINE(,) — первое вхождениестроки

в

ATCLINE(,) — то же без различениястрочных и

прописныхбукв

RATLINE(,) — последнеевхождениестроки

в

MLINE(,) — возвращаетстроку из

MEMLINES() — число строкв мемо поле


Функцииработы с датами

СТОD() — преобразованиедаты из строки

символовв формат даты

DATE( ) — системная дата

DAY() — число месяцаиз даты

DMY() — представлениедаты в виде

ДДМЕСЯЦ ГГ (илиГГГТ)

DOW() — номер дня недели

DTOC() — преобразованиевыражения типадаты

в строкусимволов

GOMONTH(,) -возвращаетдату, котораяотстоит от

на ± месяцев

MONTH() — числовое значениеномера месяцапо

дате

YEAR() — числовое значениегода по дате


Функцияанализа условий

BOF(,,) — выдает значение, если условие

истинно, и еслиложно.


Функциипроверки файлови дисков

ВОF([]) — достижениеначала файла(результат

.Т. или.F.)

ЕОF[(]) — достижениеконца файла(результат

.Т. или.F.)

DBF([]) — выдает полноеимя файла БДв

текущейобласти

DISCSPACE ( ) — число свободныхбайт на активном

диске

DELETED([]) — наличие пометкизаписи к удалению

(результат.Т. или .F.)

FILE() — проверка наличияфайла

FIELD([,]) — выдает имя поляпо его номерув

активнойБД

FOUND([]) — успешное завершениепоиска

(результат.Т. или .F.)

FCOUNT([]) — число полейв открытомфайле БД

LOOKUP(,,) — ищет первоевхождениевыражения в

и выдает

LUPDATE([]) — дата последнегоизменения БД

ORDER([]) — имя главногоиндексногофайла

RECNO([]) — номер текущейзаписи активного

файлаБД

RECCOUNT([]) — общее количествозаписей

RECSIZE([]) — размер записив байтах

HEADER([) — размер заголовкаБД в байтах

SЕЕK([,]) — поиск записис в индексном

файле

ЕМРТY() — наличие данныхв объекте (результат

.Т. или .F.)

ТYРЕ() — выдает буквуимени типа


Функциипозиционирования

COL ( ) — номер текущейколонки экранаили окна

ROW ( ) — номер текущейстроки экранаили окна

РСОL( ) — номертекущей колонкина принтере

PROW ( ) — номер текущегостолбца напринтер


12.2. SET — КОМАНДЫ

Этикоманды служатдня заданияфлажков состояний, параметровсреды и т.п., которыеобычно задаютсяв начале текстапрограммы ив случае необходимостипереопределяютсяили отменяются.В среде FoxPro имеетсясвыше 100 такихкоманд. Приведемнекоторые изних. За дополнительнымиразъяснениямиможно обратитьсяк HELP.

SET ALTERNATEON/OFF — установитьфлаг выводаданных с экрана

в файл

SET BELL ON/OFF — установитьфлаг звуковогосигнала

SET BLINK ON/OFF — установитьфлаг миганиясимволов

SET SENTURYON/OFF — установитьфлаг отображениястолетия

в датах

SET CLOCK ON/OFF — установитьфлаг выводавремени

SET COLOR TO — задатьцвета меню иокон пользователя

SETCOLOR OF SCHEME — задатьцветасхемы

SETCURRENCY TO — задатьденежныйзнак

SETDATE TO… — определитьформат даты

SET DECIMALSTO… — установитьчисло цифр вдробной

частичисла

SETDEFAULT TO… — задать диски каталог поумолчанию

SET DELETEDON/OFF — установитьфлаг доступак записям с

пометкойудаления

SET ECHO ON/OFF — установитьфлаг активизацииокна отладки

SET ESCAPE ON/OFF — установитьфлаг прерыванияпо

клавишеESC

SETFILTER TO… — задать фильтрдоступа к записям

SETFUNCTION...TO… — связать командус функциональной

клавишей

SET HELP ON/OFF — установитьрежим доступак помощи

SETINDEX TO… — открыть индекс

SET KEY TO — задать предельноезначение ключевого

индекса

SETMESSAGE TO… — задать местоположениесообщений

SET ORDER TO… — задатьосновной индекс

SET PATH TO… — задать списоккаталогов дляпоиска файлов

SETPRINTER ON… — установитьфлаг выводана принтер

SETPROCEDURE TO… — открыть заданныйпроцедурныйфайл

SETRELATION TO… — установитьсвязь 1:1 с другойБД

SET RELATION OFF — разорватьсвязь с другойБД

SETSHADOWS ON/OFF — установитьфлагналичиятени

SETSKIP TO… — установитьсвязь 1:N с другойБД

SET SPACE ON/OFF — установитьфлаг вставкипробелов

SET TALKON/OFF — установитьфлаг выводарезультатов

выполнениякоманд

SETWINDOW OF MEMO TO… — задать имя окнаредактирования

мемо-полей


12.3.ТЕКСТЫ ПРОГРАММ

Структурадля базы данных:DELIVERY.DBF

Field FieldName 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 FieldName 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


***********************РаботаснесколькимиБД*****

USESuply

ERASEGoods.dbf

INDEXON indgoods TO Indg UNIQUE

COPYTO Goods FIELDS indgoods;

,namgoods,measure

SELECT2

USEGoods

BROWSE

CLOSEALL

SETTALK OFF

DEFINEWINDOW vvod FROM 2,2TO 7,35DOUBLE FLOAT SHADOW

DEFINEWINDOW vivod FROM 8,2TO 20,70 SYSTEM ;

COLORSCHEME 10

CLEAR

SELECTA

IFFILE ('Inddeliv.idx')

USEDelivery INDEX Inddeliv

ELSE

USEDelivery

INDEXON inddel TO Inddeliv

ENDIF

SELECTB

USESuply

SETRELATION TO inddel INTO Delivery

DOWHILE .T.

ACTIVATEWINDOW vvod

CLEAR

A=0

@2,5 SAY 'Введитекодтовара'GET A PICTURE '#####'

READ

LOCATEFOR indgoods=A

IF!FOUND()

WAIT'Такого коданет'

LOOP

ENDIF

name=namgoods

IFA0

SETFILTER TO indgoods=A

ACTIVATEWINDOW vivod

BROWSE;

TITLE'Список поставщиков, поставляющих'+name ;

FIELDS;

A.inddel :H='Кодпоставщика',;

A.namdel :H='Имяпоставщика',;

A.adrdel :H='Адреспоставщика',;

A.tel :H='Телефонпоставщика',;

A.count :H='Счетпоставщика'

DEACTIVATEWINDOW vivod

SETFILTER TO

ENDIF

DEACTIVATEWINDOW vvod

IFLASTKEY()=27

EXIT

ENDIF

ENDDO

PACK

CLOSEALL


CLEAR

SETTALK OFF

SELECTB

USEGoods

SELECTA

USESuply

INDEXON indgoods TO Indg

SELECTC

USE Delivery

INDEXON inddel TO Indexdel

SELECTSuply

SETRELATION TO inddel INTO Delivery

SELECT Goods

INDEXON namgoods TO Indnum

SETRELATION TO indgoods INTO Suply


SETSKIP TO Suply

BROWSETITLE 'Товары';

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='Общаясумма'

CLOSEALL


3.1. Линейнаяпрограмма

********** установки ***********

CLEAR

SETTALK OFF

CLOSEALL

USEstate 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 'Результатпоиска'

LOCATEALL FOR cod = C

DOWHILE! 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

SETFORMAT TO


******** установлениесвязи********************

SELECT b

SETORDER TO cod

SELECTa

SETORDER TO cod

SETRELATION TO cod INTO b

SETSKIP 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

SETTALK OFF

CLOSEALL

SETSHADOWS ON

USEstate IN a

USE cadr IN b


************** МЕНЮ ****************

DEFINE POPUP mmenu

DEFINEBAR1 OF mmenu PROMPT 'Информация'

DEFINE BAR2 OF mmenu PROMPT'Штатное расписание предприятия'

DEFINEBAR3 OF mmenu PROMPT 'Списоксотрудников'

DEFINEBAR4 OF mmenu PROMPT 'Состояние'

DEFINEBAR5 OF mmenu PROMPT 'Запрос'

DEFINEBAR6 OF mmenu PROMPT 'Выход'

ONSELECTION BAR6 OF mmenu DEACTIVATE POPUP

ONSELECTION BAR1 OF mmenu DO about

ONSELECTION BAR4 OF mmenu DO p2table

ONSELECTION BAR5OF mmenu DO pspr

ONBAR2 OF mmenu ACTIVATE POPUP wow

ONBAR3 OF mmenu ACTUVATE POPUP sos

DEFINEPOPUP wow

DEFINEBAR1 OF wow PROMPT ‘Просмотр'

DEFINEBAR2 OF wow PROMPT 'Поиск'

ONSELECTION BAR1 OF wow DO pstate

ONSELECTION BAR2 OF wow DO psearch

ONSELECTION POPUP wow DO wow

DEFINE POPUP sos

DEFINEBAR1 OF sos PROMPT 'Просмотр'

DEFINEBAR2 OF sos PROMPT 'Поиск'

ONSELECTION BAR1 OF sos DO pstate

ONSELECTION BAR2 OF sos DO psearch

ONSELECTION POPUP sos DO sos

ACTIVATE POPUP mmenu


************ работастаблицейstate **************

PROCEDURE pstate

SELECTa

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 'Результатпоиска'

LOCATEALL FOR cod = c

DOWHILE! 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

SELECTb

SETORDER TO cod

SELECTa

SETORDER TO cod

SETRELATION TO cod INTO b

SETSKIP TO b

BROWSE ;

TITLE 'Информация';

FIELDS A.dolg :H = 'Должность',;

B.fio :H = 'Ф.И.О.',;

A.zarp :H = 'Оклад',;

nal = a.zarp*0.2 :H = 'Налог'

SETRELATION 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

SETORDER TO cod

SELECTA

SETORDER TO cod

SETRELATION TO cod INTO b

SETSKIP TO B

SELECT A.dolg, A.kol, COUNT(B.fio) AS cnt, SUM(A.zarp) AS ssum ;

FROM state A, cadr B INTO CURSORqq ;

WHERE B.cod = A.cod ;

GROUP by A.dolg

BROWSE TITLE 'Занятыедолжности' ;

FIELDS dolg: Н ='Должность' ,;

kol: Н = 'Поштату' ,;

cnt: Н = 'Занято',;

ssum: Н = 'Суммарныйоклад'

CLEAR

SETRELATION 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 с.

Бемер С. FoxPro 2.6 для WINDOWS. — Киев: Торгово-издательское бюро BHV.- 1995.-463 с.

вырС>выр>выр>область>выр>область>область>область>область>область>область>поле1>поле2>поле2>выр>поле1>область>область>область>вырN>имя>область>область>область>область>выр2>выр1>выр2>выр1>условие>вырD>вырD>вырN>вырD>вырN>вырD>вырD>вырD>вырD>вырD>вырC>мемополе>мемополя>вырN>вырN>мемополе>мемополе>вырС>мемо>вырC>мемополе>вырC>мемополе>вырC>мемополе>вырc>вырС>дес.знаки>длина>вырN>дec.знaки>выpN>вырN>вырC>вырN>вырN>вырC>вырN>выpN>выpC>вырC>вырC>вырC>нач.поз.>вырС1>числосимволов>нач.поз.>вырС>выpN>вырN>вырC>вырN>вырС2>вырС1>вырС2>вырC1>вырС2>вырС1>вырС2>вырC1>вырС>вырC>выр>выp2>выp2>выp1>вырN>вырС2>вырС1>вырС2>вырN>вырС1>вырС2>вырC2>вырC1>вырС2>вырС1>вырС2>вырС1>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>вырN>выpN>вырN>вырN>вырN>вырN>вырN2>вырN1>вырN2>вырN1>вырN2>вырN1>вырN2>вырN1>выр2>выр1>выр>выр2>выр1>выр>вырN>вырN>вырN>вырN>вырN>вырN>выр2>выр>выр1>выр2>выр1>выр>вырN>вырN>файл>окна>окна>окно2>окно1>окно2>окно1>выр>выр>выр>Х2>имяокна>областях>область>области>рабочая>
еще рефераты
Еще работы по информатике