- •Федеральное агентство по образованию
- •Государственное образовательное учреждение высшего профессионального образования
- •«Орловский государственный технический
- •Университет»
- •Учебно-научно-исследовательский институт информационных технологий
- •Печатается по решению редакционно-издательского совета ОрелГту орел 2010
- •302030, Г. Орел, ул. Московская, 65
- •1 Цель проведения лабораторных работ
- •3 Основные операторы языка паскаль
- •3.1 Среда turbo pascal
- •3.2 Операторы turbo pascal
- •3.2.1 Условный оператор
- •2 Подготовка к выполнению лабораторных работ
- •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.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 |
