una duda sobre la practica siguiente
Publicado por alejandro (1 intervención) el 22/11/2002 20:45:42
with Text_Io,Ada.Integer_Text_Io;
use Text_Io,Ada.Integer_Text_Io;
procedure Practica3 is
--Poner aquí las definiciones de tipos
subtype intervalo is integer range 0..255;
type TMatriz is array(30..44,30..44) of intervalo;
subtype rnatural is integer range 0..15;
type TMatriz_encapsulada is record
Matriz : tMatriz;
fila, columna: intervalo;
end record;
type TVector is array(natural range<>) of integer;
--Poner aqui los subprogramas a desarrollar
function fila(m1: TMatriz_encapsulada; n: positive) return tVector is
V: tVector(1..m1.fila);
begin
if (n >= 30) AND (n <= 44) then
for i in 30..m1.columna loop
v(i):= m1.matriz(N,I);
end loop;
end if;
return v;
end fila;
function columna (m1: TMatriz_encapsulada; n: positive) return tVector is
v: tVector(1..m1.columna);
begin
if (n >= 30) AND (n <= 44) then
for I in 30..m1.fila loop
v(i):= m1.matriz(i,n);
end loop;
end if;
return v;
end columna;
procedure Escribe_Vector(V: TVector) is
begin
for i in v'first..v'last loop
put(v(I));
end loop;
return;
end Escribe_Vector;
--Matriz de prueba
M1 : constant TMatriz_Encapsulada :=
(((1,2,3,4,5, others
use Text_Io,Ada.Integer_Text_Io;
procedure Practica3 is
--Poner aquí las definiciones de tipos
subtype intervalo is integer range 0..255;
type TMatriz is array(30..44,30..44) of intervalo;
subtype rnatural is integer range 0..15;
type TMatriz_encapsulada is record
Matriz : tMatriz;
fila, columna: intervalo;
end record;
type TVector is array(natural range<>) of integer;
--Poner aqui los subprogramas a desarrollar
function fila(m1: TMatriz_encapsulada; n: positive) return tVector is
V: tVector(1..m1.fila);
begin
if (n >= 30) AND (n <= 44) then
for i in 30..m1.columna loop
v(i):= m1.matriz(N,I);
end loop;
end if;
return v;
end fila;
function columna (m1: TMatriz_encapsulada; n: positive) return tVector is
v: tVector(1..m1.columna);
begin
if (n >= 30) AND (n <= 44) then
for I in 30..m1.fila loop
v(i):= m1.matriz(i,n);
end loop;
end if;
return v;
end columna;
procedure Escribe_Vector(V: TVector) is
begin
for i in v'first..v'last loop
put(v(I));
end loop;
return;
end Escribe_Vector;
--Matriz de prueba
M1 : constant TMatriz_Encapsulada :=
(((1,2,3,4,5, others
Valora esta pregunta


0