Hacr un arreglo de 3x3 qm dla suma dla diagonal invrsa

Hola espero me puedas ayudar. Tengo que pedir al usuario un arreglo de 3x3 y paso el arreglo a una función y que al función me devuelva la suma de la diagonal inversa. Ejem. 4 6 8
2 1 9
3 2 1          la suma de la diagonal inversa es 3+1+8=12...

1 respuesta

Respuesta
1
Se me ocurre que podría ser algo así:
** Ejemplo
DIMENSION aX(3, 3)
aX[1, 1] = 4
aX[1, 2] = 6
aX[1, 3] = 8
aX[2, 1] = 2
aX[2, 2] = 1
aX[2, 3] = 9
aX[3, 1] = 3
aX[3, 2] = 2
aX[3, 3] = 1
MESSAGEBOX(SumaDiagonalInv(@aX))
FUNCTION SumaDiagonalInv(aArreglo)
EXTERNAL ARRAY aArreglo
PRIVATE ALL
        nFilas = ALEN(aArreglo, 1)  && Número de Filas del arreglo
        nCols = ALEN(aArreglo, 2)   && Número de Columnas del arreglo
        nCol = 1                    && Columna inicial, 1
        nSuma = 0
        ** Se recorre el arreglo de abajo hacia arriba
        FOR nFila = nFilas TO 1 STEP -1
                nSuma = nSuma + aArreglo[nFila, nCol]
                nCol = nCol + 1
        ENDFOR
        RETURN nSuma
Endfunc
¿Si creo que entiendo aunque haz de cuenta que iio no asigno los valores si no que el usuariio mismo tendría que darlos... ent..?...
Mm pues sí, yo sólo los llené para que vieras el ejemplo completo. Para pedir los datos al usuario pues pudieras crear una tabla temporal (cursor) de tres campos y tres registros, luego mostrarla al usuario para que llene los datos, después pasar la tabla a un arreglo y luego mandar llamar la función.
** Para pasar el cursor a un arreglo
SELECT TuCursor
COPY TO ARRAY aX
...
Y así ya tendrías en "aX" los datos capturados por el usuario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas