Muito obrigado, Alexander. Sua correção fez o código funcionar. Para ser sincero, percebi que eu mesmo estava confuso em três pinheiros. Preciso estudar novamente a passagem de argumentos para uma função. Aparentemente, estou totalmente equivocado aqui.
Saudações, Vladimir.
A saída de variáveis para a área global não é a passagem de argumentos para uma função...
A saída de variáveis para o escopo global não está passando argumentos para uma função...
Coloque & antes dos nomes das variáveis na entrada da função e todos os problemas serão resolvidos.
Oi Alexey, então esse é o problema!!! Muito obrigado, querido! Minha cabeça estava toda quebrada, achei que faltava mais alguma coisa! Acontece que os cérebros não são suficientes!!!! ))
Alexey Viktorov #: Coloque & na frente dos nomes das variáveis na entrada da função e todos os problemas serão resolvidos
Encontrei e assisti ao vídeo sobre funções com referências. A partir dessa videoaula, percebi que não precisava apenas de uma aula de MQL5 para inici antes, mas de uma aula de MQL5 para iniciantes especialmente dotados de estupidez. Em resumo, eu não entendi nada. Em geral, você precisa digerir todas as informações que recebeu e assistir novamente a este vídeo cinco ou até seis vezes. Mas haverá algo para fazer em meu tempo livre! ))
Encontrei e assisti a um vídeo sobre funções com links. A partir dessa videoaula, percebi que não precisava apenas de uma aula de MQL5para iniciantes, mas de uma aula de MQL5 para iniciantes que são especialmente dotados de estupidez. Em resumo, eu não entendi nada. Em geral, você precisa digerir todas as informações que recebeu e assistir novamente a este vídeo cinco ou até seis vezes. Mas terei algo para fazer em meu tempo livre! ))
Saudações, Vladimir.
Não perca tempo, mesmo que você não tenha onde gastá-lo. O nome do "professor" fala por si só, um diletante é um diletante.
Esse vídeo só é útil para você por 3 minutos. E o resto é apenas distração e você perde informações úteis.
É melhor ler a documentação com atenção, fazer experiências com exemplos e você entenderá tudo.
Não perca tempo, mesmo que não haja lugar para desperdiçá-lo. O nome do "professor" por si só já fala por si só: um amador é um amador.
Há apenas 3 minutos de informações úteis nesse vídeo. O resto é apenas uma distração e você perde informações úteis.
É melhor ler a documentação com atenção, fazer experiências com exemplos e você entenderá tudo.
Obrigado, Alexey, pensei que a videoaula seria mais informativa e útil para mim, mas acabou sendo exatamente o oposto. Quanto ao Manual de Referência MQL5, a seção de Transmissão de Parâmetros, eu o li da mesma forma, mas acabou sendo como o famoso ditado: "Eu olho no livro, vejo a figura!". Não entendi nada. Em resumo, é claro que vou reler e experimentar mais algumas vezes, não tenho muita escolha. ))
Depois de assistir ao vídeo tutorial e ler sobre a passagem de argumentos por referência no Manual de Referência da MQL5, parece estar mais ou menos claro. No entanto, depois de analisar o código apresentado no Manual de Referência, um fragmento ainda causou perplexidade, embora, na minha opinião, não tenha nada a ver com a passagem de argumentos por referência:
//+------------------------------------------------------------------+//| передача параметров по ссылке |//+------------------------------------------------------------------+double SecondMethod(int &i,int &j)
{
double res;
//---
i*=2;
j/=2;
res=i+j;
//---return(res);
}
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---.int a=14,b=8;
Print("a и b перед вызовом:",a," ",b);
double d= SecondMethod(a,b);
Print("a и b после вызова:",a," ",b);
}
//+------------------------------------------------------------------+//--- результат выполнения скрипта// a и b перед вызовом: 14 8// a и b после вызова: 28 4
A esse respeito, tenho uma pergunta para os especialistas em programação MQL5 - por que diabos eles "enfiaram" a função SecondMethod(a,b) na variável d em OnStart( )? Isso é um pré-requisito para a operação correta do script ou há algo que eu não entendi bem novamente?
Há muitas matrizes com tempo, e o tempo de alguns elementos nessas matrizes pode coincidir.
Preciso reuni-los em uma única matriz sem repetir os valores de tempo.
Fiz isso desta forma:
struct str1
{
int time[];// в массиве порядка 10 тыс элементов
};
struct str2
{
str1 arr[];// в массиве порядка 1 тыс элементов
};
str2 m_name[]; // в массиве порядка 100 элементовint ArrFull[]; // массив в который нужно собрать отсортированное время без повторений//+------------------------------------------------------------------+voidOnStart()
{
// считаем что m_name[] ранее уже заполнилиint tempArr[];// объявляю дополнительный массивint size1 = ArraySize(m_name);
for(int i = 0; i < size1; i++)
{
int size2 = ArraySize(m_name[i].arr);
for(int j = 0; j < size2; j++)
{
// копирую в дополнительный массив все массивы времени из структурArrayInsert(tempArr, m_name[i].arr[j].time, ArraySize(tempArr));
}
}
// сортирую дополнительный массивArraySort(tempArr);
int size = ArraySize(tempArr);
ArrayResize(ArrFull, size);
ArrFull[0] = tempArr[0];
int j = 1;
// копирую не повторяющиеся элементы из дополнительного массива в массив с которым в дальнейшем буду работатьfor(int i = 1; i < size; i++)
if(ArrFull[j - 1] != tempArr[i])
{
ArrFull[j] = tempArr[i];
j++;
}
size = ArrayResize(ArrFull, j);
// дальше продолжение. много много букв
}
//+------------------------------------------------------------------+
Mas o código acabou ficando muito lento. Ele precisa ser mais rápido. Como fazer ????
MrBrooklin argumentos por referência no Manual de Referência da MQL5, parece estar mais ou menos claro. No entanto, depois de analisar o código apresentado no Manual de Referência, um fragmento ainda causou alguma confusão, embora, na minha opinião, não tenha nada a ver com a passagem de argumentos por referência:
A esse respeito, tenho uma pergunta para os especialistas em programação MQL5 - por que diabos eles "enfiaram" a função SecondMethod(a,b) na variável d em OnStart( )? Isso é um pré-requisito para a operação correta do script e eu entendi algo errado novamente?
Atenciosamente, Vladimir.
A variável d recebe o resultado da execução da função
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Muito obrigado, Alexander. Sua correção fez o código funcionar. Para ser sincero, percebi que eu mesmo estava confuso em três pinheiros. Preciso estudar novamente a passagem de argumentos para uma função. Aparentemente, estou totalmente equivocado aqui.
Saudações, Vladimir.
A saída de variáveis para a área global não é a passagem de argumentos para uma função...
Coloque & antes dos nomes das variáveis na entrada da função e todos os problemas serão resolvidos.
A saída de variáveis para o escopo global não está passando argumentos para uma função...
Coloque & antes dos nomes das variáveis na entrada da função e todos os problemas serão resolvidos.
Oi Alexey, então esse é o problema!!! Muito obrigado, querido! Minha cabeça estava toda quebrada, achei que faltava mais alguma coisa! Acontece que os cérebros não são suficientes!!!! ))
Abraços, Vladimir.
Coloque & na frente dos nomes das variáveis na entrada da função e todos os problemas serão resolvidos
Encontrei e assisti ao vídeo sobre funções com referências. A partir dessa videoaula, percebi que não precisava apenas de uma aula de MQL5 para inici antes, mas de uma aula de MQL5 para iniciantes especialmente dotados de estupidez. Em resumo, eu não entendi nada. Em geral, você precisa digerir todas as informações que recebeu e assistir novamente a este vídeo cinco ou até seis vezes. Mas haverá algo para fazer em meu tempo livre! ))
Saudações, Vladimir.
Encontrei e assisti a um vídeo sobre funções com links. A partir dessa videoaula, percebi que não precisava apenas de uma aula de MQL5 para iniciantes, mas de uma aula de MQL5 para iniciantes que são especialmente dotados de estupidez. Em resumo, eu não entendi nada. Em geral, você precisa digerir todas as informações que recebeu e assistir novamente a este vídeo cinco ou até seis vezes. Mas terei algo para fazer em meu tempo livre! ))
Saudações, Vladimir.
Não perca tempo, mesmo que você não tenha onde gastá-lo. O nome do "professor" fala por si só, um diletante é um diletante.
Esse vídeo só é útil para você por 3 minutos. E o resto é apenas distração e você perde informações úteis.
É melhor ler a documentação com atenção, fazer experiências com exemplos e você entenderá tudo.
Não perca tempo, mesmo que não haja lugar para desperdiçá-lo. O nome do "professor" por si só já fala por si só: um amador é um amador.
Há apenas 3 minutos de informações úteis nesse vídeo. O resto é apenas uma distração e você perde informações úteis.
É melhor ler a documentação com atenção, fazer experiências com exemplos e você entenderá tudo.
Obrigado, Alexey, pensei que a videoaula seria mais informativa e útil para mim, mas acabou sendo exatamente o oposto. Quanto ao Manual de Referência MQL5, a seção de Transmissão de Parâmetros, eu o li da mesma forma, mas acabou sendo como o famoso ditado: "Eu olho no livro, vejo a figura!". Não entendi nada. Em resumo, é claro que vou reler e experimentar mais algumas vezes, não tenho muita escolha. ))
Saudações, Vladimir.
Depois de assistir ao vídeo tutorial e ler sobre a passagem de argumentos por referência no Manual de Referência da MQL5, parece estar mais ou menos claro. No entanto, depois de analisar o código apresentado no Manual de Referência, um fragmento ainda causou perplexidade, embora, na minha opinião, não tenha nada a ver com a passagem de argumentos por referência:
A esse respeito, tenho uma pergunta para os especialistas em programação MQL5 - por que diabos eles "enfiaram" a função SecondMethod(a,b ) na variável d em OnStart( )? Isso é um pré-requisito para a operação correta do script ou há algo que eu não entendi bem novamente?
Atenciosamente, Vladimir.
Por favor, me ajude.
Há muitas matrizes com tempo, e o tempo de alguns elementos nessas matrizes pode coincidir.
Preciso reuni-los em uma única matriz sem repetir os valores de tempo.
Fiz isso desta forma:
Mas o código acabou ficando muito lento. Ele precisa ser mais rápido. Como fazer ????
A esse respeito, tenho uma pergunta para os especialistas em programação MQL5 - por que diabos eles "enfiaram" a função SecondMethod(a,b ) na variável d em OnStart( )? Isso é um pré-requisito para a operação correta do script e eu entendi algo errado novamente?
Atenciosamente, Vladimir.
A variável d recebe o resultado da execução da função
Obrigado, Artyom, por sua resposta! Éimpossível usar apenas a função SecondMethod(a,b) sem atribuição?
Atenciosamente, Vladimir.
Obrigado, Artyom, por sua resposta! Éimpossível usar apenas a função SecondMethod(a,b) sem atribuição?
Atenciosamente, Vladimir.