
- •Министерство образования и науки рф
- •Введение
- •Требования к оформлению отчета*
- •Задания к лабораторным работам.
- •Лабораторная работа 2. Методы численного интегрирования.
- •Указания и требования к выполнению работы.
- •Методы численного интегрирования
- •Лабораторная работа № 3. Расчет реактора смешения для сложной реакции с линейной кинетикой
- •Требования по выполнению работы:
- •Замечания по выполнению работы.
- •Реактор идеального смешения
- •Методы решения систем линейных алгебраических уравнений.
- •Метод Жордана-Гаусса (обращения матриц).
- •Итерационные методы.
- •Лабораторная работа № 4
- •4.1 Обработка экспериментальных данных по парожидкостному равновесию.
- •Обработка экспериментальных данных.
- •38 Метанол-ацетон-гептан
- •43 Метанол-ацетон-циклогексан
- •1. Интерполирование.
- •2. Метод наименьших квадратов
- •4.2. Расчет температуры кипения и точки росы трехкомпонентной смеси.
- •Методы уточнения корней уравнений с одним неизвестным.
- •Расчет производится по следующим
- •Лабораторная работа 5 Расчет реактора идеального вытеснения
- •Требования по выполнению работы:
- •Методы решения обыкновенных дифференциальных уравнений
- •Лабораторная работа № 6 Исследование функции, нахождение ее характерных точек и ее графическое изображение в трехмерных координатах.
- •Содержание
- •Приложение –1 – описание языка турбо паскаль версия № 7.0
- •1. Алфавит языка
- •1.1. Символы, используемые в идентификаторах
- •1.2. Разделители.
- •1.3.2. Знаки операций
- •1.3.3. Зарезервированные слова
- •1.4. Неиспользуемые символы
- •2. Структура программы
- •3. Типы данных
- •3.1. Классификация типов данных
- •3.2. Простые типы данных
- •3.2.3. Символьный тип
- •3.2.4. Перечисляемый тип
- •3.2.6. Вещественные типы
- •4. Выражения
- •4.1. Переменные
- •4.2 .Константы.
- •4.2.1. Целые константы
- •4.2.4. Константные выражения
- •4.2.5. Типизированные константы
- •4.3. Стандартные функции
- •4.3.1. Арифметические функции
- •4.3.2. Функции преобразования типа
- •4.3.3. Функции для величин порядкового типа
- •4.4. Знаки операций
- •4.4.1. Арифметические операции
- •4.4.2. Логические операции
- •4.4.3. Операции с битами информации
- •4.4.4. Операции отношения
- •4.5. Круглые скобки
- •4.6. Порядок вычисления выражений
- •5. Операторы языка
- •5.1. Простые операторы
- •5.1.1. Оператор присваивания
- •5.1.2. Оператор безусловного перехода gото. Использование меток
- •5.1.3. Пустой оператор
- •5.2. Структурированные операторы
- •5.2.1. Составной оператор
- •5.2.2. Условный оператор if
- •5.2.3. Условный оператор саsе
- •5.2.4. Оператор цикла repeat
- •5.2.5. Оператор цикла while
- •5.2.6. Оператор цикла for
- •5.2.7. Использование стандартных процедур Break и Соntinue в операторах циклов repeat, while и for
- •6. Структурированные типы данных
- •6.1. Массив
- •6.2. Строка типа string
- •6.3. Аsciiz-строка
- •6.4. Запись
- •6.5. Множество
- •6.6. Файл
- •7 Динамические структуры — данных
- •7.1. Указатель
- •7.2. Работа с динамической памятью
- •7.3. Работа со структурами данных
- •8. Процедурные типы
- •9. Совместимость и преобразование типов данных
- •10 Процедуры и функции
- •10.1. Процедура
- •10.2. Функция
- •10.3. Формальные и фактические параметры
- •10.3.1 Параметры-значения
- •10.3.2. Параметры-переменные
- •10.3.3. Параметры-константы
- •10.3.4. Параметры без типа
- •10.3.5. Массивы и строки открытого типа
- •10.3.6. Параметры-процедуры и параметры-функции
- •10.4. Процедура еxit
- •10.5. Директивы подпрограмм
- •10.5.1. Директива forward
- •10.5.2. Директивы fаr и near
- •10.5.3. Директива ехтеrnal
- •10.5.4. Директива аssembler
- •Пример. Функция, определяющая максимальное из двух чисел
- •10.5.5. Директива inline
- •10.5.6. Директива interrupt
- •10.6. Рекурсивные процедуры и функции
- •11 Организация ввода-вывода
- •11.1. Стандартные процедуры и функции для всех файлов
- •Функции
- •11.2. Стандартные процедуры и функции для текстовых файлов
- •11.3. Стандартные процедуры и функции для типизированных файлов
- •Осуществляется настройка на элемент файла, с которым связана файловая переменная f. Элемент файла определяется номером №, причем нумерация элементов начинается с нуля.
- •11.4. Стандартные процедуры и функции для файлов без типа
- •11.5. Внешние устройства в качестве файлов
- •12 Объектно-ориентированное программирование в turbo pascal 7.0
- •12.1. Пример использования ооп
- •12.2. Понятие объекта
- •12.2.2. Наследование
- •12.2.3. Полиморфизм
- •12.3. Виртуальные методы
- •13 Модули
- •13.1. Заголовок модуля
- •13.2. Интерфейс модуля
- •13.3. Исполнительная часть модуля
- •13.4. Секция инициализации
- •13.5. Использование модуля в основной программе
- •13.6. Использование идентификаторов элементов модуля
- •14 Стандартные модули
- •14.1 Модуль System
- •Арифметические функции
- •Процедуры работы со строками
- •Функции работы со строками
- •Функции управления вводом-выводом
- •Процедуры управления вводом-выводом
- •Функции управления динамической памятью и адресные функции
- •Include Включение элементов множества
- •14.2. Модуль String
- •14.3. Модуль Сrt
- •C80 с080 Для совместимости с версией 3.0
- •14.4. Модуль Graph
- •14.4. Пример использования подпрограмм модуля Сrарh
12.1. Пример использования ооп
В связи с тем, что использование ООП применительно к небольшим программам неэффективно, возникает трудность иллюстрации тех или иных его положений. Тривиальные примеры могут создать впечатление искусственности ООП, его неэффективности, сложные примеры потребуют много усилий для уяснения принципов работы той или иной программы. В связи с этим решено лишь наметить пример сравнительно сложной программы [1] - экранного редактора символьной информации, на котором будут иллюстрироваться все моменты ООП. Т. к. такие редакторы довольно сложны, приведена только его часть, выполняющая небольшое количество функций. В ней совершенно не рассмотрен вопрос работы с внешними файлами, куда записывается набранная в редакторе информация, ограничено число обрабатываемых редактором клавиш. Далее будет сказано, как, используя принципы ООП, можно расширить его функции. Редактор предназначен только для режима дисплея, когда на экране размещается 25 строк по 80 символов в строке. Не следует рассматривать приведенную программу как высококачественный редактор - это учебный пример, и он не является лучшим. В частности; программа неудовлетворительна с точки зрения быстродействия. Более того, в некоторых случаях выбиралась далеко не оптимальная реализация с целью проиллюстрировать те или иные положения ОOП, без которых можно было бы и обойтись. Основная часть редактора оформлена в виде модуля, у которого можно было бы почти полностью не приводить исполнительную часть (implementation), что существенно уменьшило бы размеры примера. Эта часть приведена в [1]полностью лишь на тот случай, если читатель захочет проверить работу программы и правильность рассматриваемых положений непосредственно на ПЭВМ.
Особенностью этого редактора является то, что размер строка и число строк него практически не ограничены (фактически число символов в строке и число строк ограничено числом 65535, а также имеющейся оперативной' памятью). Весь текст, набранный в редакторе, представляет собой последовательность строк, а т. к. размер строки может быть произвольным, целесообразно строки набирать из отдельных элементов (вероятно, лучше всего размером в строку экрана), добавляя эти элементы по мере необходимости. Следовательно, набранный текст должен иметь довольно, сложную структуру строк, которые, в свою очередь, состоят из отдельных элементов. При этом можно считать, что сами строки являются элементами всего текста. Нажатие той или иной клавший приводит к изменению текста (добавлению и удалению символов, формированию новых строк, удалению старых и т. д.). Таким образом, программа предусматривает некоторую иерархию объектов, находящихся во взаимной связи. Эта иерархия представлена на рис. 2.
Связь
элементов
Элемент
строки
Структура
Строка
Текст
Операция
Изображаемые
Клавиши Клавиша Клавиша
--------
символы направления Еnter ВасkSpасе
Рис. 2. Иерархия объектов программы-редактора
Она фактически состоит из двух групп объектов: объектов, связанных с формированием текста, и объектов, связанных c обработкой нажатия тех или иных клавиш. Каждая из этих групп начинается одним исходным объектом (предком всех последующих). В качестве таких объектов выступают объекты “Связь элементов” - для первой группы - и “Операция” - для второй группы.
Объект "Связь элементов" включает в себя связь определенного элемента с предыдущим и последующим элементами. Объект "Структура" дополнительно определяет для каждого объекта его начальный и конечный элемент (для строки - начальный и конечный элементы строки, для текста - начальная и конечная строки). Объект "Элемент строки" включает в себя строку символов, набранных при работе с редактором, или пробелов, если символы еще не набраны. Объект "Строка" объединяет в себе свойства структуры и элемента строки и предоставляет возможность работать со строкой (совокупностью элементов строки) как единым целым. Объект "Текст" позволяет работать с совокупностью всех строк. Здесь же определяются общие параметры текста, как, например, координаты курсора в тексте, координаты начала выводимой на экран информации и т. д.
Вторая группа начинается объектом "Операция", включающим в себя общие действия по обработке нажатия любой клавиши (или комбинации клавиш). Далее идут объекты (группы объектов) обработки кодов тех или иных клавиш. В данном примере рассмотрены лишь объекты обработки кодов клавиш, формирующих изображаемые символы (символы с кодом больше 31), клавиш направления (Up, Dn, Left, Right), клавиши формирования новой строки (Еnter) и клавиши удаления символа или объединения строк (ВасkSрасе). Количество объектов обработки кодов клавиш можно в принципе увеличивать. В этой иерархии предшествующие объекты "порождают" последующие и передают им часть своих свойств. Например, объект "Структура" включает в себя свойства объекта "Связь элементов", т. к. несет информацию и о связи конкретных элементов структуры с предыдущими и последующими элементами.