- •Содержание
- •Алгоритм. Блок-схема. Элементы блок-схемы
- •Циклы
- •Массивы. Работа с массивами
- •Сортировка данных
- •Матрица. Работа с матрицами
- •Язык программирования Turbo Pascal
- •Алфавит языка Turbo Pascal
- •Вещественные типы данных
- •Логический тип данных
- •Символьный тип данных
- •Массивы в ТР
- •Cтроки в ТР
- •Оператор присваивания в ТР
- •Целочисленные типы данных
- •Условный оператор
- •Составной и пустой оператор
- •Оператор выбора
- •Оператор перехода и метка
- •Циклы в ТР
- •Оператор цикла for
- •Оператор цикла while
- •Оператор цикла repeat
- •Подпрограммы в ТР
- •Локальность имен в ТР
- •Формальные и фактические параметры
- •Рекурсия. Рекурсивные функции
- •Модули в ТР
- •Стандартные модули в ТР
- •Использование модуля GRAPH
- •Файлы в ТР
- •Общие принципы работы с файлами в ОС
- •Элементы объектно-ориентированного программирования
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Список литературы
Задача-пример. Вычислить сумму цифр введенного числа.
Program Summa;
Uses Digits; {Подключим наш модуль по обработке цифр} var i,k,S,N:word;
begin
Readln(N); S:=0;
k:=NumberOfDigits(N); {получили число цифр введенного числа N}
for i:=0 to k-1 do S:=S+Digit(i,N); {суммируем в цикле k
цифр}
Writeln(S)
end.
Использование модуля GRAPH
Для того чтобы иметь возможность программировать видеоэффекты, следует подключить модуль Graph:
Uses Graph;
В справочной информации, встроенной в среду ТР, очень хорошо показан ход переключения из текстового режима экрана в графический и обратно:
Uses Graph;
var Gd,Gm:integer; begin
Gd:=Detect; {предопределенная переменная из модуля Graph} InitGraph(Gd,Gm,’’); {Пытаемся переключиться в графический
режим}
if GraphResult<>grOk then Halt(1); {Останов, если не получилось} {--------------- Отрисовываем на экране --------------------------}
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
{----------------------------------------------------------------------------- |
} |
Readln; |
{Ждём нажатия клавиши Enter} |
CloseGraph |
{Возвращаемся в текстовый режим} |
end. |
|
Координаты экрана начинаются с левого верхнего угла экрана. (рис. 6) С помощью ф ункций GetMaxX и GetMaxY можно получить максимальные значения по х и по у.
29
Рис. 6
Перед тем как рисовать различные геометрические фигуры, нужно задать стиль отрисовки и цвет раскраски (рис. 7) с помощью следующей функции:
SetFillStyle(Style,Color);
Для начала нам хватит стиля сплошной отрисовки SolidFill, а цвет Color может принимать следующие значения: Red, Blue, Yellow, Green, White и другие (см. встроенную справочную информацию). Чтобы отрисовать прямоугольник, раскрашенный желаемым цветом, нужно использовать пару функций:
SetFillStyle(SolidFill,Red);
Bar(x1,y1,x2,y2).
где x1,y1 – координаты начальной точки; x2,y2 – координаты конечной точки.
Рис. 7
30
Для отрисовки линий и точек нужным цветом предварительно устанавливают цвет отрисовки функцией SetColor(Color), а для отр и- совки самой линии можно воспользоваться функцией Line(x1,y1,x2,y2). Имеется также функция по заливке замкнутой области желаемым цветом:
FloodFill(x,y,BorderColor);
где x,y – координаты внутренней точки замкнутой области; BorderColor – цвет границы замкнутого контура.
Задача-пример. Отрисовать звезду желтым цветом.
Рис. 8
Пусть координаты верхней вершины звезды на экране равны x,y (рис. 8). Соединим линиями все вершины звезды (см. рисунок) и зальем каждый получившийся замкнутый контур желтым цветом:
SetColor(Yellow);
Line(x,y,x-3,y+8); Line(x-3,y+8,x+5,y+3); Line(x-5,y+3,x+5,y+3); Line(x-5,y+3,x+3,y+8); Line(x,y,x+3,y+8);
SetFillStyle(SolidFill,Yellow); {Будем закрашивать замкнутые области
|
желтым цветом} |
FloodFill(x,y+1,Yellow); |
{закрасили верхную область} |
FloodFill(x,y+4,Yellow); |
{закрасили центральную область} |
. . . . . . . . . . |
{и т. д.} |
|
31 |
