Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
06.05.2013
Размер:
16.67 Кб
Скачать
#include <windows.h>
#include "resource.h"
#include "help.h"
#include <stdio.h>
#include <math.h>
#include <string.h>
#define  AnimX 350
#define  AnimY 250
//=============================================================
LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK WindowFunc2(HWND,UINT,WPARAM,LPARAM);
double f_x(double x_r,double y_r);
double f_y(double x_r,double y_r);
void rect(void);
int kepler(double x,double y,double t);
BOOL chk=0;
BOOL CALLBACK DialogProc(HWND hwnd,UINT message, WPARAM wParam,LPARAM lParam);  
DWORD WINAPI ThreadProc (LPVOID lpParameter);
HDC hdc,hdc2;
HBITMAP hbit;
HBRUSH hbrush;
HPEN pen_green,pen_blue,pen_black,pen_red;
 
DWORD Tid;
HANDLE hct;
HANDLE hSem;
RECT rect1,rect2,rect3,rect4,rect5,rect6;
FILE *file;
char str1[80]="1",str2[80]="0",str3[80],str4[80],str5[80],str6[80],str7[80],str8[80],str9[80];
double R=255,G=0,B=0,R_max,R_;
double A,V_0,R_0,m,alfa,W,r_norm=5,E_norm=1,T_e=1,t_norm=1,time=1,energy;

char szWinName[] = "Мое Окно",szWinName2[] = "Мое Окно2";
HWND hwnd,hwnd2;
HDC memdc,memdc2;
PAINTSTRUCT paintstruct;
HINSTANCE ThisInst;	

