Составители:
Рубрика:
71
<последовательность команд> будет выполнена, только если (IF) выражение <exprL>
истинно. Если нет - программа будет выполняться с команды, следующей за операторной
скобкой ENDIF.
DO WHILE <exprL><последовательность команд>ENDDO конструкция «цикл»:
<последовательность команд> будет выполняться до тех пор (WHILE), пока остается
истинным логическое выражение <exprL>.
DELETE - логическое удаление записей
SET DELETED
ON/OFF – включение/отключение режима «невидимости» удаленных записей
RECALL - восстановление логически удаленных записей.
При наборе программы не обязательно вставлять примечания, но обязательно читать и понимать
их.
Можно (и рекомендуется!) набирать четыре первых буквы команд.
Текст программы stud01. prg:
* Иллюстрация к приему удали лишнее
* Отбор студентов – «отличников»
USE students && в рабочей области A открывается файл students.dbf
BROWSE && просмотр файла с неудаленными записями
y1=«Балл_сес01» && присваивание переменным y1,y2,y3,y4 значений,
y2=«Балл_сес02» && соответствующих именам полей
y3=«Балл_сес03» && со средними баллами.
y4=«Балл_сес04»
n=1 && переменная для размещения указателя.
* циклически: переход к записи с номером n;
* затем: проверка - (IF, если) год =1998, то помечается к удалению запись с этим номером
*при условии, что в и первой (&y1),и во второй (&y2)сессии оценки не равны 5.
* Здесь, как и выше, макроподстановка & позволяет вставить в команду
присвоенное
*переменной при &, в частности, &y1 равносильно Балл_сес01, т.к. выше переменной y1
*было присвоено значение Балл_сес01. Проверка на год поступления нужна для того,
*чтобы не вычеркнуть из списка «отличников» студентов-1998 (у них в полях
*Балл_сес03, Балл_сес04 нули). Затем: удаление из списка студентов
-1997, у которых
*оценки во всех сессиях не равны 5. Цикл будет выполняться, пока номер записи n не
*станет равным числу записей reccount( )
* ___________________________________________________________________________
DO WHILE n<=reccount( ) && reccount( )=числу записей в файле.
GO n && переход к записи с номером n
IF year_start=1998 && проверка условия: год поступл. = 1998.
DELETE FOR &y1#5.and
.&y2#5 && если не «5» - удалить!
ENDIF && конец действия условия.
IF year_start=1997 && проверка условия: год пост=1997.
DELETE FOR &y1#5.and.&y2#5.and.&y3#5.and.&y4#5
&& если не все «5» - удалить!
ENDIF
n=n+1 && наращивание номера записи.
END DO && конец цикла.
SET DELETED ON && режим, когда удаленные не видны.
BROWSE && просмотр «отличников».
SET DELETED OFF &&
возврат к режиму видны все.
RECALL && восстановление логически удаленных.
BROWSE && просмотр всех записей.
* ____________________________________________________________________________
После набора программы запустите ее на выполнение командой
71 <последовательность команд> будет выполнена, только если (IF) выражениеистинно. Если нет - программа будет выполняться с команды, следующей за операторной скобкой ENDIF. DO WHILE <последовательность команд>ENDDO конструкция «цикл»: <последовательность команд> будет выполняться до тех пор (WHILE), пока остается истинным логическое выражение . DELETE - логическое удаление записей SET DELETED ON/OFF – включение/отключение режима «невидимости» удаленных записей RECALL - восстановление логически удаленных записей. При наборе программы не обязательно вставлять примечания, но обязательно читать и понимать их. Можно (и рекомендуется!) набирать четыре первых буквы команд. Текст программы stud01. prg: * Иллюстрация к приему удали лишнее * Отбор студентов – «отличников» USE students && в рабочей области A открывается файл students.dbf BROWSE && просмотр файла с неудаленными записями y1=«Балл_сес01» && присваивание переменным y1,y2,y3,y4 значений, y2=«Балл_сес02» && соответствующих именам полей y3=«Балл_сес03» && со средними баллами. y4=«Балл_сес04» n=1 && переменная для размещения указателя. * циклически: переход к записи с номером n; * затем: проверка - (IF, если) год =1998, то помечается к удалению запись с этим номером *при условии, что в и первой (&y1),и во второй (&y2)сессии оценки не равны 5. * Здесь, как и выше, макроподстановка & позволяет вставить в команду присвоенное *переменной при &, в частности, &y1 равносильно Балл_сес01, т.к. выше переменной y1 *было присвоено значение Балл_сес01. Проверка на год поступления нужна для того, *чтобы не вычеркнуть из списка «отличников» студентов-1998 (у них в полях *Балл_сес03, Балл_сес04 нули). Затем: удаление из списка студентов-1997, у которых *оценки во всех сессиях не равны 5. Цикл будет выполняться, пока номер записи n не *станет равным числу записей reccount( ) * ___________________________________________________________________________ DO WHILE n<=reccount( ) && reccount( )=числу записей в файле. GO n && переход к записи с номером n IF year_start=1998 && проверка условия: год поступл. = 1998. DELETE FOR &y1#5.and.&y2#5 && если не «5» - удалить! ENDIF && конец действия условия. IF year_start=1997 && проверка условия: год пост=1997. DELETE FOR &y1#5.and.&y2#5.and.&y3#5.and.&y4#5 && если не все «5» - удалить! ENDIF n=n+1 && наращивание номера записи. END DO && конец цикла. SET DELETED ON && режим, когда удаленные не видны. BROWSE && просмотр «отличников». SET DELETED OFF && возврат к режиму видны все. RECALL && восстановление логически удаленных. BROWSE && просмотр всех записей. * ____________________________________________________________________________ После набора программы запустите ее на выполнение командой
Страницы
- « первая
- ‹ предыдущая
- …
- 23
- 24
- 25
- 26
- 27
- …
- следующая ›
- последняя »