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

10. Подпрограммы

Подпрограммы дают возможность делать приложения более компактными, позволяя для повторяющихся процессов писать код только один раз. Различают два вида подпрограмм: процедуры и функции.

PROCEDURE имя_процедуры (список_параметров)

FUNCTION имя_функции (список_параметров): тип_результата

Внутрь подпрограмм через список параметров передаются переменные для обработки. Для каждой из них указывается тип. Функция отличается от проце­дуры тем, что результат переда­ется через ее имя. Ниже приведены примеры процедуры и функции, выполняющие одну и ту же операцию суммирования.

procedure Sum(x,y,s:real); function Sum(x,y:real):real;

begin begin

s:=x+y sum:=x+y

end; end;

Для обращения к процедуре нужно использовать оператор вида sum(a,b,c). Здесь переменные a,b,c называются фактическими параметрами, x,y,z – фор­мальными. При исполнении процедуры значения a,b присваиваются перемен­ным x,y и выполняются вычисления. Их результат через переменную с передается в вызывающую процедуру. К функции можно обращаться, используя оператор вида c:=sum(a,b).

Задание 10.1. Вычислить N элементов ряда:

y=x11!/2!–x32!/3!+x43!/4!–x54!/5!+... для Х<1 в двух вариантах:

При вычислении факториала исполь­зовать: 1). процедуру, 2). функцию.

11. Графика

Графический режим ПК зависят от типа монитора и видиоадаптера. Мы будем использовать лучший доступный в Паскале режим: VGA, максималь­ное разрешение 640х480 точек (пикселей), 16 цветов. Соответствующий драйвер находится в файле EgaVga.bgi. Графический режим определяет команда

InitGraph(драйвер, мода, путь к файлу драйвера)

здесь: драйвер – номер драйвера (для VGA это 9), мода – номер режима (для 640х480 это 2), путь к файлу драйвера на диске.

Если файл находится в директории Паскаля, путь можно не указывать, а ввести пустые кавычки. Параметры драйвера и моду можно не задавать. Тогда они будут определены автоматически.

Возврат в текстовый режим экрана осуществляется оператором:

CloseGraph.

Паскаль располагает функциями, позволяющими осуществлять элемен­тарные графические построения:

GetMaxY

Вертикальный размер экрана по оси Y (в режиме VGA =479, поскольку отсчет точек от 0).

GetMaxX

Горизонтальный размер экрана по оси Х (в режиме VGA =639, поскольку отсчет от 0).

MoveTo(x,y)

Переместит курсор в позицию x,y.

MoveRel(dx,dy)

Переместит курсор от текущей точки на расстояние dx,dy

ClearDevice

Очищает экран.

PutPixel(x,y,цвет)

Выводит заданным цветом точку в координатах x,y.

Line(x1,y1,x2,y2)

Проводит прямую от точки с координатами x1,y1 до x2,y2.

LineTo(x,y)

Проводит прямую от текущей точки до точки с координатами x,y.

LineRel(dx,dy)

Проводит прямую от текущей точки на расстояние dx,dy.

Rectangle(x1,y1,

x2,y2)

Строит контур прямоугольника с координатами левого верхнего (x1,y1) и правого нижнего (x2,y2) углов.

Bar(x1,y1,x2,y2)

Закрашивает прямоугольную область с координатами левого верхнего (x1,y1) и правого нижнего (x2,y2) углов, установленным командой SetFillStyle, цветом.

Cyrcle(x,y,r)

Строит круг с центром в точке x,y и радиусом r.

Ellipse(x,y,угол1,

угол2,Rx,Ry)

Строит эллиптическую дугу с центром в точке x,y от начального угла1 (в градусах) до угла2. Rx и Ry задают горизонтальный и вертикальный радиусы эллипса.

PieSlice(x,y,

угол1,

угол2,r)

Строит сектор круга с центров в точке х,у радиусом r от угла1 (в целых градусах) до угла2. Заполнение и закрашивание секторов осуществляется функцией SetFillStyle.

SetFillStyle(

заполнение,

цвет)

Определяет тип заполнения (0 нет, 1 сплошное, 2 горизонтальное, 3 штриховка /, 4 толстая штриховка /, 5 толстая штриховка \, 6 штриховка \, 7 +, 8 x, 9 клетка, 10 точки, 11 частые точки) и цвет заполнения фигур.

SetColor(цвет)

Устанавливает текущий цвет линий и символов: Black – 0, Blue – 1, Green – 2, Cyan – 3, Red – 4, Magenta – 5, Brown – 6, LightGray – 7, DarkGray – 8, LightBlue – 9, LightGreen – 10, LightCyan – 11, LightRed – 12, LightMagenta – 13, Yellow – 14, White – 15.

SetBkColor(цвет)

Устанавливает текущий цвет фона.

SetLineStile(тип,

вид,

толщина)

Устанавливает стиль линий. Тип: 0 – сплошная линия, 1– точечная, 2 – штрих-пунктир, 3 – пунктир. Вид: 0. Толщина: 1 или 3 пикселя.

Пример 11-1. Нарисовать на экране: 1). Две диагонали, пересекающиеся в центре. 2) Четыре концентрических окружности с центрами в центре экрана и радиусами 50, 100, 150, 200. Отсчет экранных координат начинается с левого верхнего угла: Х – вправо, Y – вниз.

p rogram P11_1

uses graph;