//==============================================================  
int WINAPI WinMain (HINSTANCE hThisInst, 
					HINSTANCE hPrevInst,
					LPSTR lpszArgs,
					int nWinMode)
{
	
	MSG msg;
	WNDCLASS wcl;
    WNDCLASS wc2;
	// Определить класс окна 
	
	wcl.hInstance=hThisInst;
	wcl.lpszClassName=szWinName; //имя класса окна
	wcl.lpfnWndProc=WindowFunc; //функция окна
	wcl.style=1;                // стиль по умолчанию
	wcl.hIcon=LoadIcon(hThisInst,IDI_APPLICATION); //стандартная иконка
    wcl.hCursor=LoadCursor(NULL,IDC_ARROW);
    wcl.lpszMenuName= (LPSTR)KS_MENU_2; //NULL; //без меню  
    wcl.cbClsExtra=0;
    wcl.cbWndExtra=0;
    // Заполнить окно цветом
    wcl.hbrBackground=(HBRUSH) GetStockObject(LTGRAY_BRUSH);
    
	if (!RegisterClass (&wcl)) return 0;
    
    // Создать окно
    hwnd = CreateWindow(szWinName,"Движение в центральном поле",
    	   WS_OVERLAPPEDWINDOW,
		   5, // горизонтальное положение окна
		   0, // вертикальное положение окна	
		   430,// ширина окна	
		   510,// высота окна	 
		   HWND_DESKTOP,
		   NULL,
		   hThisInst,
		   NULL);
	
	// Показать окно и нарисовать содержимое
	
	ShowWindow(hwnd,nWinMode);
	UpdateWindow (hwnd);

wc2.hInstance=hThisInst;
	wc2.lpszClassName=szWinName2; //имя класса окна
	wc2.lpfnWndProc=WindowFunc2; //функция окна
	wc2.style=1;                // стиль по умолчанию
	wc2.hIcon=LoadIcon(hThisInst ,IDI_APPLICATION); //стандартная иконка
    wc2.hCursor=LoadCursor(NULL,IDC_ARROW);
    wc2.lpszMenuName=NULL;  
    wc2.cbClsExtra=0;
    wc2.cbWndExtra=0;
    // Заполнить окно цветом
    wc2.hbrBackground=(HBRUSH) GetStockObject(LTGRAY_BRUSH);
    
	if (!RegisterClass (&wc2)) return 0;
    
	 // Создать окно
    hwnd2 = CreateWindow(szWinName2,"Графики",
    	   WS_OVERLAPPEDWINDOW,
		   435, // горизонтальное положение окна
		   0, // вертикальное положение окна	
		   390,// ширина окна	
		   510,// высота окна	 
		   hwnd,
		   NULL,
		   hThisInst,
		   NULL);
	
	// Показать окно и нарисовать содержимое
	
	ShowWindow(hwnd2,nWinMode);
	UpdateWindow (hwnd2);

	while (GetMessage (&msg, NULL, 0, 0))
	{
		TranslateMessage (&msg);
		DispatchMessage (&msg);
		
	}
	
	DeleteDC (memdc);
	return msg.wParam;
}	                  
//==============================================================  
LRESULT CALLBACK WindowFunc(HWND hwnd,UINT message,
							WPARAM wParam,LPARAM lParam)
{
	
	
	static int maxX, maxY;  	
   	switch (message)
	{
		
  		case WM_CREATE:
			maxX = GetSystemMetrics (SM_CXSCREEN);
			maxY = GetSystemMetrics (SM_CYSCREEN);
			hdc = GetDC(hwnd);
			memdc = CreateCompatibleDC(hdc);
			hbit = CreateCompatibleBitmap (hdc,maxX,maxY);
			SelectObject (memdc, hbit);
			hbrush = GetStockObject (LTGRAY_BRUSH);
			hSem = CreateSemaphore(NULL,1,1,"mysem");
			hbit = CreateCompatibleBitmap (hdc,maxX,maxY);
			pen_green = CreatePen(PS_SOLID, 1, RGB(0, 255, 0));
			pen_blue = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));
			pen_black = CreatePen(PS_SOLID, 1, RGB(0, 0, 0));
			pen_red = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
			SelectObject (memdc, hbrush);
			PatBlt (memdc, 0,0, maxX,maxY,PATCOPY);
			SetBkColor(memdc,RGB(192,192,192));
			ReleaseDC (hwnd, hdc);       
			
			/*	hct = CreateThread(NULL,0,ThreadProc,NULL,0,&Tid);*/
			EnableMenuItem(GetMenu(hwnd),ID_STOP,MF_ENABLED);
			EnableMenuItem(GetMenu(hwnd),ID_START,MF_GRAYED);
			break;
		
		case WM_LBUTTONDOWN:
			if(R==255)
			{
				R=0;
				G=255;
				B=0;
			}
			else if(G==255)
			{
				R=0;
				G=0;
				B=255;
			}
			else
			{
				R=255;
				G=0;
				B=0;
			}






			break;
			
		case WM_PAINT:
			hdc = BeginPaint(hwnd,&paintstruct);
			WaitForSingleObject(hSem,INFINITE); 
			BitBlt (hdc, 0, 0, maxX,maxY, memdc,0,0,SRCCOPY);	
			ReleaseSemaphore(hSem,1,NULL);
			
			EndPaint(hwnd,&paintstruct);
			break;
			
		case WM_COMMAND:
			switch (LOWORD(wParam))
			{
			
			case ID_DIAL:	
			DialogBox(ThisInst, MAKEINTRESOURCE(KS_DIALOG_1),hwnd, DialogProc);
			break;
			case ID_CLEAR:
				WaitForSingleObject(hSem,INFINITE); 
				hbrush = GetStockObject (LTGRAY_BRUSH);
				SelectObject (memdc, hbrush);
				PatBlt (memdc, 0,0, maxX,maxY,PATCOPY);
				SelectObject (memdc2, hbrush);
				PatBlt (memdc2, 0,0, maxX,maxY,PATCOPY);
				
				rect();
				ReleaseSemaphore(hSem,1,NULL);
			

				InvalidateRect(hwnd,NULL,TRUE);
				InvalidateRect(hwnd2,NULL,TRUE);
				
				break;
				
			case ID_START:
				ResumeThread(hct);
				EnableMenuItem(GetMenu(hwnd),ID_STOP,MF_ENABLED);
				EnableMenuItem(GetMenu(hwnd),ID_START,MF_GRAYED);
				break;
				
			case ID_STOP:
				WaitForSingleObject(hSem,INFINITE); 
				TerminateThread(hct,1);
				ReleaseSemaphore(hSem,1,NULL);
			//	EnableMenuItem(GetMenu(hwnd),ID_STOP,MF_GRAYED);
			//	EnableMenuItem(GetMenu(hwnd),ID_START,MF_ENABLED);
				break;
				
			case ID_EXIT:
				if (MessageBox(hwnd, "Вы уверены?",
					"Выход",MB_YESNO | MB_ICONQUESTION) == IDYES)
				DestroyWindow(hwnd);
				break;
			case ID_HLP:
				WinHelp(hwnd,"help.hlp",HELP_FINDER,0);
				break;
			}  
			break;
			
			case WM_DESTROY:
		
				CloseHandle(hSem);
				PostQuitMessage(0);
				break;
			case WM_CLOSE:
				if (MessageBox(hwnd, "Вы уверены?",
					"Выход",MB_YESNO | MB_ICONQUESTION) == IDYES)
				DestroyWindow(hwnd);
				break;
				default:
				return DefWindowProc (hwnd, message, wParam, lParam);
	}
	return 0;
}


