Построение графика функции в пределах прямоугольника - 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);
   }
}

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

В данном коде выполняется следующая последовательность действий:

  1. Задается значение переменной n, которая определяет количество точек, которые будут отображены на графике (обычно это 300).
  2. Функция func принимает два аргумента: массив a и значение d.
  3. Внутри функции объявляются две переменные: x и y, которые будут использоваться для хранения текущих значений координат на графике.
  4. Также внутри функции объявляется переменная i, которая будет использоваться в качестве счетчика для прохода по всем точкам на графике.
  5. Далее начинается цикл for, который выполняет следующие действия:
    • При каждой итерации цикла переменная x увеличивается на значение d/n, где d - это шаг изменения координат (например, 1/300 для построения графика синусоиды).
    • Переменная i увеличивается на единицу.
  6. Внутри цикла значение переменной x используется для вычисления значения функции sin и сохранения результата в соответствующем элементе массива a.
  7. После завершения цикла все значения функций будут сохранены в массиве a и могут быть использованы для отображения графика. Таким образом, данный код выполняет построение графика функции, используя массив для хранения значений функции на разных точках и цикл для прохода по всем точкам и вычисления значений функции.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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