6. РАБОТА С ФАЙЛАМИ
83
Струк тура программы Подготовка Чтение с пр ямым Вычисления Вывод Чтение с по след.
переходов до ст упом доступом
Начало программы F=true ТF = 0 заголо вок, читать С,Е,Н,Р,К
шапка
Цех по ка F
Начало цеха С1=С ТС =0
Участок по ка F и С1 = С
Начало участк а Е1=Е ТЕ = 0
Табельный номер пока F иС1 = С и Е1 = Е
Начало т.н. Н1=Н ТН= 0
Деталь по ка F и С1 = С и Е1 = Е и Н1 = Н
Обработк а ТН=ТН+Р*К читать С,Е,Н,Р,К
детали
Ко нец т.ном. ТЕ=ТЕ+ТН
С1,Е1, Н1,ТН
Ко нец участка ТС=ТС+ТЕ ТЕ
Конец цеха ТF= T F+ТС ТС
Конец программы TF
Примечание: пр и конце файла F = false
Рис.6. Структура программы с матрицей операций.
Рассмотрим заполнение матрицы операций для решаемой задачи.
Для каждой записи файла выполняется умножение количества деталей на расценку.
Полученное произведение добавляется к итогу по табельному номеру. Это соответствует
строке начислено в диаграмме выходных данных и является центральным местом матри-
цы операций. Затем происходит чтение очередной записи файла.
Эти действия выполняются до тех пор, пока:
а) не закончился файл;
б) номер цеха соответствует номеру цеха предыдущей записи;
в) номер участка соответствует номеру участка предыдущей записи;
г) табельный номер соответствует табельному номеру предыдущей записи.
Если какой-либо из перечисленных признаков не совпадает, то происходит выход
из цикла и выводится строка в ведомость, а итог по табельному номеру добавляется в об-
щий итог по участку. Соответственно, перед этим циклом запоминается табельный номер
текущей записи и очищается поле суммы по табельному номеру.
Эти действия, в свою очередь, повторяются пока:
а) не закончился файл;
б) номер цеха соответствует номеру цеха предыдущей записи;
в) номер участка соответствует номеру участка предыдущей записи.
Если какой-либо из перечисленных признаков не совпадает, то происходит выход
из цикла и выводится итоговая строка в ведомость, а итог по участку добавляется в общий
итог по цеху. Соответственно, перед этим циклом запоминается номер участка текущей
записи и очищается поле суммы по участку.