ADA - urgente problemas con unas funciones

 
Vista:

urgente problemas con unas funciones

Publicado por alejandro (1 intervención) el 22/11/2002 20:21:29
por favor estoy atascado en unas funciones de una practica de estructura de datos, por favor es lo intento y lo intento y no encuentro manera de k m salga la primera parte de la practica que es lo k no m sale sera asi:
Declare:
1. Un subtipo para representar números enteros en el rango 0..255.
2. Un tipo para representar matrices de elementos del subtipo declarado en el punto anterior de hasta 15x15 elementos con índices comprendidos en el rango 30..44.
3. Un tipo llamado TMatriz_Encapsulada que sea un registro (record) con tres campos:
1. el primero será una matriz del tipo declarado en el punto anterior y
2. los otros dos servirán para representar valores naturales comprendidos entre 0 y 15 que indicarán, respectivamente, el número de filas y de columnas de la matriz pasada en el primer campo que se están usando en un momento dado para representar una matriz concreta de tamaño menor o igual a 15x15 (un valor cero en estos campos indicará que no se está representando ninguna matriz).
4. Un tipo llamado TVector que sea un array no restringido de enteros con un rango de índices natural.
2. Escriba dos funciones llamadas Fila y Columna que admitan como parámetros una estructura de tipo TMatriz_Encapsulada y un número positivo, N, y devuelvan un vector (del tipo TVector) que contenga, respectivamente, la fila o la columna correspondiente al índice señalado por N, de la matriz representada en el parámetro de tipo TMatriz_Encapsulada. El valor de N debe estar en el rango comprendido entre 30 y 30 más lo indicado en el número de filas o de columnas de la matriz, menos uno (según la función que se llame).
Por ejemplo, dada la siguiente matriz de 3x4, con índices (30..32) x (30..33) :
113
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE: aquí tienes alguna ayuda ...

Publicado por Overcito (4 intervenciones) el 08/12/2002 04:00:25
Weno companiero.... ahi va punto a punto lo que tu pides....
1. subtype mi_tipo is Integer range 0..255;

2.type Matrix is array (30..44,30..44) of mi_tipo;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: perdon se envió solo....

Publicado por Overcito (4 intervenciones) el 08/12/2002 04:13:00
Weno companiero.... ahi va punto a punto lo que tu pides....
1. subtype mi_tipo is Integer range 0..255;

2. type Matrix is array (30..44,30..44) of mi_tipo;

3. type TMatriz_Encapsulada is record
Matriz : TMatrix;
filas,columnas : ceroaquince;
end record;
3.2 subtype ceroaquince is natural range 0..15;

4. type TVector is array (natural range <>) of integer;

Apartado 2:

Las funciones.

function Fila(M:TMatriz_Encapsulada; N:integer) return TVector is
V: TVector(30..(30+M.Ncolumnas-1)); --inicializamos el vector
begin
-- todavía no estamos controlando las excepciones, tenlo en cuenta
for i in V'First..V'Last loop V(i) := M.Matriz(N,I);
end loop;
return vec;
end Fila;

La función de las columnas es exactamente igual su única diferencia está en el V(i) := M.Matriz(N,I); <--- ponemos un V(i) := M.Matriz(I,N);

y el procedimiento Escribe Vector te lo pongo a tí... Lo de las excepciones es más facil así que te lo dejo a tí...

procedure Escribe_Vector(V: TVector) is
begin
for I in V'First..V'Last loop
Put(V(i));
end loop;
New_line;
end Escribe_Vector;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar