6. РАБОТА С ФАЙЛАМИ
77
BLOCKWRITE(TOF, BUF, NR, NWR);
UNTIL (NR = 0) OR (NWR <> NR);
CLOSE(FROMF);
CLOSE(TOF);
END.
В примере программы при открытии файла без типа в вызове процедуры RESET
указана длина записи равная 1. В этом случае при копировании файла не будут записаны
лишние символы в новый файл.
6.6. Проектирование программ по структурам данных
Проектирование программ по структурам данных можно считать одним из самых
зрелых и продвинутых направлений в индустриальном отношении.
Использование диаграмм Варнье, Джексона и МЭСИД для проектирования программ
уже упоминалось ранее, а здесь остановимся несколько подробнее на использовании подхода
МЭСИД для задач, относимых обычно к классу экономических.
Все эти подходы основываются на создании диаграмм структур выходных и вход-
ных данных, определении несоответствий в них и путей устранения этих несоответствий
через диаграмму структуры программы, составление списков операций и написание псев-
докода (текста) программы.
Одним из принципов в этих методологиях является упреждающее чтение записей.
В языках программирования, в которых при N записях в последовательном файле об
окончании записей становится известно при N + 1 чтении, такое программирование яв-
ляется более удобным. В этом случае чтение первой записи выполняется по началу про-
граммы, а чтение остальных записей осуществляется в блоках, где производится их обра-
ботка. Для языков, в которых признак окончания файла устанавливается для последней
прочитанной записи, то есть требуется N чтений при N записях, упомянутое неудобство
устраняется чтением первой записи по началу программы и использованием дополни-
тельно условного оператора для установки флага завершения файла в блоках, где произ-
водится их обработка. Другим способом является написание специальной подпрограммы,
к которой производится N+1 обращение с получением флага завершенности файла и запи-
си в целом или только необходимых полей. При использовании ряда языков четвертого
поколения (4 GL) эта проблема решается автоматически.
Одним из вариантов в подходе МЭСИД является следующая последовательность шагов
с преобладающим направлением от выхода к входу и от физического к логическому:
1. Составление диаграммы структуры выходных данных.
2. Составление диаграммы структуры входных данных.
3. Составление диаграммы структуры программы с матрицей операций.
4. Заполнение матрицы операций.
5. Составление текста программы на языке программирования.
В основе составления спецификации помимо графических средств лежит активный
контроль речевой деятельности, направленный на выделение сходных подмножеств и их
синхронизацию и/или отношений 1:1, 1:M, M:N.
Пусть имеется условный макет отчета (сводки) о начислении заработной платы ра-
бочим-сдельщикам (рис. 1), в котором для каждого табельного номера (рабочего, испол-
нителя) выводится одна строка. Кроме итогов по табельным номерам выводятся итоги для
участков, цехов и общий итог. Заголовок и «шапка» выводятся один раз в начале отчета.