Optimizasyon Algoritmaları Şampiyonası. - sayfa 2

 
Dmitry Fedoseev :

Şampiyona için sınıfın kütüphaneye yerleştirilmesi gerekecek. Kütüphanede dışarıdan çağrılacak bir fonksiyon yapın, her şey bu fonksiyondadır: sınıfın bir örneğini oluşturmak, fonksiyona aktarılan tüm parametreleri ayarlamak, vb.

İşlevin adı herkes için standarttır. Herkesin kendi kütüphane dosya adları vardır.

Kontrol komut dosyasında. Doğrulayıcı, içe aktarılan kitaplığın adını değiştirir, derler, yürütür.

Yürütülen komut dosyasında sınıflar olmadan daha da basit olmalıdır. Yalnızca standart bir adla *.ex5 kitaplığından bir çağrı ile içe aktarılan işlevler , kitaplıkta katılımcı standart bir çağrı arabirimi oluşturur ve zaten içeride istediğini yapmakta özgürdür. Bu, hem gözden geçirenler hem de izleyiciler için kontrolü kolaylaştıracak, sadece kütüphane dosyasını değiştirmek yeterli olacak ve her seferinde yeniden derlemeye gerek kalmayacak.
 
Реter Konow :
Sizce şampiyonada belirlenen problemin çözümünde OOP olmadan yapmak mümkün mü? Her şeyi kendi yolumda çözmeye alışığım. (Eh, OOP için bir ruhum yok). :)
Eminim yapabilirsin, ama fikrini bilmek ilginç.
 
Реter Konow :
Sizce şampiyonada belirlenen problemin çözümünde OOP olmadan yapmak mümkün mü? Her şeyi kendi yolumda çözmeye alışığım. (Eh, OOP için bir ruhum yok). :)

Yapabilir. Tek bir işlevle (belirli bir adla) derlenmiş bir kitaplık sağlamalısınız. Bu kütüphanede yapacağınız her şey ve nasıl yapacağınız size kalmış (en azından işlevler, en azından OOP).

Bu sadece incelenen fonksiyon nesnede olacaktır, ancak bu zorluklara neden olmamalıdır, bu minimum OOP'dir. Şimdi mql'de işlevlere işaretçiler var gibi görünse de, bununla henüz ilgilenmedim, bakmadım. Andrew karar verdiği gibi.

 
Реter Konow :
Eminim yapabilirsin, ama fikrini bilmek ilginç.
Yapabilir. Bu nedenle sadece import fonksiyonlarla idare edilmesi gerektiğini düşünüyorum. Bu, katılım için gerekli minimum pratik becerilerdir. Ve algoritma kitaplığında, OOP'yi ve onsuz, genel olarak istediğiniz gibi ve kime daha uygun olduğunu kullanabilirsiniz.
 
Dmitry Fedoseev :

Yapabilir. Tek bir işlevle (belirli bir adla) derlenmiş bir kitaplık sağlamalısınız. Bu kütüphanede yapacağınız her şey ve nasıl yapacağınız size kalmış (en azından işlevler, en azından OOP).

Bu sadece incelenen fonksiyon nesnede olacaktır, ancak bu zorluklara neden olmamalıdır, bu minimum OOP'dir. Şimdi mql'de işlevlere işaretçiler var gibi görünse de, bununla henüz ilgilenmedim, bakmadım. Andrew karar verdiği gibi.

İşlev işaretçileri... Belgeleri okuyacağım. Bilmem gereken tek şey, eldeki görevin özü. OOP gerekli değilse kendi yöntemimle çözeceğim. Teşekkür ederim.
 
Ve işlevlere yönelik işaretçilerle ilgili yardımın neresinde, kim bilir?
 

Yarın bir örnek göstermeye çalışacağım. Bugün artık kodda hiçbir şey yazamıyorum.

Tartışmayı teklif edin, sonunda ortak bir basit çözüme ulaşmanız gerekiyor - optimizasyon algoritmasını bağlamak hiç kimse için sorun yaratmamalıdır.

 
Andrey Dik :
Yürütülen komut dosyasında sınıflar olmadan daha da basit olmalıdır. Yalnızca standart bir adla *.ex5 kitaplığından bir çağrı ile içe aktarılan işlevler , kitaplıkta katılımcı standart bir çağrı arabirimi oluşturur ve zaten içeride istediğini yapmakta özgürdür. Bu, hem gözden geçirenler hem de izleyiciler için kontrolü kolaylaştıracak, sadece kütüphane dosyasını değiştirmek yeterli olacak ve her seferinde yeniden derlemeye gerek kalmayacak.

Bir katılımcıya nasıl işlev verilir? O zaman belki de kütüphanesindeki bir kütüphaneden bir fonksiyon almalı. Bana gelince, bir sınıfla daha kolay. Katılımcının işlevde bir parametresi vardır:

CFF*aff

Kullanım daha kolay olamazdı:

aff değeri(...)

Ekstra dosyalarla uğraşmaktan ve içe aktarmaktan çok daha kolay.

 
Andrey Dik :
Yapabilir. Bu nedenle sadece import fonksiyonlarla idare edilmesi gerektiğini düşünüyorum. Bu, katılım için gerekli minimum pratik becerilerdir. Ve algoritma kitaplığında, OOP'yi ve onsuz, genel olarak istediğiniz gibi ve kime daha uygun olduğunu kullanabilirsiniz.
İçe aktarma işlevlerine aşinayım. Bu tanıdık ve açık. Mql'de kütüphaneler yapmadım. sadece dll.dll Ama muhtemelen daha kolay olduğunu düşünüyorum. Yani, hazırlanmaya başlıyorum.
 
Dmitry Fedoseev :

Bir katılımcıya nasıl işlev verilir? O zaman belki de kütüphanesindeki bir kütüphaneden bir fonksiyon almalı. Bana gelince, bir sınıfla daha kolay. Katılımcının işlevde bir parametresi vardır:

CFF*aff

Kullanım daha kolay olamazdı:

aff değeri(...)

Ekstra dosyalarla uğraşmaktan ve içe aktarmaktan çok daha kolay.

*.ex üyesinin kitaplığı, algoritmasına başvurmanın esasen birleşik bir yolu olmalıdır. Algoritma bu standart kütüphaneye dikilebilir veya fonksiyonları aracılığıyla bu kütüphaneden kendi algoritmasını çağırmak serbest olabilir.

Ve katılımcıya hangi işlevi vermeli? Katılımcı ona bir şey verecek mi yoksa verecek mi? Bir kelime oyunu, seni tam olarak anlamadım.