OOP vs. prozedurale Programmierung - Seite 7

 
Реter Konow:
Verstehe, das ist ein unbestreitbares Argument zugunsten von OOP. Dummheit des Kunden und Zeitmangel, um dagegen anzukämpfen, und mangelnde Bereitschaft, den Algorithmus eines anderen zu verbessern). Ja, in diesem Fall brauchen Sie OOP. Ich stimme zu.)
Es scheint mir, dass man auch in diesem Fall auf OOP verzichten kann
 
Реter Konow:
Verstehe, das ist ein unbestreitbares Argument zugunsten von OOP. Dummheit des Kunden und Zeitmangel, um dagegen anzukämpfen, und mangelnde Bereitschaft, den Algorithmus eines anderen zu verbessern). Ja, in diesem Fall brauchen Sie OOP. Ich stimme zu).

Warum ist das dumm? Der normale wissenschaftliche Ansatz besteht darin, alles zur Hand zu haben, was man zum Experimentieren braucht.

 
Реter Konow:
Verstehe, das ist ein unbestreitbares Argument zugunsten von OOP. Dummheit des Kunden und Zeitmangel, um dagegen anzukämpfen, und mangelnde Bereitschaft, den Algorithmus eines anderen zu verbessern). Ja, Sie brauchen in diesem Fall OOP. Ich stimme zu).

Vereinfachen Sie

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
struct str
  {
   int               Tickets;
   string            Symbols;
   int               Types;
   double            Lots;
   double            OpenPrice;
   double            StopLoss;
   double            TakeProfit;
   int               Slippage;
   string            Comments;
   int               Magic;
   datetime          Expiration;
   int               Digitss;
   double            Points;
   double            Profit;
   double            Commission;
   double            Swap;
   double            FullProfit;
  };

str Order[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class COrderMass
  {
protected:
   int               m_slippage;
   string            m_symbol;
   int               m_magic;
public:
   void              SetSymbol(string aSymbol)    {m_symbol   = aSymbol;}
   void              SetSlippage(int aSlippage)   {m_slippage = aSlippage;}
   void              SetMagic(int aMagic)         {m_magic    = aMagic;}

                     COrderMass(void);
                     COrderMass(string aSymbol,int aMagic,int aSlippage);
   void              UpdateOrdersMass();
  };
//+------------------------------------------------------------------+
COrderMass :: COrderMass(string aSymbol,int aMagic,int aSlippage):m_symbol(aSymbol),m_magic(aMagic),m_slippage(aSlippage)
  {

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void COrderMass :: UpdateOrdersMass()
  {
   int z=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderMagicNumber()==m_magic || m_magic==-1)
            if(OrderSymbol()==m_symbol || m_symbol=="")
              {
               ArrayResize(Order,z+1,1000);
               Order[z].Tickets       = OrderTicket();
               Order[z].Symbols       = OrderSymbol();
               Order[z].Types         = OrderType();
               Order[z].Lots          = OrderLots();
               Order[z].OpenPrice     = OrderOpenPrice();
               Order[z].StopLoss      = OrderStopLoss();
               Order[z].TakeProfit    = OrderTakeProfit();
               Order[z].Slippage      = m_slippage;
               Order[z].Comments      = OrderComment();
               Order[z].Magic         = OrderMagicNumber();
               Order[z].Expiration    = OrderExpiration();
               Order[z].Digitss       = (int)SymbolInfoInteger(Order[z].Symbols,SYMBOL_DIGITS);
               Order[z].Points        = SymbolInfoDouble(Order[z].Symbols,SYMBOL_POINT);
               Order[z].Profit        = OrderProfit();
               Order[z].Commission    = OrderCommission();
               Order[z].Swap          = OrderSwap();
               Order[z].FullProfit    = Order[z].Profit+Order[z].Commission+Order[z].Swap;
               z++;
              }
  }
//+------------------------------------------------------------------+
 

Meine Herren Diskutanten, sagen wir es mal so, wenn Sie OOP nicht verstehen, wissen Sie es nicht, dann lassen Sie uns nicht über prozedurale Programmierung vs. OOP streiten, sondern über prozedurale Programmierung mit Zeigern auf Funktionen vs. prozedurale Programmierung ohne Zeiger auf Funktionen.

 
Vladimir Pastushak:

Vereinfachen Sie


bzw. lösen Sie es mit Funktionen

 

OOP ist Fortschritt. Man muss es einfach akzeptieren und anfangen, es zu studieren. Das könnte sich als nützlich erweisen.

Классы в C++ — урок 10
Классы в C++ — урок 10
  • Stimmen: 74
  • 2012.09.16
  • code-live.ru
Весь реальный мир состоит из объектов. Города состоят из районов, в каждом районе есть свои названия улиц, на каждой улице находятся жилые дома, которые также состоят из объектов. Практически любой материальный предмет можно представить в виде совокупности объектов, из которых он состоит. Допустим, что нам нужно написать программу для учета...
 
Vladimir Pastushak:

Vereinfachen Sie


Es ist vielleicht nicht sinnvoll, alle offenen Aufträge mit allen Parametern in ein Array zu laden.

 
Dmitry Fedoseev:

Warum ist das dumm? Der normale wissenschaftliche Ansatz besteht darin, alles zur Hand zu haben, um experimentieren zu können.

Dummheit oder normales Verhalten ist ein subjektives Gefühl. Für mich ist das pure Dummheit. Aber vielleicht liege ich auch nicht ganz richtig. Ich weiß, dass ich auf diese Art und Weise kein Trailing machen würde.
 
Dmitry Fedoseev:

Meine Herren Diskutanten, sagen wir es mal so, wenn Sie OOP nicht verstehen, wissen Sie es nicht, dann lassen Sie uns nicht über prozedurale Programmierung vs. OOP streiten, sondern über prozedurale Programmierung mit Zeigern auf Funktionen vs. prozedurale Programmierung ohne Zeiger auf Funktionen.

Lassen Sie uns darüber streiten, ob strukturierte Programmierung - d.h. die Aufteilung eines Programms in Funktionen - notwendig ist
 
Реter Konow:
Dummheit oder Normalität ist ein subjektives Gefühl. Für mich ist das pure Dummheit. Aber vielleicht liege ich auch nicht ganz richtig. Ich weiß, dass ich auf diese Art und Weise kein Trailing machen würde.

Lesen Sie diesen Beitrag hier und reagieren Sie auf ihnhttps://www.mql5.com/ru/forum/213378/page7#comment_5596988