Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / lab5OBDStvor_progr_f.doc
Скачиваний:
8
Добавлен:
07.02.2016
Размер:
90.11 Кб
Скачать

Лабораторна робота N5 (2г)

Тема роботи: Створення програмних файлів.

Мета роботи: одержати навички роботи з програмними файлами.

Рекомендована література.

Попов А.А. Програмування в середовищі СУБД FOXPRO 2.0. - М.: Радіо і зв'язок, К.: ТОО «Століття», 1995 стор.58-105

Теоретичні відомості

Тимчасові перемінні.

У СУБД FOXPRO основними даними є поля записів. Крім цього використовують т.зв. тимчасові перемінні для збереження деяких отриманих значень. Ці перемінні не фіксуються в БД, а знаходяться в оперативній пам'яті. Перед їхнім використанням необхідно задати їхній тип, привласнюючи їм значення. Для цього використовують оператор присвоювання або оператор STORE <eiaia

STORE <вираз> TO <імена змінних>

a=C*(2+3)

STORE C*(2+3) TO a

STORE o TO a,b,c,d

Найпростіші команди уведення-виведення інформації.

ACCEPT<підказка>TO<змінна пам.>

для введення символьних даних безпосередньо в перемінну

пам'яті (без лапок) до 254 символів.

ACCEPT 'уведіть значення' TO a

мама_мила_раму

ACCEPT 'укажіть місто' TO a1

Херсон

Для введення перемінної будь-якого типу використовується команда INPUT. При введенні текстової перемінної значення необхідно брати в лапки.

INPUT<підказка> TO <змінна пам>

INPUT 'укажіть зарплату' TO zarpl

120

INPUT 'укажіть місто' TO a1

"Херсон"

Оператори висновку: ?/??

?/?? список змінних

?- значення виводиться на початку нового рядку

??- значення виводиться в старому рядку

ПРИКЛАД

IF A=B

?'числа рівні'

ELSE IF A>B

?'A'

ENDIF ?'B'

ENDIF

Форматування уведення-висновок.

Для виконання відформатованого висновку використовується команда

@...SAY...GET

Команда є найбільш універсальною командою такого типу. Вона використовується для відформатованого введення-висновку даних на екран або принтер. Загальний вид цієї команди з урахуванням усіх параметрів наступний:

.@ <Y,X>

[ SAY <вир1>

[ PICTURE <C1>] [ FUNCTION <Ф1>]

[COLOR SCHEME <N1>/COLOR <список колірних пар>]]

[ GET <змінна>

[ PICTURE <C2>] [ FUNCTION <Ф2>]

[ DEFAULT <вир2>] [ ENABLE/DISABLE]

[ MESSAGE <C3>] [ [ OPEN] WINDOW <вікно>]

[ RANGE [<вир3>][,<вир4>]]

[ SIZE <вир2>,<вир3>]

[ VALID <L1>/<вир4> [ ERROR <C4>]]

[ WHEN <L2>]

[ COLOR SCHEME <N5>/COLOR <список колірних пар>]]

Тут Y і X - пари чисел або змінних, які визначають номер рядку і стовпця (для екрана це відповідно 0-24 і 0-79, для принтера визначається розміром листа папера). Саме з цієї позиції буде здійснюватися введення-висновок. Обов'язковим елементом команди є тільки @ <Y,X>. Якщо більше нічого ні, то курсор встановлюється в позицію Y,X і очищає рядок Y вправо з позиції X.

Команда

@ Y,X SAY <вир1> - видає з заданої позиції < вир1> будь-якого типу даних (полю бази даних, змінної, елемента масиву). Дозволяється вказувати складне вираження, що складається з декількох елементів, з'єднаних знаком зчеплення + . Всі елементи повинні бути символьного типу або приведені до нього функцією STR().

@ 12, 23 SAY ‘ Привіт’

На екран буде виведене слово «Привіт» приблизно в середині екрана. Замість вираження можна написати ідентифікатор полю. Наприклад, по команді

