Algo: LIRE une variable avant ou dans une boucle (exemple)
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Algo: LIRE une variable avant ou dans une boucle (exemple)



  1. #1
    Nicolas3131

    Algo: LIRE une variable avant ou dans une boucle (exemple)


    ------

    Bonjour à tous,

    Pour cet exercice:

    Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27.

    Une réponse possible est:

    Code:
    Variables N, i en Entier
    Debut
    Ecrire "Entrez un nombre : "
    Lire N
    i ← 0
    Ecrire "Les 10 nombres suivants sont : "
    TantQue i < 10
     __i ← i + 1
     __Ecrire N + i
    FinTantQue
    Fin
    Est-ce qu'il est possible de remplacer le Ecrire N + i par Ecrire N+1
    Vu que N+1 est dans la boucle, normalement
    1ere iteration: N+1
    2ieme: (N+1) +1
    ...

    Mais comme le N est lu avant la boucle, je me demande si à chaque itération le programme comprendra N+1 avec le N d'origine, mais pas celui attribué à la boucle précédente.

    Merci d'avance pour votre aide, dites moi si la question n'est pas claire.

    Bonne journée.

    -----
    Dernière modification par JPL ; 10/10/2016 à 13h40. Motif: Ajout de la balise Code (#)

  2. #2
    Ikhar84
    Animateur Informatique

    Re : Algo: LIRE une variable avant ou dans une boucle (exemple)

    Bonjour.
    Deux remarques me viennent tout d'abord en tête en lisant votre algo :
    - pourquoi un boucle while quand une boucle ferait très bien l'affaire et serait plus propre.
    On a un nombre d'occurence de la boucle fini et connu d'avance, et qui reste assez faible : 10.
    - Le compteur i est initialisé à 0 et incrementé à la fin de boucle : une occurenve supplémentaire...

    Vous pouvez ou initialiser i à 1 ou deplacer l'incrementation de i au tout debut de la boucle ?

    La "gestion" de N ne serait pas plus propre en icrementant directement N sans utiliser i ?
    Ecrire N++

    Le résultat de la première boucle ici est bien N + 0...
    Donc N et non N + 1...

    Bon courage !

  3. #3
    antek

    Re : Algo: LIRE une variable avant ou dans une boucle (exemple)

    Citation Envoyé par Ikhar84 Voir le message
    Le résultat de la première boucle ici est bien N + 0...
    Donc N et non N + 1...
    Non, c'est bien N+(i+1) -> N+1

  4. #4
    antek

    Re : Algo: LIRE une variable avant ou dans une boucle (exemple)

    Citation Envoyé par Nicolas3131 Voir le message
    Est-ce qu'il est possible de remplacer le Ecrire N + i par Ecrire N+1
    Vu que N+1 est dans la boucle, normalement
    1ere iteration: N+1
    2ieme: (N+1) +1...
    Oui, si on remplace
    _i<-i+1
    _écrire N+1
    par
    _N<-N+1
    _écrire N

    Mais on perd la valeur de départ de N.

  5. A voir en vidéo sur Futura
  6. #5
    Ikhar84
    Animateur Informatique

    Re : Algo: LIRE une variable avant ou dans une boucle (exemple)

    Citation Envoyé par antek Voir le message
    Non, c'est bien N+(i+1) -> N+1
    Oulala fatigué moi !
    Pardon oui trop vite parcouru l'algo ...

    __i ← i + 1
    Bien avant
    __Ecrire N + i
    Vraiment désolé ...

  7. #6
    LeMulet

    Re : Algo: LIRE une variable avant ou dans une boucle (exemple)

    Une petite remarque.
    Pour un programme qui se respecte et si les circonstances le permettent il est de bon ton d'employer des variables ou des constantes dont on indique le sens plutôt que d'écrire en dur des valeurs dans le code.
    Par exemple, ici on peut ajouter la variable k en lui assignant la valeur 10.
    La valeur assignée à cette variable peut alors être éventuellement modifiée à l'avenir par le codeur suivant beaucoup plus simplement que si il avait à comprendre et parcourir les valeurs inscrites en dur dans le code.

    En reprenant le code initial :

    Code:
    Variables N, i, k en Entier
    Debut
    k <- 10      ; Nombre de Nombres qui suivent N à afficher depuis N
    Ecrire "Entrez un nombre : "
    Lire N
    i ← 1
    Ecrire "Les "  k " nombres suivants sont : "
    TantQue i < k+1
      Ecrire N + i
      i ← i + 1
    FinTantQue
    Fin
    Dernière modification par JPL ; 10/10/2016 à 13h39. Motif: Ajout de la balise Code (#)

  8. #7
    Jack
    Modérateur

    Re : Algo: LIRE une variable avant ou dans une boucle (exemple)

    Bonne idée, mais du coup, autant utiliser des constantes plutôt que des variables qui ne varient pas.

  9. #8
    Dlzlogic

    Re : Algo: LIRE une variable avant ou dans une boucle (exemple)

    Bonjour,
    Excusez mon étonnement : on discute de syntaxe pour l'écriture d'un "code" dans un langage qui n'en est pas un.
    Si j'ai bien compris "_i" est une "constante" et "i" est une variable (ou l'inverse ?).
    C'est le premier langage que je vois qui distingue constante et variable par leur initiale, autrement dit, autrement que par une déclaration claire.
    Pourquoi pas écrire tout simplement l'algorithme en français ?
    @ Jack, si j'ai dit une énormité, merci d'ignorer cette réponse.

  10. #9
    LeMulet

    Re : Algo: LIRE une variable avant ou dans une boucle (exemple)

    Citation Envoyé par Dlzlogic Voir le message
    Bonjour,
    Excusez mon étonnement : on discute de syntaxe pour l'écriture d'un "code" dans un langage qui n'en est pas un.
    Si j'ai bien compris "_i" est une "constante" et "i" est une variable (ou l'inverse ?).
    C'est le premier langage que je vois qui distingue constante et variable par leur initiale, autrement dit, autrement que par une déclaration claire.
    Pourquoi pas écrire tout simplement l'algorithme en français ?
    @ Jack, si j'ai dit une énormité, merci d'ignorer cette réponse.
    En fait, ce n'est pas un langage à proprement parler, mais il s'agit d'après ce que j'en ai compris d'un standard de représentation pour un algorithme.
    Ne connaissant pas ce standard j'imagine qu'il soit néanmoins possible de distinguer les constantes des variables.

    Citation Envoyé par Jack
    Bonne idée, mais du coup, autant utiliser des constantes plutôt que des variables qui ne varient pas.
    Je suis d'accord.
    Si k n'a pas besoin de varier dans le programme, il vaut mieux que k soit une constante.
    Le code produit dans un langage qui respecterait la représentation de cet algorithme pourrait présenter une économie de mémoire en mettant la constante dans le code plutôt qu'en mettant une variable dans la pile (variable qui nécessiterait alors d'être éventuellement (?) initialisée dans le code).

Discussions similaires

  1. comment lire des fichiers en boucle avec R
    Par julien_4230 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 12/05/2014, 15h59
  2. Octave affichage variable boucle
    Par ludovic07 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 18/07/2011, 16h04
  3. boucle et variable en fortran
    Par invitea0f03ccc dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 25/12/2008, 14h38
  4. A lire PRIORITAIREMENT avant de poster dans ce forum
    Par monnoliv dans le forum Projets électroniques
    Réponses: 0
    Dernier message: 14/08/2006, 21h39