MT sürümlerinin arşivi. - sayfa 6

 
Alexey Viktorov :

Ama bu kod parçasına bakılırsa

bu işlevden döndürülen değer bir şekilde ele alınmalıdır. Diğer kodda buna bir tepki yoksa, "eksi birçok dokuz" döndürmenin faydası nedir?

Eksi büyük bir değer döndürmek, bu geçişi sonuçların en altına yerleştirecektir. Prensipte test yoksa (benim durumumda ilk çubuğun açılışında test durduruldu), o zaman hesaplanacak hiçbir şey yok, prensipte hesaplama için veri yok. Bu nedenle, tester_stop ayarlandığında, kasıtlı olarak büyük bir negatif sayı döndürülür.

Ek olarak, bu sonucu kodun hiçbir yerinde kullanmıyorum, belki de kullanılabilir, ancak şu anda nasıl olduğunu bilmiyorum ve buna ihtiyacım yok.

 
Сергей Таболин :

Eksi büyük bir değer döndürmek, bu geçişi sonuçların en altına yerleştirecektir. Prensipte test yoksa (benim durumumda ilk çubuğun açılışında test durduruldu), o zaman hesaplanacak hiçbir şey yok, prensipte hesaplama için veri yok. Bu nedenle, tester_stop ayarlandığında, kasıtlı olarak büyük bir negatif sayı döndürülür.

Ek olarak, bu sonucu kodun hiçbir yerinde kullanmıyorum, belki de kullanılabilir, ancak nasıl - şu anda bilmiyorum ve buna ihtiyacım yok .

Bu, genel olarak sorunları çözmek için ve özellikle programlama sorunlarını çözmek için çok kötü bir yaklaşımdır.

Nedense genel olarak testlere inanmıyorum ve hatta optimizasyona daha çok inanıyorum. Bu nedenle, algoritmanın organizasyonu hakkında özel bir tavsiyede bulunamam, ancak sonuçların sıralanması ve işlenmesi için algoritmanızın ihlal edildiğini görüyorum.

TesterStop() öğesini çağırmadan önce en az bir geçiş olması gerekiyorsa, lütfen bu geçişi sağlayacak kadar nazik olun. Sorun nedir? Bilmediğim ve gerekmediğimi? Yani doğru değil.

 
Сергей Таболин :

Her şeyi anlıyorum ve koltuk değneğine ihtiyacım yok. Ve burada bir koltuk değneği aramalıydım, ne için okudum .

Belki. Ama bundan kimsenin şikayet ettiğini hatırlamıyorum.

İstek Listeniz, gereksiz kodun zilleri ve ıslıkları olmadan çok daha kolay organize edilebilir.

INIT_PARAMETERS_INCORRECT horozunu döndürmek yerine bazı global değişkenler ExtTesterStop=true deyin

OnTick'in ilk satırına bir çek koyun

 void OnTick ()
  {
   if (ExtTesterStop)
     {
       TesterStop ();
       return ;
     }
...
 
Alexey Viktorov :

Bu, genel olarak sorunları çözmek için ve özellikle programlama sorunlarını çözmek için çok kötü bir yaklaşımdır.

Nedense genel olarak testlere inanmıyorum ve hatta optimizasyona daha çok inanıyorum. Bu nedenle, algoritmanın organizasyonu hakkında özel bir tavsiyede bulunamam, ancak sonuçların sıralanması ve işlenmesi için algoritmanızın ihlal edildiğini görüyorum.

TesterStop()'u çağırmadan önce en az bir geçiş olması gerekiyorsa, lütfen bu geçişi sağlayın. Sorun nedir? Bilmediğim ve gerekmediğimi? Yani doğru değil.

Alexey, alınma ama neden TesterStop() kullandığımı anlamadın. Üstelik bunu yapmayı denemedin bile. Neden ihtiyaç duyduğumu okumadığınız için kısaca açıklayacağım.

Bunu, gereksiz test geçişlerini ayıklamak ve optimizasyonu hızlandırmak için kullanıyorum. Özellikle genetik. Bu nedenle, bu durumda, bir geçişe bile ihtiyacım yok! Bu, INIT_PARAMETERS_INCORRECT için bir yedekti, çünkü OnInit()'te çok sayıda olması nedeniyle bu, genetikte bir düşüşe neden oldu.

İnanmak ya da inanmamak, optimizasyonu kullanmak ya da kullanmamak zaten kendi işiniz, bu sorunu çözmekle alakası yok)))

Slava :

