Discriminant

Tout ce qui concerne notamment les outils de calcul numérique, de calcul formel ou de géométrie.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
paspythagore
Utilisateur chevronné
Utilisateur chevronné
Messages : 2287
Inscription : mercredi 19 novembre 2008, 15:35
Statut actuel : Autre

Discriminant

Message non lu par paspythagore »

Bonjour,

j'ai un petit problème avec mon script. Lorsque je saisi $1, -3$ et $2$ pour avoir les solutions de $x^2-3x+2=0$.
Algobox me renvoit $1.5$ et $1.5$.

Où me suis-je trompé ?

Code : Tout sélectionner

1   VARIABLES
2     a EST_DU_TYPE NOMBRE
3     b EST_DU_TYPE NOMBRE
4     c EST_DU_TYPE NOMBRE
5     Delta EST_DU_TYPE NOMBRE
6     Alpha EST_DU_TYPE NOMBRE
7     Beta EST_DU_TYPE NOMBRE
8   DEBUT_ALGORITHME
9     LIRE a
10    LIRE b
11    LIRE c
12    Delta PREND_LA_VALEUR pow(b,2)-4*a*c
13    SI (Delta<0) ALORS
14      DEBUT_SI
15      AFFICHER "Pas de solution"
16      FIN_SI
17      SINON
18        DEBUT_SINON
19        SI (Delta=0) ALORS
20          DEBUT_SI
21          Alpha PREND_LA_VALEUR -b/2*a
22          AFFICHER "Une solution "
23          AFFICHER Alpha
24          FIN_SI
25          SINON
26            DEBUT_SINON
27            Alpha PREND_LA_VALEUR (-b-sqrt(Delta))/(2*a)
28  
29            Beta PREND_LA_VALEUR (-b+sqrt(Delta))/(2*a)
30            AFFICHER "2 Solutions"
31            AFFICHER Alpha
32            AFFICHER Beta
33            FIN_SINON
34        FIN_SINON
35  FIN_ALGORITHME
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre

Re: discriminant

Message non lu par rebouxo »

Perso, je pense que tu n'as pas commis d'erreur. Le mode pas à pas montre qu'il se passe quelque chose de bizarre quand tu rentres dans le test Delta > 0. Delta est remis à zéro, or je pense que cela ne devrait pas être le cas.

Donc, on va demander à Texmaker d'analyser cela (au passage c'est très bien d'avoir mis un mode édition de texte, par contre, l'export texte avec les numéros de ligne c'est pas pratique.).

Olivier
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.
paspythagore
Utilisateur chevronné
Utilisateur chevronné
Messages : 2287
Inscription : mercredi 19 novembre 2008, 15:35
Statut actuel : Autre

Re: discriminant

Message non lu par paspythagore »

Merci Olivier/

Je n'ai pas mis en mode édition de texte. Je voulais récupérer le plus précisément possible le script, j'ai fait envoyer vers latex, puis un copier-coller. J'aurai du enlever les numéros. Est ce qu'il existe avec algobox un "elseif" ou un "case" quand le choix est plus varié qu'un choix alternatif ?
texmaker
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 226
Inscription : vendredi 30 juillet 2010, 12:19
Statut actuel : Enseignant

Re: discriminant

Message non lu par texmaker »

Comme indiqué dans la boîte de dialogue, l'aide, le tutoriel en ligne, la brochure pédagogique...la syntaxe pour tester une égalité est == et pas =.
Image
Le test doit être delta==0 et pas delta=0 (ce qui est en fait une affectation)
Texmaker (version courante : 5.1.3) : éditeur LaTeX libre et multi-plateforme avec afficheur pdf.
PdfAdd : Tableaux variations, courbes, arbres, graphes, loi binomiale, cercle trigo, suites pour pdflatex et Asymptote
Site de documentation sur LaTeX
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre

Re: discriminant

Message non lu par rebouxo »

paspythagore a écrit :Merci Olivier/

Je n'ai pas mis en mode édition de texte. Je voulais récupérer le plus précisément possible le script, j'ai fait envoyer vers latex, puis un copier-coller. J'aurai du enlever les numéros. Est ce qu'il existe avec algobox un "elseif" ou un "case" quand le choix est plus varié qu'un choix alternatif ?
Non, je ne crois pas (mais j'utilise peu).

J'ai trouvé ton erreur. Dans le test Delta = 0, il faut utiliser Delta == 0 et donc = revient à Prend_La_Valeur, dans ce test ! Sauf qu’apparemment ce n'est pas accepté, ailleurs. Du coup, j'irais jusqu'à dire que c'est un ch'ti bug.

Je te mets un code plus simple. Sans utiliser les sinon, qui ne servent à rien.

Code : Tout sélectionner

VARIABLES
  a EST_DU_TYPE NOMBRE
  b EST_DU_TYPE NOMBRE
  c EST_DU_TYPE NOMBRE
  Delta EST_DU_TYPE NOMBRE
  Alpha EST_DU_TYPE NOMBRE
  Beta EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  LIRE a
  LIRE b
  LIRE c
  Delta PREND_LA_VALEUR b*b-4*a*c
  SI (Delta<0) ALORS
    DEBUT_SI
    AFFICHER* "Pas de solutions réelles !"
    FIN_SI
  SI (Delta==0) ALORS
    DEBUT_SI
    AFFICHER "Une seule solution réelle : "
    Alpha PREND_LA_VALEUR -b/(2*a)
    AFFICHER* Alpha
    FIN_SI
  SI (Delta>0) ALORS
    DEBUT_SI
    AFFICHER "Deux solutions réelles : "
    Alpha PREND_LA_VALEUR (-b - sqrt(Delta))/(2*a)
    Beta PREND_LA_VALEUR (-b + sqrt(Delta))/(2*a)
    AFFICHER Alpha
    AFFICHER " ; "
    AFFICHER Beta
    FIN_SI
FIN_ALGORITHME
Du coup en passant par l'éditeur, on n'a pas les numéros de lignes et c'est bien mieux, en copiant la fenêtre d'édition. je trouve qu'un export sans numéro, serait utile, en même temps on peut faire sans.

EDIT : @Texmaker, j'ai essayé de faire une affectation avec le signe '=' cela m'a envoyé paître. Pourquoi (pas lu toute la doc, cela dit).
Dernière modification par rebouxo le lundi 01 octobre 2012, 19:24, modifié 2 fois.
Raison : Grillé par Texmaker
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.
paspythagore
Utilisateur chevronné
Utilisateur chevronné
Messages : 2287
Inscription : mercredi 19 novembre 2008, 15:35
Statut actuel : Autre

Re: discriminant

Message non lu par paspythagore »

Merci à tous les deux. j'aurai du aller voir l'aide en ligne, je m'en excuse.
Framboise
Utilisateur chevronné
Utilisateur chevronné
Messages : 1174
Inscription : lundi 21 mai 2007, 13:57
Statut actuel : Autre
Localisation : Dordogne

Re: discriminant

Message non lu par Framboise »

En C/C++ on a de même == pour la comparaison, et = pour l'affectation.
J'ai le virus des sciences, ça se soigne ?
paspythagore
Utilisateur chevronné
Utilisateur chevronné
Messages : 2287
Inscription : mercredi 19 novembre 2008, 15:35
Statut actuel : Autre

Re: discriminant

Message non lu par paspythagore »

Oui c'est vrai.

Je n'en ai pas fait assez pour m'en souvenir.