Краткий курс лекций по основам структурного программирования на языке Pascal

Вид материалаКурс лекций

Содержание


Тема 10. Графика в языке Pascal
Тема 11. Подпрограммы в языке Pascal
Процедуры в языке TurboPascal
Begin { начало исполняемой части процедуры} End
Функции в языке TurboPascal
Begin { начало исполняемой части функции } End
Подобный материал:
1   2   3   4   5   6   7

Тема 10. Графика в языке Pascal


Для работы в графическом режиме в языке Turbo Pascal реализованы следующие возможности:
  1. Подключение к программе модуля графической библиотеки:

Uses Graph;
  1. Инициализация графики:

g1 := detect; {автоопределение типа графического адаптера }

InitGraph (g1, g2, ’C:\tp70\BGI’); {инициализация графики}

Устанавливается графический режим с разрешением 640x480 точек.

Графика растровая (точечная). Точка - пиксел.

Переменные g1 и g2 имеют тип Integer.
  1. Завершение графического режима:

CloseGraph;
  1. Рисование точки с координатами (х, у) цветом с:

PutPixel (x, y, c):
  1. Установить цвет фона с:

SetBkColor (c);
  1. Установить цвет с для выводимого рисунка:

SetColor (c);
  1. Рисование отрезка:

Line (x1, yl, x2, y2);

(xl, y1) и (х2, у2) - координаты концов отрезка.
  1. Рисование окружности радиуса r с центром (х, у):

Circle (x, y, r);
  1. Рис-ние прямоугольника со сторонами, параллельными сторонам экрана:

Rectangle (x1, у1, х2, у2);

(xl, y1) и (х2, у2) — координаты любой из диагоналей.
  1. Закрашивание ограниченной области:

А) установка типа S и цвета С штриховки:

SetFillStyle (s, c);

где 0<=S<= 11 (0 - штриховка цветом фона, т.н. «пустая», 1 - сплошная заливка, прочие значения – различные типы штриховки).

Б) закрашивание области с границей цвета b:

FloodFill (x, y, b);

b - цвет границы (до этого цвета будет "разливаться" краска (штриховка)).
  1. Рисование закрашенного прямоугольника:

SetFillStyle (s, c);

Ваг(х1, у1, х2, у2);


(xl, yl) и (х2, у2) - координаты любой из диагоналей.
  1. Рисование параллелепипеда с закрашенной передней гранью:

SetFillStyle (s, c);

Bar3D (xl, yl, x2, y2, d, Top);


(xl, yl) и (х2, у2) - координаты любой диагонали передней грани, d-глубина, Тор - логический параметр, указывающий, рисовать ли верхнюю грань параллелепипеда: True – рисовать, False - нет.

13. Рисование эллипса или его дуги:

Ellipse (x, y, a1, a2, xr, yr);

(х, у) - координаты центра,

a1 - начальный угол (в градусах),

а2 - конечный угол (в градусах),

хr - радиус по оси X,

уr - радиус по оси Y.
  1. Рисование закрашенного сектора эллипса:

SetFillStyle (s, c);

Sector (х, у, а1, a2, xr, yr);


(х, у) - координаты центра,

a1 - начальный угол (в градусах),

а2 - конечный угол (в градусах),

хr - радиус по оси X,

уr - радиус по оси Y.
  1. Вывод текста на графический экран:

A) установка шрифта: SetTextStyle (f, d, s);

f - номер шрифта (0 - матричный шрифт 8x8),

d - направление вывода символов (0 - горизонтально,1 - слева направо),

s - размер символов.


Б) вывод текста: OutTextXY (x, y, s);

(х, у) - координаты левого верхнего угла выводимой строки,

s – выводимая текстовая строка.

Тема 11. Подпрограммы в языке Pascal


Подпрограмма – это часть программы (составной оператор), имеющая собственное имя и вызываемая по этому имени из основной (головной) программы или других подпрограмм. В языке Паскаль реализованы подпрограммы двух видов: процедуры и функции. Действует правило – описание должно предшествовать вызову (т.е. подпрограмма должна быть сначала описана, а только после этого может быть вызвана).


Процедуры в языке TurboPascal
  1. Описание процедуры:

Procedure <имя> (<список параметров>); { заголовок процедуры }

<блок описаний>

Begin { начало исполняемой части процедуры}

<тело процедуры (исполняемая часть)>

End; { конец процедуры }


Структура процедуры почти полностью совпадает со структурой программы. Исключения:

I. Заголовок: начинается с зарезервированного слова Procedure (а не Program), кроме того содержит список параметров. Параметры – это «средство связи» процедуры с программой и с другими процедурами, механизм обмена данными. Параметры процедуры бывают двух видов:

- параметры-значения, или входные параметры – это исходные (входные) данные, передаваемые в процедуру. Их значения после окончания работы процедуры остаются неизменившимися. Описание параметров-значений: <имя> : <тип> .

- параметры-переменные, или выходные параметры – это результаты работы процедуры, передаваемые обратно в программу или другую процедуру. Их значения после окончания работы процедуры изменяются. Описание параметров-переменных: Var <имя> : <тип> .


Например, процедура может иметь такой заголовок:

Procedure Calculate ( x, y : integer; var z : integer; var f : real );


Имя этой процедуры Calculate. Она имеет 4 параметра: два входных (или параметра значения) – это параметры x и y целого типа; два выходных (или параметра-переменных) – z целого типа и f вещественного типа. Так как типы у них различны, перед описанием каждого указано зарезервированное слово Var.

Параметры, указанные при описании процедуры (т.е. в ее заголовке) называются формальными, т.к. процедура – это по сути формальное правило получения некоторых результатов из некоторых исходных данных. Конкретным смыслом формальные параметры наполняются при вызове процедуры (см. ниже).

Можно использовать процедуры и без параметров.


II. Блок описаний может содержать те же разделы, что и блок описаний программы (Const, Type, Var, Procedure, Function), за исключением описания подключения модулей библиотек Uses (модули подключаются только в блоке описаний в основной программе!).

Данные, описанные в блоке описаний процедуры, называются локальными и могут быть использованы только в этой процедуре.

Данные, описанные в блоке описаний программы, называются глобальными и могут использоваться как в самой программе, так и во всех ее процедурах.


III. Тело процедуры также представляет собой составной оператор, но заканчивается End; (ставится точка с запятой, а не точка, как в конце программы).


  1. Вызов процедуры:

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

Calculate( a, b, c, d ); - при условии, что a, b, c имеют тип Integer, d – Real.

Calculate( 23, р+14, q, w ); - если p и q имеют тип Integer, а w – Real.


Исходя из всего вышесказанного следует, что команды языка (например, Write, Readln) – это тоже процедуры, которые описаны в некоторых библиотеках и которые мы вызываем при написании наших программ.


Функции в языке TurboPascal

Практически все сказанное о процедурах верно и для функций. Отличие функции от процедуры состоит в том, что функция не имеет выходных параметров, она возвращает единственное значение – это значение функции. Входные параметры называются еще аргументами функции.
  1. Описание функции

Function <имя> (<список аргументов>): <тип значения функции>;

{заголовок }

<блок описания локальных данных>

Begin { начало исполняемой части функции }

<тело функции (исполняемая часть)>

End; { конец описания функции }


В теле функции обязательно должна быть команда присваивания вида:

<имя функции> := <вычисленное значение>;

которая и позволит функции возвратить вычисленное значение.


Например, опишем функцию вычисления среднего арифметического двух целых чисел:

Function middle (a, b : integer) : real;

Begin

Middle := ( a + b ) / 2

End;


В данном примере тело функции – единственный оператор присваивания, который присваивает имени функции нужное значение.