- •Курс лекций Язык программирования Turbo Pascal
- •Тема 1 «Языки программирования»
- •Тема 2 «Основные понятия языка»
- •2.1 Алфавит языка
- •2.2 Основные определения языка
- •2.3 Служебные слова
- •2.4 Стандартные имена
- •2.5 Идентификатор
- •2.5 Элементы данных
- •Тема 3 «Общая структура программы на языке Turbo Pascal»
- •3.1 Общая структура программы на Паскале.
- •3.2 Некоторые правила оформления программ
- •Тема 4 «Типы данных, выражения»
- •4.1. Типы данных
- •4.2 Целочисленные типы данных
- •4.3 Вещественные типы данных
- •4.4 Символьный тип данных
- •4.5 Булевский тип (Логический) данных
- •4.6 Перечисляемый тип.
- •4.7 Интервальный тип.
- •4.8 Выражения.
- •1. Умножение, деление;
- •3. Сложение, вычитание.
- •1) Арифметические операции;
- •2) Операции отношений;
- •3) Логические операции.
- •4.9 Объявление констант
- •4.10 Объявление переменных
- •Тема 5 «Операторы для записи линейных процессов»
- •5.1 Оператор присваивания
- •5.2 Оператор ввода числовых данных
- •5.3 Оператор вывода числовых данных
- •5.4 Вывод числовых данных с форматом и без формата
- •1. Вывод данных без формата.
- •2. Вывод данных с форматом.
- •Контрольные вопросы и задания
- •Тема 6 «Разветвляющиеся вычислительные процессы»
- •6.1 Типы разветвляющихся алгоритмов
- •6.2 Оператор выбора case
- •Тема 7 «Операторы цикла»
- •7.1. Типы циклических процессов
- •7.2 Цикл с известным числом повторений for
- •Оператор повтора for.
- •Домашнее задание:
- •7.3 Итерационные циклы
- •7.4 Оператор цикла с предварительным условием
- •7.5 Оператор цикла с последующим условием Repeat
- •Домашнее задание:
- •8.1 Модуль crt. (Процедуры и функции управления экраном)
- •8.2 Константы цветов.
- •Процедуры управления цветом.
- •Тема № 9: «Структурированные типы данных»
- •9.1. Массивы
- •9.2. Записи
- •9.2.1. Оператор присоединения
- •9.2.2. Записи с вариантами.
- •9.3. Множества
- •9.4. Строки
- •9.4.1. Основные операции
- •9.4.2. Доступ к элементам строковых данных
- •9.4.3. Пустой стринг
- •9.4.4. Функции преобразования
- •9.4.5. Стандартные процедуры и функции
- •Тема № 10: Работа с файлами
- •10.1. Доступ к файлам
- •10.1.1. Имена файлов
- •Инициация файла
- •10.2.Процедуры и функции для работы с файлами
- •10. 3. Текстовые файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Тема № 11: «Процедуры и функции»
- •11.1. Процедуры
- •11.2. Функции
- •Тема №12: Указатели и динамическая память.
- •12.1. Выделение и освобождение динамической памяти.
- •Тема № 13: Модули.
- •13.1.Компиляция модулей.
- •13.2. Стандартные модули.
- •13.2.1.Модуль crt.
- •13.2.2. Модуль Graph
- •13.2.3. Модуль Overlay
- •Задания для самостоятельной работы по теме «линейные алгоритмы»
- •Задания для самостоятельной работы по теме «разветвляющиеся алгоритмы»
- •Задания для самостоятельной работы по теме «циклические алгоритмы»
- •Задания для самостоятельной работы «векторы»
- •Задания для самостоятельной работы «строки»
- •Задания для самостоятельной работы «процедуры и функции»
- •Задания для самостоятельной работы «записи»
- •Задания для самостоятельной работы по теме «множества»
- •Задания для самостоятельной работы по теме «файлы»
- •Задания для самостоятельной работы по теме «модуль graph»
- •Задания для самостоятельной работы по теме «модули, определяемые пользователем»
13.2.3. Модуль Overlay
Он необходим при разработке больших программ с перекрытиями. Максимальный размер модуля не может превышать 64 кб, однако количество модулей не ограничено, что дает возможность разрабатывать очень крупные программы (до 580 кб оперативной памяти). И все же в некоторых случаях и этот объем может оказаться недостаточным. С помощью оверлея можно создавать программы практически неограниченной длины (имеется в виду длина кода программы; длина сегмента данных и размер программного стека не могут превышать 64 кб независимо от структуры программы).
Оверлей – это такой способ использования оперативной памяти, при котором в один и тот же участок памяти (оверлейный буфер) попеременно по мере надобности загружаются различные оверлейные модули. При этом все оверлейные модули хранятся на диске, а в оперативной памяти в каждый момент времени находится лишь один активный модуль и, возможно, несколько неактивных. При исполнении оверлейной программы в память загружается главная часть и один из модулей, например, модуль А. Если в процессе исполнения программы встретится обращение к модулю В, то с диска в оверлейный модуль будет загружен этот модуль (модуль А при этом частично разрушается), после чего программа продолжит свою работу.
Таким образом объем оперативной памяти, занимаемый оверлейной программой, определяется длиной ее главной части и наибольшего из перекрывающихся модулей. Однако оверлейная программа обладает меньшей скоростью работы, т.к. на каждую загрузку оверлейного модуля с диска в оверлейный буфер требуется дополнительное время.
Алгоритм создания оверлейных программ:
Выделить главную часть программы и разбить оставшуюся часть на несколько модулей.
В главной части программы указать с помощью директив компилятора {$O <имя>} те модули, которые будут оверлейными.
Program Over;
Uses DOS, Overlay, UnitA, UnitB;
{$O UnitA}
{$O UnitB}
{$O DOS}
Прим: из всех стандартных модулей только модуль DOS может быть оверлейным.
Осуществить вызов процедуры инициализации оверлея OVRINIT перед первым обращением к оверлейному модулю.
В начале главной программы и каждого оверлейного модуля поместить директивы компилятора {$O+} {$F+} (разрешить создание оверлейной структуры и использовать дальнюю модель вызова), после чего откомпилировать программу на диск (Destination Disk).
Ниже приведены задания, решение которых позволит вам овладеть основными приемами работы с Турбо Паскалем.
Задания для самостоятельной работы по теме «линейные алгоритмы»
Составить программы, используя для оформления модуль CRT. На экране отобразить два окна: в одном произвести ввод исходных данных, в другом – вывести результаты. Ввод и вывод снабдить пояснениями.
Варианты заданий :
Прямоугольный треугольник задан гипотенузой и одним из катетов. Найти второй катет и площадь треугольника.
Треугольник задан величинами своих углов (в градусах) и радиусом описанной окружности. Найти длины сторон треугольника.
Прямоугольный треугольник задан двумя катетами. Вычислить радиусы вписанной и описанной окружности.
Вычислить длину окружности, площадь круга и объем шара одного и того же заданного радиуса.
Вычислить периметр и площадь прямоугольного треугольника по заданным катетам треугольника.
Вычислить периметр и площадь треугольника по заданным координатам трех его вершин.
Треугольник задан длинами своих сторон. Найти длины его высот.
Треугольник задан длинами своих сторон. Найти длины его медиан.
Треугольник задан длинами своих сторон. Найти длины его биссектрис.
Треугольник задан длинами своих сторон. Найти радиусы описанной и вписанной окружностей треугольника.
По длинам двух сторон треугольника и углу (в градусах) между ними найти длину третьей стороны и площадь этого треугольника.
Найти сумму цифр заданного трехзначного числа.
Определить число, получаемое выписыванием в обратном порядке цифр трехзначного числа.
Идет К-ая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту. Например, если К=13231, то прошло 3 часа и 40 минут.
Определить угол в градусах между положением часовой стрелки в начале суток и ее положением в h часов, m минут и s секунд (0 h 11; 0 m, s 59).
