Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / графика в Visual C++ 6.0. / 3 сообщений из 3, страница 1 из 1
24.12.2006, 19:27
    #34221316
goldmember
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
графика в Visual C++ 6.0.
Уважаемые знатоки сей среды программирования...к сожалению имею с ней дело не по собственной воле...но, что есть то есть...проблема заключается в следующем
Есть программа ,которая решает дифур. 1-го порядка методом Эйлера...реализованно это дело через 2-хмерный массив указателей на объекты класса neuro, вот консольный код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include"MyHead.h"

//	double neuro::Eiler(double in,double out,double w[6])
void Eiler(double& Xi, double& Yi,double kx, double ky, double h);

int main(void)
{
    neuro * pNeur[ 3 ][ 6 ];
	neuro * heap;
	for(int i= 1 ;i<= 6 ;i++)

		for(int j= 1 ;j<= 3 ;j++)
		{
			heap = new neuro;
			pNeur[i][j]=heap;
		}

    double h,Xi,Yi,Xkon;
	int n;
    for(int g= 1 ;g<= 6 ;g++)
	{
    for (int k= 1 ;k<= 3 ;k++)
	{
		pNeur[g][k]->SetIn(rand()% 18 );
		cout<<pNeur[g][k]->GetIn()<<"  ";

	}
	cout<<endl;
	}


	cout<<endl;
	cout<<endl;
		for(int l = 1 ;l<= 6 ;l++)
		{
		    pNeur[l][ 1 ]->SetWeight( 0 . 5 );
		}
   
	double res= 0 ;
	for(int m= 1 ;m<= 6 ;m++)
	{
	   	
       res+=pNeur[m][ 1 ]->Sum();
	   cout<<pNeur[m][ 1 ]->GetIn()<<"    "<<res<<endl;
	}

    cout<<"Vvedite nachaloe znachenie intervala [a,b]=";
	cin>>Xi;
	cout<<"Vvedite konechoe znachenie intervala [a,b]=";
	cin>>Xkon;
	cout<<"Vvedite chislo shagov=";
	cin>>n;
	h=(Xkon- Xi)/n;
	cout<<endl;
	cout<<"Vvedite nachalnoe uslovie y=";
	cin>>Yi;
	
	for (int o= 1 ;o<=n;o++)
	{	
		Eiler(Xi,Yi, 0 ,res,h);
		cout<<"\n";
	}


//	delete [] pNeur;
	//for(int r=1;r<=6;r++);
//	*pNeur=0;
	return  0 ;
}

void Eiler(double& Xi, double& Yi, double kx, double ky, double h)
{
	double f1,Yprom,a,Xprom;

	f1=(kx*Xi)+((ky-Yi)*Yi);
	Yprom=Yi+f1*(h/ 2 );
	Xprom=Xi+h/ 2 ;
	a=kx*Xprom-Yprom;
	Yi=Yi+a*h;
    cout<<"\t"<<"\t"<<"Interval x="<<Xi<<"\t"<<" Resultat y="<<Yi;
    Xi=Xi+h;
}
заголовочек MyHead
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
class neuro
{
public:
	void SetIn(double In){itsIn=In;}
	void SetWeight(double Weight)
	{
			for(int x= 1 ;x<= 6 ;x++)
				itsWeight[x]=Weight;
	}
	 double GetIn() const {return itsIn;}
	 double GetWeight() const 
	 {
			
			return itsWeight[ 1 ];
		     
	 }
//	neuro();
//	~neuro();
   //  double Eiler(double in,double out,double w);
	 double Sum()
	 {
        double res= 0 ;
		res =itsIn*itsWeight[ 1 ];
    	return res;
	 }
private:
	double itsIn;
	double itsWeight[ 6 ];
};
Вот,если не вдаваясь в подробности вышеизложенного, как мне вывести график решения в SDI документе, с заданием весов(double itsWeight) и количества шагов(int n) через диалоговое окно...
Проблема именно в том что я не знаю где всё грамотно разместить..либо всё в методе OnDraw,либо что-то в документе можно прописать?
...
Рейтинг: 0 / 0
25.12.2006, 16:29
    #34223170
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
графика в Visual C++ 6.0.
goldmember....Вот,если не вдаваясь в подробности вышеизложенного, как мне вывести график решения в SDI документе, с заданием весов(double itsWeight) и количества шагов(int n) через диалоговое окно...
Проблема именно в том что я не знаю где всё грамотно разместить..либо всё в методе OnDraw,либо что-то в документе можно прописать?


1) У Вас есть некий массив - он проситься на сущность которую нуна отображать в виде графика, обозвать условно "документ" и хранить в соответствующем класс. Отображать в виде графика в одном из окошек SDI парадигмы. При этом ввод доп. параметров (шаг расчёта и прочее) - можно вводить в диаложке, активизацию которого мона производить по событию от "внешней" кнопки на тул-баре, а результат отработки данного диаложка сваливать в "документ". Где то так...


с уважением
(круглый)
ЗЫ
Рекомендую книгу Круглинского про VC4 (второе издание - не суть, мона и по свежее) + MFC. Там примеры отрисовки, увязывания событий, ввод доп. параметров и куча чаво интересного для Вас - думаю найдётся.
...
Рейтинг: 0 / 0
26.12.2006, 02:10
    #34223896
goldmember
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
графика в Visual C++ 6.0.
kolobok0У Вас есть некий массив - он проситься на сущность которую нуна отображать в виде графика, обозвать условно "документ" и хранить в соответствующем класс. Отображать в виде графика в одном из окошек SDI парадигмы. При этом ввод доп. параметров (шаг расчёта и прочее) - можно вводить в диаложке, активизацию которого мона производить по событию от "внешней" кнопки на тул-баре, а результат отработки данного диаложка сваливать в "документ". Где то так...

Поступил именно так...компиляция проходит без ошибок..при запуске выдаёт следующее
debug assertion failed!
program:....MyProjects\NeuroNet\Debug\NeuroNet.exe
file:dosmgr.cpp
line:852

мож из-за того что знач.координат у меня типа Double а выводить пытаюсь SetPixel'ом?
или это глубже скрыто....?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / графика в Visual C++ 6.0. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]