22
МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ ДЕТЕЙ
«СТАНЦИЯ ЮНЫХ ТЕХНИКОВ ГОРОДА ЕВПАТОРИИ РЕСПУБЛИКИ КРЫМ»
(МБОУДОД "СЮТ")
297402, Российская Федерация, Республика Крым, город Евпатория, ул. Революции, д. 75, тел. (06569) 3-03-30,
е-mail: [email protected]
План-конспект учебного занятия
кружок «Компьютер и информационные технологии», группа 2 – А
Тема учебного занятия: «Построение графиков функций: y= , y=, y= , y=exp(x) в среде Turbo Pascal».
Цель учебного занятия: формирование у детей знаний и умений работы с языком программирования Pascal, организация работы по усвоению детьми основных понятий, принципов работы с данным языком.
Задачи учебного занятия:
Образовательная:
проконтролировать степень усвоения основных понятий, принципов работы с языком программирования Pascal, изученных и сформированных на предыдущих занятиях;
обеспечить усвоение основных задач, входящих в содержание темы учебного занятия;
научить составлять программы построения графиков функций: y= (абсолютное значение х), y= (парабола), y= (гипербола), y=exp(x) (экспоненциальная функция) в среде Turbo Pascal;
формировать умение правильно и грамотно выражать свои мысли.
Развивающая:
развивать творческие способности, память, мышление обучающихся, навыки индивидуальной практической деятельности.
Воспитательная:
воспитывать аккуратность, внимательность, вежливость, дисциплинированность и бережное отношение к вычислительной технике.
Тип учебного занятия: формирование новых знаний, навыков и умений.
Методы работы: объяснительно-иллюстративный, практическая работа.
Формы работы: индивидуальная, групповая.
Оборудование: персональные компьютеры, доска, мел.
Дидактические материалы: карточки с заданиями.
Ход учебного занятия.
Организационный момент;
ТБ при работе за компьютером;
Актуализация опорных знаний:
Мотивация учебной деятельности обучающихся:
Выполнение практической работы;
Физкультминутка;
Итоги учебного занятия:
1. Организационный момент.
Приветствие, проверка присутствующих. Объяснение хода учебного занятия.
2. ТБ при работе за компьютером.
3. Актуализация опорных знаний:
Основные принципы работы с языком Pascal.
Pascal – один из самых известных языков программирования. Создан в 1968 – 1969 годах швейцарским ученым Никлаусом Виртом, был назван в честь французского математика и физика Блеза Паскаля, и используется для обучения программированию по сей день.
Перед началом работы следует напомнить, что язык Pascal – это совокупность трёх составляющих: алфавита, синтаксиса (правил написания объектов языка) и семантики (правил использования этих объектов).
Алфавит Pascal состоит из:
Прописных и строчных букв латиницы: A...Z, a…z;
Цифр: 0...9;
Специальных символов: + — * / = .,:; ‘ # ( ) { } [ ] и их комбинаций: «=» «
Задача же синтаксиса и семантики состоит в том чтобы, правильно написать раздел программы и правильно составить ее структуру, в противном же случае ваша программа будет работать неправильно (или же не работать вовсе!).
Структура программы выглядит так:
Program «имя программы»; — заголовок программы;
(Примечание: в конце строки ставится точка с запятой, не во всех, но в большинстве)
Uses (название библиотеки); здесь подключаются библиотеки, которые дают дополнительные возможности при создании программ;
Label (имя метки); здесь, если необходимо, прописываются метки, позволяющие переходить в разные места программы (о них позже);
Const тут указываем переменные с постоянной величиной, например, p=3.14;
Var тут через запятую перечисляем все переменные, а затем, указываем тип данных (Пример: Var: K, L, M: integer; N, O: real; (если несколько типов));
Begin (здесь без точки с запятой)
Дальше следует основной блок программы;
end. – конец программы (обязательно после “end” точка, если только это конец программы, а не операторные скобки).
Следует заметить, что из вышеперечисленных разделов обязательными есть только «Var», «Begin» и «end», остальные же могут применяться, если это требуется в ходе выполнения поставленной задачи.
Для использования графических возможностей Турбо Паскаля необходимо в блоке описания uses подключить графический модуль Graph. Перечислим набор графических функций и процедур, основные из которых рассмотрены ниже.
Модуль Graph
ТР обладает достаточно разнообразными средствами для работы со стандартным VGA экраном (возможно также использование и и других типов видеоадаптеров).
VGA адаптер имеет разрешение 640х480 пиксель (точка (0,0) в левом верхнем углу экрана), 16 цветов.
Перед началом работы с графикой необходимо ее инициализировать, а по окончании - "закрыть". Все графические процедуры и функции находятся в модуле Graph, поэтому также необходимо его подключение.
Общая структура графической программы:
Uses crt, graph;
var Gd, Gm: Integer;
begin
Gd: = Detect;
InitGraph (Gd, Gm, 'c: \bp\bgi');
...
{Здесь построение изображения}
...
ReadKey;
CloseGraph;
end.
Путь c: \bp\bgi указывает расположение файла egavga. bgi (драйвер графического адаптера). На разный компьютерах этот путь может быть разным. Если файл egavga. bgi поместить в каталог с программой, то путь можно не указывать.
Основные графические процедуры и функции:
Построение фигур
PutPixel (x,y,c) - отображает на экране точку с координатами (x,y) и цветом c
Line (x1,y1,x2,y2) - рисует линию с началом в точке (x1,y1) и концом - (x2,y2)
Rectangle (x1,y1,x2,y2) - рисует контур прямоугольника с диагональю (x1,y1) - (x2,y2)
Bar (x1,y1,x2,y2) - рисует закрашенный прямоугольник с диагональю (x1,y1) - (x2,y2)
Circle (x,y,r) - рисует окружность с центром (x,y) и радиусом r
Ellipse (x,y,ba,ea,xr,yr) - рисует дугу эллипса с центром в (x,y), горизонтальным и вертикальным радиусом xr и yr, и начальным и конечным углом ba и ea
FillEllipse (x,y,xr,yr) - рисует закрашенный эллипс с центром в (x,y), горизонтальным и вертикальным радиусом xr и yr
Определение цветов и стилей
GetPixel (x,y) - возвращает цвет пиксела с координатами (x,y)
SetColor (c) - устанавливает цвет изображения (для линий) (смотри таблицу1)
SetFillStyle (p,c) - устанавливает текущий стиль и цвет c (для "закрашенных" фигур)
FloodFill (x,y,b) - закрашивает замкнутую область с внутренней точкой (x,y) и цветом контура b
Работа с текстом
OutTextXY (x,y,st) - выводит на экран строку st с позиции (x,y)
SetTextStyle (f,d,s) - устанавливает шрифт f, его направление d и размер
Таблица1
Сообщения об ошибках.
function GraphErrorMsg (ErrorCode: integer): String; Возвращает строку сообщения об ошибке для заданного кода ErrorCode.
function GraphResult: integer; Возвращает код ошибки для последней графической операции.
Графические процедуры
Arc (x,y: integer; St,En,R: word);{рисование дуги, где x,y - коорд. центра дуги, R - радиус, St, En - нач. и конечный углы. }
ClearDevice; {очистка экрана}
Circle (x,y: integer; R: word);{окружность радиуса R
cцентром в точке (x,y) }
CloseGraph; {закрытие графики}
InitGraph (gd,gm: integer; Path: string);{инициализация графики, где
gd - графический драйвер,
gm - графический режим,
Path - путь размещения файла
с расширением. bgi. }
Line (x1,y1,x2,y2: integer); {рисование линии, проходящей через две точки:
с координатами (x1,y1) и (x2,y2) }
LineRel (dx,dy: integer);{рисование линии: dx, dy- приращения
координат к координатам текущей позиции курсора}
LineTo (x,y: integer);{рисование линии, проходящую через текущую позицию курсора и точку с координатами (x,y) }
Moveto (x,y: integer);{задание координат текущей точки}
OutText (T: string);{вывод текста в текущую точку}
OutTextXY (x,y: integer; T: string);{вывод текста в точку с координатами х, у}
Rectangle (x1,y1,x2,y2: integer);{рисование прямоугольника: (x1,y1) и (x2,y2) - координаты противоположных вершин}
PutPixel (x,y: integer; c: word);{выводит точку с координатами (х, у) цветом с}
Графические функции
GetMaxX - определяет максимальный размер экрана по оси x.
GetMaxY - определяет максимальный размер экрана по оси y.
GetX - координата текущей позиции курсора по оси x.
GetY - координата текущей позиции курсора по оси y.
Машинные координаты.
Начало машинной системы координат, направление осей, а также максимальные значения координат монитора показаны на рисунке
На рисунке приведена также машинная (xm, ym) и физическая (x,y) системы координат. Для изображения на экране точки с физическими координатами (x,y) необходимо определить ее машинные координаты (xm, ym). Расчетные формулы имеют следующий вид (попробуйте самостоятельно получить эти формулы):
xm=x0+x*Mx,
ym=y0-y*My,
где Mx, My-масштабы соответственно по осям x и y, которые показывают число пикселей в одной физической единице,
x, y - физические координаты точки,
xm, ym - машинные координаты точки,
x0, y0 - машинные координаты начала физической системы координат.
Пример. Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.
Этапы разработки программы сведены в таблицу.
Таблица
N | Этапы программирования | Выполнение |
1. | Постановка задачи | Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора. |
2. | Математическое описание | Изобразим вид экрана с указанием координат требуемых линий |
3. | Разработка структограммы | |
4. | Написание программы | Program P5; Uses graph; {подключениеграф. модуля} Var gd,gm: integer; Begin gd: =detect; {определениеграф. драйвера} InitGraph (gd,gm,’ ‘); {инициализация графики} Line (0, round (GetMaxY/2), GetMaxX, Round (GetMaxY/2)); {гориз. лин. } Line (round (GetMaxX/2),0,Round (GetMaxX/2), GetMaxY); {вертик. лин. } Readln; {пустойввод} CloseGraph; {закрытие графики} End. |
5. | Отладка и получение результатов | Выполнить самостоятельно |
4. Мотивация учебной деятельности обучающихся:
Создавая Паскаль, Вирт преследовал 2 цели:
во-первых, разработать язык, пригодный для обучения программированию как систематической дисциплине;
во-вторых, реализация языка должна быть эффективной и надежной на существующих вычислительных машинах.
Одним из достоинств языка Pascal является то, что он воплотил в себе идею структурного программирования, суть которой заключается в том, что с помощью нескольких конструкций можно выразить в принципе любые алгоритмы: линейные, ветвление, циклические конструкции.
Это был самый первый простой язык (ord pascal) для программирования, помогающий решить множество практических задач прошлого столетия (1970 год). Он был разработан группой ученых. С расширением платформ были созданы новые версии этой программы, а Pascal стал классическим языком программирования.
5. Выполнение практической работы.
Задание 1. Написать программу построения графика функции y= (абсолютное значение х) для xϵ [-4; 4].
Решение.
Program GRAFABS; {заголовок программы}
uses Graph, crt; {подключение библиотек}
var a,b,i,dx,dy,dx1: integer; x,y: real; s:string; {описание переменных, используемых в программе}
begin {начало основной программы}
a:=Detect; {автоматическое определение аппаратуры}
dx:=getmaxx div 2; {определяем середину координатной оси ОХ. Функцию getmax можно посмотреть, нажав Ctrl+F1}
dy:=getmaxy div 2; {определяем середину координатной оси ОY}
InitGraph(a,b,’C:\BP\BGI’); {переход в графический режим}
line(dx,0,dx,getmaxy); {рисуем координатную ось ОY}
line(0,dy,getmaxx,dy); {рисуем координатную ось ОХ}
line(getmaxx,dy,getmaxx-10,dy-5); {рисуем верхнюю стрелочку по координатной оси ОХ}
line(getmaxx,dy,getmaxx-10,dy+5); {рисуем нижнюю стрелочку по координатной оси ОХ }
OutTextXY(getmaxx-15,dy-15,’X’); {выводим надпись Х по оси ОХ}
line(dx,0,dx-5,10); {рисуем левую стрелочку по координатной оси ОY}
line(dx,0,dx+5,10); {рисуем правую стрелочку по координатной оси ОY}
OutTextXY(dx+15,10,’Y’); {выводим надпись Y по оси ОY}
dx1:=dx div 4; {определяем интервалы рисования}
setlinestyle(2,0,1); {процедура задаёт толщину и форму линии. 2 – вид, 0 – образец, 1 – толщина}
for i:=1 to 4 do {определяем четыре интервала рисования штриховых линий}
begin {начало подпрограммы}
line(dx+dx1*i,0,dx+dx1*i,getmaxy); {рисуем от оси ОY вправо вертикальные штриховые линии}
line(dx-dx1*i,0,dx-dx1*i,getmaxy); {рисуем от оси ОY влево вертикальные штриховые линии }
str(i,s); {процедура вывода строковой переменной}
OutTextXY(dx+dx1*i-10,dy+10,s); {рисуем номера интервалов справа}
OutTextXY(dx-dx1*i+10,dy+10,’-‘+s); {рисуем номера интервалов слева. + операция конкатенации или склеивания}
end; {окончание подпрограммы}
setlinestyle(2,0,1); {процедура задаёт толщину и форму линии. 2 – вид, 0 – образец, 1 – толщина}
for i:=1 to 4 do {определяем четыре интервала рисования штриховых линий}
begin {начало подпрограммы}
line(0,dy-dx1*i,getmaxx,dy-dx1*i); {рисуем горизонтальные штриховые линии вверх от оси ОХ}
line(0,dy+dx1*i,getmaxx,dy+dx1*i); {рисуем горизонтальные штриховые линии вниз от оси ОХ }
str(i,s); {процедура вывода строковой переменной}
OutTextXY(dx -10,dy-dx1*i+10,s); {рисуем номера интервалов сверху по ОY}
OutTextXY(dx-15,dy+dx1*i-10,’-‘+s); {рисуем номера интервалов снизу по ОY}
end; {конец подпрограммы}
OutTextXY(dx -10,dy +10,’0’); {обозначаем начало координат}
setcolor(7); {делает 7-ой цвет, светло-серый, в палитре цветом текущего рисунка (Line, Circle)}
OutTextXY(dx +17,dy +50,’Grafik funkzii: y=abs(x)’); {вывод названия графика функции}
x:=0; {начальное значение х}
while xdo {оператор цикла с предусловием для положительных значений х}
begin {начало подпрограммы}
x:=x+0.01; {задание приращения аргумента}
y:=abs(x); {определение функции}
setcolor(7); {задание цвета рисования. 7 – светло- серый }
circle(round(dx+dx1*x),round(dy-dx1*y),1); {рисуем прямую окружностями, функция round округляет значения до целого}
end; {конец подпрограммы}
x:=0; {начальное значение х}
while x-4 do {оператор цикла с предусловием для отрицательных значений х}
begin {начало подпрограммы}
x:=x-0.01; {задание приращения аргумента}
y:=abs(x); {определение функции}
setcolor(7); {задание цвета рисования. 7 – светло- серый }
circle(round(dx+dx1*x),round(dy-dx1*y),1); {рисуем прямую окружностями, функция round округляет значения до целого}
end; {конец подпрограммы}
readkey; {оператор, позволяющий вернуться в программу нажатием любой клавиши}
end. {конец программы}
Задание 2. Написать программу построения графика функции y= (парабола) для xϵ [-3; 3].
Решение.
Program PARABOLA; {заголовок программы}
uses Graph, crt; {подключение библиотек}
var a,b,i,dx,dy,dx1: integer; x,y: real; s:string; {описание переменных, используемых в программе}
begin {начало основной программы}
a:=Detect; {автоматическое определение аппаратуры}
InitGraph(a,b,’C:\BP\BGI’); {переход в графический режим}
for i:=0 to 640 do {прямой оператор цикла}
begin {начало основной программы}
putpixel(i,240,15); {рисуем координатную ось ОХ}
putpixel(320,i,15); { рисуем координатную ось ОY}
delay(10); {задежка 10 миллисекунд, показывает рисование осей координат}
end; {окончание подпрограммы}
dx:=getmaxx div 2; {определяем середину координатной оси ОХ. Функцию getmax можно посмотреть, нажав Ctrl+F1}
dy:=getmaxy div 2; {определяем середину координатной оси ОY}
line(getmaxx,dy,getmaxx-10,dy-5); {рисуем верхнюю стрелочку по координатной оси ОХ}
line(getmaxx,dy,getmaxx-10,dy+5); {рисуем нижнюю стрелочку по координатной оси ОХ}
OutTextXY(getmaxx-15,dy-15,’X’); {выводим надпись Х по оси ОХ}
line(dx,0,dx-5,10); {рисуем левую стрелочку по координатной оси ОY}
line(dx,0,dx+5,10); {рисуем правую стрелочку по координатной оси ОY}
OutTextXY(dx+15,10,’Y’); {выводим надпись Y по оси ОY}
dx1:=dx div 4; {определяем интервалы рисования}
setlinestyle(2,0,1); {процедура задаёт толщину и форму линии. 2 – вид, 0 – образец, 1 – толщина}
for i:=1 to 4 do {определяем четыре интервала рисования штриховых линий}
begin {начало подпрограммы}
line(dx+dx1*i,0,dx+dx1*i,getmaxy); {рисуем от оси ОY вправо вертикальные штриховые линии}
line(dx-dx1*i,0,dx-dx1*i,getmaxy); {рисуем от оси ОY влево вертикальные штриховые линии }
str(i,s); {процедура вывода строковой переменной}
OutTextXY(dx+dx1*i-10,dy+10,s); {рисуем номера интервалов справа}
OutTextXY(dx-dx1*i+10,dy+10,’-‘+s); {рисуем номера интервалов слева. + операция конкатенации или склеивания}
end; {окончание подпрограммы}
setlinestyle(2,0,1); {процедура задаёт толщину и форму линии. 2 – вид, 0 – образец, 1 – толщина}
for i:=1 to 4 do {определяем четыре интервала рисования штриховых линий}
begin {начало подпрограммы}
line(0,dy-dx1*i,getmaxx,dy-dx1*i); {рисуем горизонтальные штриховые линии вверх от оси ОХ}
line(0,dy+dx1*i,getmaxx,dy+dx1*i); {рисуем горизонтальные штриховые линии вниз от оси ОХ }
str(i,s); {процедура вывода строковой переменной}
OutTextXY(dx -10,dy-dx1*i+10,s); {рисуем номера интервалов сверху по ОY}
OutTextXY(dx-15,dy+dx1*i-10,’-‘+s); {рисуем номера интервалов снизу по ОY}
end; {конец подпрограммы}
OutTextXY(dx -10,dy +10,’0’); {обозначаем начало координат}
setcolor(3); {делает 3-ый цвет, бирюзовый, в палитре цветом текущего рисунка (Line, Circle)}
OutTextXY(dx +35,dy +50,’Parabola. Grafik funkzii: y=’); {вывод названия графика функции y=}
x:=0; {начальное значение х}
while xdo {оператор цикла с предусловием для положительных значений х}
begin {начало подпрограммы}
x:=x+0.01; {задание приращения аргумента}
y:= x*x; {определение функции: парабола}
setcolor(3); {задание цвета рисования. 3 – бирюзовый }
circle(round(dx+dx1*x),round(dy-dx1*y),1); {рисуем параболу окружностями, функция round округляет значения до целого}
end; {конец подпрограммы}
x:=0; {начальное значение х}
while x-3 do {оператор цикла с предусловием для отрицательных значений х}
begin {начало подпрограммы}
x:=x-0.01; {задание приращения аргумента}
y:= x*x; {определение функции: парабола}
setcolor(3); {задание цвета рисования. 3 – бирюзовый }
circle(round(dx+dx1*x),round(dy-dx1*y),1); {рисуем параболу окружностями, функция round округляет значения до целого}
end; {конец подпрограммы}
readkey; {оператор, позволяющий вернуться в программу нажатием любой клавиши}
end. {конец программы}
Задание3. Написать программу построения графика функции ), y= (гипербола) для xϵ [-4; 4].
Решение.
Program GIPERBOL; {заголовок программы}
uses Graph, crt; {подключение библиотек}
var a,b,i,dx,dy,dx1: integer; x,y: real; s:string; {описание переменных, используемых в программе}
begin {начало основной программы}
a:=Detect; {автоматическое определение аппаратуры}
InitGraph(a,b,’C:\BP\BGI’); {переход в графический режим}
dx:=getmaxx div 2; {определяем середину координатной оси ОХ. Функцию getmax можно посмотреть, нажав Ctrl+F1}
dy:=getmaxy div 2; {определяем середину координатной оси ОY}
line(dx,0,dx,getmaxy); {рисуем координатную ось ОY}
line(0,dy,getmaxx,dy); {рисуем координатную ось ОХ}
line(getmaxx,dy,getmaxx-10,dy-5); {рисуем верхнюю стрелочку по координатной оси ОХ}
line(getmaxx,dy,getmaxx-10,dy+5); {рисуем нижнюю стрелочку по координатной оси ОХ }
OutTextXY(getmaxx-15,dy-15,’X’); {выводим надпись Х по оси ОХ}
line(dx,0,dx-5,10); {рисуем левую стрелочку по координатной оси ОY}
line(dx,0,dx+5,10); {рисуем правую стрелочку по координатной оси ОY}
OutTextXY(dx+15,10,’Y’); {выводим надпись Y по оси ОY}
dx1:=dx div 4; {определяем интервалы рисования}
setlinestyle(2,0,1); {процедура задаёт толщину и форму линии. 2 – вид, 0 – образец, 1 – толщина}
for i:=1 to 4 do {определяем четыре интервала рисования штриховых линий}
begin {начало подпрограммы}
line(dx+dx1*i,0,dx+dx1*i,getmaxy); {рисуем от оси ОY вправо вертикальные штриховые линии}
line(dx-dx1*i,0,dx-dx1*i,getmaxy); {рисуем от оси ОY влево вертикальные штриховые линии }
str(i,s); {процедура вывода строковой переменной}
OutTextXY(dx+dx1*i-10,dy+10,s); {рисуем номера интервалов справа}
OutTextXY(dx-dx1*i+10,dy+10,’-‘+s); {рисуем номера интервалов слева. + операция конкатенации или склеивания}
end; {окончание подпрограммы}
setlinestyle(2,0,1); {процедура задаёт толщину и форму линии. 2 – вид, 0 – образец, 1 – толщина}
for i:=1 to 4 do {определяем четыре интервала рисования штриховых линий}
begin {начало подпрограммы}
line(0,dy-dx1*i,getmaxx,dy-dx1*i); {рисуем горизонтальные штриховые линии вверх от оси ОХ}
line(0,dy+dx1*i,getmaxx,dy+dx1*i); {рисуем горизонтальные штриховые линии вниз от оси ОХ }
str(i,s); {процедура вывода строковой переменной}
OutTextXY(dx -10,dy-dx1*i+10,s); {рисуем номера интервалов сверху по ОY}
OutTextXY(dx-15,dy+dx1*i-10,’-‘+s); {рисуем номера интервалов снизу по ОY}
end; {конец подпрограммы}
OutTextXY(dx -10,dy +10,’0’); {обозначаем начало координат}
setcolor(2); {делает 2-ый цвет, серый, в палитре цветом текущего рисунка (Line, Circle)}
OutTextXY(dx +10,dy +50,’Giperbola. Grafik funkzii: y=1/x*x*x’); {вывод названия графика функции}
x:=0; {начальное значение х}
while xdo {оператор цикла с предусловием для положительных значений х}
begin {начало подпрограммы}
x:=x+0.01; {задание приращения аргумента}
y:=1/x*x*x; {определение функции}
setcolor(2); {задание цвета рисования. 2 –серый }
circle(round(dx+dx1*x),round(dy-dx1*y),1); {рисуем гиперболу окружностями, функция round округляет значения до целого}
end; {конец подпрограммы}
x:=0; {начальное значение х}
while x-4 do {оператор цикла с предусловием для отрицательных значений х}
begin {начало подпрограммы}
x:=x-0.01; {задание приращения аргумента}
y:=1/x*x*x; {определение функции}
setcolor(2); {задание цвета рисования. 2 – серый }
circle(round(dx+dx1*x),round(dy-dx1*y),1); {рисуем гиперболу окружностями, функция round округляет значения до целого}
end; {конец подпрограммы}
readkey; {оператор, позволяющий вернуться в программу нажатием любой клавиши}
end. {конец программы}
Задание4. Написать программу построения графика функции y=exp(x) (экспоненциальная функция) для xϵ ]-10; 3[.
Решение.
Program EXPONENZ; {заголовок программы}
uses Graph, crt; {подключение библиотек}
var a,b,i,dx,dy,dx1: integer; x,y: real; s:string; {описание переменных, используемых в программе}
begin {начало основной программы}
a:=Detect; {автоматическое определение аппаратуры}
InitGraph(a,b,’C:\BP\BGI’); {переход в графический режим}
dx:=getmaxx div 2; {определяем середину координатной оси ОХ. Функцию getmax можно посмотреть, нажав Ctrl+F1}
dy:=getmaxy div 2; {определяем середину координатной оси ОY}
line(dx,0,dx,getmaxy); {рисуем координатную ось ОY}
line(0,dy,getmaxx,dy); {рисуем координатную ось ОХ}
line(getmaxx,dy,getmaxx-10,dy-5); {рисуем верхнюю стрелочку по координатной оси ОХ}
line(getmaxx,dy,getmaxx-10,dy+5); {рисуем нижнюю стрелочку по координатной оси ОХ }
OutTextXY(getmaxx-15,dy-15,’X’); {выводим надпись Х по оси ОХ}
line(dx,0,dx-5,10); {рисуем левую стрелочку по координатной оси ОY}
line(dx,0,dx+5,10); {рисуем правую стрелочку по координатной оси ОY}
OutTextXY(dx+15,10,’Y’); {выводим надпись Y по оси ОY}
dx1:=dx div 10; {определяем интервалы рисования}
setlinestyle(2,0,1); {процедура задаёт толщину и форму линии. 2 – вид, 0 – образец, 1 – толщина}
for i:=1 to 10 do {определяем десять интервалов рисования штриховых линий}
begin {начало подпрограммы}
line(dx+dx1*i,0,dx+dx1*i,getmaxy); {рисуем от оси ОY вправо вертикальные штриховые линии}
line(dx-dx1*i,0,dx-dx1*i,getmaxy); {рисуем от оси ОY влево вертикальные штриховые линии }
str(i,s); {процедура вывода строковой переменной}
OutTextXY(dx+dx1*i-10,dy+10,s); {рисуем номера интервалов справа}
OutTextXY(dx-dx1*i+10,dy+10,’-‘+s); {рисуем номера интервалов слева. + операция конкатенации или склеивания}
end; {окончание подпрограммы}
setlinestyle(2,0,1); {процедура задаёт толщину и форму линии. 2 – вид, 0 – образец, 1 – толщина}
for i:=1 to 10 do {определяем десять интервалов рисования штриховых линий}
begin {начало подпрограммы}
line(0,dy-dx1*i,getmaxx,dy-dx1*i); {рисуем горизонтальные штриховые линии вверх от оси ОХ}
line(0,dy+dx1*i,getmaxx,dy+dx1*i); {рисуем горизонтальные штриховые линии вниз от оси ОХ }
str(i,s); {процедура вывода строковой переменной}
OutTextXY(dx -10,dy-dx1*i+10,s); {рисуем номера интервалов сверху по ОY}
OutTextXY(dx-15,dy+dx1*i-10,’-‘+s); {рисуем номера интервалов снизу по ОY}
end; {конец подпрограммы}
OutTextXY(dx +3,dy +10,’0’); {обозначаем начало координат}
{writeln(‘Задайте основание степени с=’,c);
readln(c);}
setcolor(2); {делает 2-ый цвет, серый, в палитре цветом текущего рисунка (Line, Circle)}
OutTextXY(dx +21,dy +50,’Grafik funkzii: y=ex’); {вывод названия графика функции}
OutTextXY(dx +172,dy +43,’x’); {показатель функции}
x:=0; {начальное значение х}
while xdo {оператор цикла с предусловием для положительных значений х}
begin {начало подпрограммы}
x:=x+0.01; {задание приращения аргумента}
y:=exp(x); {определение функции}
setcolor(2); {задание цвета рисования. 2 –серый }
circle(round(dx+dx1*x),round(dy-dx1*y),1); {рисуем гиперболу окружностями, функция round округляет значения до целого}
end; {конец подпрограммы}
x:=0; {начальное значение х}
while x-10 do {оператор цикла с предусловием для отрицательных значений х}
begin {начало подпрограммы}
x:=x-0.01; {задание приращения аргумента}
y:=exp(x); {определение функции}
setcolor(2); {задание цвета рисования. 2 – серый }
circle(round(dx+dx1*x),round(dy-dx1*y),1); {рисуем гиперболу окружностями, функция round округляет значения до целого}
end; {конец подпрограммы}
readkey; {оператор, позволяющий вернуться в программу нажатием любой клавиши}
end. {конец программы}
Сохраните Вашу работу и покажите её педагогу.
6. Физкультминутка.
7. Итоги учебного занятия
Ответьте на следующие вопросы:
Что нового Вы узнали, решив задания на учебном занятии?
Задания были сложными? Задания были интересными?
Над изучением каких тем в разделе «Изучение языка программирования Pascal» Вы хотели бы ещё поработать?
22