Лабораторная работа № 4. Создание программных файлов.Организация цикла и разветвления в программе. Цель: дать понятие о программных файлах, о командах по их созданию и запуску, об использовании при написании текста программы команды организации цикла DO WHILE … ENDDO и команды управления IF … ENDIF. Командаы: MODIFY COMMAND, DO, DO WHILE … ENDDO, IF … ENDIF Для вызова внутреннего встроенного редактора FoxPro, с помощью которого создаётся текст программ, служит команда: MODIFIY COMMAND/FILE<имя текстового файла/маска> Вариант MODI COMM считает по умолчанию вновь создаваемый файл командным (программным )файлом и ему прсваивается расширение .PRG Повторный вызов командного файла осуществляется той же командой. Вариант MODI FILE не предусматривает каких-либо умолчаний для имён файлов.Созданная в редакторе программа должна быть сохранена ,например, нажатием сочетания клавиш Ctrl+W и может быть вызвана на выполнение командой: DO <имя командного файла> Команды управления. Команды управления являются важнейшим средством построения программ.Эти программы не могут быть опробованы и использованы в интерактивном режиме , а только в программах. Цикл с условием. Цикл с заранее известным условием его окончания и неизвестным числом повторов, выполняется следующей конструкцией: DO WHILE<условие> <команды> ENDDO Команды заключенные между DO WHILE и ENDDO, будут выполняться до тех пор, пока <условие> истинно. Если требуется покинуть цикл раньше, чем он выработается, необходимо использовать команду EXIT, которая передаст управление команде следую-щей за ENDDO. Если по какому-то условию в теле цикла необходимо передать управление на его начало (не доходя до команды ENDDO) пользуются командой LOOP. Набрать текст следующих коротеньких программ, демонстрирующих использование команды организации цикла DO WHILE…ENDDO и команды управления IF … ENDIF. CLEAR {очистить экран} CLOSE DATABASE {закрыть все базы данных} USE KOLLEK {открыть БД} DO WHILE .NOT. EOF() {команда начала цикла } 3 {вывод текущей записи на экран} {шаг на следующую запись } ENDDO {команда окончания цикла} ******************************************** CLEAR CLOSE DATABASE USE KOLLEK DO WHILE .T. { начало цикла с "абстрактным" условием} DISP IF .NOT. EOF() { если не достигнут конец БД } SKIP { шаг на одну запись вниз по базе } LOOP { переход на начало цикла} ENDIF { конец условия} EXIT { выход из цикла} ENDDO CANCEL { снять программу} DISP SKIP Выйти из редактора с сохранением набранного текста программы - < Ctrl +W > Запустить каждую из них на выполнение . DO < имя прогр >. Пример. Написать программу, выводящую на экран с помощью команды LIST, фамилию, город и продолжительность курсов из БД – KOLLEK.DBF. CLEAR CLOSE DATABASE USE KOLLEK GO TOP DO WHILE .NOT . EOF() LIST NEXT 10 FIELDS FAMIL,GOROD,LONG =INKEY(0) CLEAR ENDDO CANCEL 3. Написать программу, выводящую на экран значения полей фамилии, города и продолжительности курсов из первых десяти записей, базы данных KOLLEK.DBF при условии, что город не Москва. CLEAR SET TALK OFF CLOSE DATABASE USE KOLLEK LIST NEXT 10 FIELDS FAMIL,GOROD,LONG ; FOR GOROD <>’Москва’ Выполнить самостоятельно. 4 1.Написать программу, выводящую на экран записи БД "порциями" ( по10 записей) с помощью команды DISPLAY. 2.Написать прграмму, выводящую с помощью команды DISPLAY последние 10 записей БД. Контрольные вопросы. 1. Какое расширение имеют имена прграммных файлов в FoxPro? 2.Чем отличаются команды MODI COMM и MODI FILE. 5