Скачиваний:
1
Добавлен:
04.09.2023
Размер:
1.17 Mб
Скачать

1 Концепция структурного программирования. Причины появления концепции. Модульность и функции. Ограничения на логические конструкции. Использование оператора goto.

Структу́рное программи́рование — парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков.

В соответствии с парадигмой, любая программа, которая строится без использования оператора goto, состоит из трёх базовых управляющих конструкций: последовательность, ветвление, цикл; кроме того, используются подпрограммы. При этом разработка программы ведётся пошагово, методом «сверху вниз».

Методология структурного программирования появилась как следствие возрастания сложности решаемых на компьютерах задач, и соответственно, усложнения программного обеспечения.

Первоначально идея структурного программирования появилась на свет в связи с оператором goto и сомнениями в целесообразности его применения.

Структурное программирование призвано, в частности, устранить беспорядок и ошибки в программах, вызванные трудностями чтения кода, несистематизированным, неудобным для восприятия и анализа исходным текстом программы. Такой текст нередко характеризуют как «спагетти-код».

Код с goto трудно форматировать, так как он может нарушать иерархичность выполнения (парадигму структурного программирования) и потому отступы, призванные отображать структуру программы, не всегда могут быть выставлены правильно. Кроме того, оператор goto мешает оптимизации компиляторами управляющих структур.

Цель структурного программирования: повысить производительность труда программистов, в том числе при разработке больших и сложных программных комплексов, сократить число ошибок, упростить отладку, модификацию и сопровождение программного обеспечения.

Теорема о структурном программировании (Теорема Бёма — Якопини)

Любая программа, заданная в виде блок-схемы, может быть представлена с помощью трёх управляющих структур:

последовательность — обозначается: f THEN g

ветвление — обозначается: IF p THEN f ELSE g

цикл — обозначается: WHILE p DO f,

где f, g — блок-схемы с одним входом и одним выходом, р — условие, THEN, IF, ELSE, WHILE, DO — ключевые слова. Пояснение. Формула f THEN g означает следующее: сначала выполняется программа f, затем выполняется программа g

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

Главная функция подпрограммы – структуризация программы. Любое изменение (исправление ошибки, оптимизация, расширение функциональности), сделанное в подпрограмме, автоматически отражается на всех её вызовах, в то время как при дублировании каждое изменение необходимо вносить в каждое вхождение изменяемого кода.

2 Основные понятия концепции объектно-ориентированного программирования. Причины появления концепции. Объект или класс. Отличие класса от функции. Понятия абстракции, инкапсуляции, полиморфизма, наследования.

Недостатки структурного программирования:

Концепция структурного программирования является цельной и самодостаточной. Как таковых, недостатков у нее фактически нет.

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

Проблемы:

  • сложность и неудобство создания новых программ на основе ранее разработанных (необходимость разбираться в исходных программах и в списках параметров);

  • сложность и громоздскость манипуляций со сложными объектами и использования укрупненных функций (сложные объекты или функции приходится описывать через громоздкие структуры, содержащие многочисленных параметры);

  • сложность организации многозадачного или многоканального режима обработки данных (многозадачность или многоканальность приходится прописывать в коде программ в явном виде, что очень усложняет и увеличивает код).

Для решения перечисленных проблем была разработана новая концепция, получившая название «Объектно-ориентированное программирование».

Концепция структурного программирования тем не менее остается очень важным базовым принципом.

Объект (класс) – совокупность программного кода и связанных с ним данных, реализующая единую функцию.

Определение класса – программный код, описание логики функционирования.

Экземпляр класса – выделенное в памяти компьютера пространство для размещения данных, связанных с отдельным вызовом класса.

Основные понятия

Абстракция данных. Абстрагирование означает выделение значимой информации и исключение из рассмотрения незначимой. В ООП рассматривают лишь абстракцию данных (нередко называя её просто «абстракцией»), подразумевая набор наиболее значимых характеристик объекта, доступных остальной программе. Абстракция связана с понятием «Черный ящик» - система, описанная только выполняемой функцией, входами и выходами. Инкапсуляция

Инкапсуляция — свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе. Сокрытие внутренних данных класса. Ограничение доступа внешних программ к данным класса (private,public, protected).

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

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