Разработать программу построения графика функции 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.
- Наконец, она выводит график на консоль и приостанавливает выполнение программы до тех пор, пока пользователь не нажмет любую клавишу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д