LRESULT CALLBACK WindowFunc2(HWND hwnd2,UINT message,
							WPARAM wParam,LPARAM lParam)
{
	
	
	static int maxX, maxY;  	
   	switch (message)
	{
		
  		case WM_CREATE:
			maxX = GetSystemMetrics (SM_CXSCREEN);
			maxY = GetSystemMetrics (SM_CYSCREEN);
			hdc2 = GetDC(hwnd2);
			memdc2 = CreateCompatibleDC(hdc2);
			hbit = CreateCompatibleBitmap (hdc2,maxX,maxY);
			SelectObject (memdc2, hbit);
			hbrush = GetStockObject (LTGRAY_BRUSH);
			SelectObject (memdc2, hbrush);
			PatBlt (memdc2, 0,0, maxX,maxY,PATCOPY);
			SetBkColor(memdc2,RGB(192,192,192));
			rect();
			InvalidateRect(hwnd,NULL,TRUE);
			InvalidateRect(hwnd2,NULL,TRUE);
			ReleaseDC (hwnd2, hdc2);       
			
			/*	hct = CreateThread(NULL,0,ThreadProc,NULL,0,&Tid);*/
			break;
	
		case WM_PAINT:
			hdc2 = BeginPaint(hwnd2,&paintstruct);
			WaitForSingleObject(hSem,INFINITE); 
			BitBlt (hdc2, 0, 0, maxX,maxY, memdc2,0,0,SRCCOPY);	
			ReleaseSemaphore(hSem,1,NULL);
			
			EndPaint(hwnd2,&paintstruct);
			break;
			
		case WM_COMMAND:
			switch (LOWORD(wParam))
			{
	case ID_CLEAR:
				WaitForSingleObject(hSem,INFINITE); 
				hbrush = GetStockObject (LTGRAY_BRUSH);
				SelectObject (memdc2, hbrush);
				PatBlt (memdc2, 0,0, maxX,maxY,PATCOPY);
				
				rect();
				ReleaseSemaphore(hSem,1,NULL);
			

				InvalidateRect(hwnd2,NULL,TRUE);
				
				break;
				
			}  
			break;
			
			case WM_DESTROY:
				CloseHandle(hSem);
				PostQuitMessage(0);
				break;
		case WM_CLOSE:
				if (MessageBox(hwnd, "Вы уверены?",
					"Выход",MB_YESNO | MB_ICONQUESTION) == IDYES)
				DestroyWindow(hwnd);
				break;
			default:
				return DefWindowProc (hwnd2, message, wParam, lParam);
	}
	return 0;
}								
//==============================================================  	
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
	double t,d_t=0.01,y,x,v_x,v_y,x_last,y_last,T,U,E,t_l,t_e,step=0;
	double kvx_1,kvx_2,kvx_3,kvx_4;
	double kvy_1,kvy_2,kvy_3,kvy_4,E_e=1;
	double ky_1,ky_2,ky_3,ky_4;
	double kx_1,kx_2,kx_3,kx_4;
	int inval=0;

