Краткий курс лекций по основам структурного программирования на языке Pascal
Вид материала | Курс лекций |
- Правила преобразований из одного типа в другой и правила приведения типов в языке Object, 19.03kb.
- Курс лекций по основам программирования Учебно-методическое пособие, 726.7kb.
- Программа элективного курса «Программирование на языке Pascal» 10 класс, 63.48kb.
- Курс «Программирование на языке Turbo Pascal 0» Цель курса, 19.6kb.
- Краткий курс лекций "Основы программирования на языке Паскаль" Основные понятия, 265.68kb.
- Программирование на языке высокого уровня, 59.92kb.
- Структура программы в языке программирования С++. Обмен данными между функциями (параметры, 37.24kb.
- Краткий курс лекций "Основы программирования на языке Паскаль", 291.49kb.
- Структура программы на языке Turbo Pascal, 26.15kb.
- Тематическое планирование кружка на 2009/2010 уч г. «Основы алгоритмизации и программирования, 63.72kb.
Тема 10. Графика в языке Pascal
Для работы в графическом режиме в языке Turbo Pascal реализованы следующие возможности:
- Подключение к программе модуля графической библиотеки:
Uses Graph;
- Инициализация графики:
g1 := detect; {автоопределение типа графического адаптера }
InitGraph (g1, g2, ’C:\tp70\BGI’); {инициализация графики}
Устанавливается графический режим с разрешением 640x480 точек.
Графика растровая (точечная). Точка - пиксел.
Переменные g1 и g2 имеют тип Integer.
- Завершение графического режима:
CloseGraph;
- Рисование точки с координатами (х, у) цветом с:
PutPixel (x, y, c):
- Установить цвет фона с:
SetBkColor (c);
- Установить цвет с для выводимого рисунка:
SetColor (c);
- Рисование отрезка:
Line (x1, yl, x2, y2);
(xl, y1) и (х2, у2) - координаты концов отрезка.
- Рисование окружности радиуса r с центром (х, у):
Circle (x, y, r);
- Рис-ние прямоугольника со сторонами, параллельными сторонам экрана:
Rectangle (x1, у1, х2, у2);
(xl, y1) и (х2, у2) — координаты любой из диагоналей.
- Закрашивание ограниченной области:
А) установка типа S и цвета С штриховки:
SetFillStyle (s, c);
где 0<=S<= 11 (0 - штриховка цветом фона, т.н. «пустая», 1 - сплошная заливка, прочие значения – различные типы штриховки).
Б) закрашивание области с границей цвета b:
FloodFill (x, y, b);
b - цвет границы (до этого цвета будет "разливаться" краска (штриховка)).
- Рисование закрашенного прямоугольника:
SetFillStyle (s, c);
Ваг(х1, у1, х2, у2);
(xl, yl) и (х2, у2) - координаты любой из диагоналей.
- Рисование параллелепипеда с закрашенной передней гранью:
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.
- Рисование закрашенного сектора эллипса:
SetFillStyle (s, c);
Sector (х, у, а1, a2, xr, yr);
(х, у) - координаты центра,
a1 - начальный угол (в градусах),
а2 - конечный угол (в градусах),
хr - радиус по оси X,
уr - радиус по оси Y.
- Вывод текста на графический экран:
A) установка шрифта: SetTextStyle (f, d, s);
f - номер шрифта (0 - матричный шрифт 8x8),
d - направление вывода символов (0 - горизонтально,1 - слева направо),
s - размер символов.
Б) вывод текста: OutTextXY (x, y, s);
(х, у) - координаты левого верхнего угла выводимой строки,
s – выводимая текстовая строка.
Тема 11. Подпрограммы в языке Pascal
Подпрограмма – это часть программы (составной оператор), имеющая собственное имя и вызываемая по этому имени из основной (головной) программы или других подпрограмм. В языке Паскаль реализованы подпрограммы двух видов: процедуры и функции. Действует правило – описание должно предшествовать вызову (т.е. подпрограмма должна быть сначала описана, а только после этого может быть вызвана).
Процедуры в языке TurboPascal
- Описание процедуры:
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; (ставится точка с запятой, а не точка, как в конце программы).
- Вызов процедуры:
может осуществляться из основной программы или процедуры, описанной после вызываемой. При вызове указывается имя процедуры и список фактических параметров, т.е. тех, которые будут «подставлены» на место формальных. Количество, порядок и типы фактических параметров должны совпадать с количеством, порядком и типами формальных параметров. Например, процедуру 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
Практически все сказанное о процедурах верно и для функций. Отличие функции от процедуры состоит в том, что функция не имеет выходных параметров, она возвращает единственное значение – это значение функции. Входные параметры называются еще аргументами функции.
- Описание функции
Function <имя> (<список аргументов>): <тип значения функции>;
{заголовок }
<блок описания локальных данных>
Begin { начало исполняемой части функции }
<тело функции (исполняемая часть)>
End; { конец описания функции }
В теле функции обязательно должна быть команда присваивания вида:
<имя функции> := <вычисленное значение>;
которая и позволит функции возвратить вычисленное значение.
Например, опишем функцию вычисления среднего арифметического двух целых чисел:
Function middle (a, b : integer) : real;
Begin
Middle := ( a + b ) / 2
End;
В данном примере тело функции – единственный оператор присваивания, который присваивает имени функции нужное значение.