Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП_ЛабРаботы.doc
Скачиваний:
13
Добавлен:
28.09.2019
Размер:
716.8 Кб
Скачать

Структурное программирование и функциональная декомпозиция системы

В самом общем случае программа — это последовательность операций над структурами данных, которые реализуют алгоритм решения задачи. Для большинства задач этот алгоритм достаточно объемен и сложен. Для уменьшения сложности программ, облегчения их понимания и со­провождения используются приемы структурного программирования.

Структурная программа должна удовлетворять следующим основным требованиям:

1 . Текст программы представляет собой композицию трех ос­новных элементов: последовательное соединение (следование), ус­ловное предложение (развилка) и повторение (цикл).

2. Употребления GO TO избегают всюду, где это возможно. Наихудшим применением GO TO считает­ся переход на оператор, расположенный выше (раньше) в тексте программы.

3. Текст программы напечатан с пра­вильными сдвигами, так что разрывы в последовательности выполнения легко прослеживаются.

5. Текст программы физически разбит на части, чтобы облегчить чтение. Выполняемые предложения каждого модуля должны уме­щаться на одной странице печатающего устройства.

6. Программа представляет собой простое и ясное решение за­дачи.

7. Текст программы сопровождается комментариями, поясняющими назначение переменных и шаги алгоритма.

При структурном подходе главным является принцип разработки ПО сверху-вниз. Все начинается со структурного анализа будущего комплекса ПО и декомпо­зиции алгоритма на осмысленные части (блоки), которые должны быть макси­мально автономными, обозримыми (то есть достаточно короткими) и обычно нереализованными в виде программ. Структурированная программа состоит из блок-программы и блоков. Первая не должна содержать вычислений, она содер­жит обращения к блокам, которые выполняют роль отдельных строительных кир­пичиков сложного комплекса. Начинают писать структурированную программу с блок-программы, которую пытаются отладить, даже не имея всех составляющих ее блоков. Блоки заменяют временными программными заглушками. Если ка­кой-то блок оказывается плохо обозримым или появляются трудности в его реали­зации, то с ним пытаются поступить так же, как и со всей программой, то есть разбить на отдельные более мелкие части. Каждый блок оформляется в виде от­дельной функции языка.

Функции

В языке С++ все функции глобальные. Объявление функции имеет вид:

return_type func_name(arg_typel argl, arg_type2 arg2, ...);

Для объявления функции необходимо указать тип возвра­щаемого значения, который может быть любым, как базовым (int, char*, и т. д.), так и определенным программистом (struct fruit и т. п.). Если функция не возвращает никакого значения, то следует указать тип void. За­тем следует имя функции, которое может быть произвольным, но лучше, если оно несет информацию о ее назначении. После имени в круглых скоб­ках перечисляются все ее аргументы с указанием типа каждого. Аргументы могут и отсутствовать. Определение функции содержит код ее реализации (тело функции), заключенный в фигурные скобки. Объявление и определение функции могут быть отделены друг от друга.

В C++ передача параметров осуществляется по зна­чению. При этом внутри функции заводится копия переданного пара­метра. Копии присваивается значение, равное значению фактического парамет­ра. Если функция в процессе своей работы изменит значение параметра (его копии), то вызывающая процеду­ра никак не сможет это обнаружить. Если необходимо, чтобы функция возвращала измененные значе­ния параметров, то в функцию передается адрес переменной (указатель). Переменная типа указатель объявляется при помощи символа * перед именем переменной:

long factorial(int nNumber) {…}

int swap(float *a, float *b) {…}