x=1.0;		;
y=0;
v_x=0;
v_y=1.0;
file=fopen("\\test.txt","w");
R=255;
G=0;
B=0;
	

	rect();

	InvalidateRect(hwnd,NULL,TRUE);	
	InvalidateRect(hwnd2,NULL,TRUE);	
	for (t=0,t_e=0;;t+=d_t,t_e+=d_t)
	{

	kvx_1=f_x(x,y)*d_t;
	kx_1=v_x*d_t;	
	kvy_1=f_y(x,y)*d_t;
	ky_1=v_y*d_t;
	kvx_2=f_x(x+kx_1/2.0,y+ky_1/2.0)*d_t;
	kx_2=(v_x+kvx_1/2.0)*d_t;
	kvy_2=f_y(x+kx_1/2.0,y+ky_1/2.0)*d_t;
	ky_2=(v_y+kvy_1/2.0)*d_t;
	kvx_3=f_x(x+kx_2/2.0,y+ky_2/2.0)*d_t;
	kx_3=(v_x+kvx_2/2.0)*d_t;
	kvy_3=f_y(x+kx_2/2.0,y+ky_2/2.0)*d_t;
	ky_3=(v_y+kvy_2/2.0)*d_t;
	kvx_4=f_x(x+kx_3,y+ky_3)*d_t;
	kx_4=(v_x+kvx_3)*d_t;
	kvy_4=f_y(x+kx_3,y+ky_3)*d_t;
	ky_4=(v_y+kvy_3)*d_t;

	v_x=v_x+(kvx_1+2.0*kvx_2+2.0*kvx_3+kvx_4)/6.0;
	v_y=v_y+(kvy_1+2.0*kvy_2+2.0*kvy_3+kvy_4)/6.0;
	x_last=x;
	y_last=y;
	x=x+(kx_1+2.0*kx_2+2.0*kx_3+kx_4)/6.0;
	y=y+(ky_1+2.0*ky_2+2.0*ky_3+ky_4)/6.0;
	R_=sqrt(x*x+y*y);
	if(R_max<R_)
		R_max=R_;
	T=(v_x*v_x+v_y*v_y)/2.0;    
	U=-W*pow((x*x+y*y),-1./2.0-alfa/2.0);
	E=T+U;
	/*if(U<-3)
		{

	MessageBox(hwnd,"Материалтная точка столкнулась с землей","Внимание !",MB_OK | MB_ICONINFORMATION);
		
		
		
	break;
	}
	*/
	if(U>-0.003)
	{

	MessageBox(hwnd,"Материальная точка ушла на бесконечность","Внимание !",MB_OK | MB_ICONINFORMATION);
		
		
		
	break;
	}

	
	fprintf(file,"%.15f %f %f\n",E,T,R_max);
	//fprintf(file,"%.f %f %.15f\n",t,y,E);
if(!step)
{
	if(E>-0.005)
	{	r_norm=10;		
		E_norm=0.3;
		t_norm=20;
		
	}
	else if((E<=-0.005)&&(E>=-0.04))
	{
		r_norm=40;		
		E_norm=1;
		t_norm=100;
	}

	
	else if((E<=-0.04)&&(E>=-0.1))
	{
		r_norm=15;		
		E_norm=1;
		t_norm=10;
	}
	else if((E<-0.1)&&(E>=-0.2))
	{
		r_norm=5;
		E_norm=1;
		t_norm=10;
	}
	else if((E<-0.2)&&(E>=-0.55))
	{
		r_norm=3;
		E_norm=4;
		t_norm=2;
	}
	else 
	{
		r_norm=2;
		E_norm=4;
		t_norm=1;
	}
time=295/20*t_norm;
energy=200.0*E_norm/100.0;
sprintf(str3,"%.0f",time);
sprintf(str4,"%.0f",time/2);
sprintf(str5,"%.0f",0.0);
sprintf(str6,"%.2f",energy);
sprintf(str7,"%.2f",energy/2);
sprintf(str8,"%.2f",-1*energy);
sprintf(str9,"%.2f",-1*energy/2);
SendMessage(hwnd,WM_COMMAND,ID_CLEAR,0);
step=1;

}
	t_l=20*t_e/t_norm;
	if(chk==TRUE)
		inval=kepler(x,y,t);
	rect1.top=(long)((200-150*y/r_norm)-1);
	rect1.left=(long)((250+150*x/r_norm)-1);
	rect1.right=(long)((250+150*x/r_norm)+1);
	rect1.bottom=(long)((200-150*y/r_norm)+1);
	rect2.top=(long)((200-200*T/E_norm)-1);
	rect2.left=(long)(t_l+35-1);
	rect2.right=(long)(t_l+35+1);
	rect2.bottom=(long)((200-200*T/E_norm)+1);
	rect3.top=(long)((200-200*U/E_norm)-1);
	rect3.left=(long)(t_l+35-1);
	rect3.right=(long)(t_l+35+1);
	rect3.bottom=(long)((200-200*U/E_norm)+1);
	rect4.top=(long)((200-200*E/E_norm)-1);
	rect4.left=(long)(t_l+35-1);
	rect4.right=(long)(t_l+35+1);
	rect4.bottom=(long)((200-200*E/E_norm)+1.0);
	rect6.top=(long)(200.0);
	rect6.left=(long)(250.0+150.0*x/r_norm);
	rect6.right=(long)(250.0);
	rect6.bottom=(long)(200.0-150.0*y/r_norm);

	if(t_l>320)
	{
		t_e=0;
		sprintf(str5,"%.0f",time);
		time+=285/20*t_norm;
		sprintf(str3,"%.0f",time);
		sprintf(str4,"%.0f",time-285/40*t_norm);
SendMessage(hwnd2,WM_COMMAND,ID_CLEAR,0);
		
	}
	WaitForSingleObject(hSem,INFINITE);
	SetPixel(memdc,(int)(250+150*x/r_norm),(int)(200-150*y/r_norm),RGB(R,G,B));
	SetPixel(memdc2,(int)(t_l+35),(int)(200.0-200.0*T/E_norm),RGB(255,0,0));
	SetPixel(memdc2,(int)(t_l+35),(int)(200.0-200.0*U/E_norm),RGB(0,255,0));
	SetPixel(memdc2,(int)(t_l+35),(int)(200.0-200.0*E/E_norm),RGB(0,0,255));
	ReleaseSemaphore(hSem,1,NULL);
	InvalidateRect(hwnd2,&rect2,TRUE);
	InvalidateRect(hwnd2,&rect3,TRUE);
	InvalidateRect(hwnd2,&rect4,TRUE);
	UpdateWindow(hwnd2);
	InvalidateRect(hwnd,&rect1,TRUE);
	if (inval)
		InvalidateRect(hwnd,&rect6,TRUE);
	//Sleep(1);
	UpdateWindow(hwnd);
		
	
	
	}
	
			
		
	return 0;
}
//==============================================================  	
//==============================================================  	

