Bonjour
La question est de faire un programme qui donne les solutions d'équation de deuxième degré.
Voilà ma réponse dans la figure
Je ne sais pas pourquoi mon programme ne fonctionne pas, s'il vous plaît j'ai besoin de votre aide.
Bonjour
La question est de faire un programme qui donne les solutions d'équation de deuxième degré.
Voilà ma réponse dans la figure
Je ne sais pas pourquoi mon programme ne fonctionne pas, s'il vous plaît j'ai besoin de votre aide.
Mon site personnel consacré à MSEide+MSEgui : msegui.net
ok voilà :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 program eqt; uses wincrt ; var a,b,c:integer; delta,x1,x2,x:real; begin write('saisir la valeur de a');read(a); write('saisir la valeur de b');read(b); write('saisir la valeur de c');read(c); delta:=sqr(b)-4*a*c; write('le solution est'); if delta > 0 then begin x1:=[-b-sqrt(delta)]/2*a; x2:=[-b+sqrt(delta)]/2*a ; write('x1',x1,'x2',x2); end else if delta = 0 then x:=-b/2*a write('x',x); else write('pas de solution'); end;
Pour que le programme "fonctionne", il faudrait déjà qu'on puisse le compiler.
Il faut donc commencer par résoudre les problèmes de compilation.
Premièrement, il y a un endroit où vous utilisez des crochets alors qu'il faudrait des parenthèses.
Deuxièmement, il y a un endroit où vous avez oublié un begin et un end (c'est pour le cas où delta vaut 0).
Troisièmement, un programme en Pascal se termine par un point (et non par un point-virgule).
Enfin, il me semble qu'il faut remplacer Read par ReadLn.
Mon site personnel consacré à MSEide+MSEgui : msegui.net
Pas de quoi.
Mon site personnel consacré à MSEide+MSEgui : msegui.net
Bonjour,
C'est vraiment mesquin d'ajouter à la liste des doléances, mais:
Cinquièmement tout les résultats sont faux en raison de l'oubli d'une paire de parenthèses: il fallait écrire:
L'introducion d'une variable réelle supplémentaire eût permis de ne faire qu'une division, en posant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 x1:=(-b-sqrt(delta))/(2*a); x2:=(-b+sqrt(delta))/(2*a) ; ... x:=-b/(2*a); ...
Sixièmement, une résolution complète de l'équation aurait dû envisager les cas
Code : Sélectionner tout - Visualiser dans une fenêtre à part Ka:= 0.5 / a;
# a = 0 (indispensable, à cause de la division qui intervient),
# c = 0 conduisant à la forme triviale (a*x2 + b*x = 0), pour laquelle le calcul de Sqrt(Delta)) n'est plus nécessaire;
le programme aurait dû présenter la structure:
Septièmement, l'écriture des solutions est véritablement choquante, quoiqu'elle conduise à des résultats corrects, parce qu'elle ne respecte pas la syntaxe réservée aux fonctions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 IF a=0 THEN BEGIN END ELSE IF c=0 THEN BEGIN END ELSE BEGIN END;
Le programme aurait dû comporter une autre variable réelle pour mémoriser la valeur de la racine carrée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Variable:= Fonction(Variable1, ... );
ce qui aurait d'ailleurs permis de n'effectuer qu'une seule fois ce calcul:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Rd:= Sqrt(Delta);
Je reconnais que cette dernière remarque dépasse largement le cadre de ce sujet, et même celui du langage Pascal, et qu'elle peut soulever des polémiques ... cette désinvolture calculatoire apparaissant largement répandue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 x1:=[-b - Rd] * Ka; x2:=[-b + Rd] * Ka ;
Passez de bonnes fêtes.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager