Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Автор: Бронникова Анастасия, Житова Дарья, 10 класс
Руководитель: , учитель информатики
Тема: PASCAL в помощь математике.
Образовательное учреждение: МУНИЦИПАЛЬНОЕ ОБЩЕОБРАЗОВТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА № 2
Используемые медиаресурсы: редакторы WORD, POWER POINT,
PUBLISHER, ресурсы сети Интернет
Цель проекта: помочь учащимся в построении графиков сложных функций.
1) Актуальность темы
Проведя опрос среди учащихся 10 - 11 классов (в опросе участвовало 30 уч-ся), какая тема из курса математики на ваш взгляд является самой, сложной мы получили следующие результаты:
1. Задания с параметры – 17 уч-ся;
2. Построение графиков функций – 13 уч-ся.
И мы решили помощь нашим учащимся. И разработали программу в среде программирования PASCAL 7.0.
Немного истории.
Pascal (Паскаль) - язык программирования общего назначения. Создан в 1970 году специалистами Технического Университета в Цюрихе под руководством профессора Никлауса Вирта.
Паскаль - именно тот язык программирования, с которого многие начинали свой тернистый путь. Он относительно легок в изучении, прост в понимании и был одним из первых языков программирования со строгой типизацией и наличием средств процедурного программирования. Наше мнение - Pascal дисциплинирует программиста и приучает его мыслить логически.
2) Проблема
Простройте график функции y= cosx × sinx ×x. Построение графика вызывает серьезные затруднения, мы начинаем :
v вспоминать и применять различные формулы тригонометрии;
v начинаем выполнять расчеты по нахождению значений функций.
Построение графика достаточно сложное, а иногда и «муторное» дело, да и линии иногда получаются кривоватые. Зато всех этих проблем лишен компьютер – он без устали может наносить на экран точку за точкой, соединяя их ровной линией. Правда, его нужно научить это делать, задав соответствующую программу
3) Гипотеза
Разработать программу в среде PASCAL для построения графиков функций не только для построения графика, но и для самопроверки своих знаний и умений по данной теме.
4) Пути решения
Необходимо решить следующее задачи:
1. Найти и изучить необходимую литературу.
2. Разработать подпрограмму PROCEDURE, которая позволяет построить систему координат;
3. Воспользоваться подпрограммой function.
4. Инициализировать графику.
5. разработать план проекта.
6. Воплотить проект в жизнь.
Для этого мы воспользуемся подпрограммами: процедура(procedure) и функция(function).
1. Процедуры служат для задания последовательности действий, и определения новых значений переменных в программе. Вызов процедуры осуществляется специальным оператором процедуры.
Процедура — это независимая именованная часть программ, которую после однократного описания можно многократно вызывать по имени из программы для выполнения определённых действий.
Структура процедуры аналогична структуре программы (программа в миниатюре) и включает в себя:
1. заголовок — состоит из зарезервированного слово procedure, идентификатора процедуры (имени), а также списка формальных параметров, который может быть не обязателен, например использование процедуры без формальных параметров (пример 1) и с их наличием в (пример 2, 3);
2. раздел описаний — может отсутствовать;
3. раздел операторов — начинается обязательным словом begin и заканчивается словом end. В конце процедуры после слова end точка с запятой не ставится.
Формат процедуры
procedure <имя процедуры> (формальные параметры);
2. Функции нужны для вычисления единственного значения некоторого выражения. Вызов функции должен быть операндом в выражении.
Структура функции включает в себя:
1. заголовок — состоит из зарезервированного слово function, идентификатора процедуры (имени), а также списка формальных параметров, который может быть не обязателен, тип возвращаемого функцией значения.
2. раздел описания,
3. тело процедуры — в конце процедуры после слова end точка с запятой не ставится.
Формат функции
function <имя процедуры> (формальные параметры): тип результата;
3. Графический режим.
Для работы с графикой в Pascal необходимы два файла – модуль graph. tpu и драйвер графического адаптера egavga. bgi. Найдите эти файлы и запишите их расположение. Для определённости будем считать, что первый находится в каталоге D:\BP\UNITS, а второй – в D:\BP\BGI.
Чтобы иметь возможность что-либо нарисовать, надо:
1. подключить модуль GRAPH;
2. указать расположение файла graph. tpu;
3. определить графический драйвер и режим;
4. инициализировать графику;
5. если инициализация прошла без ошибок, можно что-нибудь нарисовать;
6. закрыть графический режим.
А теперь реализуем эти действия в Pascal:
USES Graph, CRT; {подключение модулей}
VAR gd, gm:integer; {gd – гр. драйвер, gm – гр. режим}
BEGIN
gd:=0;
gm:=0; {автоматическое определение гр. драйвера}
InitGraph(gd, gm,''); {инициализация графического режима}
-----
ReadKey; {задержка до нажатия любой клавиши}
CloseGraph; {закрытие графического режима}
END.
5. Основной проект
Единица на экране соответствует одному пикселю и для вывода графика это не удобно, график при этом получается слишком мелкий. Поэтому при выводе графика функции на экран применяются так называемые пользовательские координаты – именно такие координаты мы используем, когда чертим график на бумаге.
Итак, мы делаем наш график крупнее. Пусть 1 пользовательская единица равна 50 экранным. Для этого мы:
ü Получаем экранную х - координату точки.
ü Преобразуем ее в пользовательскую (она будет в 50 раз меньше);
ü Находим для нее значение функции (пользовательская у – координата);
ü Преобразуем ее в экранную (увеличив в 50 раз).
Для перевода экранных координат в пользовательские и обратно создадим отдельные функции х(р) и у(р). Чтобы график строился в более крупном масштабе, объявим константу k, равную величине масштабной единицы.
Функция х(р).
Переводит экранные координаты в обычные пользовательские (экранные 1280 х 1024, пользовательские
).
Функция у(р).
Переводит пользовательские координаты в экранные.
А) Программа для создания одного графика функции в одной системе координат.
К=50 перевод экранных координат в пользовательские;
сх, су: начало координат;
F: исходная функция, график которой нужно построить;
Х: функция, которая переводит экранные координаты в пользовательские;
У: функция, которая переводит пользовательские координаты в экранные;
Sk: процедура, которая создает систему координат;
Setcolor: определяет цветовую гамму;
Line: оператор построения линии;
Moveto: перемещение графического указателя в точку (х, у);
Lineto: рисование линии от текущего указателя до точки (х, у), текущий указатель при этом перемещается в точку (х, у).
Program grafik;
Uses crt, graph;
Const
K=50;
Cx=640;
Cy=512;
Var gd, gm, i: integer;
Function f (x: real): real;
Begin
F:=sin(x)*cos(x)*x;
End;
Function x (p: integer): real;
Begin
X:=(p-cx)/k;
End;
Function y(p: real): integer;
Begin
Y:=round (-p*k+cy);
End;
Procedure sk;
Begin
Setcolor (9);
Line (0, cy, 1280,cy);
Line (cx, 0, cx, 1024);
Setcolor (15);
Line (638,462,642,462);
Line (690,510,690,514);
End;
BEGIN
Clrscr;
Gd:=0;
Gm:=0;
Initgraph (gd, gm,’’);
Sk;
Setcolor (14);
Moveto (0, y(f(x(0))));
For i:=0 to 1280 do
Lineto (I, y(f(x(i))));
Readln;
Closegraph;
End.
Б) Программа для создания нескольких графиков функций в одной системе координат.
Program grafik;
Uses crt, graph;
Const
K=50;
Cx=640;
Cy=512;
Var gd, gm, i: integer;
Function f (x: real): real;
Begin
F:=sin(x)*сos(x)*x;
End;
Function f 2(x:real):real;
Begin
F2:=2*sin(x)+cos((abs(x))-x;
End;
Function x (p: integer): real;
Begin
X:=(p-cx)/k;
End;
Function y(p: real): integer;
Begin
Y:=round (-p*k+cy);
End;
Procedure sk;
Begin
Setcolor (9);
Line (0, cy, 1280, cy);
Line (cx, 0, cx, 1024);
Setcolor (15);
Line (638,462,642,462);
Line (690,510,690,514);
End;
BEGIN
Clrscr;
Gd:=0;
Gm:=0;
Initgraph (gd, gm,’’);
Sk;
Setcolor (14);
Moveto (0, y(f(x(0))));
For i:=0 to 1280 do
Lineto (I, y(f(x(i))));
Setcolor (11);
Moveto (0,y(f2(x(0))));
For i:=0 to 1280 do
Lineto (I, y(f2(x(i))));
Readln;
Closegraph;
End.
В) Программа для создания двух графиков функций в двух разных системах координат
Program grafik;
Uses crt, graph;
Const
K=50;
Cx=320;
Cy=512;
Сх2=970;
Var gd, gm, i:integer;
Function f (x:real):real;
Begin
F:=cos(x);
End;
Function f 2(x: real): real;
Begin
F2:=2*cos(2*x);
End;
Function x (p: nteger): real;
Begin
X:=(p-cx)/k;
End;
Function y(p: real):integer;
Begin
Y:=round (-p*k+cy);
End;
Function x2 (p: integer): real;
Begin
X2:=(p-cx2)/k;
End;
Procedure sk;
Begin
Setcolor (9);
Line (0, cy, 630, cy);
Line (cx, 0, cx, 1024);
Setcolor (15);
Line (640, cy, 1280, cy);
Line (cx2, 0, cx2, 1024);
End;
BEGIN
Clrscr;
Gd:=0;
Gm:=0;
Initgraph (gd, gm,’’);
Sk;
Setcolor (14);
Moveto (0, y(f(x(0))));
For i:=0 to 640 do
Lineto (I, y(f(x(i))));
Setcolor (11);
Moveto (640, y(f2(x(0))));
For i:=690 to 1280 do
Lineto (I, y(f2(x(i))));
Readln;
Closegraph;
End.
Г) Программа для создания двух графиков функций в двух разных системах координат + построение сетки (имитация листка в клетку).
Xn, xk – начальные и конечные координаты вертикальных линий сетки
Yn, yk – начальные и конечные координаты горизонтальных линий сетки
Program grafik;
Uses crt, graph;
Const
K=50;
Cx=320;
Cy=512;
Сх2=970;
Var gd, gm, i:integer;
Function f (x: real): real;
Begin
F:=sin(x);
End;
Function f 2(x: real): real;
Begin
F2:=2*sin(x);
End;
Function x (p:integer):real;
Begin
X:=(p-cx)/k;
End;
Function y(p: real): integer;
Begin
Y:=round (-p*k+cy);
End;
Function x2 (p: integer): real;
Begin
X2:=(p-cx2)/k;
End;
Procedure sk;
Var I, xn, xk, yn, yk: integer;
Begin
Setlinestyle (3,1,1);
Xn:=cx div k;
Xk:= (1280 – cx) div k;
For i:=-xn to xk do
Line (cx+i*k,0,cx+i*k,1024);
yn:=cy div k;
yk:= (1024 – cy) div k;
For i:=-yk to yn do
Line (0,cy+i*k,1280,cy+i*k);
Setlinestyle (0,1,1);
Setcolor (9);
Line (0, cy, 630, cy);
Line (cx, 0, cx, 1024);
Setcolor (15);
Line (640, cy, 1280, cy);
Line (cx2, 0, cx2, 1024);
End;
BEGIN
Clrscr;
Gd:=0;
Gm:=0;
Initgraph (gd, gm,’’);
Sk;
Setcolor (14);
Moveto (0, y(f(x(0))));
For i:=0 to 640 do
Lineto (I, y(f(x(i))));
Setcolor (11);
Moveto (640, y(f2(x(0))));
For i:=690 to 1280 do
Lineto (I, y(f2(x(i))));
Readln;
Closegraph;
End.
8. Результаты программы

| |
|

|

|
Список используемой литературы:
1. , «Турбо Паскаль 7.0», NT Press Москва, 2004
2. «Основы алгоритмизации и программированию на языке Pascal» Томск, 2008
3. «Турбо Паскаль 7.0 Начальный курс», ОМД Групп Москва, 2003
4. Ресурсы Интернета: www. pascal. *****
www. pascaler. *****


