Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и программирование.doc
Скачиваний:
16
Добавлен:
28.03.2015
Размер:
206.34 Кб
Скачать

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