Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithmique -algobox-Polynome du second degré

Posté par
Audreymlgn
06-02-19 à 13:45

Bonjour, mon prof de maths nous a donné un DM à faire sur Algobox mais après plusieurs tentatives, l'algorithme ne convient pas. Voici le sujet:
On souhaite étudier la fonction polynôme du second degré f(x)=ax²+bx+c, suivant les réels a, b et c.
proposer un algorithme qui permette, suivant les réels a, b et c donné par l'utilisateur, de:
1. Afficher la fonction polynôme du second degré après la saisie de : a, b et c?
2. Donner des éventuelles solutions dans R, de l'équation : f(x)=0
3. Afficher la forme factorisable de f, quand elle existe
4. Afficher la forme canonique de f
5. Etudier le signe du trinôme f(x)
6. -a=1; b=1; c=1
     -a=1; b=-2; c=1
     - a=1; b=3; c=-4
     -a=0; b=1; c=-9
     -a=0; b=0; c=10
     -a=0 b=0 c=0
la note tiendra compte de :
-la lisibilité du programme: utiliser les commentaires
-une bonne interaction avec l'utilisateur : utiliser les messages pour informer l'utilisateur des résultats à chaque étape
-le programme doit traiter tout les points précédents de 1 à 5
-Aide : on peut via un menu choisir l'opération à effectuer, par exemple :
     _ Tapez A : pour afficher la fonction polynôme f
     _Tapez R : pour résoudre l'équation f(x)=0
     _Tapez F : pour factorisation de f
     _Tapez C : pour la forme canonique de f
     _Tapez S : pour étudier le signe de f
     _Tapez G : pour afficher le graphique de f

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:20

bonjour

qu'as-tu commencé ?
avant de programmer, tu dois réfléchir à la façon dont tu t'y prendrais si tu devais  répondre à ces questions avec juste papier et crayon

demande de précision : tu dois tracer le graphique de la fonction ? (option G)
ce n'est pas dit clairement dans l'énoncé des questions.
que représentent les coeff a, b et c que tu énumères en 6)

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:27

carita Bonjour, nous sommes un groupe de 4 et avons déjà tenté plusieurs algorithmes  mais à chaque fois il y a des erreurs où alors cela ne fonctionne pas. pour le G il faut en effet que la courbe soit tracé et la question 6 je n'ai pas compris votre question.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:27

si besoin, tu pourras t'aider de 4-Résumé sur les polynômes du second degré

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:30

ma question :
6. -a=1; b=1; c=1
     -a=1; b=-2; c=1
     - a=1; b=3; c=-4
     -a=0; b=1; c=-9
     -a=0; b=0; c=10
     -a=0 b=0 c=0

que signifie cette partie de l'énoncé ?

avons déjà tenté plusieurs algorithmes  mais à chaque fois il y a des erreurs où alors cela ne fonctionne pas
ben montre ! et précise où ça ne marche pas
ça servira de base.

vous avez essayé le mode pas à pas pour détecter où ça bloque ?

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:32

j'ignorais que l'on pouvait tracer des courbes sous algobox,
mais j'ai trouvé ceci, ça peut vous aider (je n'ai pas encore testé)

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:35

carita Bonjour, nous sommes un groupe de 4 et avons déjà tenté plusieurs algorithmes  mais à chaque fois il y a des erreurs où alors cela ne fonctionne pas. pour le G il faut en effet que la courbe soit tracé et la question 6 je n'ai pas compris votre question.caritacaritacaritacaritacarita

carita @ 06-02-2019 à 14:30

ma question :
6. -a=1; b=1; c=1
     -a=1; b=-2; c=1
     - a=1; b=3; c=-4
     -a=0; b=1; c=-9
     -a=0; b=0; c=10
     -a=0 b=0 c=0

que signifie cette partie de l'énoncé ?

avons déjà tenté plusieurs algorithmes  mais à chaque fois il y a des erreurs où alors cela ne fonctionne pas
ben montre ! et précise où ça ne marche pas
ça servira de base.

vous avez essayé le mode pas à pas pour détecter où ça bloque ?




oui nous avons essayer le mode pas à pas mais cela ne nous indiquait pas les erreurs.
pour la question 6, c les valeurs que l'on doit donner  à a, b et c au tout début car celon le menu choisit il faut calculer la forme canonique la factorisation ou encore la courbe donc pour chaque valeur nous obtiendrons un résultat différent.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:42

6) ok ce sont des propositions de coefficients pour tester notre programme

tu peux me montrer ton algo ? (copier-coller de ton programme algobox)

merci de ne plus citer les messages précédents, ça alourdit inutilement le fil.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:51

une méthode :

commencer à jeter sur papier la trame de ton algorithme
- saisie des coeff (et test)
- saisie de l'option choisie (et test)
- préparer le développement des 6 modules avec des tests  si... alors

puis commencer à travailler le 1er module (lettre A)
- quelles variables?
- quels calculs?
- quels affichages?

saisir sur algobox, puis tester

ensuite seulement greffer l'option B (penser à définir les nouvelles variables), saisir, tester.
etc.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:51

option R, et non pas B, mais tu avais compris.

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:54

Voici le début en sachant qu'il manque beaucoup  de chose tel que le menu.
En sachant qu'il y en a eu d'autre après mais se sont mes camarades qui l'ont.
celui si n'est que notre base.    

Algorithmique -algobox-Polynome du second degré

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:55

Voici la deuxième partie.

Algorithmique -algobox-Polynome du second degré

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 14:57

carita merci pour le conseil.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:00

1ère partie
je suppose que tu as défini toutes les variables (mm si ce n'est pas affiché ici)

2 remarques :

1) le test sur a ?
si a=0 alors ce n'est pas du second degré
==> afficher un message

2) à quel moment tu as choisi l'option A, R, etc ?
tu proposes d'emblée l'affichage de f(x) puis tu te lances sur delta !

je regarde la suite

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:07

Pour a je sais bien mais le problème quand on est passé la dernière fois a ne pouvait pas être  = à 0 mais quand le prof a vu sa il nous a dis que sa n'était pas normal parce que du coup quand on ont prenait le menu G pour tracer la courbe, la courbe était fausse.
Et pour le menu A R... nous n'avons pas pas réussies à faire le menu.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:08