@4.8 SAY FIO

на екран буде виведене значення полю «Іванов»

@4.8 SAY FIO+sex

буде виведений «Іванов м»

Параметр SIZE <вир2><вир3>- визначає область, яка відводиться під поле , яке редагується,(вир2 - число рядків, вир3 число стовпчиків відводиться під дані). За замовчуванням під виведене поле приділяється рядок, який збігається з довжиною полю. Наприклад, по команді

@4.8 SAY FIO SIZE 1,15

на екран буде виведене

Петрова Катерина

Якщо є можливість, слова переносяться на наступний рядок, у противному випадку „ламаються”:

@4.8 SAY FIO SIZE 2,15

на екран буде виведене

Петрова

Катерина.

Команда введення

@Y,X GET<змінна/поле>- уводиться змінна або поле з можливістю редагування.

Команда GET виконується з командою READ, після якої відбувається введення даних. Уводити можна значення полю або тимчасової змінної. Наприклад:

@ 15,26 GET FIO

READ

Після виконання першої команди з'являється виділена стандартним кольором область уведення. Після другої команди курсор переходить у цю область і можна вводити прізвище. Після натискання клавіші ENTER значення полючи міняється на введене.

Параметр DEFAULT<вир2>- застосовується тільки при роботі з тимчасовими перемінними. Вона задає вираження, що за замовчуванням буде поміщено в GET-перемінну (змінну) і пред'явлене на редагування. Опція може створювати тимчасові перемінні і привласнювати їм вихідні значення.

@ 15,15 GET x2 default 5.00

READ

Параметр ENABLE - дозволяє (DISABLE-забороняє) допуск до GET поля.

Кольори таких полів визначаються шостий/десятої колірними парами.

MESSAGE<вирс3>для даного поля задає вираження, яке є пояснювальним і виведеним в останньому рядку екрана (якщо зроблено установку

SET MESSAGE ON).

RANGE <вир3><вир4> - цей елемент команди організує вхідний діапазонний контроль величин будь-якого типу даних, що вводяться. Якщо значення введеної перемінної не знаходиться усередині діапазону, з'являється повідомлення.

Параметр VALID<вир1>/<вир4>][ERROR<вирC4>]- додатковий контроль введення перемінної. У відмінності від RANGE цей параметр виконує перевірку завжди і допустить вихід з області, що редагується, тільки при натисканні клавіші ESC. Допускається застосування користувальницької функції, що повертає значення логічного або числового типу.

Наприклад:

@ 16,23 get zarp valid zarp>150

read

При спробі ввести число менше 150 видається повідомлення «неправильне введення». Можна указати власне повідомлення, використовувати при цьому параметр ERROR, наприклад:

@ 15,23 get zarp valid zarp>150 error ‘Ви злегка помилилися’

read

Параметр WHEN <умова> означає, що редагування буде виконуватися тільки при виконанні умови.

Параметр [OPEN]WINDOW<вікно> призначене для роботи з мемо полями. Мемо-поле, яке редагується, відкривається у визначеному раніше командою DEFINE WINDOW вікні. З параметром OPEN вікно відкривається за замовчуванням. В усіх випадках для входу в мемо-поле на екрані необхідно натиснути CTRL-Home/ Для роботи з мемо-полем більш зручною є команда @ ... EDIT.

Параметри

PICTURE і FUNCTION - установка шаблонів.

Шаблон складається зі спеціальних символів, що установлюються відповідно до бажаної форми що вводиться або виведеної інформації. Кожен символ шаблона визначає один символ перемінної.

Символи шаблона PICTURE дозволяють уведення замість собі тільки визначених символів даних

A - уведення тільки букв

L - уведення тільки логічних даних (.T./.F.)

Y - уведення тільки логічних даних (Y/N)

N - уведення тільки букв і цифр

X - уведення будь-яких символів

9 - у символьних даних допускається введення тільки цифр, у численних - цифр і знаків + або -

# - уведення цифр, пробілів, знаків + або -

