Pascal/Turbo Pascal - Matriz Cuadrada

   
Vista:

Matriz Cuadrada

Publicado por nolll (1 intervención) el 22/04/2013 20:36:25
Hola, tengo que hacer un ejercicio donde me pide que el usuario ingrese una matriz cuadrada y si todos los numeros, excepto los de la diagonal, son cero entonces que calcule el determinante por ahora lo que hice fue esto pero para recorrer la matriz me tira error en el codigo


program Matrizcuadrada;

uses crt;

const

n=10;
h=10;
type

TArr= array [1..n,1..n] of integer;
vec= array [1..h] of integer;

var
matriz: TArr;

procedure CargarMatriz(var m:TArr);

var
i,j,z: integer;

begin
repeat
writeln('Ingrese el tama¤o del ancho y largo de su matriz cuadrada de nxn');
readln(z);
if z>10 then
writeln('');
writeln('ERROR. El tama¤o debe ser menor o igual que 10');
writeln('');
until z<=10;

clrscr;

for i:=1 to z do
begin
for j:=1 to z do

begin
writeln('Ingrese la posicion ', i,' ',j);
readln(matriz[i,j]);
writeln(' ');
end;
end;
end;

procedure MostrarMatriz(var m:TArr);
var
i,j,z:integer;
begin
clrscr;
for i:=1 to z do
begin
for j:=1 to z do
begin
write(matriz[i,j]);
write(' ');
end;
writeln;
writeln(' ');
end;
end;

Procedure CalDet (var m:TArr; z:integer; var a:vec; var h:integer);
var i,j,k,prod: integer;
begin
h:=1;
for k:= 1 to z-1 do
begin
i:=k;
j:=1;
prod:=1;
while (i>=1) and (j<=z) do
begin
prod:=prod*m[i,j];
i:=i-1;
j:=j+1;
end;
a[h]:=prod;
h:=h+1
end;
for k:=1 to z do
begin
j:=k;
i:=z;
prod:=1;
while (i>=1) and (j<=z) do
begin
prod:=prod*m[i,j];
i:=i-1;
j:=j+1;
end;
a[h]:=prod;
h:=h+1;
end;
h:=h-1;
end;


Function IgualaCero(var m:TArr) : boolean;

var
i,j,z,det:integer;
q: boolean;

begin
for i:=1 to z do
begin
for j:=1 to z do
gotoxy(i,j);
begin
if (i<>j) and (matriz[i,j]=0) then
q:=true ;
end;
end;

if (q=true) then
CalDet(matriz);
else
writeln(' ');
end;



begin
CargarMatriz(matriz);
MostrarMatriz(matriz);
writeln('');
writeln('Presione cualquier tecla para salir del programa');
readkey;
end.
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

Matriz Cuadrada

Publicado por ramon (2072 intervenciones) el 23/04/2013 22:58:22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function IgualaCero(var m:TArr) : boolean;
 
var
i,j,z,det:integer;
q: boolean;
 
begin
for i:=1 to z do
begin
for j:=1 to z do
gotoxy(i,j);
begin
if (i<>j) and (matriz[i,j]=0) then
q:=true ;
end;
end;
 
if (q=true) then
CalDet(matriz); {Tu error esta aqui mira CalDet (var m:TArr; z:integer; var a:vec; var h:integer);
                               tiene cuatro parametros dos de entrada y dos de salida y el punto y coma
                                de un else da error}
else
writeln(' ');
end;
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