Hola, buenas, espero que todos esten muy bien.
La siguiente informacion que les dare, si es de matrices pero es de matrices dispersas.
el ejercicio esta en UML( lenguaje de modelado unificado), y este tiene algunas especificaciones:
Tenga en cuenta la siguientes clases para todos los puntos del taller.
clase Tripletas
privado:
real: Mat[ ][ ]
entero: N,M
publico:
Tripletas ( entero: x )
real: obtenerDato( entero: i, j)
asignarDato(entero: i, j; real: d)
real :promedio()
entero:mayor()
entero: promedioPares()
entero: vecesMayor()
entero:catidadPares()
fin clase
Tripletas:: Tripletas (entero x)
N =x
M = 3
Mat = nuevo real[ N ][ M]
fin metodo
entero:Tripletas::obtenerDato(entero: i,j)
devolver ( Mat[ i ][ j ] )
fin metodo
Tripletas::asignarDato(entero: i, j: real n)
Mat[ i ][ j ] = n
fin metodo
Asuma que se tiene un objeto de la clase Tripletas con N = 12 y la matriz Mat[ ][] que se muestra a continuación.
Hacer la prueba de escritorio al método insertar con los parámetros 2, 3, 10.
lógico:Tripleta:: insertar (entero:f,c; real: d )
lógico: respuesta= falso
entero: i = 2, j , du = Mat[1] [3]+1
mientrar i <=du and Mat[ i ] [ 1 ]< f haga
i = i+1
fin mientras
mientras i <=du and Mat[ i ][ 1 ]= f and Mat[ i ][ 2 ]< c and haga
i = i+1
fin mientras
si i < N –1 entonces
respuesta = verdadero
si i > du entonces
Mat[i+1][1]=Mat[1]
Mat[i+1][2]=Mat[2]
Mat[ i ][1]= f
Mat[ i ][2]= c
Mat[ i ][3]= d
si no
para j = du + 1 hasta i , -1
Mat[ j +1][1]=Mat[ j ][1]
Mat[ j +1][2]=Mat[ j ][2]
Mat[ j +1][3]=Mat[ j ][3]
fin para
Mat[ i ][1]= f
Mat[ i ][2]= c
Mat[ i ][3]= d
fin si
Mat[ 1 ][3]= Mat[ 1 ][3] +1
finsi
devolver( respuesta)
fin metodo
Utilizando la misma matriz del punto anterior realice la prueba de escritorio a los algoritmos mostrados.
Parte 1
real:Tripleta:: promedio ()
entero: i , Z
entero: du = Mat[1] [3]+1
real suma = 0, prom
para i = 2 hasta du ,1
suma = suma + Mat[ i ][3]
fin para
Z =Mat[1][1]*Mat[1][2]
prom = sum/Z
devolver( prom)
fin metodo
i =
Z=
du=
¿que hace el método?
Parte 2
Tripleta:: MMMM ()
entero: i = 2, f, k
entero: du = Mat[1] [3]+1
mientrar i <=du haga
f =Mat[ i ][1]
k = Mat[ i ][3]
mientrar i <=du and Mat[ i ][1]= f haga
si Mat[ i ][3] > k entonces
k = Mat[ i ][3]
fin si
i = i + 1
fin mientras
mostrar( f , k )
fin mientras
fin metodo
i=
f=
k=
du=
mostrar=
¿que hace el método?
implementarle a la clase Tripletas cada uno de los siguientes métodos.
(tenga en cuenta los ceros de la matriz original)
1. devolver el promedio de datos pares de la matriz.
2. devolver la cantidad de datos impares.
3. mostrar la suma de datos de cada columna.
4. mostrar el promedio de cada fila.
5. mostrar las filas que tienen el mayor promedio.
6. eliminar una tripleta, se recibe la fila, columna y dato.
7. devolver las veces que se presenta el dato mayor.
8. mostrar el mayor de los datos impares si no hay notificarlo.
9. mostrar el menor de los dato pares que tienen suma de dígitos mayor a 10, si no hay notificarlo.
10. mostrar los datos que tienen la mayor suma de dígitos.
11. mostrar los datos que tienen la mayor cantidad de dígitos pares.
12. mostrar el porcentaje de dígitos impares de cada dato.
13. mostrar la suma de dígitos de cada dato.
14. mostrar la suma de dígitos de todos los números de la matriz.
15. mostrar cada dato de la matriz y las veces que se presenta (no repetir mensajes).
se que es un taller largo pero enserio necesito de su ayuda no se que paso seguir. Abjunte el archivo en zip de lo que llevo, espero me ayuden y de antemano muchas gracias por el apoyo.