La Web del Programador: Comunidad de Programadores
 
    Pregunta:  743 - COMO IMPLEMENTAR MATRICES EN MEMORIA DINAMICA
Autor:  Jose
Necesito construir en Turbo Pascal, una calculadora de matrices con las operaciones tipicas: determinante, inversa, suma, producto... .Dicha matriz tiene que estar en memoria dinamica y salir de forma amigable ( filas y columnas,y los calculos realizados, m+1+m=2*m+1 ). En principio solo necesito saber los subprogramas principales (sin programar nada). Ha de ser en diseño descendente.
Tambien un diseño del tipo de datos que usara el programa. Muchas Gracias.

  Respuesta:  Alejandro Araya
Para implementar una calculadora lo mejor es utilizar la estructura de datos de las pilas o sea usando lifo(last in first out), nunca he hecho una utilizando punteros(memoria dinamica), pero si con vectores o arrays bidimensionales, el problema que tiene este programa es que cuando se encuentra una multiplicacion o una division tiene que desarrollarla por orden de prioridad,por lo que hice una toma de deciciones en que si sen encontraba con "*" o "/" llamra un procedimiento voy a buscar un porgramilla que habia hecho y lo voy a enviar ademas que voy a implementarlo con memoria dinamica espero que para la otra semana

  Respuesta:  Carlos Molina V
Para lograr que una matriz pueda variar su tamaño y aún así se maneje como "matriz" solo hay que declararla como un puntero...
EJ:
type
matriz:= array [1..1,1..1] of integer;
ptr_matriz = ^matriz;

var mat: ptr_matriz;
tamano: word;
begin

tamano:= sizeof(matriz) * Numero de datos...
getmem(mat, tamano)
/// para acceder a los datos solo hay que escribir
mat^ [1,1] := 10;
/// si te diera un error en los indices solo escribelos en una variable...
end.

///El tamaño total de la matriz no puede ser mayor a 65528 bytes...

Cualquier consulta solo mandame un e-mail...