//==============================================================  	


BOOL CALLBACK DialogProc(HWND hDlg,UINT uMsg, WPARAM wParam,LPARAM lParam)
{
	switch (uMsg)
	{
	case (WM_INITDIALOG):
		
		SetDlgItemText(hDlg,ID_W,str1);
		SetDlgItemText(hDlg,ID_ALFA,str2);
		CheckDlgButton(hDlg,ID_KEPLER,chk);
		
		return TRUE;
		
	case WM_COMMAND:
		switch (LOWORD (wParam))
		{
		case IDOK:
			GetDlgItemText(hDlg,ID_W,str1,80);
			W=(double)atof(str1);
			GetDlgItemText(hDlg,ID_ALFA,str2,80);
			alfa=(double)atof(str2);
			chk=IsDlgButtonChecked(hDlg,ID_KEPLER);
			if((alfa>=-0.1)&&(alfa<0.2)&&(W>0)&&(W<2))
			{
			WaitForSingleObject(hSem,INFINITE); 
			TerminateThread(hct,1);
			hct = CreateThread(NULL,0,ThreadProc,NULL,0,&Tid);
			ReleaseSemaphore(hSem,1,NULL);
			EndDialog(hDlg, TRUE);
			}
			else
			{
			MessageBox(hwnd,"Вы ввели недопустимое значение !","Внимание !",MB_OK | MB_ICONASTERISK);


			}
			return TRUE;
			
		case IDCANCEL:
			EndDialog(hDlg, TRUE);
			return TRUE;
		}
 	  }
	return FALSE;
	

}

double f_x(double x,double y)
{
double out;
out=-W*x*(alfa+1.0)*pow((x*x+y*y),(-alfa/2.0-1.5));
return out;
}

double f_y(double x,double y)
{

double out;
out=-W*y*(alfa+1.0)*pow((x*x+y*y),(-alfa/2.0-1.5));
return out;
}

void rect(void)

