Programme de calcul

Bonjour à tous,

j'ai pour habitude d'écrire un programme de calcul sous cette forme.
E1 : Choisir un nombre relatif.
E2 : Lui soustraire 7.
E3 : Multiplier par 3 pour obtenir le résultat.

Si le nombre de départ est 5, le résultat est -6.

Parfois, il y a la question : "Quel nombre faut-il choisir au départ pour que le résultat du programme soit 0 ?".

1) Dans ce cas, il faut "remonter l'algorithme" et faire les opérations (la soustraction pour l'addition, la division pour la multiplication, etc.) : dites-vous que la soustraction est l'opération "contraire à", "inverse de", autre, l'addition (et réciproquement) ?

2) Aussi, il y a deux manières (à mon sens) de remonter le programme.
Manière 1 Manière 2
E3 : 9 E3 : 9 / 3 = 3
E2 : 9 / 3 = 3. E2 : 3 + 7 = 10
E1 : 3 + 7 = 10. E1 : 10
Laquelle selon vous est la plus appropriée ?
Considère-t-on que dans E3 doit apparaître seulement le résultat ("9", manière 1) ou est-ce que l'on considère que les calculs commencent dès E3 ("9 / 3 = 3", manière 2) ?

Merci à ceux qui s'intéresseront à mes questions.

