Построение графиков функций
Для построения графиков функций при помощи графического режима предполагается свободное владение учениками понятием функции, ее графическим и аналитическим представлением. Необходимо также использовать операторы цикла, которые помогут избежать однообразного труда по вычислению ординаты каждой точки.
До сих пор при создании рисунков использовали только первый квадрант системы координат. Для построения большинства функций в требуемом интервале изменения необходимо работать хотя бы в двух квадрантах. В общем случае полезно изображать систему координат в любой части плоскости, но наиболее наглядно располагать ее в центре экрана. В таких случаях, установив начало координат в точке (x0, y0) на экране, можно координаты (x, y) произвольной точки кривой определять разностью (x-x0, y-y0). После этого в программе можно употреблять не только положительные, но и отрицательные значения.
Рисунок получается маленьким, поэтому требуется увеличить масштаб изображения. Если для функции будет использован весь экран, надо увеличить рисунок по x и по y в зависимости от выбранного экрана.
Выбрать масштаб увеличения можно следующим образом:
-определить горизонтальный и вертикальный размеры графика (для этого вводятся границы области значений и определяются максимальное и минимальное значение функции на заданной области определения, затем вычисляются разности максимального и минимального значений аргументов и функции, которые и являются горизонтальным и вертикальным размерами графика соответственно);
-определить масштаб (сначала определяются масштабы изображения по горизонтали и вертикали с учетом размеров выбранного экрана по формуле:
масштаб(г/в) = размер экрана (по г/в) / размер графика (по г/в), затем из них выбирается меньший, который и принимается за необходимый масштаб. В нашем случае графический экран имеет размеры 640 на 480.
В любом случае, чтобы высветить на экране точку, надо взять x, вычислить по данной абсциссе y и выполнить рисование точки. Так как на экране можно получить лишь ограниченное количество значений х, то их перебираем с помощью цикла.
Пример. Построить график функции y=x2
Вариант 1
program f; uses graph; var gd, gm: integer; x, y: real; begin gd:= detect; initgraph( gd, gm, ‘c/ bp’); SetColor(5); Line(0, 240, 640, 240); Line(320, 0, 320, 480); x:= -20; While x
Вариант 2
program f; uses graph, crt; var gd, gm: integer; x, y, mx, my, m,x1, x2, y1, y2,h: real; function f(x:real): real; begin f:= Sqr(x); end; clrscr; Write(‘Введите границы отрезка’); Read(x1, x2); y1:=f(x1); y2:=f(x2); mx:=640 /(x2 –x1); my:=480 / (y2 – y1); If mx< my Then m:=mx else m:= my; h:= 1/m; x:=x1; gd:= detect; initgraph(gd, gm, ‘c/ bp’); SetColor (5); Line(0, 240, 640, 240); Line(320, 0, 320, 480); While x
Рассмотрим построение графика функции, заданной параметрически. В отличие от функции, заданной в явном виде y=f(x), параметр х в этом случае также является функцией, зависящей от некоторого значения.
Пример.
Построить график функции (кардиоида)
x = a cos t ( 1+ cost), y = a sin t( 1+cost), a > 0, t I [0, 2p )
Приведем фрагмент программы:
SetColor (5); Line(0, 240, 640, 240); Line(320, 0, 320, 480); t:=0; a:=3; While t