- •1 Введение в теорию алгоритмизации 6
- •Введение
- •1 Введение в теорию алгоритмизации
- •1.1 Понятие алгоритма
- •1.2 Свойства алгоритмов
- •1.3 Формы представления алгоритма
- •1.4 Основные алгоритмические структуры
- •1.5 Алгоритмический язык
- •2.3 Инструменты программирования Microsoft Visual Studio
- •2.5 Консольные и оконные приложения
- •2.6 Компилирование программы
- •3.2 Простые типы данных
- •3.3 Операции над числовыми данными
- •3.4 Объявление переменных
- •3.7 Директива #define
- •3.9 Библиотека математических функций
- •4 Условный оператор
- •4.1 Условный оператор if
- •4.2 Составной оператор
- •4.3 Вложенный оператор
- •4.4 Оператор выбора switch
- •5 Операторы циклов
- •5.1 Определение цикла
- •5.2 Оператор цикла for
- •5.3 Оператор цикла while
- •5.4 Оператор цикла do while
- •5.5 Табулирование функций
- •5.6 Вычисление конечных сумм и произведений
- •5.7 Управляющие конструкции break, continue, return, goto
- •6 Массивы
- •6.1 Понятие и описание массивов
- •6.2 Одномерные массивы
- •6.3 Двумерные массивы (матрицы)
- •7 Символьные массивы
- •7.1 Описание символьного массива
- •7.2 Стандартные библиотечные функции над строками
- •8 Указатели и операции над указателями
- •8.1 Описание указателей
- •8.2 Операции над указателями
- •8.3 Сравнение указателей
- •8.4 Связь между массивом и указателем
- •9 Функции
- •9.1 Модульное программирование
- •9.2 Объявление функции
- •9.3 Формальные и фактические параметры функции
- •9.4 Локальные и глобальные переменные
- •10 Элементы объектно-ориентированного программирования
- •10.1 Инструментальное программное обеспечение
- •10.2 Технологии программирования
- •10.3 Создание класса
- •11 Полиморфизм
- •12 Этапы разработки программного обеспечения
- •12.1 Идея и цель объектно-ориентированного программирования
- •12.2 Основные понятия объектно-ориентированного программирования
- •12.3 Методы тестирования программных продуктов
- •Список литературы
10.2 Технологии программирования
Технологии программирования – это выбор метода и средств создания программ.
Текст программы на алгоритмическом языке программирования представляет собой линейную последовательность операторов присваивания, условных операторов и циклов. Программы часто содержали запутанные последовательности операторов, в которых было трудно уловить нить логических рассуждений. Таким способом можно решать не очень сложные задачи (≈ 100 строк кода). Все это привело к развитию структурного программирования.
Технология структурного программирования – технология формирования программ из фиксированного множества подпрограмм с использованием базовых конструкций (линейной, ветвления и цикла) исключая операторы безусловного перехода. Отличается от неструктурированного ясностью, простотой тестирования, отладки и легкостью модификации программ.
Цели структурного программирования – улучшить читабельность программы, повысить эффективность и надежность программы.
Неотъемлемой частью создания хорошо структурированных программ является принцип декомпозиции (декомпозиции крупных задач на меньшие по сложности и размеру задачи) и технология нисходящего программирования (или программирования сверху вниз) с пошаговой детализацией: решаемая задача разбивается на несколько подзадач (первая детализация). Далее каждая из подзадач разбивается на подзадачи, принадлежащие второму уровню детализации и т.д. Программист завершает процесс нисходящей разработки с пошаговой детализацией, когда алгоритм настолько детализирован, чтобы его можно было бы преобразовать в программу. Причем, главная программа будет представлять собой совокупность подпрограмм. Комбинируя эти подпрограммы, удается формировать итоговый алгоритм уже не из простых операторов, а из законченных блоков кода, имеющих определенную смысловую нагрузку.
Следующим шагом стало появление модульного подхода (70-е годы 20 в.), когда отдельные части программ стали объединяться в отдельные самостоятельные структуры – модули, которые могли быть включены в любую другую программу. Модули, экспорт и импорт имен, инкапсуляция считались обязательными элементами языков программирования будущего. Модульное программирование было такой – же модой в области создания языков программирования, как и структурное программирование десятилетием раньше (его влияния не избежал и Паскаль) или объектно-ориентированное программирование десятилетие спустя.
Технология восходящего программирования (или программирования снизу вверх) – технология конструирования программ из уже имеющегося набора отдельных процедур и функций, подстраиваясь под которые, решается задача.
Важным этапом в развитии концепции структурного программирования явилось осознание необходимости структуризации данных. Появление таких структур, как записи, положило начало использованию в языках программирования механизмов абстрагирования типов (язык PL1), когда тип определялся как множество объектов + множество операций над ними. Это в свою очередь привело к появлению модульного программирования и инкапсуляции. Инкапсуляция позволяет рассматривать модуль как набор программных объектов, помещенных в капсулу. Такая оболочка может быть «непрозрачной», делающей невозможным использование объектов, определенных в модуле, вне его, «полупрозрачной», - в этом случае вне модуля известны только общие свойства объектов, и полностью «прозрачной», когда за пределами модуля можно использовать все свойства его объектов. В дальнейшем эти технологии привели к появлению объектно-ориентированного программирования.
В результате многолетних исследований был разработан и опробован так называемый объектно-ориентированный подход (ООП) (в 1967 году создан первый язык, основанный на данном подходе – Simula-67, в 1983 году - язык C++). Главная причина возникновения ООП связана с поиском простых путей для создания сложных программ. ООП наследует лучшие черты структурного программирования и комбинирует их с некоторыми новыми подходами.
