По мере роста программ, организация разделов проекта становится более важной при создании понятных программ.
Простые процедуры
PROCEDURE Copy;
BEGIN
READ(Ch);
WRITE(Ch);
END
PROGRAM UsingCopy(INPUT, OUTPUT);
{Копирует 2 символа из INPUT в OUTPUT. Выполнение программы прекращается, если INPUT пуст}
VAR
Ch: CHAR;
PROCEDURE Copy;
BEGIN
READ(Ch);
WRITE(Ch);
END;
BEGIN
Copy;
Copy;
WRITELN
END.
INPUT:ABCDE
OUTPUT:AB
SR6. <блок>::= <оператор BEGIN>
| <раздел объявлений>; <оператор BEGIN >
| <список процедур>; <оператор BEGIN >
|<раздел объявлений>; < список процедур>; <оператор BEGIN >
SR11. <оператор>::= <оператор READ>
| <оператор WRITE>
| <оператор присвоения>
| <пустой оператор>
| <оператор BEGIN>
| <оператор IF>
| <оператор WHILE>
| <оператор вызова процедуры>
SR26. <список процедур>::= <описание процедуры>
| <список процедур>; <описание процедуры>
SR27. <описание процедуры>::= PROCEDURE <идентификатор>; <оператор BEGIN>
SR28. <оператор вызова процедуры>::= <идентификатор>
CR3. Любой идентификатор в операторе, не являющийся <оператором вызова процедуры>, отличный от стандартных идентификаторов вроде READ, WRITE и т.д. должен присутствовать в <списке идентификаторов> <раздела объявлений>.
|
|
CR4. Правило появления. < Идентификатор> <оператора вызова процедуры> должен появиться в роли идентификатора, следующего за словом PROCEDURE в <описании процедуры>, до своего появления в <операторе вызова процедуры>. Иными словами, процедура должна быть описана в тексте программы до своего первого использования.
Фаза разработки.
Разработка программ (совместно с тестированием программы)
1. Разработайте план сборки. Составьте части проекта (начав с простейшей программы) в последовательность все более сложных программ. План должен позволять выполнение программы на каждом шаге.
2. Как правило, на каждом шаге добавляйте не более 50 строк из проекта в разработку.
3. Не начинайте с первых 50 строк до тех пор, пока ваш проект не будет завершен. Записан должен быть ваш последний проект, а не первый.
4. Каждые 50 строк программы должны работать без ошибок с первого раза. Сосредоточенность в настоящем сохранит время и нервы в будущем.
Тестирование программы (совместно с разработкой программы)
1. Думайте серьезно о вашем плане сборки и о вашей конечной программе. Составьте правильную последовательность программ для получения положительной обратной связи на каждом этапе сборки программы.
2. Разработайте план тестирования. Создайте программы с временными операторами WRITE для получения выразительных результатов выполнения, несмотря на то, что это не окончательные результаты, необходимые вам.
|
|
3. Для каждого шага вашего плана сборки проведите тестовые испытания, и не забывайте об исключительных ситуациях, даже несмотря на их малую вероятность.