Pascal/Turbo Pascal - pascal

 
Vista:

pascal

Publicado por tatiana (3 intervenciones) el 10/04/2011 00:01:41
hola queria saber si alguien tiene el codigo para sacar la diagonal inversa de una matriz o por lo menos la formula
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

pascal

Publicado por ramon (2158 intervenciones) el 12/04/2011 17:15:01
[Espero esto te ayude a entender las inversa de una matriz en pascal para que puedas continuar]

program inversa;
uses
crt;
type
matrizarray = array[1..3,1..3] of real;
num = 2..3;

var
m1, m2 : matrizarray;
x, y, i, j : integer;
n : num;
da1, da2, da3 : real;

begin
clrscr;
writeln;
textcolor(15);
write(' Ingrese el Tama¤o de la matriz 2 o 3 : ');
readln(n);
writeln;
clrscr;
writeln(' Entre los Valores de la Matriz ');
for i := 1 to n do
for j := 1 to n do
begin
write(' m1(',i,',',j,')= ');
readln(m1[i,j]);
end;
case n of
2 : begin
da1 := m1[1,1] * m1[2,2] - m1[1,2] * m1[2,1];
writeln;
writeln(' El determinante es : ',da1:0:3);
if da1 <> 0 then
begin
m2[1,1] := m1[2,2] / da1;
m2[1,2] := m1[1,2] / da1;
m2[2,1] := m1[2,1] / da1;
m2[2,2] := m1[2,2] / da1;
writeln;
writeln(' La Matriz M1 ');
for i := 1 to n do
begin
writeln;
for j := 1 to n do
write(' ',m1[i,j]:0:3,' ');
end;
writeln;
writeln;
writeln(' La Inversa de M1');
for i := 1 to n do
begin
writeln;
for j := 1 to n do
write(' ',m2[i,j]:0:3,' ');
end;
end
else
begin
writeln(' La matriz no es Inversa porque su determinante es 0');
end;
end;
3 : begin

da2 := m1[1,1] * m1[2,2] * m1[3,3] + m1[1,2] * m1[2,3] * m1[3,1] +
m1[2,1] * m1[3,2] * m1[1,3];
da3 := m1[1,3] * m1[2,2] * m1[3,1] + m1[1,1] * m1[2,3] * m1[3,2] +
m1[3,3] * m1[1,2] * m1[2,1];
da1 := da2 - da3;
writeln;
writeln(' El determinante es : ',da1:0:3);
m2[1,1] := (m1[2,2] * m1[3,3] - m1[2,3] * m1[3,2])/da1;
m2[1,2] := - (m1[1,2] * m1[3,3] - m1[1,3] * m1[3,2])/da1;
m2[1,3] := (m1[1,2] * m1[2,3] - m1[1,3] * m1[2,2])/da1;
m2[2,1] := - (m1[2,1] * m1[3,3] - m1[2,3] * m1[3,1])/da1;
m2[2,2] := (m1[1,1] * m1[3,3] - m1[1,3] * m1[3,1])/da1;
m2[2,3] := - (m1[1,1] * m1[2,3] - m1[1,3] * m1[2,1])/da1;
m2[3,1] := (m1[2,1] * m1[3,2] - m1[2,2] * m1[3,1])/da1;
m2[3,2] := - (m1[1,1] * m1[3,2] - m1[1,2] * m1[3,1])/da1;
m2[3,3] := ( m1[1,1] * m1[2,2] - m1[1,2] * m1[2,1])/da1;
writeln;
writeln(' La Matriz M1');
for i := 1 to 4 do
begin
writeln;
for j := 1 to n do
write(' ',m1[i,j]:0:3,' ');
end;
writeln;
writeln;
writeln(' La Inversa de M1');
for i := 1 to n do
begin
writeln;
for j := 1 to n do
write(' ',m2[i,j]:0:3,' ');
end;
end
else
begin
writeln(' La matriz no tiene Inversa su determinante es 0');
end;
end;
writeln;
writeln;
writeln(' ***** Pulse una tecla para salir *****');
repeat until keypressed;
end.

[suerte]
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
Imágen de perfil de pedro

pascal

Publicado por pedro (1 intervención) el 13/04/2011 23:31:01
hola quiero descargar turbo pascal pero cuando lo hago no me corre los programas help....
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

pascal

Publicado por ramon (2158 intervenciones) el 15/04/2011 12:38:19
Entra en opciones / Directorio y establece .
exe & tpu Directorio = c:\tp []si tienes turbo pascal en directorio c:\tp sino tu directorio]
unit directorio = c:\tp\units;c:\tp []si tienes turbo pascal en directorio c:\tp sino tu directorio]
objeto directorio = c:\tp []si tienes turbo pascal en directorio c:\tp sino tu directorio]

encaso de que tengas que trabajar con gráficos al inicio de la unidad graph le tienes que
indicar el camino ejemplo : initgraph(el driver, el modo, el camino) normal mente c:\tp\bgi.

turbo pascal 7 trabaja con todos los sistemas windows el único problema existe en el teclado
trabaja en ingles.
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