Написать программу, которая выводит на экран график одной или несколько функций - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Написать программу, которая выводит на экран график одной или несколько функций. Программа должна выводить рисунок с использованием модуля Graph. Программа должна содержать по крайней мере подпрограммы: 1)Функцию, график которой нужно вывести. Программа может содержать несколько таких функций. 2)Функцию или процедуру, которая выводит график на экран. Эта подпрограмма должна получать в качестве аргументов координаты области, которая будет отображена на экране и функцию, график которой нужно отобразить (аргумент процедурного типа). Прошу пожалуйста хотя бы с минимальным объяснением, хочется вникнуть в тему.

Решение задачи: «Написать программу, которая выводит на экран график одной или несколько функций»

textual
Листинг программы
uses graph;
{описание функций}
type func=function(x:real):real;
{$F+}
function F1(x:real):real;
begin
F1:=sin(x);
end;
function F2(x:real):real;
begin
F2:=cos(x);
end;
{$F-}
{процедура рисования графиков}
procedure grafik(f:func;x1,y1,x2,y2:integer);
var x0,y0:integer;
    xn,xk,mx,my,x,dx:real;
begin
setcolor(14);
setfillstyle(1,14);
bar(x1,y1,x2,y2);
x0:=(x2+x1) div 2;{центр окна}
y0:=(y2+y1) div 2;
xn:=-pi;xk:=pi;{интервал по Х}
mx:=(x2-x1)/(xk-xn);{масштаб по Х}
my:=y0-y1-5;{по У}
setcolor(8);{цвет линий}
line(x1,y0,x2,y0);{оси}
line(x0,y1,x0,y2);
x:=xn;{график}
dx:=0.001;
while x<=xk do
 begin
  putpixel(x0+round(x*mx),y0-round(f(x)*my),8);
  x:=x+dx;
 end;
end;
 
var gd,gm:integer;
begin
gd:=detect;
initgraph(gd,gm,'');
grafik(F1,100,100,300,200);
grafik(F2,400,100,600,200);
readln
end.

Объяснение кода листинга программы

  1. Подключается библиотека graph.
  2. Определяются две функции-образец: F1 и F2, которые принимают аргумент x типа real и возвращают значение типа real.
  3. Определяется процедура grafik, которая принимает функцию f в качестве аргумента и координаты x1, y1, x2, y2 для построения графика.
  4. Вычисляются центр окна (x0, y0) и масштабные коэффициенты mx и my для оси X и Y соответственно.
  5. Строятся оси графика линией от (x1, y0) до (x2, y0).
  6. Строится график функции f с помощью цикла while, который продолжается, пока значение переменной x не станет больше или равно значению xk.
  7. Внутри цикла вычисляется текущая точка графика (x, y) и рисуется пикселем с помощью функции putpixel.
  8. Значение переменной x увеличивается на dx на каждом шаге цикла.
  9. Задаются начальные значения для переменных gd и gm, которые используются при инициализации графического дисплея.
  10. Инициализируется графический дисплей с помощью функции initgraph.
  11. Построение графиков для функций F1 и F2 с помощью функции grafik.
  12. Программа завершается с помощью функции readln.

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы