- •2. Модуль "Тестовый контроль озу по ша" (aTstContr)
- •3. Модуль "Вывод сообщений об ошибках" (ErMesOut)
- •4. Модуль "Ввод режимов" (ModeInput)
- •5. Модуль "Вывод сообщения о типе ввода" (InTpMesOut)
- •6. Модуль "Ввод с клавиатуры" (KbdInput)
- •7. Модуль "Контроль ввода с клавиатуры" (KbdInContr)
- •8. Модуль "Преобразование очередной цифры" (NxtDigTrf)
- •9. Модуль "Формирование информации" (InfoForm)
- •10. Модуль "Формирование массивов отображения" (DispForm)
- •11. Модуль "Вывод числовой информации" (NumInfOut)
- •Модуль "Функциональная подготовка" (FuncPrep)
Модуль "Функциональная подготовка" (FuncPrep)
Задачей этого модуля является запись во все критические наборы данных статической модели программы корректных исходных значений.
Критическими являются наборы данных, информация из которых используется раньше, чем будет сформирована программными модулями. Из анализа алгоритма рассматриваемой программы (см. рис. 6.37) следует, что критическими в ней являются сообщение об ошибке ввода с клавиатуры KbdErr (используется в модуле 3, а формируется в модуле 7), а также отображаемые наборы Addr и BufData (в режиме "Ввод" формируются многократным проходом модуля 9, а используются сразу же модулями 10 и 11).
Рис. 6.49. Алгоритм модуля "Вывод числовой информации"
Кроме того, тип ввода с клавиатуры устанавливается кнопками "Тип ввода" ("Адрес/"Данные"), которые в момент включения устройства неактивны. Для определенности в подготовке будем устанавливать тип ввода в положение "Адрес", что требует сброса флага InType.
Рис. 6.50. Алгоритм
модуля "Функцио- нальная подготовка"
ГСА модуля FuncPrep приведена на рис. 6.50. При подготовке сбрасываются флаги KbdErr и InType, набор Addr, а в набор BufData помещается число, считанное из выходного массива RAMData по нулевому адресу (из набора Addr).
Для выделения передних фронтов сигналов модификации адреса "+1"/"1" (см. рис. 6.42,а) необходимо знать их состояние на предшествующем проходе программного кольца. Для хранения этой информации необходима служебная ячейка памяти. Однако, на первом проходе эта информация еще не существует. Поэтому данная ячейка в подготовке инициализируется на корректное исходное значениеотсутствие сигналов модификации адреса "+1"/"1" в предшествующем проходе.
Таким образом, разработаны алгоритмы программных модулей нижнего уровня и полный алгоритм программы для ввода данных в ОЗУ.
Достоинствами рассмотренного метода проектирования программ являются:
1) существенное повышение информативности программной документации, способствующее улучшению степени сопровождаемости программы за счет использования статической модели, представляющей ее в виде совокупности простых модулей с четко определенными входными и выходными данными;
2) возможность использования целого коллектива программистов для одновременной и независимой разработки и отладки программных модулей за счет их четко определенного информационного интерфейса (с целью сокращения общих сроков создания программы);
3) из отлаженных модулей, оформленных в виде подпрограмм, могут составляться библиотеки для использования в дальнейших проектах.