- •Аннотация
- •Содержание
- •Интегрированная среда программирования Turbo Pascal 7.0
- •Основные понятия языка Turbo Pascal 7.0
- •Алфавит языка
- •Структура программы
- •Раздел объявления меток
- •Раздел объявления констант
- •Строковые и символьные константы
- •Простые типы данных
- •Выражения Арифметические выражения
- •Математические функции
- •Условные выражения и операции отношения
- •Логические выражения и операции
- •Процедуры ввода – вывода информации Процедуры ввода информации Read, ReadLn
- •Процедуры записи Write, WriteLn
- •Форматы процедуры вывода Write
- •Простые операторы
- •Оператор присваивания
- •Примеры решения задач
- •Оператор безусловного перехода Goto
- •Структурированные операторы
- •Составной оператор
- •Условный оператор If
- •Примеры решения задач
- •Условный оператор Case
- •Примеры решения задач
- •Оператор цикла For
- •Особенности выполнения оператора For
- •Примеры решения задач
- •Оператор цикла Repeat…Until
- •Особенности выполнения оператора Repeat
- •Примеры решения задач
- •Оператор повтора While
- •Особенности выполнения оператора While
- •Примеры решения задач
- •Вложенные циклы
- •Массивы
- •Одномерные массивы Основные понятия
- •Описание массива
- •Заполнение массива
- •6.1.4 Примеры решения задач
- •1. Алгоритмы поиска и присвоения значений элементам массива
- •2. Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
- •3. Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса
- •6.2 Двумерные массивы
- •6.2.1 Основные понятия
- •6.2.2 Описание массива
- •6.1.3 Заполнение и вывод элементов двумерного массива
- •6.1.4 Примеры решения задач
- •1. Алгоритмы действий над элементами двумерного массива
- •2 Алгоритмы формирования одномерного массива
- •3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
- •7. Множества
- •7. 1 Операции над множествами
- •7.2 Примеры решения задач
- •8. Строки
- •8.1 Строковые выражения
- •8.2 Стандартные процедуры и функции для обработки строковых данных
- •Обнаруживает первое появление в строке St2 подстроки St1. Результат равен номеру той позиции, где находится первый символ подстроки St1.
- •8.3 Примеры решения задач
- •1.Задачи на подсчет символов.
- •2. Задачи на замену символов.
- •3. Задачи на удаление символов.
- •4. Задачи на вставку символов.
- •9. Процедуры и функции, определенные пользователем
- •9.1 Процедуры пользователя
- •1 Вариант
- •2 Вариант
- •9.2 Функции пользователя Формат описания функции:
- •9.3 Параметры
- •9.3.1 Параметры – значения
- •9.3.2 Параметры - переменные
- •10 Модуль crt. Процедуры и функции модуля crt
- •11 Модуль Graph
- •11.1 Классификация типов драйверов и видеорежимов
- •11.2 Инициализация графики
- •11.3 Переключение между текстовым и графическим режимами
- •11.4 Система координат
- •Отображение строк
- •11.5 Управление текущим указателем
- •11.6 Отображение точки на экране
- •11.7 Определение параметров пикселов
- •11.8 Отображение отрезков прямых линий
- •11.9 Вычерчивание линий различных стилей
- •11.10 Построение прямоугольников
- •11.10.1 Построение прямоугольника на плоскости
- •11.10.2 Построение закрашенного прямоугольника
- •11.11 Установка стиля заполнения
- •11.13 Построение заполненных областей изображения
- •11.13.1 Построение заполненного сектора эллипса
- •11.13.2 Построение заполненного эллипса
- •11.13.3 Построение заполненных сложных геометрических фигур
- •Список литературы
11.6 Отображение точки на экране
Какие бы изображения ни выводились на экран, все они построены из точек. Для отображения точки (пиксела) на экране используется процедура
PutPixel(X,Y,Color)
где X и Y – координаты точки на экране, Color – ее цвет.
11.7 Определение параметров пикселов
Функция
GetPixel(X,Y)
определяет номер цвета пиксела с координатами X,Y.
Пример1. Заполнение экрана множеством точек различного цвета.
USES Graph;
VAR
Gd,Gm:Integer;
Color:Word;
X,Y:Word;
Begin
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
End;
Color:=0;
Randomize;
Repeat
{звуковой сигнал, если цвет пикселов совпадает}
If Color=GetPixel(X,Y) Then Write(#7);
{случайным образом выбранные координаты пиксела}
X:=Random(GetMaxX);
Y:=Random(GetMaxY);
PutPixel(X,Y,Color); {вывод пиксела}
Inc(Color); {изменение цвета}
{проверка, не превышает ли значение цвета максимально допустимого}
If Color=GetMaxColor Ten Color:=0;
Until KeyPressed; {пока не нажата клавиша}
CloseGraph;
End.
Пример 2. Вывести N точек в пределах окружности радиуса R.
USES CRT,GRAPH;
VAR
GD,GM:integer;
A:Real;
R:Integer;
X,Y:integer;
Color:Word;
BEGIN
GD:=detect;
InitGraph(GD,GM,'c:\tp7\bgi');
IF GraphResult<>0 THEN HALT(1);
ClearDevice;
SetBkColor(1);
Color:=1;
Repeat
A:=Random(628)/100; {Угол отклонения в радианах}
R:=Random(80); {Радиус}
Y:=Trunc(R*Sin(A));
X:=Trunc(R*Cos(A));
PutPixel(GetMaxX Div 2 +X,GetMaxY Div 2 + Y,Color);
Inc(Color);
If Color=16 Then Color:=1;
Until KeyPressed;
CloseGraph;
END.
11.8 Отображение отрезков прямых линий
Процедура вывода отрезка прямой на экран
Line(X1,Y1,X2,Y2:Integer);
X1,Y1 - координаты начальной точки линии
X2,Y2 - координаты конечной точки линии
Процедура
LineTo(X,Y)
строит отрезок из текущего положения указателя до точки с координатами X,Y.
Процедура
LineRel(dX,dY)
строит отрезок от точки текущего положения указателя до точки (CPX+dX,CPY+dY), где CPX и CPY – текущие координаты CP.
Пример. Заполнение экрана множеством отрезков различных цветов.
USES Graph,Crt;
VAR
Gd,Gm:Integer;
Begin
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
Randomize;
Repeat
SetColor(Random(15)); {случайный выбор цвета}
{построение линий с использованием различных процедур}
Line(Random(GetMaxX),Random(GetMaxY),GetX,GetY);
LineTo(Random(GetMaxX),Random(GetMaxY));
LineRel(50,-50)
Until KeyPressed;
CloseGraph;
End.
11.9 Вычерчивание линий различных стилей
Возможно вычерчивать линии самых различных стилей
SetLineStyle(LineStyle,Pattern,Thickness)
LineStyle – задает тип строки
Pattern – шаблон (если параметр LineStyle не равен 4, то Pattern не используется и задается равным нулю)
Thickness – задает толщину линии.
-
Значение
Характеристики линий
0
Сплошная
1
Пунктирная
2
Штрих-пунктирная
3
Штриховая
4
Заданная пользователем
1
Нормальной толщины
3
Большой толщины
Например. Задание стиля линии и построение отрезка.
USES Graph,Crt;
VAR
Gd,Gm:Integer;
Ch:Char;
Begin
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
End;
Randomize;
Repeat
ClearDevice; {чистка экрана}
{определение типа линии}
SetLineStyle(3,0,1);
Line(1,1,GetMaxX,GetMaxY);
Ch:=ReadKey;
Until Ch=#27;
CloseGraph;
End.