2 sonuç döndüren işlev?

 

Bir işlevden 2 sonuç döndürmem gerekiyor. Bunları ayırabilir ve ihtiyacım olan her sonuç için bir işlev oluşturabilirim, ancak bu çok daha fazla kod ve diğer şeyleri daha karmaşık hale getiriyor. MT4 ile bu mümkün mü?

 

referanstan geçen parametreleri kontrol edin:

int res1 func(int& res2, diğer parametreler...)

 

Temelde işlevi iki kez çalıştırmayı, her seferinde farklı bir sonuç elde etmek için özel bir parametreyi geçirmeyi mi kastediyorsunuz? Sanırım bu işe yarayabilir...

Keşke bunu yapabilsem de:

 return (a,b);
 

hayır,

int x;

int y=işlev(x, diğer parametreler );

x=5 ve y=2 çağrılarından sonra;

int res1 func(int& res2, diğer parametreler...)

{

res2=5

dönüş(3);

}

 

yani y=3

 

Vay canına, yardım etmeye çalıştığın için teşekkür ederim ama burada ne yaptığını anlamıyorum. Bunu yapan ve buraya kopyalayıp yapıştırabileceğiniz, tamamen kodlanmış bir işleviniz var mı?

 

Hala tek bir sonuç döndürüyor gibi görünüyor--"3"

dönüş(3);

?

 

mql4 yardımında referans olarak geçen parametreleri bulun:

Genel olarak yeniden yönlendirme ile geçmek, gerçek bir değişkeni dışarıdan (& kullanarak) işleve ilettiğiniz anlamına gelir ve işlevin içindeki değerini değiştirebilirsiniz ve çağrıdan geri döndüğünüzde bu değer hala orada olacaktır.

bu nedenle int x değeri 0 olarak ayarlayın.

x=5 ayarladığınız fonksiyonun içinde

x=5 işlevinden işlev tarafından ayarlandığı gibi döndüğünüzde, işlevden ikinci sonucunuzu 2 sonuç döndürmeden verdiniz.

fonksiyonlar hiçbir zaman sadece bir tane 2 sonuç döndürmez.

 

Tamam, teşekkürler, irusoh1

 

irusoh1 açıklamasında eksik olan şey, değişkenin Dizi(ler) olması gerektiğidir. Ve bunun yerine dönüş, dizileri doldurmada/değiştirmede rol oynamaz, bunun yerine doğrudan gerektiği gibi değiştirir.

 int Xarray[]; int Yarray[];

void Fun2result( int & Array[], int & Brray[], int pos)
{    Array[pos] = 2 + pos;
     Brray[pos] = 5 + pos;
} 
int start()
{  
    for (i= Bars - 1 ; i>= 0 ; i--)
       Fun2result(Xarray, Yarray, i); 
}

İyi şanlar.

 

dizi olması gerekmez

Neden: