Слайд 2Темы лекции
Модульное программирование и функциональная декомпозиция
Использование функций в С++
Особенности передачи параметров
Сквозной пример
II
Слайд 3Декомпозиция
Декомпозиция — операция мышления, состоящая в разделении целого на части.
Также декомпозицией называется общий
приём, применяемый при решении проблем, состоящий в разделении проблемы на множество частных проблем, а также задач, с помощью объединения решений которых, можно сформировать решение исходной проблемы в целом.
Слайд 4Функциональная декомпозиция
Функциональная декомпозиция – это метод разработки программ, при котором задача разбивается
на ряд легко решаемых подзадач, решения которых в совокупном виде дают решение исходной задачи в целом.
Проектирование приложения строится от абстрактного описания основной задачи (высший уровень абстракции). Основная задача может быть разбита на ряд более простых подзадач (второй уровень абстракции), каждая из которых, в свою очередь, на ряд еще более простых.
Процесс детализации заканчивается, когда очередная подзадача не может быть больше разбита на более простые составляющие, или когда решение очередной задачи становится очевидным.
Слайд 5Функциональная декомпозиция
В процессе детализации создается иерархические дерево решения, где каждый уровень представляет
собой решение более детализированной задачи, чем предшествующий уровень.
Каждый блок представляет собой программный модуль. Каждый модуль, это законченный алгоритм решения некоторой конкретной задачи.
Процесс кодирования выполняется снизу вверх, от написания и полной отладки кода небольших подзадач с их последующей сборкой на верхнем уровне, при этом каждый модуль безошибочно решает одну задачу.
Объем задачи нижнего уровня достаточно небольшой, это одна или две страницы кода.
Слайд 6Пример задачи (из методички)
Заданы две матрицы целых чисел A(m,n) и B(l,k) и
два вектора из целых чисел X(n) и Y(k), где 0Требуется получить вектора C(m) и D(l), где i=1..m i=1..l
Слайд 7main
inputMatrix
inputVector
solver
outResult
sum
max
inputData
Слайд 9Функции
Функции – относительно самостоятельные фрагменты программы, спроектированные для решения конкретных задач и
снабженные именем.
Функция – это синтаксически выделенный именованный программный модуль, выполняющий определенное действие или группу действий.
Функции аналогичны программам в миниатюре и имеют общее название подпрограммы.
В объектно-ориентированных языках функции размещаются внутри классов и называются методами.
Слайд 10Преимущество функций
Экономия памяти кода за счет размещения многократно повторяющихся частей программ в
функции.
Позволяет работать группе программистов над одной сложной задачей
Функции облегчают чтение, внесение изменений и коррекцию ошибок в программе.
Часто используемые функции помещают в библиотеки.
Слайд 11Основные понятия и определения
Каждая функция имеет свой интерфейс и реализацию.
Интерфейс функции
– заголовок функции, в котором указывается название функции, список ее параметров и тип возвращаемого значения.
Реализация функции – тело функции, содержащее внутренние (локальные) данные функции и программный код, выполняющий действия согласно переданным в функцию параметрам и возвращающий значение, соответствующего интерфейсу функции типа.
Слайд 12Выводы о функциях
(технический взгляд)
Cпособы реализации функций в разных языках программирования высокого
уровня:
объявления и функций
правила именования функций
используемые символы, регистр
функции с одинаковыми названиями
правила использования параметров функций
передача параметров
передача по порядку и по имени
значения по умолчанию