İstek Listeniz, gereksiz kodun zilleri ve ıslıkları olmadan çok daha kolay organize edilebilir. Katılıyorum - aynı tırmık, yalnızca profilde)))

INIT_PARAMETERS_INCORRECT horozunu döndürmek yerine bazı global değişkenler ExtTesterStop=true deyin

OnTick'in ilk satırına bir çek koyun

Katılıyorum, kod biraz daha basit görünecek, ama!

Bunun özü değişmez. Başlangıç aşamasında geçişin iptali gerçekleşmez. Aynı kod OnInit() ve OnTick() içinde olacaktır. Ne kazanıyoruz?

TesterStop() yine de yemin edecek

 TesterStop () called on 0 % of testing interval

ve MT'nin bu versiyonunda, kontrol hala OnTester()'a aktarılacaktır. Katılıyorum - aynı tırmık, yalnızca profilde)))

TesterStopImmediately() gibi alternatif bir fonksiyon olsaydı harika olurdu. Kontrolün OnTester()'e değil, doğrudan OnDeinit(const int Reason)'a aktarılmasıyla testi hemen sonlandırmanın gerekli olduğu durumlar için...

Ama bu, görünüşe göre, hayatımızda öngörülmedi ...

 
Сергей Таболин :

Alexey, alınma ama neden TesterStop() kullandığımı anlamadın. Üstelik bunu yapmayı denemedin bile. Neden ihtiyaç duyduğumu okumadığınız için kısaca açıklayacağım.

Bunu, gereksiz test geçişlerini ayıklamak ve optimizasyonu hızlandırmak için kullanıyorum. Özellikle genetik. Bu nedenle, bu durumda, bir geçişe bile ihtiyacım yok! Bu, INIT_PARAMETERS_INCORRECT için bir yedekti, çünkü OnInit()'te çok sayıda olması nedeniyle bu, genetikte bir düşüşe neden oldu.

İnanmak ya da inanmamak, optimizasyonu kullanmak ya da kullanmamak zaten kendi işiniz, bu sorunu çözmekle alakası yok)))

Kendimi tam olarak ifade edemedim ve siz beni yanlış anladınız. Ama bunun artık bir önemi yok.

 
Alexey Viktorov :

Kendimi tam olarak ifade edemedim ve siz beni yanlış anladınız. Ama artık önemli değil.

Önemli. Genel olarak tüm sorunların bir yanlış anlaşılmanın sonucu olduğuna inanıyorum. Ama sonuçta, bir kişiye konuşmak, müzakere etmek için dil verilir))) Doğal olarak, herkes kendini haklı görür, ancak bu konudaki inat, ... aptallığın bir işaretidir. Bu yüzden lütfen ne demek istediğinizi açıklayın. Şahsen, öğrenmeye hazırım

 
Сергей Таболин :

Önemli. Genel olarak tüm sorunların bir yanlış anlamanın sonucu olduğuna inanıyorum. Ama sonuçta, bir kişiye konuşmak, müzakere etmek için dil verilir))) Doğal olarak, herkes kendini haklı görür, ancak bu konudaki inat, ... aptallığın bir işaretidir. Bu yüzden lütfen ne demek istediğinizi açıklayın. Şahsen, öğrenmeye hazırım

Aptallık belirtileri olan bir kişiden ne öğrenebilirsiniz? Yoksa kendinizden mi bahsediyorsunuz? Bunun nedeni, dinlenmeniz ve ne istediğinizi anlamaya çalışmak için minimal bir kod yapmak istememenizdir. Ve böylece optimizasyon yapmadığımı zaten söyledim, bu yüzden test cihazıyla ilgili olayları hiç kullanmadım. Önerilerim yalnızca dar bir yönle ilgiliydi. Slava tavsiyemi tekrarladı. Görünüşe göre, beklediğini almadığın için tam olarak bu şekilde kullanmamışsın. Bunlar sadece konuyla ilgili bilgi eksikliğinden kaynaklanan tahminlerdir.

 
Alexey Viktorov :

Aptallık belirtileri olan bir kişiden ne öğrenebilirsiniz? Yoksa kendinizden mi bahsediyorsunuz? Bunun nedeni, dinlenmeniz ve ne istediğinizi anlamaya çalışmak için minimal bir kod yapmak istememenizdir. Dolayısıyla optimizasyon yapmadığımı zaten söyledim, bu yüzden test cihazıyla ilgili olayları hiç kullanmadım. Önerilerim yalnızca dar bir yönle ilgiliydi. Slava tavsiyemi tekrarladı. Görünüşe göre, beklediğini almadığın için tam olarak bu şekilde kullanmamışsın. Bunlar sadece konuyla ilgili bilgi eksikliğinden kaynaklanan tahminlerdir.

