
- •Основные понятия языка программирования паскаль
- •Структурное программирование
- •Основные символы языка
- •Элементы языка
- •Интегрированная среда turbo pascal
- •Структура программы в turbo pascal
- •Определение типов
- •Операторы в программе
- •Операторные скобки
- •Операторы ввода
- •Оператор присваивания
- •Оператор условного перехода
- •Оперетор безусловного перехода
- •Организация циклов
- •Использование операторов условного и безусловного перехода
- •Цикл с параметром
- •Цикл с предусловием - цикл while
- •Цикл с постусловием - цикл repeat
- •Оператор выбора варианта
- •Концепция типов данных
- •Стандартные простые типы Целый тип
- •Операции над данными целого типа:
- •Действительный тип
- •Операции над данными действительного типа:
- •Логический тип
- •Символьный тип
- •Символьные строковые константы
- •Нестандартные простые типы (определяемые пользователем)
- •Перечисляемый тип
- •Ограниченный тип (диапазон, интервал)
- •Процедуры и функции
- •Описание процедур
- •Стандартные процедуры
- •Описание функций
- •Стандартные функции
- •Итерация и рекурсия
- •Побочный эффект рекурсии
- •Предварительное описание (ссылки вперед)
- •Регулярные типы Одномерный массив
- •Алгоритмы сортировки массивов
- •1. Метод пузырька (метод обменной сортировки с выбором)
- •Многомерные массивы
- •Упакованные массивы
- •Множественные типы
- •Свойства множеств
- •Операции над множествами
- •Комбинированные типы Описание записей и действия с ними
- •Оператор присоединения.
- •Записи с вариантами
- •Типизированная константа
- •Простая типизированная константа
- •Структурированная (сложная) типизированная константа Типизированная константа массива
- •Типизированная константа записи
- •Типизированная константа множества.
- •Преобразование типов
- •Неявные преобразования типов
- •Использование стандартных функций для преобразования
- •Явные преобразования типов
- •Эквивалентность типов
- •Совместимость типов
- •Файловые типы
- •Определение файлового типа
- •Структура файла
- •Имя файла
- •Описание файлового типа
- •Файловая переменная
- •Операции над файлами
- •Типизированные файлы
- •Ссылочные типы (указатели) Статические и динамические переменные
- •Ссылочные типы (указатели)
- •Удаление узла из стека:
- •Человек
- •Человек
- •Вставка
- •Динамические переменные
- •Процедуры создания и удаления динамических переменных
- •Динамические списковые структуры
- •Однонаправленные списки
- •Двунаправленные списки
- •Очереди
- •Деревья
- •Модульная система turbo pascal
- •Uses mod 1, mod 2, mod 3; (подключение трех модулей) Общая структура модуля
- •Использование идентификаторов модуля
- •Использование модуля в программе
- •Компиляция модулей
- •Системный файл turbo.Tpl
- •Стандартные модули
- •Модуль crt
- •Модуль dos
- •Модуль printer
- •Модуль overlay
- •Модуль string
- •Процедуры модуля graph
- •Графические процедуры
- •Координаты. Окна. Страницы
- •Линии и точки
- •Многоугольники
- •Дуги,окружности, эллипсы
Линии и точки
PutPixel (x,y,цвет);-закрашивает пиксел.
GetPixel(x,y)-дает цвет пикселя.
Line(X1,Y1,X2,Y2);Линия.Цвет-SetColor,
Параметры линии-SetLineSyle;
Режим построения-SetWriteMode
LineRel(dx,dy);проводит линию текущего цвета из текущей позиции в точку,сдвинутую на dx,dy.
Цвет-SetColor,
Параметры линии-SetLineStyle,
Режим-Set WriteMode
Lineto(X,Y);-линия текущего цвета из текущей позиции в точку (X,Y),остальное-то же.
Пример. Заполнить экран случайными линиями.
Program Demo;
Usec Crt,Graph;
Var d,r: integer;
Begin d:=detect;
InitGraph(d,r,'..\BGI ')';
SetGraph Mode(0); {установить цветн.режим}
repeat SetColor(random(4));
Line( Random (GetMax X)),
Random(GetMaxY),
Random(GetMaxX),
Random(GetMaxY))
until Keypressed;
CloseGraph
End.
SetLineStyle(вид,образец,толщина);
Вид: 0-сплошная Solidln
1-точечная Dottedln
2-штрихпунктирнаяCenterln
3-пунктирнаяDashedln
4 - UserButln (определенная пользователем), тогда учитывается параметр "образец"
Толщина = 1 - один пиксел,
3 - три пиксела.
SetWriteMode(способ);-способ взаимодействия новаых линий с уже имеющимися.
Способ = 0 –накладываются?
1-инвертируются точки пересечения,так что вид экрана не меняется от порядка вывода линий.
Многоугольники
Rectangle(X1,Y1,X2,Y2)-контур прямоугольника текущего цвета.
Пример. Program rect_3;
Uses Graph,Crt;
Var d,r,x1,y1,x2,y2: integer;
Begin d:=detect;
Init Graph(d,r,’..\BGI’);
SetGraphMode(0);{установить цветной режим-вид "замена"}
Repeat
SetColor(random(white));
SetLineStyle(random(4),0,random(2));
X1:=random(getMaxX);
Y1:=random(GetMaxY);
X2:=X1+random(getMaxX);
Y2:=Y1+random(GetMaxY);
If X2>GetMaxXthenX2:=GetMaxX;
IF y2>GetMaxY then Y2:=Get MaxY;
Rectangle(X1,Y1,X2,Y2);
Delay(100)
Until KeyPressed;
Close Graph
End.
Bar(X1,Y1,X2,Y2);прямоугольник. Цвет-SetFillStyle илиSet Patterne.
Bar3D(X1,Y1,X2,Y2, глубина, верхняя грань) - вычерчивает трехмерное изображение паралеллепипеда и закрашивает его переднюю грань. Если верхняя грань=False,то она не рисуется (например,если параллелепипеды поставлены друг на друга).
В модуле определены константы: TopOn=true
TopOff=false
Это используется для построения диаграмм. Параллелепипед "прозрачный".
DrawPoly(n,координаты) - произвольная ломанная линия, заданная координатами точек излома, n-колличество точек излома,включая обе крайние.
ИЛИ:
DrawPoly(n,X1,Y1,X2,Y2,…Xn,Yn,X1,Y1) - строит контур многоугольника. Цвет-SetColor; линия-SetLineStyle, режим помтроения линии - SetWriteMode.
Пример. График синусоиды. В модуле определен тип:
Type Pointype=record x,y:Word end;
Program Loman;
Uses Graph;
Const h=100;
Var d,r:integer;
M: array [0..(n+1)]of PoinType;
I:word;
Begin
D:=detect;
1 nitGraph(d,r,");
for i:=0 to n do
with m [i]do begin
X:=trunc(i*GetMaxX/n);
Y:=trunc(GetMaxY*(sin(2*Pi*i/n)+1)/2)
End;
M[succ(n).X:=m[0].X;
M[succ(n).Y:=m[0].Y;
Draw Poly(n+2,m);
Readln;
Close Graph
End.
Дуги,окружности, эллипсы
Circle(X,Y,радиус)-окружность текущим цветом.
Толщина линий - всегда-текущим стилем, вид линии всегда Solidln (сплошная).
Arc (X, Y, BegA, EndA, R), где переменные X, Y, BegA, EndA, R типа Word - Рисуется дуга (часть окружности) с координатами центра (X, Y), с радиусом R, которая начинается от угла BegA до угла EndA в полярной системе координат.
Ellipse(X, Y, BegA, EndA , хR, yR), где переменные X, Y переменные типа integer, а BegA, EndA, хR, yR типа Word - рисуется дуга эллипса, у которого центр находится в точке (X, Y), BegA - начальный угол, EndA - конечный угол, хR - радиус по горизонтальной оси, yR - радиус по вертикальной оси.
FillEllipse (X, Y, Rx, Ry), где X, Y, Rx, Ry являются переменными типа Integer обводит линией и заполняет эллипс. Здесь X, Y - координаты центра эллипса, Rx, Ry - горизонтальный и вертикальный радиусы эллипса. Эллипс обводится линией, заданной процедурами SetLineStyle и SetColor, и заполняется с использованием параметров, установленных процедурой SetFillStyle.
Sector (X, Y, BegA, EndA, Rx, Ry), где переменные X, Y типа Integer, а BegA, EndA, Rx, Ry типа Word - вычерчивает и заполняет эллипсный сектор. Здесь X, Y - координаты центра эллипса, BegA, EndA - начальный и конечный углы эллипсного сектора, Rx, Ry - горизонтальный и вертикальный радиусы эллипса.