OOP vs prosedürel programlama - sayfa 4

 
Реter Konow :
George Merts'in fotoğrafı.

Eee... İşin özünü pek anlamadım.

Görev, aracı terminalden ayırmaktı. Değişmeyen kod - her iki platformda da derlendi. En önemli görev, yalnızca ticaret sunucusuyla çalışmak için sınıflar yazarak, tüm yazılı TS'leri WealhtLab Developer'a aktarmayı mümkün kılmaktır.

//------------------------------------------------ --


Çözümlerini birkaç kritere göre karşılaştırmak ve her birinin etkinliği hakkında bir sonuca varmak için mevcut görevi sordum. Konuşmayı pratik kısımdan uzaklaştırıyorsunuz. OOP kullanımının etkinliğini tartışırken, bunu pratikte kanıtlayabilmeniz gerekir. Amacımı kanıtlamaya çalışmaya hazırım.

Peki, mevcut görev nedir? umarım onu hatırlarsın


İşlev işaretçileri kullanıyorsanız, OOP olmadan yapabilirsiniz. İşaretçi yoksa, OOP'nin yetişemeyeceğini kendiniz anlamalısınız.

 
Alexey Volchanskiy :

Anladığım kadarıyla programcı değilsin? O zaman 2017.07.05 14:55 GMT 00'de nerede olduğunuzu, kiminle konuştuğunuzu ve ne hakkında konuştuğunuzu hatırlayın))

Kolayca. Evde kendi kendime programım hakkında konuşuyordum)))
 
Dmitry Fedoseev :

İşlev işaretçileri kullanıyorsanız, OOP olmadan yapabilirsiniz. İşaretçi yoksa, OOP'nin yetişemeyeceğini kendiniz anlamalısınız.

Numara. OOP'nin yetişemediğini bana gösterecek belirli bir görev olmasa da hiçbir şekilde öğrenemiyorum. Ne yazık ki. Bunlar sadece kelimeler.


Şu anda programlama pratiğim 4 yıldır. Güvenli bir şekilde 2 ile çarpılabilirler, çünkü her gün saatlerce program yapıyorum. Tüm bu süre boyunca sayısız farklı problemi çözdüm. OOP'u daha önce hiç kullanmadım . Neden gerekli olduğunu anlayamıyorum. Uygulamamda, herhangi bir görev onsuz daha az ve bazen daha verimli bir şekilde çözülür.

 
Реter Konow :
Numara. OOP'nin yetişemediğini bana gösterecek belirli bir görev olmasa da hiçbir şekilde öğrenemiyorum. Ne yazık ki. Bunlar sadece kelimeler.

Algoritmasını harici parametrelere bağlı olarak değiştiren varsayımsal bir program hayal edin, çok sayıda seçenek olabilir. OOP olmadan çözebilirsiniz, ancak bu çok katlı anahtar ne kadar aptalca görünecek. Ayrıca, olası seçeneklerin sayısındaki artışla performansın azalacağı burada açıkça görülmektedir. Ayrıca, başlatma sırasında OOP'nin oluşturulduğu ve daha sonra çalışma sürecinde fazladan şube olmadığı açıktır, yani. seçenekleri artırmak performansta bir düşüşe yol açmaz.

 

Yapılandırılmış programlamanın ayırt edici bir özelliği, programların kod bloklarına bölünmesidir.
belirli bir görevi yerine getirmek. Bu durumda, yapısal birimler fonksiyonlardır.
ve modüller (ayrı dosyalara yerleştirilebilir).
Daha modern olanı nesne yönelimli programlamadır (OOP) .
OOP kavramı daha çok verilerin organizasyonu ile ilgilidir. OOP, bir programcının hayatını kolaylaştırır.
OOP'deki anahtar kavramlar nesneler ve sınıflardır.
Sınıflar, işlevlerin eklendiği yapılardır. Ve nesneler, yapısal değişkenler veya sınıf örnekleridir.

Yapılandırılmış programlama ilk adımdır. Ustalaştıktan sonra, programcı bir avantaj elde eder. OOP, aşağıdaki avantaja sahip bir sonraki adımdır

Классы и объекты в C++
  • gamesmaker.ru
Наконец-то мы добрались до самой важной темы во вступительном курсе. Сегодня мы будем говорить о классах и объектах. Выпуск небольшой и не сложный. Что есть хорошо. Класс - не что иное, как структура, к которой добавили функции. А объект - это структурная переменная. Данный материал будет более понятным, если вы хорошо освоились со структурами...
 
