Oppure

Loading
29/10/06 12:16
benigno41
nn ho capito....c'è forse un comando ke m puo fare evitare questo errore...magari ke riconosce lo 0?(scusa sn ancora un novellino)
Ultima modifica effettuata da benigno41 29/10/06 12:17
aaa
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
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
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