- •Введение
- •Выбор среды программирования
- •1. Линейные программы: арифметические операторы, стандартные функции и ввод/вывод в текстовом режиме
- •1.1. Алгоритмы
- •1.2. Переменные и их типы
- •1.3. Операторы
- •1.4. Стандартные функции
- •1.5. Структура программы
- •1.6. Ввод/вывод в текстовом режиме
- •1.7. Задачи на составление арифметических выражений
- •Контрольная работа №1
- •Задание 1: Линейные программы, арифметические операторы
- •2. Логические выражения и условный оператор
- •2.1. Переменная логического типа
- •2.2. Операторы сравнения
- •2.3. Логические операторы
- •2.4. Задачи на составление логических выражений
- •2.5. Условный оператор
- •2.6. Оформление текста программ
- •Контрольная работа №2
- •Задание 2: Составление логических выражений, условный оператор
- •3. Цикл for
- •3.1. Цикл с параметром (for)
- •4.2. Прием накопления суммы
- •4.3. Прием накопления произведения
- •4.4. Комбинация обоих приемов
- •4.5. Цикл с downto
- •4.6. Операторы break и continue
- •Контрольная работа №3
- •Задание 3. Цикл for. Приемы накопления суммы и произведения.
- •4. Вычисления с помощью рекуррентных соотношений
- •4.1. Рекуррентные соотношения: основные понятия
- •4.2. Задачи на составление рекуррентных соотношений
- •4.3. Многомерные рекуррентные соотношения
- •Контрольная работа №4
- •Контрольная работа №5
- •Задание 4. Вычисления с помощью рекуррентных соотношений
- •5. Вложенные циклы
- •5.1. Вложенные циклы: теория
- •Контрольная работа №6
- •Задание 5. Вложенные циклы
- •6. Задачи на перебор вариантов
- •6.1. Перебор вариантов: теория
- •Задание 6. Задачи на перебор вариантов
- •7. Пепременные – флаги
- •7.1. Переменные – флаги: теория
- •Задание 7. Переменные-флаги
- •8. Переменная – счетчик событий
- •8.1. Переменные – счетчики
- •Задание 8. Переменная – счетчик событий
- •9. Циклы while и repeat
- •9.1. Циклы while и repeat
- •9.2. Зацикливание
- •9.3. Цикл, управляемый меткой
- •9.4. Вычисление номера шага
- •9.5. Вычисления с заданной точностью
- •Контрольная работа №7
- •Задание 9. Циклы while и repeat
- •10. Массивы
- •10.1. Структурные типы данных
- •10.2. Массивы
- •10.3. Вычислимость индексов
- •10.4. Примеры программ, работающих с массивами
- •10.5. Сортировка массивов
- •10.6. Хороший стиль при решении задач на массивы
- •Контрольная работа №8
- •Контрольная работа №9
- •Задание 10. Массивы
- •11. Процедуры и функции
- •11.1. Простейшая процедура
- •11.2. Локальные переменные
- •11.3. Параметры процедур
- •11.4. Параметры-значения и параметры-переменные
- •11.5. Программирование сверху вниз
- •11.6. Передача массивов в качестве параметров
- •11.7. Функции
- •11.8. Опережающее описание
- •11.9. Процедурные типы
- •11.10. Пример: Интегрирование методом трапеций
- •11.11. Правильное составление заголовков процедур и функций
- •11.12. Модули
- •11.13. Хороший стиль при написании процедур и функций
- •Контрольная работа №10
- •Задание 11: Процедуры и функции
- •12. Двумерные массивы
- •12.1. Двумерные массивы: теория
- •Задание 12: Двумерные массивы
- •13. Графика в Паскале
- •13.1. Введение
- •13.2. Инициализация графического режима
13. Графика в Паскале
13.1. Введение
Набор графических средств в Паскале чрезвычайно ограничен и не годится для освоения современной компьютерной графики. Однако, те элементарные операции, которые все же присутствуют, являются основой, на которой построены многие более сложные алгоритмы и, хотя бы поэтому, заслуживают изучения.
Для нас графические задачи будут важны еще и в связи с тем, что требуемый результат работы программы здесь легко понятен и нагляден. Поэтому они хорошо подходят для развития азов алгоритмического мышления.
13.2. Инициализация графического режима
Для того чтобы использовать в программе графические процедуры необходимо подключить стандартный модуль с графическими процедурами и функциями. В среде PascalABC он называется GraphABC:
uses
GraphABC;
Если вы используете PascalABC, то для перехода в графический режим этого достаточно.
Отличие среды Borland Pascal
В Borland Pascal соответствующий модуль называется просто Graph. Кроме того, для работы с графикой придется произвести ряд шаманских действий. А именно описать две целочисленные переменные (традиционно для них используют идентификаторы gd и gm):
gd, gm: integer;
В самой программе, перед тем как использовать графические процедуры, необходимо разместить такие строки:
gd:=DETECT;
InitGraph(gd, gm, '<путь к каталогу, где лежит файл egavga.bgi>');
Файл egavga.bgi обычно лежит в каталоге BGI, который в свою очередь находится в каталоге Паскаля. Например, путь может выглядеть так: C:\BP\BGI.
Нет смысла подробно разбирать, что происходит при выполнении перечисленных операторов и что это за загадочный файл egavga.bgi. Паскаль, как известно, рассчитан на операционную систему MS DOS. Современные операционные системы с самого начала работают в графическом режиме и каких-то особых предварительных действий для работы с графикой не требуется (либо они будут совершенно другими). Так что просто вставляйте в программы указанные строки и не забивайте голову лишней информацией.
Следует иметь в виду, что после перехода в графический режим (после выполнения процедуры InitGraph) перестают работать процедуры текстового ввода/вывода (Read, Write и т.д.) Так что если требуется что-то ввести с клавиатуры, делайте это до вызова InitGraph. Выйти из графического режима можно с помощью процедуры CloseGraph.
Таким образом, программа, работающая с графикой, будет выглядеть примерно следующим образом:
program GraphicsPrg; uses
Graph; var
gd, gm: integer;
<Описание прочих переменных> begin
<Работа в текстовом режиме. Можно пользоваться Read’ом и Write’ом> gd:=DETECT;
InitGraph(gd, gm, 'c:\BP\bgi');
<Работа в графическом режиме. Можно рисовать> CloseGraph; {Выход из графического режима} <Снова работаем в текстовом режиме>
end.