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 :

Problème d'utilisation des boucles


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Problème d'utilisation des boucles
    Bonsoir je suis étudiant en BTS IRIS, j'ai quelques programmes à faire et je suis bloqué pour un programme. En faite actuellement je suis en train d'apprendre les boucles While, For et Do While et nous devons les utiliser dans nos programme. L'objectif du programme dans lequel je suis bloqué est de détecter une saisie nulle. En gros, on doit saisir 10 entier au clavier et dès qu'il y 1 nombre nul il faut qu'il soit détecter pendant la saisie et que la recherche s'arrête.
    Si aucun n'est trouvé, un message en informe l'utilisateur en fin de saisies.
    Je dois dire que j'ai passé ma journée et je galère toujours autant j'ai commencé avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    Merci d'avance au gens qui m'aideront :D
     
     
    int main ()
    {
        int nbr =0;
        int compteur =0;
     
     
         if (nbr !=0)
         {
     
             do
               {
                     printf("saissisez un nombre!\n");
                     scanf("%d",&nbr);
                     compteur++;
               }     while (compteur <= 10);
         }
     
     
         else if(nbr == 0)
         {
             printf("Vous avez entrez un 0");
     
         }
     
     
         system("PAUSE");
    }

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par aniki93 Voir le message
    Bonsoir je suis étudiant en BTS IRIS, j'ai quelques programmes à faire et je suis bloqué pour un programme. En faite actuellement je suis en train d'apprendre les boucles While, For et Do While et nous devons les utiliser dans nos programme. L'objectif du programme dans lequel je suis bloqué est de détecter une saisie nulle. En gros, on doit saisir 10 entier au clavier et dès qu'il y 1 nombre nul il faut qu'il soit détecter pendant la saisie et que la recherche s'arrête.
    Si aucun n'est trouvé, un message en informe l'utilisateur en fin de saisies.
    Je dois dire que j'ai passé ma journée et je galère toujours autant j'ai commencé avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    Merci d'avance au gens qui m'aideront :D
    
    
    int main ()
    {
    	int nbr =0;
    	int compteur =0;
    
    
         if (nbr !=0)
    	 {
     
    	     do
               {
                     printf("saissisez un nombre!\n");
    	             scanf("%d",&nbr);
                     compteur++;
               }     while (compteur <= 10);
    	 }
    
     
    	 else if(nbr == 0)
    	 {
    		 printf("Vous avez entrez un 0");
    		 
    	 }
    
    	
         system("PAUSE");
    }
    Salut

    Si tu fais ton test après la boucle, tu ne détecteras pas qu'un nombre nul a été saisi.
    C'est dans la boucle qu'il faut faire le test.

    Accessoirement, étant donné que tu initialises nbr à 0 ta boucle ne se fera même pas !!!

    2 algorithmes possibles

    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    faire
        saisir nombre
        si nombre nul alors break
        compteur <- compteur+1
    tant que compteur < 10
    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    faire
        saisir nombre
        compteur <- compteur+1
    tant que compteur < 10 et nombre non nul
    L'algo n° 1 fait intervenir le break qui n'est pas forcément apprécié par tout le monde mais qui simplifie parfois bien les choses...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Donc dans ma boucle je met un if ? On a le droit ?

    N'étant pas sur pour l'algorithme 1 j'ai essayé le n°2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
     
    int main ()
    {
    	int nbr =0;
    	int compteur =0;
     
     
     
     
    	     do
               {
                     printf("saissisez un nombre!\n");
    	             scanf("%d",&nbr);
                     compteur++;
               }     while (compteur <= 10 && nbr !=0);
     
     
     
     
     
     
     
         system("PAUSE");
    }
    Le soucis c'est que ça ne m'indique pas à quel nombre de saisie apparaît le 0.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par aniki93 Voir le message
    Donc dans ma boucle je met un if ? On a le droit ?
    Hum... j'espère que dans quelque jours tu seras aussi mort de rire devant cette question que tous ceux qui vont passer ici.

    Une boucle sert à répéter une action. Une alternative if (surtout ne me parle jamais de "boucle if") sert à faire un choix. Un choix étant une action, rien n'interdit donc de répéter un choix et donc d'inclure un if dans une boucle...

    Citation Envoyé par aniki93 Voir le message
    N'étant pas sur pour l'algorithme 1 j'ai essayé le n°2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
     
    int main ()
    {
    	int nbr =0;
    	int compteur =0;
     
     
     
     
    	     do
               {
                     printf("saissisez un nombre!\n");
    	             scanf("%d",&nbr);
                     compteur++;
               }     while (compteur <= 10 && nbr !=0);
     
     
     
         system("PAUSE");
    }
    Le soucis c'est que ça ne m'indique pas à quel nombre de saisie apparaît le 0.
    Un ordinateur n'est pas un magicien et ne fait que ce qui est demandé. Si tu veux que ça t'indique à quel nombre de saisie apparaît le 0 ben à toi de le demander...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Hum... j'espère que dans quelque jours tu seras aussi mort de rire devant cette question que tous ceux qui vont passer ici.
    Je pose des questions bête parfois

    Un ordinateur n'est pas un magicien et ne fait que ce qui est demandé. Si tu veux que ça t'indique à quel nombre de saisie apparaît le 0 ben à toi de le demander...
    Mais comment lui demandé ? J'ai déjà mis un compteur ... Faut que j'en mette un deuxième pour qu'il compte à quel moment précis y'a un 0 ? =O En faite je ne comprends vraiment pas comment faire ça...

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par aniki93 Voir le message
    Mais comment lui demandé ?
    printf() sert à afficher les choses...

    Citation Envoyé par aniki93 Voir le message
    J'ai déjà mis un compteur ... Faut que j'en mette un deuxième pour qu'il compte à quel moment précis y'a un 0 ?
    Pourquoi deux compteurs pour compter un évènement ???

    Citation Envoyé par aniki93 Voir le message
    En faite je ne comprends vraiment pas comment faire ça...
    Réfléchir est souvent une bonne option. Tu as un compteur qui compte de 0 à 10. Si tu rentres un nul à la 3° itération, quelle est alors la valeur de ton compteur ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Comprend bien que nous sommes là pour t'aider, pas pour faire tes devoirs.

    Nous ne pouvons que te donner des indications, mais il faut tout de même que tu réfléchisse par toi-même sinon tu n'apprendra jamais rien.

    Une fois ta boucle finie, tu dois dire si il y a eu un nombre = 0 ou pas.

    Petit rappel, tu sors de la boucle lorsqu'une valeur est nulle et tu as un compteur.

    If(....)
    {
    printf("Votre %d valeur est nulle\n", ??);
    }
    else
    {
    printf("tout est bon\n");
    }

    EDIT : le temps de partir et de revenir, je me suis fait grillé^^

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci à vous deux j'ai trouvé la solution

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

Discussions similaires

  1. [log4j] problème pour utilisation des extras
    Par shift dans le forum Weblogic
    Réponses: 0
    Dernier message: 06/12/2007, 09h58
  2. Problème d'utilisation des threads dans mes servlets
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 08/08/2007, 19h34
  3. Problème d'utilisation des files
    Par AraBorLeg dans le forum C
    Réponses: 4
    Dernier message: 06/01/2007, 20h55
  4. Réponses: 1
    Dernier message: 24/11/2006, 16h36
  5. Problème d'utilisation des attributs width et height avec une image distante
    Par Ptit_Mouss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/09/2006, 15h40

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