Построение графика функции в пределах прямоугольника - C (СИ)
Формулировка задачи:
Помогите с графиком функции.Проблема в том, что надо его уместить в рамку(я задал ее rectangle(x,y,d,v) )и висчитать умножитель, чтоб график уместился в нее. По координате Y проблем ето не составило, а по Х не знаю, как найти етот умножитель.Надеюсь ктота покопирсается в моем коде и чем то поможет))))
#include <graphics.h> #include<bios.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <math.h> #define n 300 void func(float a[]) { float x,y; int i; for(x=0,i=0;i<n;x+=0.1,i++) { a[i]=sin(x); } } void graph(int x,int y,int d,int v,float data[]){ int h,q;float max; setcolor(1); rectangle(x,y,d,v); line(d,(y+v)/2,d,(y+v)/2); setcolor(2);circle(d,y,2); max=0; for(h=0;h<n;h++) if (max<data[h]) max=data[h]; moveto(x,(y+v)/2); for(h=0,q=0;h<=n;h++,q+=2) lineto(x+q,(y+v)/2+(y-v)/2/max*data[h]); } void main(void) { float b[n]; float i;int h,m=100; clrscr(); int drv=DETECT,mode; initgraph(&drv,&mode,"D:\\TurboC\\BGI"); func(b); graph(50,100,500,400,b); getch(); closegraph(); }
Решение задачи: «Построение графика функции в пределах прямоугольника»
textual
Листинг программы
#define n 300 void func(float a[], int d) { float x,y; int i; for(x=0,i=0;i<n;x+=d/n,i++) { a[i]=sin(x); } }
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Задается значение переменной
n
, которая определяет количество точек, которые будут отображены на графике (обычно это 300). - Функция
func
принимает два аргумента: массивa
и значениеd
. - Внутри функции объявляются две переменные:
x
иy
, которые будут использоваться для хранения текущих значений координат на графике. - Также внутри функции объявляется переменная
i
, которая будет использоваться в качестве счетчика для прохода по всем точкам на графике. - Далее начинается цикл
for
, который выполняет следующие действия:- При каждой итерации цикла переменная
x
увеличивается на значениеd/n
, гдеd
- это шаг изменения координат (например, 1/300 для построения графика синусоиды). - Переменная
i
увеличивается на единицу.
- При каждой итерации цикла переменная
- Внутри цикла значение переменной
x
используется для вычисления значения функцииsin
и сохранения результата в соответствующем элементе массиваa
. - После завершения цикла все значения функций будут сохранены в массиве
a
и могут быть использованы для отображения графика. Таким образом, данный код выполняет построение графика функции, используя массив для хранения значений функции на разных точках и цикл для прохода по всем точкам и вычисления значений функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д