{
//	SelectObject (memdc, GetStockObject (RGB(255,255,0)));
	SelectObject (memdc, pen_black);
	SelectObject (memdc2, pen_black);
	//Ellibpse(memdc,290,190,310,210);
	MoveToEx(memdc2,35,400,NULL);
	LineTo(memdc2,35,0);
	MoveToEx(memdc2,35,0,NULL);
	LineTo(memdc2,37,10);
	MoveToEx(memdc2,35,0,NULL);
	LineTo(memdc2,33,10);
	TextOut(memdc2,38,180,str5,strlen(str5));
	MoveToEx(memdc2,160+35,195,NULL);
	LineTo(memdc2,160+35,205);
	TextOut(memdc2,160+35,180,str4,strlen(str4));
	TextOut(memdc2,320+35,180,str3,strlen(str3));
	MoveToEx(memdc2,320+35,195,NULL);
	LineTo(memdc2,320+35,205);
	TextOut(memdc2,290,205,"время,Ro/Vo",11);
	MoveToEx(memdc2,5,200,NULL);
	LineTo(memdc2,370,200);
	MoveToEx(memdc2,360,198,NULL);
	LineTo(memdc2,370,200);
	MoveToEx(memdc2,360,202,NULL);
	LineTo(memdc2,370,200);
	TextOut(memdc2,38,5,"Энергия,m*Vo^2",14);
	MoveToEx(memdc2,30,10,NULL);
	LineTo(memdc2,40,10);
	MoveToEx(memdc2,30,100,NULL);
	LineTo(memdc2,40,100);
	MoveToEx(memdc2,30,200+100,NULL);
	LineTo(memdc2,40,200+100);
	MoveToEx(memdc2,30,200+100*2,NULL);
	LineTo(memdc2,40,200+100*2);
	TextOut(memdc2,0,5,str6,strlen(str6));
	TextOut(memdc2,0,100,str7,strlen(str7));
	TextOut(memdc2,0,290,str9,strlen(str8));
	TextOut(memdc2,0,390,str8,strlen(str9));
	TextOut(memdc2,0,180,"0",1);
	MoveToEx(memdc,0,200,NULL);
	LineTo(memdc,500,200);

	TextOut(memdc,390,202,"x/Ro",4);
	TextOut(memdc,(int)(250+150/r_norm),202,"1",1);
	MoveToEx(memdc,(int)(250+150/r_norm),195,NULL);
	LineTo(memdc,(int)(250+150/r_norm),205);
	TextOut(memdc,255,(int)(188-150/r_norm),"1",1);
	MoveToEx(memdc,255,(int)(200-150/r_norm),NULL);
	LineTo(memdc,245,(int)(200-150/r_norm));
	MoveToEx(memdc,250,0,NULL);
	LineTo(memdc,250,400);
	TextOut(memdc,255,0,"y/Ro",4);
	SelectObject (memdc2, pen_blue);
	MoveToEx(memdc2,40,420,NULL);
	LineTo(memdc2,50,420);
	TextOut(memdc2,60,410,"Полная энергия",14);
	SelectObject (memdc2, pen_red);
	MoveToEx(memdc2,40,440,NULL);
	LineTo(memdc2,50,440);
	TextOut(memdc2,60,430,"Кинетическая энергия",20);
	SelectObject (memdc2, pen_green);
	MoveToEx(memdc2,40,460,NULL);
	LineTo(memdc2,50,460);
	TextOut(memdc2,60,450,"Потенциальная энергия",21);
}

int kepler(double x,double y,double t)
{
static cnt;
if (((t/t_norm>1)&&(t/t_norm<1.25))||((t/t_norm>0.25)&&(t/t_norm<0.5))||((t/t_norm>2.25)&&(t/t_norm<2.5)))
{	
	MoveToEx(memdc,250,200,NULL);
	LineTo(memdc,(int)(250+150*x/r_norm),(int)(200-150*y/r_norm));


	cnt=0;
	return 1;

}
return 0;
}
Соседние файлы в папке test
  • #
    06.05.201310.82 Кб39help.GID
  • #
    06.05.201334 б41help.h
  • #
    06.05.20139.09 Кб39HELP.HLP
  • #
    06.05.2013195 б39help.hpj
  • #
    06.05.201346.91 Кб43HELP.rtf
  • #
    06.05.201316.67 Кб41progr.c
  • #
    06.05.20132.35 Кб42resource.h
  • #
    06.05.20134.08 Кб39test.dsp
  • #
    06.05.2013531 б39test.dsw
  • #
    06.05.201358.37 Кб40test.ncb
  • #
    06.05.201349.66 Кб39test.opt