Algorithme equation 1er degré

stratman Messages postés 224 Statut Membre -  
 fatima -
Bonjour,

je commence les algorithme et je doi faire celui d'une equation du premier degre. j'utilise le language delphi
donc j'ai ça

procedure TForm1.btnresoudreClick(Sender: TObject);
var A,B,solution:Real;
A:=strtofloat(editA.text);
B:=strtofloat(editB.Text);
if (A<>0) then
begin
solution:=-B/A;
editsolution.Text:=floattostr(solution);
end
else
showmessage('impossible de diviser par 0');
end.



mais ca ne marche pas donc pouvez vous m'aider si vous vous y connaissait en delphi

6 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Salut !

Pour info, Delphi c'est du Pascal ! le savoir t'aidera à trouver plus rapidement des réponses dans le forum ;-)

1) il te manque un begin entre les déclarations de variables et le début du code.
2) une procédure se termine par un ";" il n'y a que le programme qui termine par un "."
0
stratman Messages postés 224 Statut Membre 7
 
unit Unitequation;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  Tfrmequation = class(TForm)
    LblA: TLabel;
    LblB: TLabel;
    btnresoudre: TButton;
    EditA: TEdit;
    EditB: TEdit;
    Lblsolution: TLabel;
    Editsolution: TEdit;
    procedure btnresoudreClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  frmequation: Tfrmequation;

implementation

{$R *.dfm}

procedure Tfrmequation.btnresoudreClick(Sender: TObject);
var A,B,solution:real;
begin
A:=strtofloat(editA.text);
B:=strtofloat(editB.Text);

if a<>0 then
begin
solution:=-B/A;
editsolution.Text:=floattostr(solution);
end
else
showmessage ('impossible de diviser par 0')

end;



c'est ça que tu as besoin ?
-1
KX Messages postés 19031 Statut Modérateur 3 020
 
oui ça me va :)
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Tu as oublié un ";" à la fin de ton instruction showmessage, essaye de modifier ça déjà.
-1
KX Messages postés 19031 Statut Modérateur 3 020
 
Si ça ne marche pas, modifie procedure Tfrmequation.btnresoudreClick(Sender: TObject); en
procedure frmequation.btnresoudreClick(Sender: TObject); ce qui serait plus logique.
0
stratman Messages postés 224 Statut Membre 7
 
non si je modifie procedure ca me met erreur . donc j'ai mi le ; apres l'instruction showmessage mais maintenant c pour le dernier end que ca bug si je met end; j'ai une ligne rouge mais en dessous tout le code donc je sais pas c'est quoi qui bug. si je met end. bun ca me dit que c'est une erreur pour cette ligne et si je met rien ca me fait la même erreur que lorsque je met end;
0
stratman Messages postés 224 Statut Membre 7
 
quand j'execute ca me met ça

[Erreur] Unitresolution.pas(50): ';' attendu(e) mais fin de fichier trouvé(e)
[Erreur fatale] Projectresolution.dpr(5): Impossible de compiler l'unité utilisée 'Unitresolution.pas'
0
KX Messages postés 19031 Statut Modérateur 3 020
 
C'est parce qu'il te manque ton point d'entrée !
Il faut terminer ton unité par begin end.

Comme ça, ça peux paraître idiot mais ça ne l'est pas tant que ça...
Si tu veux regarde une unité que j'ai faite il y a pas mal de temps déjà (ici), tu verras que le begin end. final peux parfois servir à initialiser l'unité.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Tu devrais donc avoir :

implementation

{$R *.dfm}

procedure Tfrmequation.btnresoudreClick(Sender: TObject);
var A,B,solution:real;
begin
A:=strtofloat(editA.text);
B:=strtofloat(editB.Text);

if a<>0 then
begin
solution:=-B/A;
editsolution.Text:=floattostr(solution);
end
else
showmessage ('impossible de diviser par 0');

end;

begin end.
0
stratman Messages postés 224 Statut Membre 7
 
donc ca donne ça

procedure TForm1.btnresoudreClick(Sender: TObject);
var A,B,solution:Real;
begin
A:=strtofloat(editA.text);
B:=strtofloat(editB.Text);
if (A<>0) then
begin
solution:=-B/A;
editsolution.Text:=floattostr(solution);
end;
else
showmessage('impossible de diviser par 0');
end.

mais la c'est dans la ligne du if que ca me met une faute je doit dire a différent de zéro mais je sais pas comment faire à part <>
-2
fatima
 
oui mais qu'est que vous à dire ''showmessage"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KX Messages postés 19031 Statut Modérateur 3 020
 
En fait le <>0 me dérange aussi, mais je n'arrive pas à me souvenir comment on fait en Pascal :p
Enlève les parenthèses déjà, je pense que c'est ça qui pose problème.
-2
stratman Messages postés 224 Statut Membre 7
 
oui sans les paranthèse ca passe mais ca me met encore des erreurs que je ne comprend pas pour cette ligne la
editsolution.Text:=floattostr(solution);

pourtant mes autres exercice fonctionnaient comme ça
-2
KX Messages postés 19031 Statut Modérateur 3 020
 
Je n'ai pas le code correspondant à la déclaration de editsolution.
Assure toi que editsolution.Text existe et est bien de type string.

PS. si tu as un message d'erreur (même incompréhensible pour toi) donne le quand même, ça peux toujours aider à comprendre
0
stratman Messages postés 224 Statut Membre 7
 
comment je peux verifier ?? moi a l'ecole je fait comme ca et j'ai jamais d'erreur dans ces ligne là
0
stratman Messages postés 224 Statut Membre 7
 
[Erreur fatale] Projectresolution.dpr(5): Impossible de compiler l'unité utilisée 'Unitresolution.pas' c'est quoi ca
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Ton programme ne se limite pas à la procédure btnresoudreClick, il y a forcément du code ailleurs.

Je pense que dans ton code tu dois faire un uses Unitresolution
En effet, il doit y avoir quelque part (sûrement caché dans le fichier Unitresolution.pas) la déclaration de TForm1, editA, editB, editsolution, ainsi que le point d'entrée du programme.
0
stratman Messages postés 224 Statut Membre 7
 
je suis perdu la j'ai jamais etait plus loin que ce que je fait maintenant . j'ai eu 4 cours d'info seulement je n'est pas vu grand chose et ca se limite a ce que j'ai écrit
0