- •Федеральное агентство по образованию
- •Государственное образовательное учреждение высшего профессионального образования
- •«Орловский государственный технический
- •Университет»
- •Учебно-научно-исследовательский институт информационных технологий
- •302030, Г. Орел, ул. Московская, 65
- •3 Основные операторы языка паскаль
- •3.1 Среда turbo pascal
- •3.2 Операторы turbo pascal
- •3.2.1 Условный оператор
- •3.2.2 Оператор варианта
- •3.2.3 Операторы цикла
- •3.2.3.1 Оператор цикла с параметром
- •3.2.3.2 Оператор цикла с предусловием
- •3.2.3.3 Оператор цикла с постусловием
- •4 Основные процедуры графического модуля
- •5 Объектно-ориентированная модель turbo pascal
- •5.1 Основные концепции ооп
- •5.1.1 Абстрактные типы данных. Инкапсуляция
- •5.1.2 Классы
- •5.1.3 Наследование
- •5.1.4 Полиморфизм. Раннее и позднее связывание
- •5.2 Динамические объекты
- •6 Задания к лабораторным работам
- •7 Контрольные вопросы
- •8 Содержание отчета
- •9 Список литературы
3.2.3 Операторы цикла
Задают повторяющееся выполнение некоторых операторов.
3.2.3.1 Оператор цикла с параметром
Предусматривает повторное выполнение некоторого оператора с одновременным автоматическим изменением значения, присваиваемого управляющей переменной (параметру) этого цикла. Управляющая переменная должна быть упорядоченного типа и начальное и конечное ее значения должны быть совместимы с упорядоченным типом. Начальное и конечное значения вычисляются один раз (это выражения), и параметр цикла не должен изменяться внутри цикла с параметром. Если при спецификации to (downto) начальное значение больше (меньше) конечного значения, то цикл не выполняется. При нормальном выходе из цикла с параметром значение параметра остается неопределенным.
Пример {вычисление h(n)=1+1/2+1/3+…+1/n}
Program exfor;
var n,i: integer;
H: real;
begin
read(n); write(n);
h:=0;
for i:=n downto 1 do
h:=h+1/i; n:=n-1;
writeln(h)
end.
3.2.3.2 Оператор цикла с предусловием
Выражение, контролирующее повторения, должно быть булевским. Оно вычисляется перед выполнением последовательности операторов. Эта последовательность выполняется до тех пор, пока выражение имеет значение True. Если выражение имеет значение False в самом начале, то последовательность операторов не выполнится ни разу.
Пример {вычисление h(n)=1+1/2+1/3+…+1/n}
Program exwhile;
var n: integer;
H: real;
begin
read(n); write(n);
h:=0;
while n>0 do
begin
h:=h+1/n; n:=n-1
end;
writeln(h)
end.
3.2.3.3 Оператор цикла с постусловием
Оператор содержит булевское выражение, которое управляет повторяющимся выполнением последовательности операторов внутри оператора repeat. Эта последовательность выполняется, пока выражение не станет истинным (пока не истина). Последовательность операторов выполняется, по крайней мере, один раз, так как выражение вычисляется после выполнения этой последовательности.
Пример {вычисление h(n)=1+1/2+1/3+…+1/n}
Program exrepeat;
var n: integer;
h: real;
begin
read(n); write(n);
h:=0;
repeat
h:=h+1/n; n:=n-1;
until n=0;
writeln(h)
end.
Приведенная программа выполняется при всех n>0.
Что произойдет при n<=0?
4 Основные процедуры графического модуля
Для выполнения лабораторных работ, связанных с графикой, необходимо использовать графическим модулем Graph. В таблице 1 приведены некоторые его процедуры, которые могут пригодиться в первую очередь, остальные можно найти в справочной литературе.
Таблица 1.
Процедура (функция) |
Назначение |
Пример вызова |
detect |
Определить тип графического драйвера |
d := detect |
initgraph(d, m, PathToDr) |
Инициализировать графический режим экрана |
initgraph(d, m,’c:\bgi’) |
cleardevice |
Очистить экран |
cleardevice |
setcolor(color) |
Установить цвет |
setcolor(magenta) |
setbkcolor(color) |
Установить цвет фона |
setbkcolor(0) |
putpixel(x,y,color) |
Закрасить пиксель (x,y) |
putpixel(5, 5, red) |
line(x1,y1,x2,y2) |
Нарисовать линию по двум точкам (x1,y1)-(x2,y2) |
line(10,10,20,200) |
lineto(x,y) |
Нарисовать линию из текущей позиции луча в (x,y) |
lineto(100,200) |
moveto(x,y) |
Переместить луч в (x,y) |
moveto(nx, ny) |
circle(x,y,radius) |
Нарисовать окружность (x,y,r) |
circle(x, y, 20) |
arc(x,y,ang1,ang2,radius) |
Дуга окружности (x,y,r) от угла1 до угла2 (радиан) |
arc(10,10,0,pi,5) |
setfillstyle(s,color) |
Установить стиль и цвет заливки |
setfillstyle(1,green) |
floodfill(x,y,coor) |
Залить область с границей (color) цветом заливки |
floodfill(p,q, 10) |
rectangle(x1,y1,x2,y2) |
Прямоугольник (x1,y1)-(x2,y2) |
rectangle(2,2,5,10) |
bar(x1,y1,x2,y2) |
Прямоугольник (x1,y1)-(x2,y2) с заливкой цвета |
bar(2, 2, m, n) |
getmaxx |
макс. граница для x – для vga 0..639 |
mx := getmaxx |
getmaxy |
макс. граница для y (для vga 0..479 |
my := getmaxy |
closegraph |
Закрыть графический режим экрана |
closegraph |