Sana yazdıklarımı da okuyor musun?

" Aleksey kusura bakmayın ama neden TesterStop() kullandığımı tamamen yanlış anladınız. Üstelik denemediniz bile. Neden ihtiyacım olduğunu okumadığınız için kısaca açıklayayım.

Bunu, gereksiz test geçişlerini ayıklamak ve optimizasyonu hızlandırmak için kullanıyorum. Özellikle genetik. Bu nedenle, bu durumda, bir geçişe bile ihtiyacım yok! Bu, INIT_PARAMETERS_INCORRECT için bir yedekti, çünkü OnInit()'te çok sayıda olması nedeniyle bu, genetikte bir düşüşe neden oldu ... "

Bu konuda tam olarak neyi anlamıyorsunuz?

not Bu arada, senin aksine, Slava neyin tehlikede olduğunu çok iyi anlıyor. ))
 
Сергей Таболин :

Sana yazdıklarımı da okuyor musun?

" Aleksey kusura bakmayın ama neden TesterStop() kullandığımı tamamen yanlış anladınız. Üstelik denemediniz bile. Neden ihtiyacım olduğunu okumadığınız için kısaca açıklayayım.

Bunu, gereksiz test geçişlerini ayıklamak ve optimizasyonu hızlandırmak için kullanıyorum. Özellikle genetik. Bu nedenle, bu durumda, bir geçişe bile ihtiyacım yok! Bu, INIT_PARAMETERS_INCORRECT için bir yedekti, çünkü OnInit()'te çok sayıda olması nedeniyle bu, genetikte bir düşüşe neden oldu ... "

Bu konuda tam olarak neyi anlamıyorsunuz?

not Bu arada, senin aksine, Slava neyin tehlikede olduğunu çok iyi anlıyor. ))

Sergey, TesterStop() testi iptal etmek için kullanılır. Ve bu durumda çıktının ne olması gerektiği programcıya kalmış. Ve kesinlikle ne almanız gerektiğini bilmeme gerek yok, asıl şey testi durdurmak. Diğer her şey hesaplama algoritmasına konur.

Elde edilen değerlerin bazı ara sürümlerinden memnun değilseniz, testi durdurur ve el fenerinden icat edilen sonucu döndürürsünüz. Bunu yapamıyorsanız, algoritma bir yerde yanlış oluşturulmuştur. Sonuçta, size testi nasıl durduracağınız defalarca söylendi.

 
Alexey Viktorov :

Sergey, TesterStop() testi iptal etmek için kullanılır. Ve bu durumda çıktının ne olması gerektiği programcıya kalmış. Ve kesinlikle ne almanız gerektiğini bilmeme gerek yok, asıl şey testi durdurmak. Diğer her şey hesaplama algoritmasına konur.

Elde edilen değerlerin bazı ara sürümlerinden memnun değilseniz, testi durdurur ve el fenerinden icat edilen sonucu döndürürsünüz. Bunu yapamıyorsanız, algoritma bir yerde yanlış oluşturulmuştur. Sonuçta, size testi nasıl durduracağınız defalarca söylendi.

Sana bir kova çivi almayı teklif edersem, büyük olasılıkla onu nereden alacağım ve ne kadara mal olacağıyla hiç ilgilenmeyeceksin. Bu nedenle, cevabınız herhangi bir şey olabilir: hayır, buna ihtiyacım yok, istemiyorum, ne halt, peki, vb. Asıl mesele, sizin ve benim için açık olacağıdır. Böyle bir durumda cevabım, kişisel olarak benim için kesinlikle açık olan "bir el fenerinden icat edilmiş bir sonuç" dır.

Bu açıklama sırasında açıklığa kavuşan her şeyden önce, yeni derlemeden önce TesterStop() ve ExpertRemove(), kontrolü doğrudan OnDeinit()'e aktardı ve yeni derlemede, kontrolü doğrudan OnTester()'a (varsa) aktardılar. ). Ve ilk durumda test sonucu SIFIR ise, şimdi OnTester()'da bu olaylara dayalı bir çıktı olup olmadığını kontrol etmeniz (bu kontrolü kendiniz düzenlemeniz gerekir) ve kendi çıktınızı yapmanız gerekir. Ve bu durumda (0 veya -999999999) hangi sonucun belirleneceği zaten bir tercih meselesidir.

Neden: