Pascal/Turbo Pascal - necesito ayuda para realizar un programa de sistema de ec. en metodo GAUS

 
Vista:

necesito ayuda para realizar un programa de sistema de ec. en metodo GAUS

Publicado por sabina (7 intervenciones) el 01/06/2012 21:26:40
Hola me llamo sabina estudio ingenieria inf y me mandaron a hacer un proyecto donde tengo q resolver sistema de ecuaciones con matrices por el metodo de gaus o el metodo gaus-jordan por favor es urgente a la persona q me ayude le estaria muyyyy agradecidaaaaaa =(
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

necesito ayuda para realizar un programa de sistema de ec. en metodo GAUS

Publicado por ramon (2158 intervenciones) el 01/06/2012 23:20:40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{Es pero sirva }
 
program gausjordan;
 uses
    crt;
var
   nn, num, i, n, t : integer;
   matriz : array[1..28,1..27] of integer;
 
  procedure metodo(num : integer);
  var
    h, d, s, t, r : integer;
   begin
     for h := 1 to num do
     begin
        for d := h to num do
        if matriz[h,d] <> 0 then
         begin
            t := d;
            break;
          end;
    for d := 1 to num + 1 do
    begin
      s := matriz[d,t];
      matriz[d,t] := matriz[d,h];
      matriz[d,h] := s;
     end;
    for d := 1 to num + 1 do
     if (d <> h) and (matriz[h,d] = 1) then
      for r := 1 to num + 1 do
      matriz[r,d] := matriz[r,d] xor matriz[r,h];
     end;
   end;
 
 
   begin
       clrscr;
       num := 20;
       randomize;
       for i := 1 to num do
       begin
         matriz[num + 1,i] := 1;
         n := random(25);
          for t := 1 to 20 do
           begin
              matriz[i,nn] := 1;
              nn := random(20);
            end;
        end;
      metodo(num);
     for n := 1 to num do
      if odd(matriz[num + 1,n]) then
       write(n,' ');
      readln;
   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

necesito ayuda para realizar un programa de sistema de ec. en metodo GAUS

Publicado por sabina (7 intervenciones) el 08/06/2012 03:09:38
muchisimas gracias espero me sirva =) cualkier duda te pregunto kisses
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

necesito ayuda para realizar un programa de sistema de ec. en metodo GAUS

Publicado por ramon (2158 intervenciones) el 08/06/2012 18:37:24
Me parece bien 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

porifs ultima ayuda hehe

Publicado por s. quiroga (7 intervenciones) el 15/06/2012 21:10:56
hola mira si me podrias dar tu correo electronico para q me ayudaras con un proyecto
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

porifs ultima ayuda hehe

Publicado por ramon (2158 intervenciones) el 16/06/2012 00:02:31
Lo siento tengo por costumbre no darlo pero si necesitas ayuda dame los datos y seras atendido
sin ningún problema.
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

porifs ultima ayuda hehe

Publicado por s. quiroga (7 intervenciones) el 18/06/2012 02:00:27
Aff q mal q no puedas y un correo q nunk uses para enviarte la informacion completa?
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

porifs ultima ayuda hehe

Publicado por ramon (2158 intervenciones) el 19/06/2012 19:36:05
Puedes mandarla por aquí aunque sea en bloques.
Perdona pero si atiendo a otro lado esto se quedaría a medias de atender por eso no
quiero abrir mas que esta para poder ayudar a todos los que pueda desde aquí disculpa.
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

porifs ultima ayuda hehe

Publicado por s.quiroga (7 intervenciones) el 19/06/2012 21:27:16
bueno mira en el codigo q me mandaste tengo muchisimas dudas pues no entiendo el recorrido de la matriz y hay demasiadas variables si me pudieras explicar las variables por lo menos h son las filas no? y "d" las columnas..porfaaaa sorry por la molestia
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

porifs ultima ayuda hehe

Publicado por ramon (2158 intervenciones) el 19/06/2012 22:43:17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{Te vale así}
 
program gausjordan;
 uses
    crt; {unidad de pantall}
var
   nn, num, i, n, t : integer; {variables globales}
   matriz : array[1..28,1..27] of integer; {la matriz}
 
  procedure metodo(num : integer); {el metodo gausjordan}
  var
    h, d, s, t, r : integer; {variables internas solo para metodo}
   begin
     for h := 1 to num do {recorremos horizontal mente la matriz}
     begin
        for d := h to num do   {recorremos vertical mente la matriz}
        if matriz[h,d] <> 0 then {comprovamos matriz[h,d] es <> 0 entonces}
         begin
            t := d; {asignamos a t el valor de d}
            break;  {finalizamos for (break = Termina una instrucci¢n for,
                                                while, o repeat}
          end;
    for d := 1 to num + 1 do  {for para intercambiar valores de matriz}
    begin
      s := matriz[d,t]; {s toma el valor de matriz[d,t]}
      matriz[d,t] := matriz[d,h];  {matriz[d,t] toma valor de matriz[d,h]}
      matriz[d,h] := s; {matriz[d,h] toma el valor s o sea intercambio}
     end;
    for d := 1 to num + 1 do  {for para comprobacion de matriz}
     if (d <> h) and (matriz[h,d] = 1) then  {si d <> h y matriz[h,d] = 1
                                              entonces acemos un xor entre
                                              matriz[r,d] y matriz[r,h] lo
                                              cual nos daria en matriz[r,d]
                                              un resultado 0 y 1 dependiendo
                                              del valor que tengan}
      for r := 1 to num + 1 do
      matriz[r,d] := matriz[r,d] xor matriz[r,h]; {operacion xor}
     end;
   end;
 
 
   begin
       clrscr; {borrado pantalla}
       num := 20; {numero de entradas}
       randomize; {iniciamos generacion de simiente de numero}
       for i := 1 to num do   {for para llenar matriz}
       begin
         matriz[num + 1,i] := 1; {asignamos 1 ala posicion de la matriz}
         n := random(25); {recojemos el numero jenerado aleatoria mente}
          for t := 1 to 20 do {for para llenar matriz}
           begin
              matriz[i,nn] := 1; {asignamos 1 ala posicion de la matriz}
              nn := random(20);{recojemos el numero jenerado aleatoria mente}
            end;
        end;
      metodo(num);  {Procesamos matriz num}
     for n := 1 to num do  {for para comprobar numero par o impar}
      if odd(matriz[num + 1,n]) then {si es impar lo imprimims}
       write(n,' ');
      readln;
   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

una duda

Publicado por raquel (7 intervenciones) el 21/06/2012 03:43:47
disculpa pero mi matriz no kiero q sea mas baja de 2x2 ni mas grande de 20x20 pero tu declaraste el arreglod e la matriz con 1..27,1..28 y al colocarlos con 1..20,1..20 y no correo bien :s
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

una duda

Publicado por ramon (2158 intervenciones) el 21/06/2012 16:37:21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{Cuando se cambia un valor se deben de cambiar otros observa este es el mismo pero
cambiaos los valores y para que te presente los resultados mas claros}
 
 program gausjordan;
 uses
    crt; {unidad de pantall}
var
   nn, num, i, n, t : integer; {variables globales}
   matriz : array[1..20,1..19] of integer; {la matriz}
 
  procedure metodo(num : integer); {el metodo gausjordan}
  var
    h, d, s, t, r : integer; {variables internas solo para metodo}
   begin
     for h := 1 to num do {recorremos horizontal mente la matriz}
     begin
        for d := h to num do   {recorremos vertical mente la matriz}
        if matriz[h,d] <> 0 then {comprovamos matriz[h,d] es <> 0 entonces}
         begin
            t := d; {asignamos a t el valor de d}
            break;  {finalizamos for (break = Termina una instrucci¢n for,
                                                while, o repeat}
          end;
    for d := 1 to num + 1 do  {for para intercambiar valores de matriz}
    begin
      s := matriz[d,t]; {s toma el valor de matriz[d,t]}
      matriz[d,t] := matriz[d,h];  {matriz[d,t] toma valor de matriz[d,h]}
      matriz[d,h] := s; {matriz[d,h] toma el valor s o sea intercambio}
     end;
    for d := 1 to num + 1 do  {for para comprobacion de matriz}
     if (d <> h) and (matriz[h,d] = 1) then  {si d <> h y matriz[h,d] = 1
                                              entonces acemos un xor entre
                                              matriz[r,d] y matriz[r,h] lo
                                              cual nos daria en matriz[r,d]
                                              un resultado 0 y 1 dependiendo
                                              del valor que tengan}
      for r := 1 to num + 1 do
      matriz[r,d] := matriz[r,d] xor matriz[r,h]; {operacion xor}
     end;
   end;
 
 
   begin
       clrscr; {borrado pantalla}
       num := 19; {numero de entradas}
       randomize; {iniciamos generacion de simiente de numero}
       for i := 1 to num do   {for para llenar matriz}
       begin
         matriz[num + 1,i] := 1; {asignamos 1 ala posicion de la matriz}
         nn := random(19); {recojemos el numero jenerado aleatoria mente}
          for t := 1 to 19 do {for para llenar matriz}
           begin
              matriz[i,nn] := 1; {asignamos 1 ala posicion de la matriz}
              nn := random(19);{recojemos el numero jenerado aleatoria mente}
            end;
        end;
      metodo(num);  {Procesamos matriz num}
      writeln('Listado de pares e Impares [0]= Pares y [1] = Impares');
      writeln;
     for n := 1 to num do  {for para comprobar numero par o impar}
      if odd(matriz[num + 1,n]) then {si es impar lo imprimims}
       writeln(' Impares N§ = ',n,' = ',matriz[num + 1,n],'   ')
     else
       writeln(' Pares N§ = ',n,' = ',matriz[num + 1,n],'   ');
      readln;
   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

una duda

Publicado por raquel (7 intervenciones) el 25/06/2012 03:00:42
hola disculpa pero tengo un problema cn mi proyecto y es q cuando compila lo hace mal y no entiendo xq para mi esta muy bien favor una ayuda urgente antes de mañana este es el codigo:

program proyecto;
uses crt;

type
matriz= array [1..20,1..20] of real;

var
mat,mat2: matriz;
size: integer;
arch: text;

function siza(var p: text): integer; {Determina el tamano de la matriz x arch}
var
h,n:integer;
begin
assign(p,'C:/proyecto.txt');
reset(p);
h:= 1;

if h = 1 then
readln(p,n);
siza:= n;
close(p);
end;

procedure llenadoa(var m: matriz); {Llena la matriz x arch de txto}
var
tam,i,x,j,k: integer;
lectura: text;
begin
assign(lectura,'C:/proyecto.txt');
reset(lectura);
i:= 1;

while not(eof(lectura)) do
begin
if i = 1 then
begin
readln(lectura,x);
tam:= x;
i:= i + 1;
end
else
begin
for j:= 1 to tam do
begin
for k:= 1 to tam do
begin
if i = tam + 1 then
begin
readln(lectura,x);
m[j,k]:= x;
i:= 2;
end
else
begin
read(lectura,x);
m[j,k]:= x;
i:= i + 1;
end;
end;
end;
end;
end;
close(lectura);
end;

procedure llenadom(var m: matriz; x:integer); {Llena la matriz manualmente}
var
i,j:integer;
v:real;
begin
for i:= 1 to x do
for j:= 1 to x do
begin
writeln('Introduzca un valor para su matriz');
readln(v);
m[i,j]:= v;
end;
end;

procedure mostrar(m: matriz; x: integer); {Muestra matrices llenas}
var
k,l: integer;

begin
clrscr;
for k:= 1 to x do
begin
for l:= 1 to x do
begin
if m[k,l] >= 10 then
write(m[k,l]:2:2,' ')
else
write(' ',m[k,l]:2:2,' ');
end;
writeln;
end;
end;

procedure gaussjordan(var a,c: matriz; var b: integer);
var
i,j,k,l: integer;
inv: real;
begin
for i:= 1 to b do
begin
for j:= 1 to b do
begin
if i = j then
begin
if a[i,j] <> 1 then
begin
inv:= 1/a[i,j];
for k:= 1 to i do
begin
for l:= 1 to b do
begin
c[k,l]:= inv * a[k,l];
end;
end;
end;
end
end;
end;
end;

begin
clrscr;
writeln('Introduzca el numero de filas y columnas de su matriz');
read(size);
llenadom(mat,size);
mostrar(mat,size);
readkey;
gaussjordan(mat,mat2,size);
mostrar(mat2,size);
writeln('****Adios****');
readkey;
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

una duda

Publicado por ramon (2158 intervenciones) el 26/06/2012 19:04:35
Probado el programa como lo tienes funciona pero lo que no e probado es la parte de
archivos ya que no lo tengo muy claro que quieres hacer de la forma que lo presentas
pero lo otro si va.
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