![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Структурное программирование
В процессе создания больших программных комплексов возникает необходимость в организации совместной работы коллектива программистов. Структурный подход заключается в возможности разбиения основной программы на отдельные фрагменты (подпрограммы) и организации совместного использования данных. Подпрограммой называется Фрагмент программы, имеющий имя и предназначенный для решения определенной задачи. В программах и подпрограммах применяются базовые управляюшие конструкции алгоритмического языка, имеющие одну точку входа и одну точку выхода (следование, ветвление, цикл). Основная программа в зависимости от сложности может состоять из одной или более подпрограмм. Одна подпрограмма может вызывать другую и т. д. Для обращения к подпрограмме достаточно указать ее имя и список аргументов. Программы и подпрограммы хранятся в модулях. В один модуль помещается несколько программ и подпрограмм, которые имеют относительную независимость от программ, хранящихся в других модулях, и реализуют какую-либо задачу. Каждый модуль транслируется отдельно, а затем используется при формировании общего исполняемого модуля. Основным преимуществом использования модульного принципа программирования является возможность отладки и тестирования модуля независимо от других модулей. Взаимодействие подпрограмм происходит с помощью обмена данными. Существуют два способа обмена данными между подпрограммами: с помощью глобальных переменных и с помощью передачи параметров. Переменные, объявленные в подпрограмме, являются локальными. Это значит, что использовать значения этих переменных можно только внутри этой подпрограммы. В конце выполнения подпрограммы все локальные переменные теряют свои значения и перестают существовать. Переменные, объявленные в разделе общего описания модуля, являются глобальными. Доступ к глобальным переменным имеется во всех подпрограммах модуля. Значения глобальных переменных сохраняются по тех пор, пока не закончится выполнение всех связанных подпрограмм. При обмене данными между подпрограммами выделяются два момента: описание подпрограмм и обращение к ним (вызов). Если обмен данными между подпрограммами осуществляется через глобальные переменные, то для вызова подпрограммы достаточно указать ее имя. При обмене данными с помощью передачи параметров необходимо при вызове подпрограммы, кроме ее имени, указать перечень передаваемых параметров, которые называются фактическими параметрами, а при описании подпрограммы указать перечень принимаемых параметров, которые называются формальными параметрами. Фактические параметры должны соответствовать формальным параметрам по количеству, порядку перечисления и типу. При вызове подпрограммы формальные параметры заменяются фактическими. Существуют два способа замены формальных параметров: по ссылке и по значению. Передача параметра по ссылке означает передачу в подпрограмму адреса фактического параметра переменной. При этом любое изменение формального параметра внутри подпрограммы приводит к изменению соответствующего фактического параметра. Переменные, в которых должны содержаться результаты выполнения подпрограммы, следует передавать по ссылке. Передача параметров по значению означает пересылку значения фактического параметра в ячейку памяти, отведенную для хранения формального параметра. Это обеспечивает сохранность величины фактического параметра. Если фактическое значение параметра является константой или выражением, то следует использовать передачу данных по значению. Функции являются расширением подпрограмм. Функции могут делать все, что могут делать подпрограммы, и вдобавок они возвращают какое-то значение. Классическими примерами функций во всех алгоритмических языках являются стандартные математические функции: синус, косинус и т. д. Имя функции одновременно является именем подпрограммы и именем результата выполнения подпрограммы. Подпрограммы и функции могут вызывать сами себя. В этом случае они называются рекурсивными функциями, или подпрограммами. Примеры вопросов 1. Подпрограммой является: • рекурсивный вызов в функции; • ранее разработанный, синтаксически выделенный и целиком используемый в составе других программ блок операторов; • часть операторов основной программы, выполняющихся как повторение цикла; • скомпилированный исполняемый файл основной программы? 2. Подпрограммам НЕ СВОЙСТВЕННО: • уменьшение общего объема программы; • усложнение понимания работы программы; • структурирование программы; • упрощение читабельности программы? 3. Основой метода структурного программирования являются: • принцип модульности разработки сложных программ; • использование композиции трех базовых элементов — линейной, ветвления и циклической структур; • использование композиции двух базовых элементов — ветвления и циклической структур; • использование большого количества подпрограмм? 4. Параметры, указываемые в момент вызова подпрограммы из основной программы, называются: • глобальными; • абсолютными; • фактическими; • постоянными? 5. Рекурсивная подпрограмма реализует: • обращение подпрограммы к самой себе; • удаление подпрограммой самой себя; • заражение подпрограммой самой себя; • размножение подпрограммой самой себя?
|