! перетворить малі літери в прописні (GET, SEY)

* зірочки виводяться перед числами (SAY)

. задає позицію десяткової крапки в десятковому числі (GET, SEY)

Наприклад:

@10,8 SAY 'плата ' GET pl PICTURE '#####.##'

READ

Параметр FUNCTION <Фкоды>

Фкоды поширюються на всю перемінну, а не на окремі символи

A - уведення тільки букв (GET)(пробіл з ->)

B - виведені числа вирівнюються по лівій границі(SAY)

I - виведений текст централізується усередині полю (SAY)

J - виведений текст вирівнюється до правої границі полючи(SAY)

L - виведені числа відображаються з ведучими нулями, а не з пробілами (SAY,GET)

К - при влученні курсору в дане поле (воно виділяється контрастним червоним кольором) натискання в початковий момент будь-якої змістовної клавіші волоче негайне його очищення. Якщо необхідно виконати редагування, потрібно перемістити курсор вправо.

M<список>- задає <список> елементів даних, які вводяться розділеними комами. При введенні в полі відображається перший елемент списку. Для наступного елемента списку натиснути пробіл або першу букву елемента. Застосовується тільки з даними символьного типу (GET);

S<n>- висновок не всього рядка даних, а тільки його n знаків з можливістю перегляду в рядку (GET і SAY для символьних даних)

R - введення в шаблоні символів які не є частиною даних (GET і SAY разом з PICTURE). Застосовується тільки для символьних даних. Зручна для висновку символів, що полегшують сприйняття інформації (не можна застосовувати символи шаблона)

T - видаляє при висновку ведучі і кінцеві пробіли в поле (SAY);

Z - при висновку числа, рівного нулеві, виводяться всі пробіли (GET,SAY)

! букви алфавіту перетворяться в прописні (GET,SAY)

^ виводить числа в експонентній формі (GET,SAY)

ПРИКЛАД

1. Номер і серія паспорта XXY- МЮ 716997

при уведенні використовується шаблон

@R! Серія AAA-XX номер 999999 (ХХУМЮ716997)

2. Шаблон уведення телефонного номера в TEL код міста, додатковий номер прізвище абонента

@2,2 GET TEL PICTURE

'@R(999) ###-99-99 доб: ##-## Запитати :

!XXXXXXXXXX' DEFAULT SPACE(27)

READ

Тут цифрові позиції, що повинні бути заповнені обов'язково, мають символ шаблона "9", а не обов'язкові - "#", що дозволяє пропускати їх при введенні. Абонент, якого треба запитати, позначений символами "Х"- будь-яке введення, крім першого символу - прописної букви:

012...-38-67 доб:...56 Запитати: Петрова ...

Обчислювальні команди.

Обчислення середнього арифметичного

AVERAGE <список виразів >[границі]

FOR <умова> WHILE <умова> TO <список змінних пам'яті >-

Призначена для обчислення середнього арифметичного для вхідних у зазначений список числових виразів над полями записів у заданому діапазоні. Цей список виразів може включати поля або вираження над ними.

Обчислення суми

SUM <список виразів >[границі]

FOR <умова> WHILE <умова> TO <список перемінних >-

обчислює суму заданих у списку виразів.

Обчислення кількості шуканих записів.

COUNT<границі>FOR <умова> WHILE <умова>TO< змінні пам> - кількість

шуканих записів.

Команда

TOTAL TO <ім'я нової таблиці>ON<ключове>

[границі] FIELDS<список полів>-

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

Коли вводиться команда TOTAL, система переглядає файл, відслідковуючи дані заданого ключового поля. При зміні його змісту будується часткова сума. Ця інформація утворить запис у новому файлі, ім'я якого повинно бути задане в команді TOTAL.

Приклад:

Підрахунок середнього арифметичного стажу, загального фонду місячної зарплати і середньої зарплатні

AVERAGE sтаsh TO а

SUM zarp TO b

AVERAGE zarp TO c

? a,b,c

Соседние файлы в папке Базы данных