• Domingo 22 de Diciembre de 2024, 21:13

Autor Tema:  Matrices Cuasivacias  (Leído 5094 veces)

srg46srg

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Matrices Cuasivacias
« en: Miércoles 11 de Enero de 2006, 19:32 »
0
Tengo que realizar este programa en lenguaje de Programacion Pascal Estandard y no se komo acerlo, me seria de enorme ayuda si alguien lo hiciera por mi antes de este Lunes. Gracias de antemano.

Problema:

En la resolucion de diversos problemas de ingeniera se utilizan matrices cuasivacias, que son aquellas que contienen un pequeño numero de elementos no nulos. Un modo miy simple de describirles de forma condensada, consiste en indicar sus dimiensiones y, a continuacion, todos los valores no nulos junto con su posicion relativa. Para numerar las posiciones supondremos que se comienza en el primer elemento (1,1) y se recorre la matriz por columnas. Para almacenar de forma permanente la matriz se puede utilizar un fichero de texto.


MATRIZ_________________fichero_____________significado                    
[3.6__0___0___0___0 ] _____  4      5 ________ matriz de 4 filas y 5 columnas
[ 0___0___0___0___0 ] _____  1   3.6 _______ en posicion 1( fila 1, columna 1) valor 3.6
[ 0___0___0___0_-3.0] _____ 12  6.7 _______ en posicion 12( fila 4, columna 3) valor 6.7
[ 0___0__6.7__0___0 ] _____ 19  -3.0 _____ en posicion 19( fila 3, columna 4) valor -3.0

Se pide desarrollar en PASCAL estandar los siguientes procedimientos (previamente se realizaran todas las declaraciones de los tipos de datos que sean necesarias)

procedure SumasMatricesFtxt(var f1, f2, fSuma : tpMatrizFtxt);

{devuelve en fSuma la suma de las matrices (de igual dimension) almacenadas, de forma condensada, en los ficheros de texto f1 y f2. Los elementos estan ordenados por posicion}

Para probar el funcionamiento de estos procedimientos se realizara un programa de prueba en Pascal.

procedure MostrarMatrizFtxt( var f: tpMatrizFtxt);

{ muestra por pantalla (por filas) la matriz almacenada, de forma condensada, en el fichero de texto f. Los elementos estan ordenados por posicion }

Monzón

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Matrices Cuasivacias
« Respuesta #1 en: Domingo 14 de Enero de 2007, 18:15 »
0
No seras x casualidad estudiante de ingeniería del CPS??? Porque yo tengo que hacer ese mismo ejercicio para el día 22.
Aunk la verdad esk ai un par de puntos en los k m falla, x ejemplo, si las dimensiones de la matriz tienen k estar definidas antes de entrar en el programa, cm las lees del fichero para luego asignarselas??

Haber si alguien más contesta y nos soluciona las dudas.  :D  :D


-----------EDITO-------------

Acabo de leer en las reglas que no aceis los problemas. xD La verdad es k m parece muy normal.

Al menos mirar si m podeis solucionar mi duda de las dimensiones.

Thx!!

_.B._

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Matrices Cuasivacias
« Respuesta #2 en: Miércoles 17 de Enero de 2007, 15:45 »
0
Saludos!
Con respecto a las dimensiones, tienes varias opciones.
Puedes definir una matríz grande, y validar que las filas y columnas estén dentro del rango que decidas, al momento de capturar los datos.
Luego trabajas sólo en la parte de la matríz limitada por los datos de entrada.


Un dato. Al trabajar con matrices, sin conocer sus dimensiones, puedes trabajar con un vector (unidimensional).
Sólo debes formular unas ecuaciones para llevar coordenadas de dos dimensiones a la posición del vector. Y vice-versa.
Así, puedes declarar un vector de, por ejemplo, tamaño 100, y aceptar dimensiones como 2x50, 10x10, y demás; mientras que si creas una matríz de 10x10, ocupando el mismo espacio que tu vector de 100, limitarías las dimensiones a un máximo de 10.

A programar! :comp:
¡Olmo, dame peras!
www.BernardoLG.net

Mr. Pascal

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Matrices Cuasivacias
« Respuesta #3 en: Lunes 5 de Febrero de 2007, 19:45 »
0
:devil: aqui no se hacen tareas...
 :ph34r:
 :lightsabre:
deberia ser un poquito mas humilde....y enseñarnos hasta donde has avanzado en el problema

hasta otro capitulo :hola:  :comp:  :whistling:

Alpha_

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
Re: Matrices Cuasivacias
« Respuesta #4 en: Miércoles 7 de Marzo de 2007, 14:18 »
0
Cita de: "_.B._"
Un dato. Al trabajar con matrices, sin conocer sus dimensiones, puedes trabajar con un vector (unidimensional).
Sólo debes formular unas ecuaciones para llevar coordenadas de dos dimensiones a la posición del vector. Y vice-versa.
Así, puedes declarar un vector de, por ejemplo, tamaño 100, y aceptar dimensiones como 2x50, 10x10, y demás; mientras que si creas una matríz de 10x10, ocupando el mismo espacio que tu vector de 100, limitarías las dimensiones a un máximo de 10.
Estoy de acuerdo con la idea, aunque para ser sincero, no me parece que sea necesaria.

En ningún momento haría falta mantener TODOS los números en memoria.

- Cuando se suman, solo hace falta reconocer los números y escribir su resultado en el fichero de resultados. No voy a explicar como sumar matrices (eso ya cae en el rango de las matemáticas), pero saben que es uno a uno y no hace falta mucho más que eso. En el archivo condensado solo hace falta guardar la posición sumada (contador) y el resultado (valor en la primera + valor en la segunda)

- Cuando se muestran, solo hace falta escribir en pantalla una representación gráfica de la matriz. En lugar de cargarla en memoria luego recorrerla para mostrarla, se puede hacer a medida que se va leyendo, y por tanto no hay que preocuparse por cómo se almacenará en memoria, y por tanto, tampoco hay que preocuparse por el tamaño que tengan.

Sólo hay que preocuparse por mantener el control de qué posición se está operando en el momento.

Sé que llegué tarde para el trabajo, pero quizás a alguien le sirva en el futuro. Sólo por eso redacté este mensaje. xD

SldZ.-
Alpha
http]