- •Www.Msta.Ru
- •Москва – 2005
- •1 Цель и задачи дисциплины
- •2 Тематическое содержание программы
- •3 Перечень рекомендуемых лабораторных работ
- •4 Экзаменационные вопросы по дисциплине
- •1. Введение
- •Var a,d: integer; X: real; d: string;.
- •2. Простейшие операторы языка
- •3. Организация ветвлений
- •Var a,b,c: real;
- •4. Логические функции
- •5. Организация циклов
- •Program p5_2; {другой вариант}
- •Var X,y: real;
- •С помощью этого оператора гораздо проще решить пример 5-2 (program p5_2). Оператор цикла с постусловием:
- •6. Массивы
- •Var X,z: array [1..8] of real;
- •Var I,j: integer;
- •Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;
- •Var n,I,j,st,kl,k:integer;
- •7. Символьные данные
- •Var n:integer;y:string;
- •Var X:string[1]; d:string; I:integer;
- •8. Записи
- •Var X:vr; y:array [1..5] of vr;
- •9. Файлы
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •X,y:real;
- •X,y:real; I:integer;
- •Im: string[4];
- •I: integer;
- •Im: string[4];
- •I: integer;
- •10. Подпрограммы
- •11. Графика
- •Var d,I,m,rx,ry:integer;
- •Var d,m,rx,ry:integer;
- •X,y,xn,xk,ymin,ymax,dx:real; msy,msx:real;
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;