[ Foro de Pascal ]
Buenas noches , aver si me podeis ayudar a saber el error a lo mejor es por la hora y que no me doy cuenta, el error que me aparece es el del titulo y me da en la funcion que comprueba los elementos de la diagonal( siempre estamos hablando de la principal)
(*Función que reciba una matriz (N x N) de enteros y devuelva en una estructura de
datos adecuada: el valor de la suma de los elementos de la diagonal principal y si es
cierto o falso que los elementos de la diagonal son todos iguales.*)
PROGRAM basico(input,output);
CONST n=2;
TYPE
tarray=array[1..n,1..n] of integer;
VAR
a:tarray;
(****************************************************)
PROCEDURE IntroducirDatos(var a:tarray);
var i,j:integer;
BEGIN
FOR i:=1 to n do begin
for j:=1 to n do begin
writeln ('Introduzca el elemento: ');
readln(a[i,j]);
end;
end;
end;
(***************************************************)
FUNCTION SumaDiagonal(protected var a:tarray):integer;
var i,j:integer;aux:tarray;
BEGIN
FOR i:=1 to n do begin
FOR j:=1 to n do begin
aux[i,j]:=aux[i,j]+a[i+1,j+1];
end;
end;
SumaDiagonal:=aux[i,j];
end;
(******************************************************)
FUNCTION ComprobarDiagonal(protected var a:tarray):boolean;
var i,j:integer;aux:boolean;
BEGIN
FOR i:=1 to n do begin
FOR j:=1 to n do begin
if ((a[i,j])=(a[i+1,j+1])) then
aux:=true;
if ((a[i,j]<>(a[i+1,j+1])) then
aux:=false ;
end;
end;
ComprobarDiagonal:=aux;
end;
(***************************************************************)
begin
end.
Solucionado!
Procedure BUSCAR(Protected VAR Androide:
TAAndroides;planeta:Tcadena15;Manno:Tanno);
VAR i,j: Integer;
Encontrado:Boolean;
BEGIN
FOR i:= 1 to MaxAndroides DO
With Androides[i] Do BEGIN
if anno = Manno then BEGIN { Busco en planetas}
j:= 1;
Encontrado:= FALSE;
Repeat
IF PlanetaVisi[j]= Planeta THEN BEGIN
Encontrado:= TRUE;
Writeln('Hay que RETIRAR al siguiente androide:');
Writeln('Nº de Serie:', NumSerie);
Writeln('Año de fabricación: ',anno);
Writeln('Sexo: ',Sexo);
Writeln('Fue fabricado en: ',PlanetaFabri);
END;
j:= j+1;
UNTIL ((j> MaxPlanetas) or (encontrado));
END;
END;
END;
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)