График функций в С++

balans
Сообщений: 2030
Зарегистрирован: 29 дек 2012, 21:00

График функций в С++

Сообщение balans » 17 мар 2014, 17:51

Здравия Вам желаю, товарищи форумчане.
Пытался составить программу для построения графика. Вроде бы все сделал правильно, но графика все равно не видать.

Код: Выбрать все

#include <graphics.h>
#include <conio.h>
int main()
{
  float s,ds,M,dt,t;
  int gdriver = DETECT, gmode;

  initgraph(&gdriver, &gmode, "");
  t=0;
  s=1;

  do
  {
    M = 186.99*s/(s*s+0.0081)-81.3-305.84*(1-s)*(1-s)/0.98631;
    ds=-M*dt/4.7;
    s=s+ds;

    lineto(10*s+getmaxx()/2, 10*t+getmaxy()/2);
    t=t+0.02;
  }
  while(s>0);

  getch();    
  closegraph();

  return 0;
}


Подскажите, что же я опять упустил.
Последний раз редактировалось balans 27 ноя 2019, 21:27, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
zykov
Сообщений: 1777
Зарегистрирован: 02 ноя 2009, 21:00

График функций в С++

Сообщение zykov » 17 мар 2014, 18:02

Вот эти "initgraph" к C++ не имеют отношения. Это внешние библиотеки, которые вряд ли кто здесь знает. (В любом случае Вам нужно было бы самому написать, что Вы тут используете.)

Если Вам нужны графики для исследований, то лучше в C/C++ коде сбросить данные в текстовый файл (по строчкам, в строчке разделение запятой для .csv или просто пробелами/табуляциями). Потом его можно прочитать в excel или matlab и там построить графики какие нужно и при необходимости скинуть их в файл-картинку (.png, .pdf и т.д.).
Последний раз редактировалось zykov 27 ноя 2019, 21:27, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

График функций в С++

Сообщение Wild Bill » 17 мар 2014, 19:33

Или сразу в gnuplot...
Последний раз редактировалось Wild Bill 27 ноя 2019, 21:27, всего редактировалось 1 раз.
Причина: test

guryev
Сообщений: 103
Зарегистрирован: 14 янв 2010, 21:00

График функций в С++

Сообщение guryev » 18 мар 2014, 17:42

balans писал(а):Source of the post
Пытался составить программу для построения графика.

Код: Выбрать все

#include <graphics.h>
#include <conio.h>
int main()
{
float s,ds,M,dt,t;
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "");
t=0;
s=1;
do
{
M= 186.99*s/(s*s+0.0081)-81.3-305.84*(1-s)*(1-s)/0.98631;
       ds=-M*dt/4.7;
       s=s+ds;
lineto(10*s+getmaxx()/2, 10*t+getmaxy()/2);
t=t+0.02;
}
while(s>0);
getch();    
closegraph();
return 0;
}

А вы случаем не забыли проинициализировать dt ?
Последний раз редактировалось guryev 27 ноя 2019, 21:27, всего редактировалось 1 раз.
Причина: test

balans
Сообщений: 2030
Зарегистрирован: 29 дек 2012, 21:00

График функций в С++

Сообщение balans » 18 мар 2014, 20:09

Здравия Вам желаю.
guryev писал(а):Source of the post
А вы случаем не забыли проинициализировать dt ?

Вы правы. Исправил и избавился от лишнего.
Получил программку

Код: Выбрать все

#include <graphics.h>
#include <math.h>
int main()
{
float s,ds,M1,M2,M,I,dt,t;
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "");
t=0;
s=1;
dt=0.02;
do
{
          M1= 186.99*s/(s*s+0.0081);
          M2=-81.3*0-305.84*(1-s)*(1-s)/0.98631;
          M=M1-M2;
          ds=-M*dt/2800;
          s=s+ds;
          I=sqrt(M1*s);
          lineto(40*t,-20*I+getmaxx()/2);
          t=t+dt;
}
while(s>0.015);
getch();    
closegraph();
return 0;
}

Последний раз редактировалось balans 27 ноя 2019, 21:27, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость