#!/usr/bin/env python3
'''Program rozwiazuje uklad rownan liniowych metoda macierzowa'''
print('Program rozwiazuje uklad rownan (o niewiadomych x, y) o postaci:\n{ax+by=c\n{dx+ey=f')
a=float(input('Wprowadz wspolczynnik a\n'))
b=float(input('Wprowadz wspolczynnik b\n'))
c=float(input('Wprowadz wspolczynnik c\n'))
d=float(input('Wprowadz wspolczynnik d\n'))
e=float(input('Wprowadz wspolczynnik e\n'))
f=float(input('Wprowadz wspolczynnik f\n'))
wyznacznikmacierzy=(a*e-d*b) #obliczenie wyznacznika macierzy
wyznacznikx=(c*e-f*b) #obliczenie wyznacznika macierzy X
wyznaczniky=(a*f-d*c) #obliczenie wyznacznika macierzy Y
if wyznacznikmacierzy==0: #wtedy uklad jest nieoznaczony lub sprzeczny
    if wyznacznikx==0 and wyznaczniky==0: #przypadki dla ukladu nieoznaczonego
        if a==0 and b==0 and c==0 and d==0 and e==0 and f==0: #przypadek, gdy wszystkie wspolczynniki to zera
            print('Uklad nie istnieje, x i y sa dowolne')
        elif b==0 and e==0: #przypadek, gdy y nie istnieje
            x=c/a
            if x==(-0.0): #zapobiegniecie wyswietlaniu sie wartosci "-0.0", ktora czasem ma miejsce
                x=0.0
            print('x wynosi',x)
            print('y nie zalezy od x')
        elif a==0 and d==0: #przypadek, gdy x nie istnieje
            y=c/b
            if y==(-0.0): #zapobiegniecie wyswietlaniu sie wartosci "-0.0", ktora czasem ma miejsce
                y=0.0
            print('y wynosi',y)
            print('x nie zalezy od y')
        else: #przypadek dla najbardziej typowych ukladow nieoznaczonych
            print('x=(',c,'-',b,'y)/',a,' dla dowolnego y',sep='')
            print('y=(',c,'-',a,'x)/',b,' dla dowolnego x',sep='')
    else: #przypadek dla ukladu sprzecznego
        print('Uklad jest sprzeczny (nie ma rozwiazan)')
else: #przypadek dla ukladu oznaczonego
    x=wyznacznikx/wyznacznikmacierzy
    y=wyznaczniky/wyznacznikmacierzy
    if x==(-0.0): #zapobiegniecie wyswietlaniu sie wartosci "-0.0", ktora czasem ma miejsce
        x=0.0
    if y==(-0.0): #zapobiegniecie wyswietlaniu sie wartosci "-0.0", ktora czasem ma miejsce
        y=0.0
    print('x=',x,'\ny=',y,sep='') #wyswietlenie sie wynikow
