for(k=0;k<=n-2;k++)for(i=k+1;i<=n-1;i++) { if(!B[k][k]) { for(i1=0;i<=n-1;i++) { w[i1]=B[i1][k]; B[i1][k]=B[i1][k+1]; B[i1][k+1]=w[i1]; } cp++; } Print(__FUNCTION__+": i=",i); c=1.0*B[i][k]/B[k][k]; for(j=0;j<=n-1;j++) B[i][j]-=B[k][j]*c; }
2019.03.31 00:07:28.689 (GBPUSD,H1) array fuera de rango en 'SSA.mqh' (147,14)
for(i1=0;i1<=n-1;i1++) { w[i1]=B[i1][k]; B[i1][k]=B[i1][k+1]; B[i1][k+1]=w[i1]; }
debe ser i1 en todas partes en for() ?
leonerd:
debe ser i1 en todas partes en for() ?
Tú eres el tonto.
Алексей Тарабанов:
Usted mismo es un tonto.
Línea directa del Ministerio de Sanidad ruso:8 800 550 99 03
Hay un error tras otro. Desbordamientos de matriz y división por 0.
Y no sé cómo corregirlo, ya que no entiendo en absoluto de qué va esta biblioteca....
Este bucle, por ejemplo:
for(k=0;k<=n-2;k++)for(i=k+1;i<=n-1;i++) { if(!B[k][k]) { for(i1=0;i<=n-1;i++) { w[i1]=B[i1][k]; B[i1][k]=B[i1][k+1]; B[i1][k+1]=w[i1]; } cp++; } c=1.0*B[i][k]/B[k][k]; for(j=0;j<=n-1;j++) B[i][j]-=B[k][j]*c; }Si alcanza el for del bucle interior (y lo alcanza, porque B[k][k] es igual a cero), entonces i ya supera el límite del bucle exterior, es decir, i se hace mayor que n-1. Y entonces, al acceder a B[i], obtenemos una salida más allá de los límites del array, porque por una asombrosa coincidencia su tamaño es igual a n.
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
FullSSA:
Oscilador de nuevo trazado dibujado sobre la base de la biblioteca SSA.mqh de funciones de transformación singular
Autor: Nikolay Kositsin