Unidimensional ou bidimensional. As tarefas têm respostas diferentes porque você não fará o mesmo código para ambos. Ou melhor, você pode fazê-lo, mas não será capaz de chamá-lo sem saber antecipadamente o número de medidas na matriz. Como você não é um programador, a julgar por suas palavras, eu sugiro que você aceite com fé
Se olharmos para o problema desta forma, então as matrizes multidimensionais não devem ser declaradas de forma alguma - ao invés disso, devem ser usadas matrizes de estruturas com campos diferentes. Mas a questão é diferente - o que podemos fazer com uma série de dimensionalidades arbitrárias (desconhecidas antecipadamente) que já existem como um dado
Você está num impasse então :( . Por que você não gosta da variante com várias funções?
Aliaksandr Hryshyn: O que não deve ser gostado na opção de múltiplas funções?
Ao ter que duplicar o mesmo código (o mesmo de que você está falando), em funções com nomes diferentes para cada dimensionalidade diferente da matriz de parâmetros
Dmitry Fedoseev: As matrizes não têm mais de 4 dimensões aqui. Assim, você pode escrever 4 funções diferentes e pronto.
O problema não está em escrever 4 funções, mas em não poder usar uma para qualquer matriz, como é o caso de qualquer outro tipo. É por isso que é melhor evitar o uso de matrizes multidimensionais (tipo embutido []) em µl
a propósito, o nome datilografia, disponível em tempo de compilação, não dirá apenas sobre o número de medições, mas até mesmo sobre o fato de que o parâmetro é uma matriz. embora possa ser entendido por sizeof==52. mas novamente, ele não dirá nada sobre o número de medições. portanto, também não vejo nenhuma solução conveniente via #define. A menos que todo o código de função, usando apenas chamadas embutidas como ArrayCopy e ArrayResize, para as quais diferentes dimensões de matriz podem ser passadas, poderia ser empurrado para definir
Embora eu não me lembre exatamente, mas parece que a segunda e as próximas medidas não podem ser dinâmicas. De forma correspondente, pode haver erros na compilação de tal código. Aqui, a variável tamanho_segundo_dimensão pode ser usada como um tamanho definido da segunda dimensão e permitir sobrecarregar a função. Além disso, evita a necessidade de definir a dimensionalidade através do ArrayRange()
Embora eu não me lembre exatamente, parece que a segunda e as próximas medidas não podem ser dinâmicas. Correspondentemente, pode haver erros na compilação de tal código. Aqui a variável tamanho_segundo_dimensão pode ser usada como o tamanho predefinido da segunda dimensão e permite sobrecarregar a função. Além disso, evita a necessidade de definir a dimensionalidade através do ArrayRange()
Ele irá compilar, mas não é interessante, e o que dizer de z[][][]?
A segunda e acima não pode ser dinâmica, mas a função não precisa ser personalizada para um determinado tamanho da segunda dimensão, ela pode ser descoberta através do ArrayRange().
Se o número de medidas não permitir sobrecarregar a função, o tamanho da segunda e outras medidas certamente não o farão. Além disso, não é nada interessante, já que não é nada universal. Seria mais fácil escrever funções com nomes diferentes.
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.
Tarefa: remover um elemento de uma matriz.
Tarefa: remover um elemento de uma matriz.
Unidimensional ou bidimensional. As tarefas têm respostas diferentes porque você não fará o mesmo código para ambos. Ou melhor, você pode fazê-lo, mas não será capaz de chamá-lo sem saber antecipadamente o número de medidas na matriz. Como você não é um programador, a julgar por suas palavras, eu sugiro que você aceite com fé
As matrizes não podem ter mais do que 4 dimensões aqui. Assim, você pode escrever 4 funções diferentes e pronto.
Você não pode construir um de 8 dimensões?
Se olharmos para o problema desta forma, então as matrizes multidimensionais não devem ser declaradas de forma alguma - ao invés disso, devem ser usadas matrizes de estruturas com campos diferentes. Mas a questão é diferente - o que podemos fazer com uma série de dimensionalidades arbitrárias (desconhecidas antecipadamente) que já existem como um dado
O que não deve ser gostado na opção de múltiplas funções?
Ao ter que duplicar o mesmo código (o mesmo de que você está falando), em funções com nomes diferentes para cada dimensionalidade diferente da matriz de parâmetros
As matrizes não têm mais de 4 dimensões aqui. Assim, você pode escrever 4 funções diferentes e pronto.
O problema não está em escrever 4 funções, mas em não poder usar uma para qualquer matriz, como é o caso de qualquer outro tipo. É por isso que é melhor evitar o uso de matrizes multidimensionais (tipo embutido []) em µl
Você não pode fazer um de 8 dimensões?
As estruturas são fáceis de usar.
Eh, e a sobrecarga não a salva:
Será que ela se compilará assim?
Embora eu não me lembre exatamente, mas parece que a segunda e as próximas medidas não podem ser dinâmicas. De forma correspondente, pode haver erros na compilação de tal código. Aqui, a variável tamanho_segundo_dimensão pode ser usada como um tamanho definido da segunda dimensão e permitir sobrecarregar a função. Além disso, evita a necessidade de definir a dimensionalidade através do ArrayRange()Será que ela se compilará assim?
Embora eu não me lembre exatamente, parece que a segunda e as próximas medidas não podem ser dinâmicas. Correspondentemente, pode haver erros na compilação de tal código. Aqui a variável tamanho_segundo_dimensão pode ser usada como o tamanho predefinido da segunda dimensão e permite sobrecarregar a função. Além disso, evita a necessidade de definir a dimensionalidade através do ArrayRange()Ele irá compilar, mas não é interessante, e o que dizer de z[][][]?
A segunda e acima não pode ser dinâmica, mas a função não precisa ser personalizada para um determinado tamanho da segunda dimensão, ela pode ser descoberta através do ArrayRange().
Se o número de medidas não permitir sobrecarregar a função, o tamanho da segunda e outras medidas certamente não o farão. Além disso, não é nada interessante, já que não é nada universal. Seria mais fácil escrever funções com nomes diferentes.