СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Циклы в FoxPro

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Циклы в FoxPro»

Лекция 2. Циклы в FoxPro

Лекция 2. Циклы в FoxPro

] ENDFOR Цикл сканирования БД: SCAN [] [ FOR / WHILE ] ENDSCAN " width="640"

Циклы с условием: DO WHILE

ENDDO

В цикле могут быть использованы операторы LOOPEXIT .

LOOP -обеспечивает внеочередную проверку условия цикла и передает

управление на оператор следующий за ENDDO, если условие не

выполняется. Второй оператор обеспечивает безусловный выход из

цикла.

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

FOR = TO [ STEP выражение N 3]

ENDFOR

Цикл сканирования БД:

SCAN [] [ FOR / WHILE ]

ENDSCAN

Пример 7.3.  Y = X 100 STORE 0 TO i STORE 1 TO Y  DO WHILE i  Y = Y * X  i = i + 1  Y = Y * X  I = i + 1  ENDDO ? Y Рис. 7.7. Блок-схема вычисления Y = X 100

Пример 7.3. Y = X 100

STORE 0 TO i

STORE 1 TO Y

DO WHILE i

Y = Y * X

i = i + 1

Y = Y * X

I = i + 1

ENDDO

? Y

Рис. 7.7. Блок-схема вычисления Y = X 100

Построение экранных форм  Допустим необходимо построить карту ввода   Программа карты ввода будет иметь следующий вид SET TALK OFF CLEAR USE SOTR P = l V = 'Y' DO WHILE P = l  @ 5,5 TO 1 2,60 DOUBLE  @ 6,7 SAY

Построение экранных форм

Допустим необходимо построить карту ввода

Программа карты ввода будет иметь следующий вид

SET TALK OFF

CLEAR

USE SOTR

P = l

V = 'Y'

DO WHILE P = l

@ 5,5 TO 1 2,60 DOUBLE

@ 6,7 SAY " КАРТА ВВОДА "

APPEND BLANK

@ 8,7 SAY " Фамилия " GET FIO

@ 10,7 SAY " Должность " GET DOLGN

READ

КАРТА ВВОДА

  • КАРТА ВВОДА

КАРТА ВВОДА

  • КАРТА ВВОДА

Фамилия

Доложность

Фамилия

Доложность

@ 14,8 SAY

@ 14,8 SAY "Ещё добавить? Y/N" GET V

READ

IF V  'Y'

EXIT

ENDIF

CLEAR

ENDDO

CLEAR ALL

Пример экранной формы ввода

КАРТА ВВОДА

  • КАРТА ВВОДА

Фамилия студента

Группа Год рождения

Адрес Телефон

 SET TALK OFF  USE STUD  P = l  DO WHILE P = l  CLEAR   @ 5,5 TO 12,60 DOUBLE  @ 6,20 SAY

SET TALK OFF

USE STUD

P = l

DO WHILE P = l

CLEAR

@ 5,5 TO 12,60 DOUBLE

@ 6,20 SAY " КАРТА ВВОДА "

APPEND BLANK

PFAM = FAM

PGRUP = GRUP

PDTR = DTR

PADRES = ADRES

PTLF = TLF

@ 8,7 SAY "Фамилия студента" GET PFAM

@ 9,7 SAY " Группа " GET PGRUP

@ 9,20 SAY "Дата рождения" GET PDTR

@ 10,7 SAY " Адрес " GET PADRES

@ 10,40 SAY " Телефон " GET PTLF

READ

REPLASE FAM WITH PFAM

REPLASE GRUP WITH PGRUP

REPLASE DTR WITH PDTR

REPLASE TLF WITH PTLF

@ 15,10 SAY

@ 15,10 SAY " Будете продолжать ввод?"

@ 15, col () PROMPT " Да "

@ 15, col () PROMPT " Нет "

MENU TO P

DO CASE

CASE P = l

LOOP

CASE P=2

EXIT

ENDCASE

ENDDO

RETURN

 Работа с массивами 1) Работа с одномерными массивами (рис. 7.9):  SCATTER [ FIELDS ] ТО   2) Обратная операция (заполнение полей из массива) производится командой:  GATHER FROM  [FIELDS ]

