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 :

compréhension du ET logique


Sujet :

C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 31
    Points : 27
    Points
    27
    Par défaut compréhension du ET logique
    Bonsoir a tous,

    voila l'algo que je comprend pas et que j'essaye de le programmer en c :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    PROGRAMME Exemple2 ; VARIABLE
    REP : CARACTERE ; DEBUT
    ECRIRE (‘Voulez-vous un café ? (O/N)) ;
    LIRE (REP) ;
    TANT QUE ( ( REP  ‘O’ ) ET ( REP  ‘N’ ) ) FAIRE
    ECRIRE (‘Erreur de saisie : recommencez’) ; ECRIRE (‘Voulez-vous un café ? (O/N)) ; LIRE (REP) ;
    FAIT ; FIN.
    Pour moi il ya une erreur dans la condition de while. je pense que se serait TANT QUE ( ( REP  ‘O’ ) OU ( REP  ‘N’ ) ) FAIRE
    Qu'en pensez vous ?

    et voici mon code en c :

    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
     
    int main(int argc, char *argv[])
    {
    char reponse=0;
    printf("voulez-vous un café o/n \n");
    scanf("%c\n", &reponse);
    while (reponse != 'o'  && reponse != 'n')
    	{
    		printf("votre valeur est pas bonne \n");
    		printf("veuillez recommencer\n");
    		scanf("%c\n", &reponse);
     
     	}
     
    printf(" c'st entendu\n");
    return 0;
    }
    quand je l'execute, je dois mettre de vois valeur successive pour soit: il rentre dans la boucle ou non :
    Nom : Capture d’écran 2021-02-03 à 19.52.11.png
Affichages : 141
Taille : 17,1 Ko

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    quand j'execute, je dois mettre deux valeurs successive

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Enlève le \n du scanf sinon il attend de scanner un \n, ce qui se produit qu'au second scanf vu que le premier scanne le caractère puis le retour à la ligne le valide mais n'est pas absorbé.
    Pour faire ceci, une boucle do while est préférable.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  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 689
    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 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonsoir
    Citation Envoyé par matlab31 Voir le message
    Pour moi il ya une erreur dans la condition de while. je pense que se serait TANT QUE ( ( REP  ‘O’ ) OU ( REP  ‘N’ ) ) FAIRE
    Qu'en pensez vous ?
    Lois mathématiques de "De Morgan"
    • la négation de "A OU B" c'est "non(A) ET non(B)"
    • la négation de "A ET B" c'est "non(A) OU non(B)"

    Ca peut se démontrer au travers des tables de vérités booléennes mais sinon il y a un exemple assez facile à comprendre : le contraire d'un nombre >=0 ET <=10 (compris entre 0 et 10) c'est un nombre <0 OU >10 (parce qu'un nombre <0 ET >10 cela n'existe pas). Et inversement le contraire d'un nombre <0 OU >10 (non compris entre 0 et 10) c'est un nombre >=0 ET <=10 (il faut qu'il réponde aux deux conditions pour être compris dans la plage).

    Une fois que c'est assimilé, pour inverser un test booléen on inverse chaque opérateur égal/différent/plus petit/plus grand et on inverse parallèlement chaque connecteur ET/OU sans se poser de question. Ok parfois ça peut être ardu (comme dans par exemple A ET non(B) ET (C OU non(D)) mais en procédant étape par étape de façon rigoureuse on y arrive (non(A) OU B OU (non(C) ET D) avec les parenthèses de (non(C) ET D) inutiles car le "ET" est prioritaire sur le "OU").
    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 membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    Merci beaucoup de vos aides Bousk et Sve@r

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

Discussions similaires

  1. compréhension du profil d'une fonction
    Par lor dans le forum MFC
    Réponses: 7
    Dernier message: 08/01/2004, 12h59
  2. [FLASH MX] Prob de compréhension des bouttons
    Par WriteLN dans le forum Flash
    Réponses: 13
    Dernier message: 16/10/2003, 17h01
  3. Un lecteur logique caché!!!
    Par Cyberman dans le forum Composants
    Réponses: 3
    Dernier message: 05/10/2003, 23h16
  4. onclipevent (problème de compréhension)
    Par stephane eyskens dans le forum Flash
    Réponses: 8
    Dernier message: 24/09/2003, 15h09
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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