Witam, mam problem z warunkami w prostym programie obliczającym x i y w układach równań z macierzy, mianowicie nie działają warunki if, niby warunki są dobrze(przynajmniej tak mi się wydaję, a jednak program wyłącza się, gdy spełni się warunek, że układ jest sprzeczny, albo nieoznaczony. Przy oznaczonym podaje wynik, ale przy okazji dopisuje “Układ jest sprzeczny!”. Dlaczego tak się dzieje? Bardzo proszę o pomoc, zamieszczam poniżej kod programu.
program uklad_rownan;
uses crt;
var a1,a2,b1,b2,c1,c2,W,Wx,Wy:longint;
begin
clrscr;
writeln('Witaj w programie do rozwiazywania ukladow rownan w postaci A1x+B1x=C1 i analogicznie A2x+B2x=C2!');
writeln('Podaj A1: ');
read(a1);
writeln('Podaj B1: ');
read(b1);
writeln('Podaj C1: ');
read(c1);
writeln('Podaj A2: ');
read(a2);
writeln('Podaj B2: ');
read(b2);
writeln('Podaj C2: ');
read(c2);
W:=a1*b2-a2*b1;
Wx:=c1*c2-c2*b1;
Wy:=a1*c2-a2*c1;
if ((W=0) and (Wx<>0) or (Wy<>0)) then writeln('Uklad sprzeczny!');
if ((W=0) and (Wx=0) and (Wy=0)) then writeln('Uklad nieoznaczony!')
else writeln('Wykladnik glowny wynosi: ',W);
writeln('x= ',(c1*b2-c2*b1)/W:3:3);
writeln('y= ',(a1*c2-a2*c1)/W:3:3);
readln;
readln;
end.