IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

tempo dans une boucle for


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 27
    Points
    27
    Par défaut tempo dans une boucle for
    Bonjour,
    je voudrais faire une petite pause dans l'exécution d'une boucle for,j'ai bien essayé avec sleep() mais quelque chose cloche et ne passe pas.
    Pourriez vous m'éclairer sur ce point.
    D'avance merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <cstdlib>
    #include <iostream>
    #include <windows.h>
    using namespace std;
    void b()
    {
        cout<<"descendant"<<endl;
    int i;              
      for(i=10;i>0;i=i-1)
    sleep(10);
    cout<< i <<endl;
    }
    C'est bon j'ai vu mon erreur en plus je l'avais utiliser pour quelqu'un d'autre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <cstdlib>
    #include <iostream>
    #include <windows.h>
    using namespace std;
    void b()
    {
        cout<<"descendant"<<endl;
    int i;              
      for(i=10;i>0;Sleep(1000),i=i-1)
      cout<< i <<endl;
    }
    le S doit être majuscule si cela peut aider quelqu'un.
    Merci quand même a ceux qui aurait tenté de m'aider.
    A+

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    C'est très "pas beau" ce que tu fait là. La bonne technique est d'utiliser des accolades pour créer un bloc.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 27
    Points
    27
    Par défaut
    Bonjour,
    pourriez vous svp me mettre un exemple "beau",pour que je comprenne ce que vous voulez me dire.
    Merci,
    pour moi le principal pour l'instant n'est pas vraiment la beauté mais la compréhension,mais si je peux également améliorer la beauté pourquoi pas...
    A+

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Ben, simplement, il faut penser au fait qu'un code est beaucoup plus plus souvent lu / analysé qu'il n'est compilé /exécuté.

    Il faut donc veiller à rendre le code le plus lisible possible, pour l'humain avant tout.

    Pour cela, il y a quelques règles simples à essayer d'appliquer en permanence. En voici une liste non exhaustive
    1. essayer d'utiliser des noms (de type définis par l'utilisateur, de fonction ou de variables) aussi explicite que possible quant à l'usage qui est fait
    2. mettre les blocs devant s'effectuer de manière plus ou moins atomique entre accolade
    3. ne mettre qu'une instruction ou qu'une déclaration de variable par ligne
    4. indenter correctement le code en mettant un nombre d'espace suffisant (quatre c'est souvent pas mal )
    5. éviter les "sucres syntaxique" tant qu'il n'est pas prouvé qu'ils sont nécessaires
    6. respecter des règles de nommage strictes
    7. ne déclarer les variables que lorsqu'on en a besoin
    8. j'en oublie peut etre

    Dans ton cas, un "beau code" ressemblerait à quelque chose proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <cstdlib>
    #include <iostream>
    #include <windows.h>
    using namespace std;
    void b() // peut être pourrait on renommer b en "affichageDescendant"?
    {
        cout<<"descendant"<<endl;
        for(int i=10;i>0;i=i-1)
        {
            Sleep(1000); 
            cout<< i <<endl;
        }
    }
    NOTALe code n'as pas été corrigé dans le fond, je n'ai changé que la mise en forme pour respecter les règles décrites plus haut
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 27
    Points
    27
    Par défaut
    Bonjour,
    Ok pour le code j'essayerai de faire un code un peu plus convenable la prochaine fois,mais je ne garantie pas a coup sur qu'il sera au gout de tous,faut pas oublier que je débute,
    tout de même merci pour les conseil et l'exemple.

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    C'est justement parce que tu débutes qu'il est intéressant de marteler ces conseils: il est très facile de prendre des habitudes, mais très difficile de les perdre! Autant prendre directement les bonnes, pour éviter d'avoir à perdre les mauvaises
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par koala01 Voir le message
    il est très facile de prendre des habitudes, mais très difficile de les perdre! Autant prendre directement les bonnes, pour éviter d'avoir à perdre les mauvaises
    En ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (unsigned int i=10; i>0; i--)

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 27
    Points
    27
    Par défaut
    Bonjour Oodini,
    il est vrai qu'il faut tenter de prendre de très bonnes habitude,mais je pense fortement que Koala01 a voulu me conseiller tout simplement et non pas faire le malin avec ces connaissances.
    C'est très bien de ta part de t'impliquer et tenter de rendre encore meilleur le code que j'essaie de faire,mais un peu d'explication au sujet du code proposé est pas mal non plus.
    Je te souhaite une agréable journée et te remercie pour l'aide que tu apportes.
    Au plaisir.

  9. #9
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Salut,

    Je ne pense pas qu'Oodini ait voulut t'écraser, il a juste apporté sa contribution à la discution...

    Il est vrai que l'usage veut, que plutôt que d'écrire , on préfère écrire ( j'ajouterai même que dans une boucle for j'utilise plutôt , ça optimise légèrement...( là aussi, c'est une bonne habitude à prendre ) )

    L'instruction i-- décrémente la variable i de 1 tout simplement

  10. #10
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Je tiens à signaler que j'avais clairement indiqué ne pas avoir corrigé le code
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  11. #11
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Citation Envoyé par oodini Voir le message
    En ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (unsigned int i=10; i>0; i--)
    Moi je te conseille d'éviter de faire ça parce que si par mégarde tu change ton > en >= (parce que le contexte fera que tu veux atteindre 0) tu vas avoir une boucle infinie. Car quand i sera égal à 0 et que la décrémentation va s'exécuter ça ne fera pas -1 mais (2^32-1)-1 soit un nombre bien supérieur à 0.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 27
    Points
    27
    Par défaut
    Bonjour à tous ,
    pour commencer NON je n'ai pas mal pris ce que oodini a voulu me dire.
    @ bertry & oodini

    Citation Envoyé par fhoest
    C'est très bien de ta part de t'impliquer et tenter de rendre encore meilleur le code que j'essaie de faire.
    Je te souhaite une agréable journée et te remercie pour l'aide que tu apportes.
    @ Koala01
    oui j'avais remarqué et de toute façon la demande n'était pas de revoir le code dans son écriture mais bien dans son style (beauté)

    Citation Envoyé par koala01 Voir le message
    NOTALe code n'as pas été corrigé dans le fond, je n'ai changé que la mise en forme pour respecter les règles décrites plus haut
    @ tous,
    Je vous remercie encore et je suis TRES SATISFAIT de toutes vos propositions (je ne suis pas ici pour juger mais pour être aider)
    Bonne journée à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. multi ouverture de la console dans une boucle for
    Par jamesleouf dans le forum C++
    Réponses: 2
    Dernier message: 16/03/2006, 21h26
  2. Shell - Erreur dans une boucle for
    Par claralavraie dans le forum Linux
    Réponses: 4
    Dernier message: 11/01/2006, 13h45
  3. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo