PROFI에서 SUPERPROFI에 대한 모든 질문 - 1. - 페이지 22

 
int start()
  {
//----
   int massa=100,shag=10,kol=4;
   perebor(massa,shag,kol);
//----
   return(0);
  }
//+------------------------------------------------------------------+
void perebor(int massa, int shag, int kol)
   {
   int massiv[];
   ArrayResize(massiv,kol);
   int x=kol;
   int handle = FileOpen("test.csv",FILE_WRITE,' ');
   
   recurs(massa,shag,massiv,x,kol,handle);
   FileClose(handle);
   }
void recurs  (int massa, int shag, int & massiv[], int x, int kol, int handle)
   { 
   int i,y;
   for(i=0;i<=massa;i+=shag)
      {
      if(x-1>0)
         {
         massiv[kol-x]=i;         
         recurs(massa-i,shag,massiv,x-1,kol,handle);                  
         }
      else
         {
         massiv[kol-x]=massa-i;
         for(y=0;y<kol;y++)
            {            
            FileWrite(handle,y," - ",massiv[y]);
            }
         return;   
         }   
      }
   } 
 
코드를 주셔서 감사합니다. 나는 그것이 어떻게 작동하는지 정말로 이해하지 못합니다. :)
 
작업을 재귀적으로 해결해야 한다고 올바르게 썼습니다. 주어진 수의 요소가 있습니다. 요소가 마지막이 아닌 한 함수는 이전 반복의 모든 증분 값만큼 감소된 질량 값으로 자체 입력됩니다. 마지막 요소에서 나머지의 간단한 마지막 계산 및 인쇄.
 

버튼이 보이지 않는 기능에서 내가 놓친 것은 무엇입니까?

이것은 DLL의 함수입니다.

 #define IDB_BUTTON   6500

//------------------------------------------------------------------
int __stdcall CreateBtn( int hWnd)
{
  HWND wnd=(HWND)hWnd; // хендл окна чарта
  HWND pwnd=GetParent(wnd); // получили родителя для создания кнопки
  ShowWindow(wnd, SW_HIDE); // скрыли чарт
  // создали кнопку
  HWND btn=CreateWindow( "Button" , "DLL BUTTON" , WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON, 
                 15 , 15 , 100 , 100 , pwnd, (HMENU)IDB_BUTTON, (HINSTANCE)GetModuleHandle( NULL ), NULL );
  ShowWindow(btn, SW_SHOW); // показали кнопку
  UpdateWindow(btn);

  // нарисовали на ней текст (для проверки что окно кнопки существует)
  HDC hdc = GetDC(btn);
  TextOut(hdc, 0 , 0 , (LPSTR) "String" , 6 );
  ReleaseDC(btn, hdc);
  RECT Rect; 
  GetWindowRect(btn,  &Rect); // получили размер
  return (Rect.right-Rect.left);   // вернули для проверки размера
}

스크립트에서 함수를 호출 할 때 - 모든 것이 완벽하게 진행됩니다.

상단의 차트는 "String "이라는 텍스트를 보여주고, 함수 자체는 버튼 100 의 정확한 너비를 반환합니다.

하지만 버튼이 보이지 않습니다.

--------------

추신
문제를 찾았습니다. UpdateWindow를 수행하는 것을 잊었습니다.
모두에게 감사합니다 :)

 
차트에 표시되는 MT5의 뉴스를 비활성화하는 방법????
 
parkhomenko :
차트에 표시되는 MT5의 뉴스를 비활성화하는 방법????

여기서 더 잘 알다
 

MT4에서 "메모장"을 호출한 경험이 있는 사람이 있습니까?

.txt에 정보를 넣고 손(마우스)으로 여는 것도 지겹지만 계산이 끝나면 메모장으로 ..MT4\experts\files\data.txt 파일을 열 수 있는 코드 조각을 원합니다.

고마워

 
#import "shell32.dll"
   int ShellExecuteA(int hwnd, string oper, string prog, string param, string dir, int show);
#import

ShellExecuteA(0, "Open", "notepad.exe", "data.txt", TerminalPath()+"\\experts\\files", 3);
 

조건에 따라 플러스를 마이너스로 변경하는 방법은 무엇입니까?

더하기 또는 빼기가 정수 int 유형의 값을 가졌다면 int pl = +;)) 유형 을 설정할 수 있을 것입니다.)

아마도 다른 옵션이있을 수 있습니다 ....

 if (......) + ; else -;
 
Martingeil :

조건에 따라 플러스를 마이너스로 변경하는 방법은 무엇입니까?



조건부로 S=1 또는 S=-1을 선택합니다. 그런 다음 필요한 값에 S를 곱합니다.

예를 들면 다음과 같습니다.

 double S( bool b) 
{
   if (b) return ( 1 ); else return (- 1 ); 
}

a= 123 ;
Print (a*S(a< 0 ))
Print (a*S(a== 123 ))