Функциональная декомпозиция для АСУб и ЭВМб. Тема 3-1

Содержание

Слайд 2

Темы лекции

Модульное программирование и функциональная декомпозиция
Использование функций в С++
Особенности передачи параметров
Сквозной пример

Темы лекции Модульное программирование и функциональная декомпозиция Использование функций в С++ Особенности
II

Слайд 3

Декомпозиция

Декомпозиция — операция мышления, состоящая в разделении целого на части.
Также декомпозицией называется общий

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

Слайд 4

Функциональная декомпозиция

Функциональная декомпозиция – это метод разработки программ, при котором задача разбивается

Функциональная декомпозиция Функциональная декомпозиция – это метод разработки программ, при котором задача
на ряд легко решаемых подзадач, решения которых в совокупном виде дают решение исходной задачи в целом.
Проектирование приложения строится от абстрактного описания основной задачи (высший уровень абстракции). Основная задача может быть разбита на ряд более простых подзадач (второй уровень абстракции), каждая из которых, в свою очередь, на ряд еще более простых.
Процесс детализации заканчивается, когда очередная подзадача не может быть больше разбита на более простые составляющие, или когда решение очередной задачи становится очевидным.

Слайд 5

Функциональная декомпозиция

В процессе детализации создается иерархические дерево решения, где каждый уровень представляет

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

Слайд 6

Пример задачи (из методички)

Заданы две матрицы целых чисел A(m,n) и B(l,k) и

Пример задачи (из методички) Заданы две матрицы целых чисел A(m,n) и B(l,k)
два вектора из целых чисел X(n) и Y(k), где 0Требуется получить вектора C(m) и D(l), где i=1..m i=1..l

Слайд 7

main

inputMatrix

inputVector

solver

outResult

sum

max

inputData

main inputMatrix inputVector solver outResult sum max inputData

Слайд 9

Функции

Функции – относительно самостоятельные фрагменты программы, спроектированные для решения конкретных задач и

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

Слайд 10

Преимущество функций

Экономия памяти кода за счет размещения многократно повторяющихся частей программ в

Преимущество функций Экономия памяти кода за счет размещения многократно повторяющихся частей программ
функции.
Позволяет работать группе программистов над одной сложной задачей
Функции облегчают чтение, внесение изменений и коррекцию ошибок в программе.
Часто используемые функции помещают в библиотеки.

Слайд 11

Основные понятия и определения

Каждая функция имеет свой интерфейс и реализацию.
Интерфейс функции

Основные понятия и определения Каждая функция имеет свой интерфейс и реализацию. Интерфейс
– заголовок функции, в котором указывается название функции, список ее параметров и тип возвращаемого значения.
Реализация функции – тело функции, содержащее внутренние (локальные) данные функции и программный код, выполняющий действия согласно переданным в функцию параметрам и возвращающий значение, соответствующего интерфейсу функции типа.

Слайд 12

Выводы о функциях (технический взгляд)

Cпособы реализации функций в разных языках программирования высокого

Выводы о функциях (технический взгляд) Cпособы реализации функций в разных языках программирования
уровня:
объявления и функций
правила именования функций
используемые символы, регистр
функции с одинаковыми названиями
правила использования параметров функций
передача параметров
передача по порядку и по имени
значения по умолчанию