Algorithme equation 1er degré

Fermé
stratman Messages postés 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 - Modifié par stratman le 11/10/2010 à 13:49
 fatima - 9 déc. 2011 à 22:15
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
11 oct. 2010 à 14:12
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 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 7
11 oct. 2010 à 15:19
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
11 oct. 2010 à 15:21
oui ça me va :)
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
11 oct. 2010 à 15:25
Tu as oublié un ";" à la fin de ton instruction showmessage, essaye de modifier ça déjà.
-1
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
11 oct. 2010 à 15:30
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 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 7
11 oct. 2010 à 15:36
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 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 7
11 oct. 2010 à 15:43
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
11 oct. 2010 à 15:43
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
11 oct. 2010 à 15:49
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 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 7
11 oct. 2010 à 14:21
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
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
11 oct. 2010 à 14:28
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 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 7
11 oct. 2010 à 14:38
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 11/10/2010 à 14:42
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 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 7
11 oct. 2010 à 14:50
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 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 7
11 oct. 2010 à 14:51
[Erreur fatale] Projectresolution.dpr(5): Impossible de compiler l'unité utilisée 'Unitresolution.pas' c'est quoi ca
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 11/10/2010 à 14:59
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 176 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 8 septembre 2012 7
11 oct. 2010 à 15:13
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