29/10/06 19:34
Fr3d3R!K
meno male che gli avevo risposto io nell'altro topic ah...
cmq....per riconoscere lo zero ti basta una semplice if del tipo
ok?
cmq....per riconoscere lo zero ti basta una semplice if del tipo
if a==0 && b<>0 then writeln("equazione impossibile"); end; else if a==0 && b==0 then writeln("indeterminata"); end; else writeln("soluzione: ",-b/a,""); //altro codice...
ok?
aaa
02/11/06 17:11
Il Totem
Postato originariamente da Fr3d3R!K:
meno male che gli avevo risposto io nell'altro topic ah...
cmq....per riconoscere lo zero ti basta una semplice if del tipo
ok?
meno male che gli avevo risposto io nell'altro topic ah...
cmq....per riconoscere lo zero ti basta una semplice if del tipo
if a==0 && b<>0 then writeln("equazione impossibile"); end; else if a==0 && b==0 then writeln("indeterminata"); end; else writeln("soluzione: ",-b/a,""); //altro codice...
ok?
Esorcizzati dal demone del C, va bene? Il pascal ha un'altra sintassi!
L'errore è qui:
(*...*) (*----------------*) (*Qui dividi già per delta, che può essere anche 0*) x:=deltax/delta; y:=deltay/delta; (*----------------*) textcolor (8); writeln (''); writeln ('il valore della x è',x); writeln (''); writeln ('il valore della y è',y); writeln (''); (*E soltanto dopo controlli se deve essere zero, dovevi farlo prima! In questo modo, se d=0, lo usi come denominatore nella divisione e di conseguenza ti dà erroe!*) if delta<>0 then writeln ('il sistema è determinato') else begin writeln (''); writeln ('il sistema è indeterminato o impossibile); readln; end;
Il codice esatto sarebbe:
if delta<>0 then begin writeln('Il sistema è determinato!'); x:=deltax/delta; y:=deltay/delta; textcolor (8); writeln (''); writeln ('il valore della x è',x); writeln (''); writeln ('il valore della y è',y); writeln (''); end else begin writeln (''); writeln ('il sistema è indeterminato o impossibile); readln; end;
Ah, un'altra cosa: puoi mettere semplicemente writeln al posto di writeln('') perchè è una procedura modificata con overloading...
aaa