Разработать программу построения графика функции y=f(x) - C (СИ)
Формулировка задачи:
Разработать программу построения графика функции y=x-1/(3+sin3.6x), интервал: x=[0;0.85] на Си, желательно с блок-схемой
Решение задачи: «Разработать программу построения графика функции y=f(x)»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- double f(double x)
- {
- return exp(-0.08*x)*sin(x);
- }
- int main(int argc, char *argv[])
- {
- int n,i,j,m;
- double Y[80];
- char Scr [20] [80];
- double x,y,x1,x2,dx,ymax,ymin;
- x1=0;
- x2=30;
- dx=(x2-x1)/80;
- ymax=0;
- ymin=0;
- i=0;
- for (x=x1; x<=x2; x+=dx)
- {
- y=f(x);
- if (y>ymax) ymax=y;
- if (y<ymin) ymin=y;
- Y[i++]=y;
- }
- ymax=ymax+(ymax-ymin)*0.1;
- ymin=ymin-(ymax-ymin)*0.1;
- for (i=0; i<20; i++)
- for (j=0; j<80; j++) Scr[i][j]=' ';
- for (i=0; i<80; i++)
- {
- m=20*(ymax-Y[i])/(ymax-ymin);
- Scr [m] [i]='*';
- }
- for (i=0; i<20; i++)
- for (j=0; j<80; j++) printf("%c",Scr[i][j]);
- system("PAUSE");
- return 0;
- }
Объяснение кода листинга программы
В этом коде:
- Функция
f(x)
представляет собой функцию, которую необходимо визуализировать. - Программа разбивает интервал от x1 до x2 на 80 равных отрезков и вычисляет соответствующую y для каждого отрезка.
- Она сохраняет максимальное и минимальное значение y, а также наибольшее значение ymax-ymin, которое будет использоваться для масштабирования графика.
- Затем программа создает пустую матрицу
Scr[20][80]
для представления графика. - Используя два вложенных цикла, она заполняет матрицу символами
- Затем она масштабирует график, перемещая линии сетки так, чтобы они соответствовали максимальному и минимальному значениям y.
- Наконец, она выводит график на консоль и приостанавливает выполнение программы до тех пор, пока пользователь не нажмет любую клавишу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д