Работа с массивами

1) Работа с одномерными массивами (рис. 7.9):

SCATTER [ FIELDS ] ТО

2) Обратная операция (заполнение полей из массива) производится командой:

GATHER FROM [FIELDS ]

2) Работа с двумерным массивом:  COPY TO ARRAY  [FIELDS ] [FOR / WHILE ]  APPEND FROM ARRAY  [FOR ] [FIELDS    Пример 7.5 . Записать в массив результаты сдачи экзамена учениками ивычислить средний балл.  SET TALK OFF DIME A(10) FOR i = 1 TO 10  INPUT A( i )  ENDFOR C = 0 FOR i = 1 TO 10  C = C + A( i ) ENDFOR

2) Работа с двумерным массивом:

COPY TO ARRAY [FIELDS ] [FOR / WHILE ]

APPEND FROM ARRAY [FOR ] [FIELDS

Пример 7.5 . Записать в массив результаты сдачи экзамена учениками ивычислить средний балл.

SET TALK OFF

DIME A(10)

FOR i = 1 TO 10

INPUT A( i )

ENDFOR

C = 0

FOR i = 1 TO 10

C = C + A( i )

ENDFOR

 Построение меню   В Fox-меню для поддержания постоянного возврата в меню, оно или команда активации меню, помещается в цикл вида DO WHILE . T . ... ENDDO . В Fox-меню различают: 1. LIGHTBAR-меню - меню с подсветкой и произвольным расположением элементов. 2. POPUP- меню  вертикальное, всплывающее меню. 3.PULLDOWN-меню  двухуровневое меню.  Пример 7.6. Меню с подсветкой. LIGHBAR-меню: Используются команды : @ Y , X  PROMPT , MENU @ Y , X  PROMPT  [ MASSAGE ] MENU n

Построение меню

В Fox-меню для поддержания постоянного возврата в меню, оно или команда активации меню, помещается в цикл вида DO WHILE . T . ... ENDDO . В Fox-меню различают:

1. LIGHTBAR-меню - меню с подсветкой и произвольным расположением элементов.

2. POPUP- меню  вертикальное, всплывающее меню.

3.PULLDOWN-меню  двухуровневое меню.

Пример 7.6. Меню с подсветкой.

LIGHBAR-меню:

Используются команды :

@ Y , X PROMPT , MENU

@ Y , X PROMPT [ MASSAGE ]

MENU n

 Двухуровневое PULLDOWN- меню . Такое меню состоит из главного горизонтального меню (меню заголовков) и нескольких вложенных в него вспо могательных вертикальных меню.  Структура двухуровневого меню реализуется двумя командами: MENU BAR , MENU и командой активации:  READ MENU BAR TO  Главное меню определяется командой:  MENU BAR ,   Здесь   общее число пунктов меню;   двумерный символьный массив вида М (К,2). Первый столбец массива М ( i , 1) содержит собственно пункты меню, второй столбец М ( i , 2)  комментарии к позициям меню, располагаемые в строке по команде  SET MESSAGE TO  Команда  MENU , , , [, ] Здесь:   номер элемента главного меню;    одномерный символьный массив, содержащий пункты меню;   число пунктов меню, обычно равно размерности массива;  - число одновременно показываемых пунктов меню.

Двухуровневое PULLDOWN- меню . Такое меню состоит из главного

горизонтального меню (меню заголовков) и нескольких вложенных в него вспо

могательных вертикальных меню.

Структура двухуровневого меню реализуется двумя командами: MENU BAR ,

MENU и командой активации:

READ MENU BAR TO

Главное меню определяется командой:

MENU BAR ,

Здесь  общее число пунктов меню;

 двумерный символьный массив вида М (К,2). Первый столбец массива М ( i , 1) содержит собственно пункты меню, второй столбец М ( i , 2)  комментарии к позициям меню, располагаемые в строке по команде

SET MESSAGE TO

Команда

MENU , , , [, ]

Здесь:

 номер элемента главного меню;

 одномерный символьный массив, содержащий пункты меню;  число пунктов меню, обычно равно размерности массива; - число одновременно показываемых пунктов меню.

Меню активирует команда: READ MENU BAR ТО ,  [ SAVE ]   номер пункта главного меню;   номер пункта вспомогательного меню.  Имеются два типа меню: горизонтальное,  вертикальное.

Меню активирует команда:

READ MENU BAR ТО , [ SAVE ]

 номер пункта главного меню;

 номер пункта вспомогательного меню.

Имеются два типа меню: горизонтальное, вертикальное.

 Функции выбора из меню: BAR () - возвращается номер ВАR-пункта, POPUP ( )   возвращается имя POPUP-меню, PROMPT ( ) - возвращает строку приглашение. Двухуровневое PULLDOWN-меню.  Создается с помощью уже указанных команд. Командами DEFINE MENU и DEFINE  PAD описывается главное горизонтальное меню. Командой ON SELECTION PAD обычно описываются реакции тех пунктов, которые вызывают процедуры. Командой ON PAD с опцией ACTIVATE POPUP устанавливается связь горизонтального меню с вертикальным POPUP-меню, т. е. выход на второй уровень меню .

Функции выбора из меню: BAR () - возвращается номер ВАR-пункта, POPUP ( ) возвращается имя POPUP-меню, PROMPT ( ) - возвращает строку приглашение.

Двухуровневое PULLDOWN-меню.

Создается с помощью уже указанных команд. Командами DEFINE MENU и DEFINE PAD описывается главное горизонтальное меню. Командой

ON SELECTION PAD обычно описываются реакции тех пунктов, которые вызывают процедуры. Командой ON PAD с опцией ACTIVATE POPUP устанавливается связь горизонтального меню с вертикальным POPUP-меню, т. е. выход на второй уровень меню .

 Командами DEFINE POPUP FIELD или DEFINE POPUP с командами DEFINE  BAR описываются сами POPUP-меню, а их реакции – Командой. ON SELECTION POPUP. Активация всей конструкции меню осуществляется командой ACTIVATE MENU .  Организация взаимодействия компонентов меню

Командами DEFINE POPUP FIELD или DEFINE POPUP с командами

DEFINE BAR описываются сами POPUP-меню, а их реакции –

Командой. ON SELECTION POPUP. Активация всей конструкции меню

осуществляется командой ACTIVATE MENU .

Организация взаимодействия компонентов меню

Модульное программирование   Вызов подпрограмм (модулей, процедур) осуществляется командой  DO  [ WITH ]  Оператор RETURN подпрограммы возвращает управление вновь в основную  программу на команду , следующую за оператором DO . а) б)  G  ---  --- DO A  --- DO B  --- DO C  ---  ---  DO B  ---  ---  DO E Рис.7.13. а - схема взаимодействия модулей В FoxPro такой обмен возможен через параметры или через общие данные. Пример: DO  ZARPLATA  WITH

Модульное программирование

Вызов подпрограмм (модулей, процедур) осуществляется командой

DO [ WITH ]

Оператор RETURN подпрограммы возвращает управление вновь в основную программу на команду , следующую за оператором DO .

а) б)

G

---

---

DO A

---

DO B

---

DO C

---

---

DO B

---

---

DO E

Рис.7.13. а - схема взаимодействия модулей

В FoxPro такой обмен возможен через параметры или через общие данные. Пример: DO ZARPLATA WITH "Иванов", "01/12/89"

Команда DO вызовет подпрограмму ZARPLATA . PRG и передаст ей два параметра: фамилию и дату, на которую производится начисление. Для получения этих параметров в подпрограмме нужно указать оператор:

PARAMETERS

Пример вызова процедур.  Имеется файл сотрудников: SOTR ( FIO , DOLG , ZARP , OTD ). Необходимо начислить налоги и получить документ (налоги -13% от зарплаты). SET PROCEDURE TO PFILE CLEAR USE SOTR INDEX ON FIO TO OTR.NDX GO TOP STR=1  N =1 DO WHILE .NOT. EOF()  @ STR,1 SAY N pict '99'  @ STR,4 SAY FIO  @ STR,25 SAY DOLG  @ STR,35 SAY ZARP  DO NACH WITH ZARP,NAL  @ STR,40 SAY NAL  SKIP  STR = STR + 1  N = N+1  ENDDO   * Файл  процедуры PFILE  PROCEDURE NACH  PARAMETERS Z,Y  Y = Z * 13/100 * Файл  процедуры PFILE  PROCEDURE NACH  PARAMETERS Z,Y  Y = Z * 13/100  RETURN  RETURN

Пример вызова процедур.

Имеется файл сотрудников: SOTR ( FIO , DOLG , ZARP , OTD ). Необходимо начислить налоги и получить документ (налоги -13% от зарплаты).

SET PROCEDURE TO PFILE

CLEAR

USE SOTR

INDEX ON FIO TO OTR.NDX

GO TOP

STR=1

N =1

DO WHILE .NOT. EOF()

@ STR,1 SAY N pict '99'

@ STR,4 SAY FIO

@ STR,25 SAY DOLG

@ STR,35 SAY ZARP

DO NACH WITH ZARP,NAL

@ STR,40 SAY NAL

SKIP

STR = STR + 1

N = N+1

ENDDO

* Файл процедуры PFILE

PROCEDURE NACH

PARAMETERS Z,Y

Y = Z * 13/100 * Файл процедуры PFILE

PROCEDURE NACH

PARAMETERS Z,Y

Y = Z * 13/100

RETURN

RETURN

[, ] Элементы букв изображаются средствами псевдографики. Они генерируются одновременным нажатием: ALT + КОДЫ (213-223, 254) " width="640"

Изобразительные средства СУБД

FoxPro содержит средства создания изображений, например:

@ BOX

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

? или @... SAY или TEXT ... ENDTEXT

@ TO [DOUBLE / PANEL / ]

Эта команда формирует рамку, а также определяет ее цвет и форму

С помощью COLOR можно установить цвет рамки, не изменяя цветов по умолчанию.

SET BORDER TO [SINGLE/DOUBLE/PANEL/NONE] Окантовка 1

[, ]

Элементы букв изображаются средствами псевдографики. Они генерируются одновременным нажатием:

ALT + КОДЫ (213-223, 254)

Управление цветом.  SET COLOR ТО a / b, c / d, e Цвета: N - чёрный U - подчёркивание W - белый I - вывод текста в инверсном виде G - зелёный  GR + - жёлтый В - синий BG - бирюзовый R - красный RB - лиловый * - мерцание GR - коричневый Управление  звуком . SET BELL ON/OFF  SET BELL TO ,  Частота контролируется от 19 до 10.000 герц, длительность звукового сигнала - от 1 до 19 секунд. Пример :  SET BELL ON  FOR i = 1 TO 5  SET BELL TO i * 80, i * 3  ?? CHR(7)  ENDFOR  Управление печатью.  SET DEVICE TO SCREEN/PRINT Эта команда назначает устройство для вывода команд @.. . SAY . Если PRINT , то все команды @.. . SAY выводят информацию на принтер, а части GET ... этих команд игнорируются. Команда SET PRINT ON / OF обеспечивает печать всей изображаемой на экране информации, кроме вывода команд @... и команд полного экрана

Управление цветом. SET COLOR ТО a / b, c / d, e

Цвета:

N - чёрный U - подчёркивание

W - белый I - вывод текста в инверсном виде

G - зелёный GR + - жёлтый

В - синий BG - бирюзовый

R - красный RB - лиловый

* - мерцание GR - коричневый

Управление звуком . SET BELL ON/OFF

SET BELL TO ,

Частота контролируется от 19 до 10.000 герц, длительность звукового сигнала - от 1 до 19 секунд.

Пример :

SET BELL ON

FOR i = 1 TO 5

SET BELL TO i * 80, i * 3

?? CHR(7)

ENDFOR

Управление печатью. SET DEVICE TO SCREEN/PRINT

Эта команда назначает устройство для вывода команд @.. . SAY . Если PRINT , то все команды @.. . SAY выводят информацию на принтер, а части GET ... этих команд игнорируются.

Команда SET PRINT ON / OF обеспечивает печать всей изображаемой на экране информации, кроме вывода команд @... и команд полного экрана


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!