Hay una función, aunque nadie la ha visto (ni en la ayuda ni en la web), pero está ahí )
Hay una función, aunque nadie la ha visto (ni en la ayuda ni en la web), pero está ahí )
Hay una función, aunque nadie la ha visto (ni en la ayuda ni en la web), pero está ahí )
Próximamente
Para eliminar un solo elemento, la función
void OnStart() { double array[]; CopyOpen(_Symbol, PERIOD_CURRENT, 0, 6, array); ArrayPrint(array); dellArrayElement(3, array); ArrayPrint(array); }/*******************************************************************/ void dellArrayElement(int shift, double &arr[]) { int arrSize = ArraySize(arr); if(shift > arrSize) return; if(shift < arrSize) ArrayCopy(arr, arr, shift, shift+1); ArrayResize(arr, arrSize-1); }
Resultado
2018.12.22 09:55:06.206 !00 (EURUSD,M15) 1.13588 1.13607 1.13588 1.13612 1.13586 1.13614 2018.12.22 09:55:06.206 !00 (EURUSD,M15) 1.13588 1.13607 1.13588 1.13586 1.13614
Entonces puedes convertir esta función a tipo bool, para poder controlar su ejecución. Básicamente, si eres inteligente y puedes controlar los valores que le envías, puedes usarlo de cualquier manera...
Recuerda que no puedes reducir el tamaño de las matrices estáticas.
Para eliminar un solo elemento, la función
Resultado
Entonces puedes convertir esta función a tipo bool, para poder controlar su ejecución. Básicamente, si eres inteligente y puedes controlar los valores que le envías, puedes usarlo de cualquier manera...
No olvides que no puedes reducir el tamaño de las matrices estáticas.
El camarada ha escrito: unidimensional y bidimensional. Su función no funciona con las dos dimensiones. Muéstrame cómo hacer que una función con el mismo nombre funcione para ambos :)
No estoy reduciendo el tamaño del array, estoy eliminando un elemento del mismo, son cosas diferentes. Entiendo que su función eliminó el valor1,13612, se especifica en la líneadellArrayElement(3, array); es decir, el 3er elemento se elimina de la matriz, es decir, se entiende correctamente? ¿Cómo de rápido son estos experimentos cargando el programa mucho?
¿una función secreta, y cómo funciona?
En C++ existen este tipo de funciones, se introduce la librería y se realiza la acción. Pero tenemos en cuenta el hecho de que mql no tiene tales funciones y queremos utilizar funciones escritas a mano.
Encontré estehttp://kvodo.ru/urok-7-2-massivyi-osnovnyie-operatsii.html (y también este https://purecodecpp.com/archives/1935)
Supongamos que necesitamos eliminarel m-ésimo elemento en número de lamatrizX que consta den elementos. Para ello, basta con escribir el (m+1)-ésimo elemento en lugar del elementom, el (m+2)-ésimo elemento en lugar del (m+1)-ésimo, y así sucesivamente,n-1 en lugar de(n-2)y utilizar elelementon-1cuando se trabaje con esta matriz más adelante:
cout<<"\n m="; cin>>m; //ввод номера элемента, подлежащего удалению for (i=m; i<n-1; X[i+1],i++); //удаление m-го элемента for (i=0; i<n-1; i++) cout<<X[i]<<"\t"; //вывод измененного массива n--; //уменьшение количества элементов в массиве
Pero eso es con C++. Pero aquí necesitamos saber el número de elementos almacenados en el array. Hay que escribir una función que lea los elementos tal y como se escriben.
Hay una función, aunque nadie la ha visto (ni en la ayuda ni en la web), pero está ahí )
¿Cómo funciona?
int ArrayRemove()
No hay ninguna descripción de ello en la ayuda, ¿dónde puedo leer sobre ello?
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso