Similar presentations:
1
1.
Структурный иОбъектный подход к
программированию
2.
Структурное программированиеПрограмма строится как последовательность логических блоков
(процедур, функций), управляющих потоком выполнения без
"безумных" переходов.
Принципы (Э. Дейкстра, 1960–70-е):
• Линейность — последовательное выполнение команд.
• Ветвление — if...else.
• Циклы — for, while.
• Модульность — разбиение программы на подпрограммы
(функции).
• Единственная точка входа и выхода для каждого блока.
3.
Преимущества и недостаткиПреимущества:
• Простота понимания и отладки.
• Чёткая структура программы.
• Подходит для небольших и средних задач.
Недостатки:
• Сложно масштабировать при росте программы.
• Данные и функции разделены, что усложняет поддержку в крупных
проектах.
• При изменении данных часто нужно переписывать множество функций.
Pascal, C, BASIC (в структурированном стиле).
4.
Объектно-ориентированноепрограммирование (ООП)
Программа моделирует реальный мир через объекты,
объединяющие данные (свойства) и поведение (методы).
Принципы:
• Инкапсуляция - объединение данных и методов в одном объекте;
скрытие внутренней реализации (через `private`/`public`).
• Наследование - возможность создавать новый класс на основе
существующего, наследуя его свойства и методы.
• Полиморфизм - один интерфейс для разных типов объектов
(например, метод `draw()` работает и для `Circle`, и для `Square`).
• Абстракция - выделение существенных характеристик объекта и
игнорирование несущественных.
5.
Преимущества и недостаткиПреимущества:
• Повышает модульность, повторное использование кода и
масштабируемость.
• Легче сопровождать и развивать большие проекты.
• Ближе к моделированию реальных систем.
Недостатки:
• Сложнее для новичков.
• Может привести к избыточности при небольших задачах.
• Требует чёткого проектирования архитектуры.
Java, C++, Python, C#, JavaScript (с классами).
6.
Контрольные вопросы1. Что означает принцип «сверху вниз» в проектировании программ?
2. Какие три управляющие конструкции лежат в основе структурного
программирования?
3. Почему данные и функции в структурном подходе часто хранятся
отдельно?
4. Приведите пример задачи, которая хорошо решается в структурном стиле.
5. Как наследование помогает избежать дублирования кода?
6. Может ли одна и та же задача решаться и структурным, и объектным
способом? Приведите пример.
7. Современные языки (например, Python) поддерживают оба подхода. Как это
проявляется на практике?