Resolución+de+un+sistema+de+ecuaciones

=__**Resolver un sistema de dos ecuaciones de primer grado**__=

> Sea un sistema de ecuaciones de la forma: >> a x + b y = c >> d x + e y = f > Escribir un programa que lea los coeficientes (a, b, c, d, e, f) y resuelva el sistema: > x = (c e - b f ) / (a e - b d) > y = (a f - c d ) / (a e - b d)

> **Nota**: El programa deberá indicar los casos en los que el sistema de ecuaciones no tenga solución.

> ** Esta versión es ERRONEA: ** > **Antes de realizar la división se debería comprobar si se puede realizar (si el divisor es distinto de 0)**

code format="pascal" PROGRAM SistemaEcuaciones ; VAR rA, rB, rC, rD, rE, rF, rX, rY, rDenominador : Real ; BEGIN WriteLN ('Programa que resuelve un sistema de ecuaciones: ') ; WriteLN ('            a x + b y = c') ; WriteLN ('            d x + e y = f') ;

WriteLN ('Introduce los coeficientes:') ; Write    ('  a: ') ; Readln (rA) ; Write    ('  b: ') ; Readln (rB) ; Write    ('  c: ') ; Readln (rC) ; Write   ('  d: ') ; Readln (rD) ; Write   ('  e: ') ; Readln (rE) ; Write   ('  f: ') ; Readln (rF) ;

rDenominador := (rA * rE) - (rB * rD) ;

rX := ((rC * rE) - (rB * rF)) / rDenominador ; rY := ((rA * rF) - (rC * rD)) / rDenominador ;

IF rDenominador = 0  THEN WriteLN ('ERROR: sistema de ecuaciones SIN solucion') ELSE BEGIN WriteLN ; WriteLN ('Solucion del sistema de ecuaciones:') ; WriteLN (' x = ', rX:0:2) ; WriteLN (' y = ', rY:0:2) ; END ; END. code > > ** Esta versión es CORRECTA: ** > **Antes de realizar la división se comprueba que se puede realizar (el divisor es distinto de 0)**

code format="pascal" PROGRAM SistemaEcuaciones ; VAR rA, rB, rC, rD, rE, rF, rX, rY, rDenominador : Real ; BEGIN WriteLN ('Programa que resuelve un sistema de ecuaciones: ') ; WriteLN ('            a x + b y = c') ; WriteLN ('            d x + e y = f') ;

WriteLN ('Introduce los coeficientes:') ; Write    ('  a: ') ; Readln (rA) ; Write    ('  b: ') ; Readln (rB) ; Write    ('  c: ') ; Readln (rC) ; Write   ('  d: ') ; Readln (rD) ; Write   ('  e: ') ; Readln (rE) ; Write   ('  f: ') ; Readln (rF) ;

rDenominador := (rA * rE) - (rB * rD) ;

IF rDenominador = 0  THEN WriteLN ('ERROR: sistema de ecuaciones SIN solucion') ELSE BEGIN rX := ((rC * rE) - (rB * rF)) / rDenominador ; rY := ((rA * rF) - (rC * rD)) / rDenominador ;

WriteLN ; WriteLN ('Solucion del sistema de ecuaciones:') ; WriteLN (' x = ', rX:0:2) ; WriteLN (' y = ', rY:0:2) ; END ; END. code