Réponses

  • Pour moi l'étape "E3" est bizarre à cause de "pour obtenir le résultat".

    Mieux vaut écrire des instructions "comme" dans un algorithme (les guillemets pour dire que ce n'est pas ça non plus...) :
    Choisir un nombre
    Ajouter x
    Soustraire y
    Multiplier par le nombre choisi
    Afficher le résultat
    

    Parfois on ajoute "au résultat précédent" ou "par le résultat précédent" dans chaque instruction.
    Mais je trouve que ça fait "lourd" même si c'est plus clair pour certains élèves.
  • Donc tu écrirais seulement :
    E1 : Choisir un nombre relatif.
    E2 : Lui soustraire 7.
    E3 : Multiplier le résultat par 3.
    ?

    J'avais pensé à ce que tu proposes mais ce que je n'aime pas dans :

    Choisir un nombre
    Ajouter x
    Soustraire y
    Multiplier par le nombre choisi
    Afficher le résultat

    c'est que le résultat de "Multiplier par le nombre choisi" et "Afficher le résultat" est le même...
    Exemple pour x = 2 et y = 3 et 6 comme nombre de départ : 6 -> 8 -> 5 -> 30 -> 30.
  • Si on souhaite s'approcher d'un algorithme, il faut mettre cette instruction (le PC n'écrira rien sur l'écran si on ne lui demande pas, il n'écrira que dans des mémoires).

    M'enfin, on peut très bien effacer cette instruction et demander "quel est le dernier résultat calculé à l'issue du programme de calculs ?".

    Mais je bannis de toute manière "...pour obtenir le résultat." parce que je suis ronchon.
  • Pour moi, c'est un peu redondant, parce que quand on dit "Quel résultat obtient-on lorsque le nombre de départ est 5 ?", cela sous-entend qu'il faut écrire la réponse.

    Donc il ne me semble pas utile, à mon avis, de le mettre dans le programme de calcul.
    Choisir un nombre
    Ajouter x
    Soustraire y
    Multiplier par le nombre choisi
    Afficher le résultat

    Mais peut-être que je me trompe, je ne demande qu'à en parler.

    Et tu as un avis, Dom, sur mes questions 1) et 2) ?
  • En revanche, il est opportun d'ajouter une ligne pour renvoyer le résultat (pour pouvoir l'afficher ou autre).

    Si on a le droit d'utiliser des lettres pour les variables, il me semble très important de nommer la variable courante sur laquelle on travaille : « choisir un nombre A ; ajouter x à A ; etc. »
  • Là, on n'est pas sur un logiciel comme Scratch mais sur un programme de calcul à la main.
    C'est un exercice parmi tant d'autres du brevet.
    Je connais toutes les difficultés qui sont liées au vocabulaire de programmation en 2nde.
    En 3ème, nous n'en sommes pas là mais plutôt sur des notions très basiques.
  • Pour les questions :
    1) Ça ne me gêne pas à l’oral de dire opération contraire.
    Opposé et inverse désignent plutôt des éléments.
    Le langage courant autorise ces mots mais justement : faut-il les utiliser alors qu’ils existent et sont précis dans le langage mathématique ?

    2) Je ne décide jamais de remonter les calculs.
    Ce n’est pas idiot bien entendu. Mais ton « il faut remonter ... » m’étonne.
    Pourquoi ne pas écrire avec une lettre ? En 3e il va bien falloir s’y coller.

    Sur la présentation, franchement, chacun fait comme il veut.
    C’est un exercice « type » mais le résoudre en le présentant d’une manière ou d’une autre que tu proposes apporte évidemment tous les points.
  • Si tu ne veux pas hésiter entre deux méthodes de remontée, ajoute une E4 du genre "renvoyer le résultat" et quand tu veux expliques la manière dont E2 et E3 se comportent, fais en autant pour E1 et E4 qui s'échangent leur rôle.

    D'ailleurs s'il y a une E1 pourquoi n'y aurait-il pas une E4 ?

    C'est aussi un bon prétexte pour la méthode de résolution d'équations ax+b=c, pour ceux qui n'ont pas encore deviné.
  • Merci pour vos réponses.

    @Majax :
    comme je le disais précédemment, il n'y a pas d'étape E4 : "Indiquer le résultat" car celui-ci est déjà écrit dans l'étape E3.
    Arturo a écrit:
    Choisir un nombre
    Ajouter x
    Soustraire y
    Multiplier par le nombre choisi
    Afficher le résultat

    c'est que le résultat de "Multiplier par le nombre choisi" et "Afficher le résultat" est le même...
    Exemple pour x = 2 et y = 3 et 6 comme nombre de départ : 6 -> 8 -> 5 -> 30 -> 30.
  • Pour le résultat, dans ce cas tu le dis dans l’énoncé.
    Voici un programme de calculs. Le résultat du programme est le nombre obtenu après avoir effectué la dernière instruction.

    Au passage, dans tous les sujets du DNB ou CRPE, il me semble (a vérifier) que la dernière instruction est du type « afficher le résultat ».

    Mais bon, il ne s’agit que d’un détail.
  • @Dom, voici un exemple de programme de calcul proposé aux Centres étrangers du 14 juin 2019.
    Cela provient du site de l'A.P.M.E.P. : je ne considère pas que ce soit une référence.
    En revanche, dans tous les sujets du brevet que j'ai vus, je n'ai pas le souvenir d'en avoir vu un avec une instruction finale du type "Afficher le résultat.".105410
    PdC.png 30.7K
  • Ha oui en effet.
  • Pour ma part je considère ces énoncés comme illogiques.

    Si on appelle ça un programme on met une instruction qui retourne un résultat, sinon on est dans un autre type d'objet et dans ce cas je ne vois pas pourquoi la première étape est "choisir un nombre" alors que l'élève n'en choisit pas et je ne vois pas comment un élève moyen peut deviner de lui-même que ce "programme" est censé associer à un nombre en entrée un nombre en sortie.

    Je me sens le recul pour dire que ce genre d'énoncé est débile, ou à tout le moins pas clair, et pourtant on ne voit presque que ça.
    Mais bon, en général les élèves ont compris au bout d'un exemple.
  • @Majax, je partage tout à fait ton point de vue.
    Et pourtant, il faut les entraîner à rencontrer des exercices de ce genre pour préparer le brevet.

    Vois-tu une amélioration d'un tel exercice ?
    Tu mettrais quoi à la place de "Choisir un nombre" ? "Considérer un nombre" ?
  • Choisir une carte.
    La poser à l'envers sur la table.

    Quel est le problème ?

    Les instructions sont des ordres (ou des consignes, pour faire pédagogue), des étapes comme dans une recette. Elles ne retournent pas nécessairement de résultat.

  • Sato tes instructions ne sont pas un "programme" au sens informatique, c'est tout ce que je dis. C'est une partie de programme. Il faut être cohérent sur le choix des mots, mais je peux me tromper.
  • Nous sommes influencés par nos connaissances en informatiques et le vocabulaire associé. Ce vocabulaire s'emploie aussi dans le langage courant et il arrive que ces deux niveaux d'acceptions se recoupent. Ce qui est une imprécision au niveau universitaire ne l'est pas forcément au niveau du langage courant. Ces exercices sont rédigés dans un langage courant... Il n'y est pas dit qu'il s'agisse d'un programme informatique. D'ailleurs, pour moi, ça n'en est pas un, nous sommes d'accord là-dessus.

Connectez-vous ou Inscrivez-vous pour répondre.