
- •Любой алгоритм, какой бы он сложный не был, содержит лишь три основных, или, иначе говоря, базовых структуры. Этими базовыми структурами являютия:
- •Любой алгоритм, какой бы он сложный не был, содержит лишь три основных, или, иначе говоря, базовых структуры. Этими базовыми структурами являютия:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Строковый тип данных
- •Описание констант
- •Операция присваивания
- •Приоритет операций
- •Оператор присваивания
- •Совместимость и преобразование типов
- •Элементарный ввод-вывод
- •Лекция 5 Выражения
- •Математические операции
- •Логические операции
- •Операции отношения
- •Приоритет операций
- •Основные математические функции
- •Уменьшает значение числа X на y. Если число y не указано, то уменьшение происходит на 1. Циклы
- •Арифметические циклы
- •Итерационные циклы с предусловием
- •Итерационные циклы с постусловием
- •Операторы завершения цикла
- •Операторы ветвления и цикла Условный оператор if
- •Оператор множественного выбора Case
- •Операторы цикла
- •Операторы ветвления и цикла
- •Условный оператор if
- •Оператор множественного выбора Case
- •Операторы цикла
- •Лекция 7. Подпрограммы: процедуры и функции
- •Пример 27
- •Обмен данными
- •4.2. Множества
- •4.2.1. Объявление типа множества
- •4.2.2. Операции над множествами
- •4.2.3. Пример использования множества
- •Пример 33
- •4.3. Строки
- •4.3.1. Объявление типа String
- •4.3.2. Операции над строковыми переменными
- •4.3.3. Встроенные процедуры и функции обработки строк
- •Пример 34
- •4.1. Матрица
- •4.1.1. Ввод-вывод элементов матрицы
- •4.1.2. Определение индексов элементов матрицы
- •Записи Объявление типа записи
- •Вложенные записи
- •Массивы записей
- •Пример обработки массива записей
- •Определение и особенности файлов
- •Доступ к компонентам файла
- •Текстовый файл
- •Чтение из текстового файла
- •Запись в текстовый файл
- •Файлы в Тубо Паскаль
- •Файловые процедуры и функции
- •Текстовые файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Графика Турбо Паскаля
- •Записи Объявление типа записи
- •Вложенные записи
- •Массивы записей
- •Пример обработки массива записей
- •Статические и динамические памяти переменные
- •Объявление указателей
- •Выделение и освобождение динамической памяти
- •Операции с указателем
- •Пример 41
- •Связанные списки
- •Понятие бинарные деревья. Операции над бинарными деревьями
- •Применение бинарных деревьев
- •Сравнение рекурсии и итерации
- •Пример 51
- •Реализация объектно-ориентированного подхода в турбо-паскале
- •Алгоритмическая и объектная декомпозиция
- •Объектный тип в Турбо-Паскале
- •Способы наследования и переопределения
- •Виртуальные методы
- •Модуль c r t
- •Модуль g r a p h
Алгоритмическая и объектная декомпозиция
Известно, что при проектировании сложной системы ее необходимо представить совокупностью небольших подсистем, каждая из которых может разрабатываться независимо от других. Всякое систематическое решение задачи, какой бы сложной или простой она не была, основано на принципе разбиения на уровни абстракции. Мы привыкли связывать такое разбиение с алгоритмической декомпозицией, в ходе которой осуществляется структурное проектирование по методу "сверху-вниз" и алгоритм задачи разбивается на отдельные модули. Каждый модуль системы реализует один из алгоритмов общей задачи. Принципы алгоритмической декомпозиции поддерживаются языком Турбо-Паскаль, являющимся хорошим инструментом структурного программирования. Наряду с декомпозицией по алгоритмам существует декомпозиция по объектам или объектно-ориентированная декомпозиция, когда в качестве критерия выбирается принадлежность элементов к различным абстракциям, т.е. идентифицируются объекты различного типа. Иллюстрацией объекта может служить запись, список полей которой объединяет не только данные, но также методы обработки этих данных. Турбо-Паскаль позволяет представить задачу как совокупность взаимодействующих объектов.
Какую декомпозицию использовать при разработке сложной системы?
Г. Буч в [1] считает: "... и по алгоритмам, и по объектам". Опыт показывает, что сначала полезнее применить объектно-ориентированный подход, который позволит лучше понять структуру программной системы. Кроме того существует возможность использовать общие методы для различных объектов и, следовательно, создавать системы меньшего размера. Алгоритмическая декомпозиция проиллюстрирует связи между различными функциональными элементами системы. Объектно-ориентированное программирование (ООП) определяется как методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса. Можно построить новые объекты, наследующие свойства (данные и методы их обработки) предшественника, т.е. создать иерархию объектов. Кроме того один и тот же метод (процедура или функция) может быть использован различными объектами, связанными наследованием. Это свойство объектов называют полиморфизмом. Таким образом объектно-ориентированное программирование базируется на трех основных понятиях:
- объединение данных и методов в объекте, - наследование, - полиморфизм.
Многие специалисты считают, что объектно-ориентированное программирование, появившееся в начале 80-х годов, будет занимать такое же место, которое занимало структурное программирование в 1970-х годах, поскольку при разработке сложных программ возможно расширять область их применения, не переделывая программу, а добавляя в нее новые уровни иерархии. Не все языки программирования являются объектно-ориентированными. Известны три условия принадлежности языка к группе объектно-ориентированных языков:
- имеется поддержка объектов в виде абстракций данных. - объекты относятся к соответствующим типам (классам). - типы (классы) могут наследовать атрибуты от ранее определенных типов (классов) – родителей; под атрибутами понимают структуру данных и их поведение, т.е. методы обработки.
Впервые понятия классов и объектов были введены в языке Simula 67. В дальнейшем идеи ООП нашли реализацию в следующих языках: Smalltalk, Object Pascal, C++, CLOS, Ada. Остановимся на новых возможностях языка Турбо-Паскаль, появившихся впервые в версии 5.5, в которую был введен новый тип - объект. Ограничимся изложением средств реализации основных концепций объектно-ориентированного подхода и проиллюстрируем его конкретной программой.