Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 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. *****