program Scheme_With_Procedures; ... procedure Plot_Rezistor ( ... ); begin Line( … ); Line( … ); Line( … ); Line( … ); end; procedure Plot_Condencer ( ... ); begin ... end; procedure Plot_Inductance ( ... ); begin ... end; ... begin ... Plot_Rezistor ( ... ); Plot_Rezistor ( ... ); Plot_Rezistor ( ... ); Plot_Rezistor ( ... ); Plot_Inductance ( ... ); Plot_Inductance ( ... ); Plot_Condencer ( ... ); ... end. |
program Scheme_Without_Procedures; ... begin Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Line( … ); Arc( … ); Arc( … ); Arc( … ); Arc( … ); Arc( … ); Arc( … ); Arc( … ); Arc( … ); Arc( … ); . . . end. |
а) застосування процедурної декомпозиції |
б) непроцедурний стиль |
Рис. 4.2. Вигляд програм для зображення принципової електричної схеми
За рахунок чого ж саме вдалося підвищити зрозумілість програми? Відповідь – за рахунок відділення застосування процедур (підзадач) від їх механізму реалізації. Якщо "малювання резистора" є підзадачею, то механізмом її реалізації в мові Паскаль є малювання чотирьох ліній. Програмістові, якому потрібно зобразити резистор в непроцедурній програмі (рис. 4.3б), вставляє до її тексту чотири рядки Line, тобто вміщує в безпосередньо в програму механізм реалізації потрібної підзадачі. У випадку ж процедурної декомпозиції до основної програми вміщується ідентифікатор процедури (Plot_Rezistor), що відображає ціль виконаної дії ("малювати резистор") а не спосіб її досягнення ("малювати чотири лінії"). Механізм дії процедур в Паскалі виноситься до розділу оголошень програми (на рис. 4.3а реалізацію процедури Plot_Rezistor зафарбовано темно-сірим кольором), або до іншого модуля (див. наступний розділ).
Таким чином встановлено головну перевагу процедурних програм над не процедурними – підвищення зрозумілості (читаємості) текстів програм.
Розглянемо тепер процес розробки процедурних програм більш детально. Головні етапи розробки є наступними:
1. Аналіз та декомпозиція предметної області з виділенням переліку процедур (функцій) та встановленням задач, що вирішуються кожною з процедур.
2. Детальний аналіз кожної з підзадач та визначення їх інтерфейсу.
3. Реалізація процедур (написання програмного коду кожної з процедур).
4. Інтеграція процедур для формування кінцевої програми.
В якості прикладу застосування наведеної послідовності розробки розглянемо написання програми для малювання принципової схеми (рис. 4.1), але в цьому випадку доведемо програму до робочої версії.
Аналіз та процедурна декомпозиція предметної області
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.