Types incompatibles 'Integer' et 'Extended' [Résolu/Fermé]

Signaler
Messages postés
26
Date d'inscription
vendredi 24 février 2017
Statut
Membre
Dernière intervention
23 mars 2017
-
Messages postés
26
Date d'inscription
vendredi 24 février 2017
Statut
Membre
Dernière intervention
23 mars 2017
-
Bonjour,

J'ai 2 erreurs qui s'affiche comme quoi les types integer et extended sont incompatibles. Je n'arrive pas à résoudre ce problème.
Pouvez vous m'aider ?

Merci !

PS: Les lignes en questions sont en gras !


var
valeurA, valeurB, valeurC: string;
valeurA2, valeurB2, valeurC2: integer;
delta, solution1, solution2: integer;

begin
delta := 0;
valeurA := edValeurA.Text;
valeurB := edValeurB.Text;
valeurC := edValeurC.Text;
valeurA2 := StrToInt(valeurA);
valeurB2 := StrToInt(valeurB);
valeurC2 := StrToInt(valeurC);
delta := ((valeurB2 * valeurB2) - (4 * valeurA2 * valeurC2));
if delta > 0 then
begin
mmResultats.Lines.Add('Delta vaut: ' + IntToStr(delta));
solution1 := (-valeurB2 - sqrt(delta) / 2*valeurA2);
solution2 := (-valeurB2 + sqrt(delta) / 2*valeurA2);

end
else
begin
mmResultats.Lines.Add('Delta vaut: ' + IntToStr(delta));
mmResultats.Lines.Add('Il n''y a pas de solutions réélle à cette équation')
end;

end;



1 réponse

Pour résoudre une équation de second degré, essayez cette solution adaptée et n'oubliez pas de passer RESOLU si la solution vous conviennes .



type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var A,B,C, Delta, X1, X2 : Double;

begin

A := StrToFloat(Edit1.Text);
B := StrToFloat(Edit2.Text);
C := StrToFloat(Edit3.Text);
Delta:= Sqr(B) -(4*A*C);
if Delta > 0 then begin
X1 := (-B - Sqrt(Delta))/ (2*A);
X2:=(-B + Sqrt(Delta))/ (2*A);
Memo1.Lines.Add('L''équation a deux racines distinctes :');
Memo1.Lines.Add('X1 = ' + FloatToStr(X1));
Memo1.Lines.Add('X2 = ' + FloatToStr(X2));
end else if Delta = 0 then begin
X1 := -B /(2*A);
Memo1.Lines.Add('L''equation a une solution unique :');
Memo1.Lines.Add('X1 = ' + FloatToStr(X1)) end else // Le cas Delta < 0
Memo1.Lines.Add('L''equation n''a pas de solution dans R');

end;
end
Messages postés
26
Date d'inscription
vendredi 24 février 2017
Statut
Membre
Dernière intervention
23 mars 2017
8
Merci beaucoup pour cette solution !