Реter Konow :
Belirli bir sorunu çözelim ve karşılaştıralım.

Diyelim ki bu kadar basit bir görev (detaylı anlatmak için çok yazmanız gerekiyor).

Her şey OnTick()'te olur. Bir durumu kontrol edelim ve bir sipariş açalım. Koşul önemli değil, diyelim ki biraz maks. veya min.

Doğal olarak, robot bir tür çizelge üzerinde durur ve bu sembol için alıntılar alır. Sadece bir OnTick işlevinin olmadığı, diğerleri olduğu açıktır: OnTrade, OnTimer, kendi işlevleri vb.

Bu nedenle, bu fonksiyonların dışında ortak olan tüm değişkenleri kodun başında bildirmek gerekir. Örneğin, sembol adı, talep, teklif, yayılma, alıntı karakter sayısı vb. Onlarca olacak.

Bu robot yalnızca bir sembol üzerinde işlem yapacak, yani. nerede duruyor. Diyelim ki böyle 20 çizelge var ve aynı robotu aynı anda 20 çiftin tümü için işlem yapması için hepsine yüklüyoruz.

Ancak bu, bazılarının Market'te belirttiği gibi çok para birimine sahip bir robot değil.


Burada onu çoklu para birimine dönüştürmek gerekiyor. Onlar. herhangi bir çizelgeye koyarız (sadece 1 çizelgede) ve 20 çift için fırsatlar açar. Yani, test cihazında tekli modda çalıştırıyoruz ve Piyasa İzleme'deki çiftlerle işlem görüyor.

OOP olmadan nasıl yapacağınız aşağıda açıklanmıştır. Tüm ortak değişkenleri 20 elemanlı dizilere dönüştürecek misiniz?

Peki ya tüm çiftler için aynı anda çağrılacak fonksiyonlar?

Burada ve OOP olmadan yapmak imkansız. :)


Not: Rusça eğitimi almadığımı ve bu nedenle uzun süre yazdığımı ve birkaç sayfa okumaya zamanım olmadığını belirtmek isterim.

 
Dmitry Fedoseev :

İşlev işaretçileri kullanıyorsanız, OOP olmadan yapabilirsiniz. İşaretçi yoksa, OOP'nin yetişemeyeceğini kendiniz anlamalısınız.


Aynı fikirde olmamak. Bir zamanlar dijital televizyon için programlar yazdım, derleyici C ++ idi, ancak yeterli bellek olmadığı için C içinde kullandılar. İşlev işaretçileri çok yaygın olarak kullanıldı, ancak bu OOP'nin yanında değil.

 
Petros Shatakhtsyan :

...

OOP olmadan nasıl yapacağınız aşağıda açıklanmıştır.

...

Buradaki soru "nasıl" değil, "neden"? Terminalde zaten uygulanmış bir şeyi neden kodlayın - sadece gerekli sayıda grafiği açmanız ve bunları uzmana göre asmanız gerekir. Ek olarak, farklı semboller ve zaman dilimlerinde, büyük olasılıkla parametreler farklı olmalıdır.

 
Alexey Volchanskiy :

Aynı fikirde olmamak. Bir zamanlar dijital televizyon için programlar yazdım, derleyici C ++ idi, ancak yeterli bellek olmadığı için C içinde kullandılar. İşlev işaretçileri çok yaygın olarak kullanıldı, ancak bu OOP'nin yanında değil.


Kolaylık açısından yanında durmuyor, ancak performans yetenekleri açısından sadece pointer ile idare edebilirsiniz.

Ve kolaylık göreceli bir kavramdır.

 
Dmitry Fedoseev :

Algoritmasını harici parametrelere bağlı olarak değiştiren varsayımsal bir program hayal edin, çok sayıda seçenek olabilir. OOP olmadan çözebilirsiniz, ancak bu çok katlı anahtar ne kadar aptalca görünecek. Ayrıca, olası seçeneklerin sayısındaki artışla performansın azalacağı burada açıkça görülmektedir. Ayrıca, başlatma sırasında OOP'nin oluşturulduğu ve daha sonra çalışma sürecinde gereksiz dalların olmadığı açıktır, yani. seçenekleri artırmak performansta bir düşüşe yol açmaz.

Belirli bir göreve öncülük etmek arzu edilir. Bu açıklama çok net değil. Uygulamamda, algoritma değişen harici parametrelerden değişmez. Bu parametrelerin herhangi bir değeri için önceden evrenseldir. Yani ne demek istediğin çok açık değil. Belirli bir örnekle açıklayın.