3) les tests sur delta ne sont pas bons

tu pars de : "si delta 0"  alors  blabla
==> tu es donc dans le cas où delta est soit positif ou négatif
... tu vois

et, dans ton programme,  le SINON qui suit concerne donc le cas delta=0 !
ainsi si delta>0, il n'est jamais identifié/traité.

au niveau de la présentation des résultats,
je n'ai pas encore lu en détail, mais il me semble que tu sais faire.

c'est plus au niveau de la logique qu'il faut tout revoir calmement.

tout ce que tu as fait n'est pas perdu!
tu pourras récupérer des groupes d'instructions, mais placées au bons endroits

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:11

Merci pour votre aide sa m'a bien aidé.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:13

"quand le prof a vu sa il nous a dis que sa n'était pas normal parce que du coup quand on ont prenait le menu G pour tracer la courbe, la courbe était fausse. "
euh, pas très clair.

le cas a=0 est à identifier dès le départ
"étudier la fonction polynôme du second degré f(x)=ax²+bx+c, "

signaler que ce n'est pas une fonction du second degré
éventuellement afficher la forme affine
et sortir du programme  : ne pas permettre de saisir une option.

à la limite, permettre une nouvelle saisie... mais commençons simple.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:15

je pense que le plus simple pour t'aider (à distance), c'est que tu partes sur mon message de 14h51 pour bien poser les choses à plat.

et avancer par étapes validées.

au boulot !

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:18

Merci beaucoup de votre aide

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:39

Bonjour,

pour info une copie d'écran ou une photo de Algobox est quasi inutilisable pour se transmettre des algorithmes.

soit on se met en mode "éditeur" dans Algobox et alors du simple copier-coller permet d'échanger dans les deux sens, de citer des morceaux etc .
parce que ce qu'on se transmet c'est du texte , en texte, pas des images.
cela règle aussi le problème de caractères microscopiques peu lisibles.
et cela règle aussi les modes invisibles sinon des "AFFICHER" avec ou sans saut de lignes (différence entre AFFICHER et AFFICHER*, visible seulement en mode éditeur ou dans un export du programme)

soit on fait "exporter vers un fichier texte" et on ouvre ce fichier texte dans un éditeur et on le copie-colle, idem.

il peut y avoir des problèmes de sauts de lignes à la copie (il y a plusieurs codages différents pour passer à la ligne selon les systèmes et les logiciels, un bon éditeur de texte comme Notepad++ règle tout ça en un clic)

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 15:41

FONCTIONS_UTILISEES
VARIABLES
  a EST_DU_TYPE NOMBRE
  b EST_DU_TYPE NOMBRE
  c EST_DU_TYPE NOMBRE
  s1 EST_DU_TYPE NOMBRE
  delta EST_DU_TYPE NOMBRE
  s2 EST_DU_TYPE NOMBRE
  alpha EST_DU_TYPE NOMBRE
  beta EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  LIRE a
  LIRE b
  LIRE c
  AFFICHER "f(x)="
  AFFICHER a
  AFFICHER "x²+"
  AFFICHER b
  AFFICHER "x+"
  AFFICHER c
  //pour b et c il se peut que deux signes opératoires se suivent.
  delta PREND_LA_VALEUR pow(b,2)-4*a*c
  SI (delta==0) ALORS
    DEBUT_SI
    s1 PREND_LA_VALEUR -b/(2*a)
    AFFICHER "la solution de l'équation f(x)=0 est"
    AFFICHER s1
    AFFICHER "la forme factorisée de f est f(x)="
    AFFICHER a
    AFFICHER "(x-"
    AFFICHER s1
    AFFICHER ")²"
    FIN_SI
    SINON
      DEBUT_SINON
      SI ((delta>0)) ALORS
        DEBUT_SI
        s1 PREND_LA_VALEUR (-b+sqrt(delta))/(2*a)
        s2 PREND_LA_VALEUR (-b-sqrt(delta))/(2*a)
        AFFICHER "les solutions de l'équation f(x)=0 sont"
        AFFICHER s1
        AFFICHER s2
        AFFICHER "la forme factorisée de f est f(x)="
        AFFICHER a
        AFFICHER "(x-"
        AFFICHER s1
        AFFICHER ")(x-"
        AFFICHER s2
        AFFICHER ")"
        FIN_SI
        SINON
          DEBUT_SINON
          AFFICHER "l'équation f(x)=0 n'a pas de solution donc pas de forme factorisée"
          FIN_SINON
      FIN_SINON
  alpha PREND_LA_VALEUR -b/(2*a)
  beta PREND_LA_VALEUR F1(alpha)
  AFFICHER "la forme canonique est f(x)=)"
  AFFICHER a
  AFFICHER "(x-"
  AFFICHER alpha
  AFFICHER ")²+"
  AFFICHER beta
FIN_ALGORITHME

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 16:11

c'est un bon début

j'obtiens après quelques correction mineures

***Algorithme lancé***
Entrer a : 1
Entrer b : 1
Entrer c : 1
f(x)=1x²+1x+1
l'équation f(x)=0 n'a pas de solution donc pas de forme factorisée
la forme canonique est f(x)=1(x--0.5)²+0.75
***Algorithme terminé***

qu'est ce que j'ai corrigé dans ton algorithme ?
tout d'abord il faut définir la fonction F1 dans l'onglet "utiliser une fonction numérique"
il ne peut pas deviner que c'est ax² + bx + c !!

ensuite il faut passer à la ligne de temps en temps sinon ce sera totalement illisible : il mettra tous les affichages à la suite sur une seule grande ligne et sans aucun espaces
par exemle si s1 vaut 1 et s2 vaut 2
AFFICHER s1
AFFICHER s2

affichera 12 ! les deux valeurs collées l'une à l'autre sur une même ligne
en mode éditeur le passage à la ligne après affichage s'écrit AFFICHER*
c'est une case à cocher en mode normal (dans l'écran définissant le AFFICHER)

par exemple
AFFICHER* s1
AFFICHER s2

affichera
1
2

(le 1 à la suite de ce qui était affiché précédemment et ce qu'on affichera ensuite sera collé au 2 car par de "*" dans le deuxième afficher, c'était un exemple)

enfin il y a une faute de frappe dans le
AFFICHER "la forme canonique est f(x)=)"

c'est tout ce que j'ai modifié !
(j'ai viré la ligne "FONCTIONS_UTILISEES " qui ne définissait rien, et qui est de la syntaxe d'un autre algobox que le mien
en export de texte il m'écrit :

sanstitre - 06.02.2019

******************************************

******************************************

1 VARIABLES
2 a EST_DU_TYPE NOMBRE
3 b EST_DU_TYPE NOMBRE
4 c EST_DU_TYPE NOMBRE
...
63 FIN_ALGORITHME

Fonction numérique utilisée :
F1(x)=a*x*x+b*x+c

(ce que j'ai mis dans la définition de F1 dans l'onglet "fonction numérique")

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 16:16

Merci beaucoup pour votre aide je vais corriger les erreurs retanté quelques trucs et je vous le renverez

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 16:18

ceci dit je dois quitter.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 17:55

" on peut via un menu choisir l'opération à effectuer..."  -- ce n'est pas obligatoire ?

ensuite, on peut perfectionner l'affichage, par exemple :

- si b<0 ou c<0, ne pas faire afficher "+"b, sinon, il va s'afficher +-8, par exemple.
idem pour de la forme canonique

- si,  pour la forme canonique, si est négatif,
afin d'éviter d'avoir "--" deux signes moins cote à cote,
faire un test préalable pour le remplacer par un +

- si un coefficient = 0, ou si = 0, ne pas l'écrire
exemple :
2x²+0x+3  ==> afficher 2x²+3
5(x-1)² + 0 ==> afficher 5(x-1)²

- si  a ou b = 1, ne pas l'écrire non plus
ex : 1x² + 1x + 5  ==> afficher x²+ x + 5

- ne pas hésiter à insérer un commentaire pour aérer le programme et expliquer ce qui suit (conseillé par l'énoncé)

et le cas a=0...?

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 19:38

Le menu n'est pas obligatoire mais il nous rapporte 3pts bonus.
Ensuite pour a=0, il faut que je trouve un moyen car lors c que l'on a essayé sur un autre programme cela nous donné une parabole alors que l'on aurait du avoir une droite parallèle à l'axe des abscisse. Et cette pour cette droite on m'a parlé de coefficient directeur.

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 19:54

Le menu n'est pas obligatoire mais il nous rapporte 3pts bonus.
ok

Ensuite pour a=0, il faut que je trouve un moyen car lors c que l'on a essayé sur un autre programme cela nous donné une parabole    

alors que l'on aurait du avoir une droite parallèle à l'axe des abscisse. Et cette pour cette droite on m'a parlé de coefficient directeur

pas forcément parallèle à (Ox)

==> la fonction sera de la forme y = bx+c
si b= 0 alors oui,  droite // à (Ox)
mais dans le cas général on a une droite de coefficient directeur b
Fonctions linéaires et affines

pour a=0, il faut que je trouve un moyen
c'est pas compliqué ! faire un test juste après la saisie de a.

- si a0 , ben... continuer

- sinon,  afficher un message (on peut éventuellement prévoir une nouvelle saisie, mais bon... faisons simple)

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 06-02-19 à 23:55

vu que dans le jeu d'essai on a trois cas différents avec a = 0, il faut traiter proprement le cas a = 0 et pas le "botter en touche"
c'est à dire que si a = 0, il faut faire tout ce qu'on doit faire avec une fonction affine f(x) = bx+c
et ne rien faire du tout de ce qu'on doit faire avec un trinome du second degré.

on aura donc l'architecture générale :

saisie des données
SI (a == 0)
// traiter le(s) cas affine
SINON
// traiter le(s) cas second degré (= ce qui a été fait, en gros)
FIN SI

l'intérêt du mode éditeur de Algobox est qu'on peut copier coller des morceaux entiers de programme pour les glisser à l'intérieur d'un SI ou déplacer et découper en morceaux (selon le menu ...) sans avoir besoin de tout retaper ...

il y a deux façons d'organiser son travail

je "recense" et je code toutes les briques dont je vais avoir besoin (elles sont définies par les différentes phrases de l'énoncé !)
le morceau déja fait
et je les place dans une structure plus complète pour gérer les différents cas et dialogues

ou au contraire
je définis d'abord le dialogue et les fonctions que je veux faire, la structure générale du programme
et dans cette structure il n'y a en fait que des commentaires !! disant ce qui reste à coder
puis je détaille au fur et à mesure de la conception, en testant chaque étape.

dans aucun cas on n'écrit du code au fur et a mesure au kilomètre en "ajustant jusqu'à ce que ça marche"
il FAUT une méthode de travail...

Posté par
Glapion Moderateur
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 12:51

une petite astuce pour alléger les AFFICHER

tu déclares une variable de type CHAINE
F EST_DU_TYPE CHAINE

puis tu écris dans cette variable tout ce que tu veux afficher
exemple : F PREND_LA_VALEUR "f(x)="+a+"x²"+b+"x"+c
et tout s'écrit avec AFFICHER F, les a;b;c sont remplacés par leur valeur et les chaines entre quottes restent inchangées.

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 13:11

Bonjour, ma copine m'a envoyé les deux autres algorithmes  qui sont beaucoup plus mais beaucoup plus complet. Si vous pouviez me dire le quel des deux répond le mieux à l'énoncé. Merci d'avance.

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 13:11

DEBUT_ALGORITHME
  //Annonce du but de l'algorithme
  AFFICHER* "Nous souhaitons étudier le polynôme f(x)=ax²+bx+c suivant les réels a,b,c"
  AFFICHER "Saisir a"
  LIRE a
  TANT_QUE (a==0) FAIRE
    DEBUT_TANT_QUE
    AFFICHER "! a NE DOIT PAS ETRE EGAL A 0 !"
    //Empêcher l'utilisateur d'entrer a=nul car il est impossible de diviser par 0
    LIRE a
    FIN_TANT_QUE
  AFFICHER "Saisir b"
  LIRE b
  AFFICHER "Saisir c"
  LIRE c
  delta PREND_LA_VALEUR pow(b,2)-4*a*c
  //calculs des racines lorsque delta> ou = à 0
  SI (delta==0) ALORS
    DEBUT_SI
    //delta=0 donc il n'y a qu'une solution
    x0 PREND_LA_VALEUR -b/2*a
    FIN_SI
  SI (delta>0) ALORS
    DEBUT_SI
    //delta est strictement supérieur à 0, il y a deux solutions.
    SI (((-b-sqrt(delta))/(2*a))<((-b+sqrt(delta))/(2*a))) ALORS
      DEBUT_SI
      x1 PREND_LA_VALEUR (-b-sqrt(delta))/(2*a)
      x2 PREND_LA_VALEUR (-b+sqrt(delta))/(2*a)
      FIN_SI
      SINON
        DEBUT_SINON
        x2 PREND_LA_VALEUR (-b-sqrt(delta))/(2*a)
        x1 PREND_LA_VALEUR (-b+sqrt(delta))/(2*a)
        FIN_SINON
    FIN_SI
  //Création d'un menu pour faciliter l'utilisation de l'algorithme
  AFFICHER* "MENU CHOISIR OPERATION SOUHAITEE :"
  AFFICHER* "(Attention : les majuscules sont importantes ! )"
  AFFICHER* "TAPEZ A pour afficher la fonction polynome de second degrés"
  AFFICHER* "TAPEZ R pour résoudre l'équation f(x)=0"
  AFFICHER* "TAPEZ F pour la factorisation de f"
  AFFICHER* "TAPEZ C pour la canonique de f"
  AFFICHER* "TAPEZ S pour l'étude du signe de f"
  AFFICHER* "TAPEZ G pour tracer la courbe de f"
  RETOUR_MENU PREND_LA_VALEUR "OUI"
  TANT_QUE (RETOUR_MENU=="OUI") FAIRE
    DEBUT_TANT_QUE
    LIRE MENU
    SI (MENU=="A") ALORS
      DEBUT_SI
      //affichage de la fonction polynome de second degrés
      AFFICHER "f(x)="
      AFFICHER a
      AFFICHER "x²"
      SI (b>0) ALORS
        DEBUT_SI
        AFFICHER "+"
        FIN_SI
      AFFICHER b
      AFFICHER "x"
      SI (c>0) ALORS
        DEBUT_SI
        AFFICHER "+"
        FIN_SI
      AFFICHER* c
      FIN_SI
    SI (MENU=="R") ALORS
      DEBUT_SI
      //résolution de l'équation f(x)=0
      //Delta a été calculé, on teste sa valeur
      AFFICHER "Le discriminant Delta est égal à : "
      AFFICHER* delta
      SI (delta<0) ALORS
        DEBUT_SI
        AFFICHER "Il n'y a pas de solutions pour f(x)=0 dans R car Delta est inférieur à 0"
        FIN_SI
      SI (delta==0) ALORS
        DEBUT_SI
        AFFICHER* "Delta est nul donc il y a une racine :"
        AFFICHER "La solution pour f(x)=0 dans R est:"
        AFFICHER* x0
        FIN_SI
      SI (delta>0) ALORS
        DEBUT_SI
        AFFICHER* "Delta est strictement supérieur à 0, il y a deux racines :"
        AFFICHER* "Les solutions pour f(x)=0 dans R sont:"
        AFFICHER x1
        AFFICHER " et "
        AFFICHER* x2
        FIN_SI
      FIN_SI
    SI (MENU=="F") ALORS
      DEBUT_SI
      //déterminer si la fonction est factorisable
      AFFICHER "Le discriminant Delta est égal à : "
      AFFICHER* delta
      SI (delta<0) ALORS
        DEBUT_SI
        AFFICHER* "f(x) n'est pas factorisable"
        FIN_SI
      SI (delta==0) ALORS
        DEBUT_SI
        AFFICHER* "La forme factorisée de f(x) est :"
        AFFICHER "f(x)="
        AFFICHER a
        AFFICHER "(x"
        AFFICHER "-"
        AFFICHER x0
        AFFICHER* ")²"
        FIN_SI
      SI (delta>0) ALORS
        DEBUT_SI
        AFFICHER* "La forme factorisée de f(x) est :"
        AFFICHER "f(x)="
        AFFICHER a
        AFFICHER "(x"
        AFFICHER "-"
        AFFICHER x1
        AFFICHER ")(x"
        AFFICHER "-"
        AFFICHER x2
        AFFICHER* ")"
        FIN_SI
      FIN_SI
    SI (MENU=="C") ALORS
      DEBUT_SI
      //détermination de la forme canonique de la fonction
      alpha PREND_LA_VALEUR -b/(2*a)
      beta PREND_LA_VALEUR (-b*b+4*a*c)/(4*a)
      AFFICHER* "La forme canonique de f(x), f(x)=a(x-alpha)²+beta est : "
      AFFICHER "f(x)="
      AFFICHER a
      AFFICHER "(x"
      //changement des signes afin que la forme canonique soit plus "jolie" ou lisible
      SI (alpha>0) ALORS
        DEBUT_SI
        AFFICHER "-"
        FIN_SI
        SINON
          DEBUT_SINON
          alpha PREND_LA_VALEUR -alpha
          AFFICHER "+"
          FIN_SINON
      AFFICHER alpha
      AFFICHER ")²"
      SI (beta>0 OU beta==0) ALORS
        DEBUT_SI
        AFFICHER "+"
        FIN_SI
      AFFICHER* beta
      FIN_SI
    SI (MENU=="S") ALORS
      DEBUT_SI
      //étude du signe de f(x)
      //prise en compte des différentes possibilités: delta < ou > ou = à 0
      SI (delta<0) ALORS
        DEBUT_SI
        AFFICHER* "Delta est négatif donc f(x) est du signe de a"
        SI (a>0) ALORS
          DEBUT_SI
          AFFICHER* "Le signe de f(x) est positif"
          FIN_SI
          SINON
            DEBUT_SINON
            AFFICHER* "Le signe de f(x) est négatif"
            FIN_SINON
        FIN_SI
        SINON
          DEBUT_SINON
          SI (delta==0) ALORS
            DEBUT_SI
            AFFICHER* "Delta est nul donc f(x) est du signe de a"
            SI (a>0) ALORS
              DEBUT_SI
              AFFICHER* "Le signe de f(x) est positif"
              FIN_SI
              SINON
                DEBUT_SINON
                AFFICHER* "Le signe de f(x) est négatif"
                FIN_SINON
            FIN_SI
            SINON
              DEBUT_SINON
              SI (delta>0) ALORS
                DEBUT_SI
                AFFICHER* "Delta est supérieur à 0 donc  "
                AFFICHER "f(x) est de signe "
                SI (a<0) ALORS
                  DEBUT_SI
                  AFFICHER "négatif pour x<"
                  FIN_SI
                  SINON
                    DEBUT_SINON
                    AFFICHER "positif pour x<"
                    FIN_SINON
                AFFICHER* x1
                AFFICHER "f(x) est du signe "
                SI (a<0) ALORS
                  DEBUT_SI
                  AFFICHER "positif pour "
                  FIN_SI
                  SINON
                    DEBUT_SINON
                    AFFICHER "négatif pour "
                    FIN_SINON
                AFFICHER x1
                AFFICHER "<x<"
                AFFICHER* x2
                AFFICHER "f(x) est du signe "
                SI (a<0) ALORS
                  DEBUT_SI
                  AFFICHER "négatif pour x>"
                  FIN_SI
                  SINON
                    DEBUT_SINON
                    AFFICHER "positif pour x>"
                    FIN_SINON
                AFFICHER* x2
                FIN_SI
              FIN_SINON
          FIN_SINON
      FIN_SI
    SI (MENU=="G") ALORS
      DEBUT_SI
      //étude de la courbe de la fonction f(x)
      pascourbe PREND_LA_VALEUR 0.1
      xdepart PREND_LA_VALEUR -10
      TANT_QUE (xdepart<10) FAIRE
        DEBUT_TANT_QUE
        xfin PREND_LA_VALEUR xdepart+pascourbe
        TRACER_SEGMENT_Rouge (xdepart,a*pow(xdepart,2)+b*xdepart+c)->(xfin,a*pow(xfin,2)+b*xfin+c)
        xdepart PREND_LA_VALEUR xfin
        FIN_TANT_QUE
      AFFICHER* "Mettre fin à l'Algorithme pour afficher la courbe"
      FIN_SI
    AFFICHER* "------"
    AFFICHER "voulez-vous revenir au menu principal pour le même polynome tapez OUI"
    LIRE RETOUR_MENU
    FIN_TANT_QUE
FIN_ALGORITHME

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 13:12

DEBUT_ALGORITHME
  //Annonce du but de l'algorithme
  AFFICHER* "Nous souhaitons étudier le polynôme f(x)=ax²+bx+c suivant les réels a,b,c"
  AFFICHER "choisir a"
  LIRE a
  AFFICHER "choisir b"
  LIRE b
  AFFICHER "choisir c"
  LIRE c
  SI (a==0) ALORS
    DEBUT_SI
    AFFICHER* "La fonction est une fonction affine de forme :"
    //pas oublier retours a la ligne
    AFFICHER "f(x)=bx+c"
    AFFICHER* "donc la fonction sera comme ceci:"
    //retour a la ligne
    AFFICHER "f(x)="
    AFFICHER b
    AFFICHER "x+"
    AFFICHER c
    SI (b==0) ALORS
      DEBUT_SI
      x PREND_LA_VALEUR -(c)
      SI (c==0) ALORS
        DEBUT_SI
        AFFICHER "les solutions sont toutes possibles"
        FIN_SI
        SINON
          DEBUT_SINON
          AFFICHER "il n'y a pas de solutions"
          FIN_SINON
      AFFICHER* "MENU CHOISIR OPERATION SOUHAITEE :"
      AFFICHER* "(Attention : les majuscules sont importantes ! )"
      AFFICHER* "TAPEZ A pour afficher la fonction polynome de second degrés"
      AFFICHER* "TAPEZ R pour résoudre l'équation f(x)=0"
      AFFICHER* "TAPEZ F pour la factorisation de f"
      AFFICHER* "TAPEZ C pour la canonique de f"
      AFFICHER* "TAPEZ S pour l'étude du signe de f"
      AFFICHER* "TAPEZ G pour tracer la courbe de f"
      RETOUR_MENU PREND_LA_VALEUR "OUI"
      TANT_QUE (RETOUR_MENU=="OUI") FAIRE
        DEBUT_TANT_QUE
        LIRE MENU
        SI (MENU=="A") ALORS
          DEBUT_SI
          //affichage de la fonction polynome de second degrés
          AFFICHER "f(x)="
          SI (b>0) ALORS
            DEBUT_SI
            AFFICHER "+"
            FIN_SI
          AFFICHER b
          AFFICHER "x"
          SI (c>0) ALORS
            DEBUT_SI
            AFFICHER "+"
            FIN_SI
          AFFICHER* c
          FIN_SI
        SI (MENU=="R") ALORS
          DEBUT_SI
          //résolution de l'équation f(x)=0
          //Delta a été calculé, on teste sa valeur
          x PREND_LA_VALEUR -(c)/b
          AFFICHER* "on résout l'équetion f(x)=bx+c"
          //retour ligne
          AFFICHER* "donc:"
          //retour ligne
          AFFICHER b
          AFFICHER "x+"
          AFFICHER c
          AFFICHER* "=0"
          //RL
          AFFICHER "la solution est :"
          AFFICHER x
          FIN_SI
        FIN_SI
      SI (MENU=="C") ALORS
        DEBUT_SI
        AFFICHER* "il n'y a pas de forme canonique"
        FIN_SI
      SI (MENU=="S") ALORS
        DEBUT_SI
        AFFICHER* "si b est positif la droite sera croissante sinon elle sera décroissante"
        SI (b<0) ALORS
          DEBUT_SI
          AFFICHER* "donc la droite est décroissante puisque :"
          AFFICHER b
          AFFICHER* "<0"
          FIN_SI
        SI (b==0) ALORS
          DEBUT_SI
          AFFICHER* "la droite est constante elle est horizontal donc"
          AFFICHER "y="
          AFFICHER c
          FIN_SI
        SI (b>0) ALORS
          DEBUT_SI
          AFFICHER* "la droite est croissante puisque "
          AFFICHER b
          AFFICHER ">0"
          FIN_SI
        FIN_SI
      SI (MENU=="G") ALORS
        DEBUT_SI
        AFFICHER "désolé nous n'avons pas eu le temps de nous intéresser a ce menu"
        FIN_SI
      FIN_SI
      SINON
        DEBUT_SINON
        x PREND_LA_VALEUR -(c)/b
        FIN_SINON
    FIN_SINON
  FIN_SI
  SINON
    DEBUT_SINON
    delta PREND_LA_VALEUR pow(b,2)-4*a*c
    //calculs des racines lorsque delta> ou = à 0
    SI (delta==0) ALORS
      DEBUT_SI
      //delta=0 donc il n'y a qu'une solution
      x0 PREND_LA_VALEUR -b/2*a
      FIN_SI
    SI (delta>0) ALORS
      DEBUT_SI
      //delta est strictement supérieur à 0, il y a deux solutions.
      SI (((-b-sqrt(delta))/(2*a))<((-b+sqrt(delta))/(2*a))) ALORS
        DEBUT_SI
        x1 PREND_LA_VALEUR (-b-sqrt(delta))/(2*a)
        x2 PREND_LA_VALEUR (-b+sqrt(delta))/(2*a)
        FIN_SI
        SINON
          DEBUT_SINON
          x2 PREND_LA_VALEUR (-b-sqrt(delta))/(2*a)
          x1 PREND_LA_VALEUR (-b+sqrt(delta))/(2*a)
          FIN_SINON
      FIN_SI
    //Création d'un menu pour faciliter l'utilisation de l'algorithme
    AFFICHER* "MENU CHOISIR OPERATION SOUHAITEE :"
    AFFICHER* "(Attention : les majuscules sont importantes ! )"
    AFFICHER* "TAPEZ A pour afficher la fonction polynome de second degrés"
    AFFICHER* "TAPEZ R pour résoudre l'équation f(x)=0"
    AFFICHER* "TAPEZ F pour la factorisation de f"
    AFFICHER* "TAPEZ C pour la canonique de f"
    AFFICHER* "TAPEZ S pour l'étude du signe de f"
    AFFICHER* "TAPEZ G pour tracer la courbe de f"
    RETOUR_MENU PREND_LA_VALEUR "OUI"
    TANT_QUE (RETOUR_MENU=="OUI") FAIRE
      DEBUT_TANT_QUE
      LIRE MENU
      SI (MENU=="A") ALORS
        DEBUT_SI
        //affichage de la fonction polynome de second degrés
        AFFICHER "f(x)="
        AFFICHER a
        AFFICHER "x²"
        SI (b>0) ALORS
          DEBUT_SI
          AFFICHER "+"
          FIN_SI
        AFFICHER b
        AFFICHER "x"
        SI (c>0) ALORS
          DEBUT_SI
          AFFICHER "+"
          FIN_SI
        AFFICHER* c
        FIN_SI
      SI (MENU=="R") ALORS
        DEBUT_SI
        //résolution de l'équation f(x)=0
        //Delta a été calculé, on teste sa valeur
        AFFICHER "Le discriminant Delta est égal à : "
        AFFICHER* delta
        SI (delta<0) ALORS
          DEBUT_SI
          AFFICHER "Il n'y a pas de solutions pour f(x)=0 dans R car Delta est inférieur à 0"
          FIN_SI
        SI (delta==0) ALORS
          DEBUT_SI
          AFFICHER* "Delta est nul donc il y a une racine :"
          AFFICHER "La solution pour f(x)=0 dans R est:"
          AFFICHER* x0
          FIN_SI
        SI (delta>0) ALORS
          DEBUT_SI
          AFFICHER* "Delta est strictement supérieur à 0, il y a deux racines :"
          AFFICHER* "Les solutions pour f(x)=0 dans R sont:"
          AFFICHER x1
          AFFICHER " et "
          AFFICHER* x2
          FIN_SI
        FIN_SI
      SI (MENU=="F") ALORS
        DEBUT_SI
        //déterminer si la fonction est factorisable
        AFFICHER "Le discriminant Delta est égal à : "
        AFFICHER* delta
        SI (delta<0) ALORS
          DEBUT_SI
          AFFICHER* "f(x) n'est pas factorisable"
          FIN_SI
        SI (delta==0) ALORS
          DEBUT_SI
          AFFICHER* "La forme factorisée de f(x) est :"
          AFFICHER "f(x)="
          AFFICHER a
          AFFICHER "(x"
          AFFICHER "-"
          AFFICHER x0
          AFFICHER* ")²"
          FIN_SI
        SI (delta>0) ALORS
          DEBUT_SI
          AFFICHER* "La forme factorisée de f(x) est :"
          AFFICHER "f(x)="
          AFFICHER a
          AFFICHER "(x"
          AFFICHER "-"
          AFFICHER x1
          AFFICHER ")(x"
          AFFICHER "-"
          AFFICHER x2
          AFFICHER* ")"
          FIN_SI
        FIN_SI
      SI (MENU=="C") ALORS
        DEBUT_SI
        //détermination de la forme canonique de la fonction
        alpha PREND_LA_VALEUR -b/(2*a)
        beta PREND_LA_VALEUR (-b*b+4*a*c)/(4*a)
        AFFICHER* "La forme canonique de f(x), f(x)=a(x-alpha)²+beta est : "
        AFFICHER "f(x)="
        AFFICHER a
        AFFICHER "(x"
        //changement des signes afin que la forme canonique soit plus "jolie" ou lisible
        SI (alpha>0) ALORS
          DEBUT_SI
          AFFICHER "-"
          FIN_SI
          SINON
            DEBUT_SINON
            alpha PREND_LA_VALEUR -alpha
            AFFICHER "+"
            FIN_SINON
        AFFICHER alpha
        AFFICHER ")²"
        SI (beta>0 OU beta==0) ALORS
          DEBUT_SI
          AFFICHER "+"
          FIN_SI
        AFFICHER* beta
        FIN_SI
      SI (MENU=="S") ALORS
        DEBUT_SI
        //étude du signe de f(x)
        //prise en compte des différentes possibilités: delta < ou > ou = à 0
        SI (delta<0) ALORS
          DEBUT_SI
          AFFICHER* "Delta est négatif donc f(x) est du signe de a"
          SI (a>0) ALORS
            DEBUT_SI
            AFFICHER* "Le signe de f(x) est positif"
            FIN_SI
            SINON
              DEBUT_SINON
              AFFICHER* "Le signe de f(x) est négatif"
              FIN_SINON
          FIN_SI
          SINON
            DEBUT_SINON
            SI (delta==0) ALORS
              DEBUT_SI
              AFFICHER* "Delta est nul donc f(x) est du signe de a"
              SI (a>0) ALORS
                DEBUT_SI
                AFFICHER* "Le signe de f(x) est positif"
                FIN_SI
                SINON
                  DEBUT_SINON
                  AFFICHER* "Le signe de f(x) est négatif"
                  FIN_SINON
              FIN_SI
              SINON
                DEBUT_SINON
                SI (delta>0) ALORS
                  DEBUT_SI
                  AFFICHER* "Delta est supérieur à 0 donc  "
                  AFFICHER "f(x) est de signe "
                  SI (a<0) ALORS
                    DEBUT_SI
                    AFFICHER "négatif pour x<"
                    FIN_SI
                    SINON
                      DEBUT_SINON
                      AFFICHER "positif pour x<"
                      FIN_SINON
                  AFFICHER* x1
                  AFFICHER "f(x) est du signe "
                  SI (a<0) ALORS
                    DEBUT_SI
                    AFFICHER "positif pour "
                    FIN_SI
                    SINON
                      DEBUT_SINON
                      AFFICHER "négatif pour "
                      FIN_SINON
                  AFFICHER x1
                  AFFICHER "<x<"
                  AFFICHER* x2
                  AFFICHER "f(x) est du signe "
                  SI (a<0) ALORS
                    DEBUT_SI
                    AFFICHER "négatif pour x>"
                    FIN_SI
                    SINON
                      DEBUT_SINON
                      AFFICHER "positif pour x>"
                      FIN_SINON
                  AFFICHER* x2
                  FIN_SI
                FIN_SINON
            FIN_SINON
        FIN_SI
      SI (MENU=="G") ALORS
        DEBUT_SI
        //étude de la courbe de la fonction f(x)
        pascourbe PREND_LA_VALEUR 0.1
        xdepart PREND_LA_VALEUR -10
        TANT_QUE (xdepart<10) FAIRE
          DEBUT_TANT_QUE
          xfin PREND_LA_VALEUR xdepart+pascourbe
          TRACER_SEGMENT_Rouge (xdepart,a*pow(xdepart,2)+b*xdepart+c)->(xfin,a*pow(xfin,2)+b*xfin+c)
          xdepart PREND_LA_VALEUR xfin
          FIN_TANT_QUE
        AFFICHER* "Mettre fin à l'Algorithme pour afficher la courbe"
        FIN_SI
      AFFICHER* "------"
      AFFICHER "voulez-vous revenir au menu principal pour le même polynome tapez OUI"
      LIRE RETOUR_MENU
      FIN_TANT_QUE
    FIN_SINON
FIN_ALGORITHME

Posté par
Glapion Moderateur
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 13:31

tant qu'à faire tu aurais pu nous mettre les déclarations de variables, ça nous aurait permis de tester les algorithmes.

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 13:42

il manque toutes les déclarations de variables de sorte qu'on ne peut pas tester directement.
et donc ça ne donne pas envie de tester vu qu'il faudrait que l'on se tape toutes les déclarations de variables nous même !
(compléter par les seules sections "Variables :" inutile d'allourdir la discussion en répétant l'algorithme lui-même)


ceci dit on met le doigt sur les limites de Algobox : le programme est vite abominable et totalement illisible

avantage à utiliser un vrai langage de programmation (par exemple Python), et pas Algobox qui ne sert que pour apprendre les bases et écrire des petites trucs de rien du tout.

on peut être amené à ajouter plein de commentaires en particulier pour préciser de quel "SI" il s'agissait quand on arrive au "FIN_SI", vu que le "SI" correspondant est deux pages au dessus !!

SI (a==0) ALORS
DEBUT_SI
// cas d'une fonction affine
... (deux pages de code)
// fin du cas affine
FIN_SI
SINON
DEBUT_SINON
// cas du second degré
... (encore plusieurs pages de code)
// fin du cas second degré
FIN_SINON

Posté par
carita
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 14:00

bonjour à tous

j'attends aussi de tester pour y voir plus clair, car comme le souligne Mathafou, c'est long (normal) !
difficile de suivre la structure, sauf imprimer et surligner.

mais quand même, j'ai envie de dire chapeau ! à l'équipe (niveau 1ère!).
sous réserve de tester tout ça, on sent que ça a phosphoré

note :  un algo a tenu compte des signes pour l'affichage.
on pourrait peaufiner en traitant les cas coeff.=1 ou -1...

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 14:52

je ne comprends pas le rôle de ce message
AFFICHER* "Mettre fin à l'Algorithme pour afficher la courbe"

la courbe est affichée en permanence au fur et à mesure de son tracé dans la fenêtre graphique juste au dessus de la fenêtre de dialogue...
tout au moins c'est comme ça dans Algobox "stand alone" (celui qu'on installe sur son PC)

dans le menu sur la fonction affine est il nécessaire de proposer "forme canonique" etc pour se voir répondre "il n'y a pas de forme canonique " ?
limiter le menu "affine" à ce qu'on sait faire avec une fonction affine (y compris la tracer, à compléter vu que celle là elle n'est pas dure : il n'y a même pas de boucle à écrire ! ni de pas d'incrémentation)

mettre à jour les commentaires correspondants : parler de delta dans un tel commentaire est hors de propos sur une fonction affine !
et donc sème le doute pour savoir dans quelle partie du programme on est !

amélioration :
si la réponse est autre chose qu'une lettre "légale", râler en redonnant la description du menu

au lieu de demander "voulez vous revenir au menu"
y revenir systématiquement et avec une réponse "Q" pour quitter

AFFICHER* "(Attention : les majuscules sont importantes ! )"
bof
il suffit de faire les tests sous la forme
SI (MENU=="C" OU MENU=="c")
pour libérer l'utilisateur de cette contrainte de majuscules et rendre le programme plus convivial

Glapion a deja signalé la méthode pour réduire "l'étalement" de tous ces afficher en série
à employer sans modération

nota :
on peut mettre des sauts de lignes à l'intérieur du message avec le caractère \n
on peut composer le message par morceaux par
msg PREND_LA_VALEUR msg+"la suite"
perso, j'appelle traditionnellement "msg" ma variable chaine qui me sert à composer des affichages (des messages), c'est plus parlant que "F"
on l'appelle bien sûr comme on veut

on peut même faire encore plus fort !!
intégrer les "SI" à l'intérieur de l'affectation de la variable chaine !!
mais bon ... (c'est du code JavaScript ! donc réservé au pros, le prof risque de ne pas apprécier)
c'est toutefois intéressant pour avoir un programme un peu plus "compact", vu la verbosité excessive de Algobox sur les structures de programme avec tous ces "ALORS" "FAIRE" "DEBUT_de" "FIN_de" etc

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 21:32

Voici les déclarations de variables.
delta EST_DU_TYPE NOMBRE
  a EST_DU_TYPE NOMBRE
  b EST_DU_TYPE NOMBRE
  c EST_DU_TYPE NOMBRE
  x EST_DU_TYPE NOMBRE
  x1 EST_DU_TYPE NOMBRE
  x2 EST_DU_TYPE NOMBRE
  x0 EST_DU_TYPE NOMBRE
  alpha EST_DU_TYPE NOMBRE
  beta EST_DU_TYPE NOMBRE
  MENU EST_DU_TYPE CHAINE
  RETOUR_MENU EST_DU_TYPE CHAINE
  xdepart EST_DU_TYPE NOMBRE
  xfin EST_DU_TYPE NOMBRE
  pascourbe EST_DU_TYPE NOMBRE

Posté par
Audreymlgn
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 21:34

De plus nous sommes obligé de travailler sur algo et non sur python. Nous savons que c'est long mais nous sommes obligés si nous voulons répondre à toute les demandes du professeur.

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 22:06

il doit y avoir une erreur quelque part car ça me donne :

***L'algorithme contient une erreur : impossible de le lancer***
***Vérifiez la syntaxe des affectations et des conditions***

et faire ça sur plus de 350 lignes c'est mission impossible
un programme aussi gigantesque se met au point petit à petit
tout d'un coup ce n'est plus possible.
et redécouper tout en petits bouts pour savoir où est l'erreur ce n'est pas notre boulot...

Posté par
alb12
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 22:25

Audreymlgn @ 07-02-2019 à 21:34

De plus nous sommes obligé de travailler sur algo et non sur python. Nous savons que c'est long mais nous sommes obligés si nous voulons répondre à toute les demandes du professeur.

il y a pourtant des programmes precis concernant l'algorithmique et la programmation ...
Topic interessant pour illustrer ce qu'il ne faut pas faire

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 22:34

je pense à des erreurs de copier-coller, le programme étant tellement long qu'il a été copié "par morceaux"
du coup quelques lignes ont dû sauter par-ci par là incluant des FIN_de

Posté par
mathafou Moderateur
re : Algorithmique -algobox-Polynome du second degré 07-02-19 à 23:54

c'est confirmé :
en collant petit bout par petit bout :

VARIABLES
delta EST_DU_TYPE NOMBRE
a EST_DU_TYPE NOMBRE
b EST_DU_TYPE NOMBRE
c EST_DU_TYPE NOMBRE
x EST_DU_TYPE NOMBRE
// ...
MENU EST_DU_TYPE CHAINE
RETOUR_MENU EST_DU_TYPE CHAINE
// ...
DEBUT_ALGORITHME
//Annonce du but de l'algorithme
AFFICHER* "Nous souhaitons étudier le polynôme f(x)=ax²+bx+c suivant les réels a,b,c"
// AFFICHER "choisir a" inutile, algobox dit deja "a"
LIRE a
// AFFICHER "choisir b"
LIRE b
// AFFICHER "choisir c"
LIRE c
SI (a==0) ALORS
DEBUT_SI
// cas affine
AFFICHER* "La fonction est une fonction affine de forme :"
//pas oublier retours a la ligne
AFFICHER "f(x)=bx+c"
AFFICHER* " donc la fonction sera comme ceci :"
//retour a la ligne
AFFICHER "f(x)="
AFFICHER b
AFFICHER "x+"
AFFICHER c
SI (b==0) ALORS
DEBUT_SI
x PREND_LA_VALEUR -(c)
SI (c==0) ALORS
DEBUT_SI
AFFICHER "les solutions sont toutes possibles"
FIN_SI
SINON
DEBUT_SINON
AFFICHER "il n'y a pas de solutions"
FIN_SINON
// fin du cas b = 0, ce FIN_SI manquait
FIN_SI

// il manque le SINON du cas b!=0
AFFICHER* "MENU CHOISIR OPERATION SOUHAITEE :"
AFFICHER* "(Attention : les majuscules sont importantes ! )"
AFFICHER* "TAPEZ A pour afficher la fonction polynome de second degrés"
AFFICHER* "TAPEZ R pour résoudre l'équation f(x)=0"
AFFICHER* "TAPEZ F pour la factorisation de f"
AFFICHER* "TAPEZ C pour la canonique de f"
AFFICHER* "TAPEZ S pour l'étude du signe de f"
AFFICHER* "TAPEZ G pour tracer la courbe de f"
RETOUR_MENU PREND_LA_VALEUR "OUI"
TANT_QUE (RETOUR_MENU=="OUI") FAIRE
DEBUT_TANT_QUE
LIRE MENU
// ... traitement des menus du cas affine puis
// tout ça manquait :
AFFICHER* "------"
AFFICHER "voulez-vous revenir au menu principal pour le même polynome tapez OUI"
LIRE RETOUR_MENU
FIN_TANT_QUE
// jusqu'à ce FIN_TANT_QUE inclus

// fin du cas affine
FIN_SI
SINON
DEBUT_SINON
// cas second degré
// ...
FIN_SINON
FIN_ALGORITHME

(rien que ça c'est déja suffisamment long pour commencer à être ingérable ...)



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !