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 :

Pb C debutant


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut Pb C debutant
    Bonsoir,

    Je me trouve face a plusieurs petits problèmes.
    J'ai commencé cette après midi a me pencher sur le langage C.
    Ce soir, je suis arrivé a creer un petit programme, mais je rencontre des soucis.

    J'aimerais tout d'abord savoir comment réaliser une interface Homme-Machine, sachant que j'ai programmé mon premier petit "logiciel" sous Dev-C++.

    Voila mon code:


    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[])
    {
        long choix_menu;
        long compteur = 0;
        float prix = 0;
     
      printf ("===MENU=== \n\n");
     
      printf ("1. Royal Cheese \n");
      printf ("2. Mc Deluxe \n");
      printf ("3. Mc Bacon \n");
      printf ("4. Big Mac \n\n");
     
    printf ("Votre choix?");  
      scanf ("%ld" , &choix_menu);
     
      printf ("\n");
     
      switch (choix_menu)
      {
             case 1:
                  printf ("Vous avez choisi un Royal Cheese");
                  compteur ++;
                  prix ++;
                  break;
             case 2:
                  printf ("Vous avez choisi un Mc Deluxe");
                  compteur ++;
                  prix ++;
                  break;
             case 3:
                  printf ("Vous avez choisi un Mc Bacon");
                  compteur ++;
                  prix ++;
                  break;
             case 4:
                  printf ("Vous avez choisi un Big Mac");
                  compteur ++;
                  prix ++;
                  break;
      }
     
      printf ("\n\nVous avez choisi %ld hamburger(s)" , compteur);
      printf ("\n\nVous devez payer : %lf" , prix);
      printf ("\n\n");
     
     
      system("PAUSE");     
      return 0;
    }

    C'est simple, je vous l'accorde, mais je débute.

    Pouvez vous m'aider?

    Merci

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    [Merci de lire les regles du forum et de placer les balises code.]
    Citation Envoyé par psycho0
    Ce soir, je suis arrivé a creer un petit programme, mais je rencontre des soucis.
    On est censés deviner lesquels ? On est pas des compilateurs humains...

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut Emmanuel et Emmanuel : Docteur JEKYLL et Mister HYDE ?
    Citation Envoyé par Emmanuel Delahaye
    On est pas des compilateurs humains...
    Nous non.
    Mais toi...
    Citation Envoyé par [url=http://www.developpez.net/forums/showpost.php?p=1191221&postcount=7]Emmanuel Delahaye, le 23/07/2006 à 12h40,[/url]
    Je ne lis pas les commentaires. Je suis un compilateur humain...

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par David.Schris
    Nous non.
    Mais toi...


  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut
    Bonjour,

    Tout d'abord merci pour votre aide de hier, j'ai reussi a en tirer quelques enseignements.
    Cependant aujourd'hui, lorsque je continue a me familiariser un peu avec ce langage, je rencontre d'autres soucis.
    Voila mon code.


    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[])
    {
        long resultat = 0 , premier = 0 , autre = 0;
        char choix;
     
        printf ("CALCULATRICE\n\n");
     
        printf ("\n\nRentrez votre premier chiffre :\n");
        scanf ("%ld" , &premier);
        printf ("\n\nRentrez votre second chiffre :\n");
        scanf ("%ld" , &autre);
     
        printf ("\n\n Quel calcul voulez vous effectuer? (tapez le chiffre correspondant)\n\n");
     
        printf ("1.addition");
        printf ("\n2.soustraction");
        printf ("\n3.multiplication");
        printf ("\n4.division\n");
     
        scanf ("%ld" , &choix);
     
        switch (choix)
     
        {
     
                  case 1:
                       resultat = premier + autre;
                       printf ("%ld + %ld = %ld \n" , premier, autre, resultat);
                       break;
                  case 2:
                       resultat = premier - autre;
                       printf ("%ld - %ld = %ld\n" , premier, autre, resultat);
                       break;
                  case 3:
                       resultat = premier * autre;
                       printf ("%ld * %ld = %ld \n", premier, autre, resultat);
                       break;
                  case 4:
                       resultat = premier / autre;
                       printf ("%ld / %ld = %ld", premier, autre, resultat);
                       break;
    }
     
     
      printf ("\n\n");  
      system("PAUSE");	
      return 0;
    }

    Mes claculs ne se font pas correctement, comme si le 2 eme chiffre n'etait pas pris en compte :s

    Et pour la division, le programme se ferme avec une erreur innatendue....

    Quelqu'un pourrait m'aider svp?

    Merci

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tu devrais vérifier que tu ne divises pas par zéro....

    Et aussi, éviter d'utiliser scanf(). Contrairement à ce que pensent beaucoup de professeurs (et on se demande toujours pourquoi), scanf() n'est pas une fonction pour les débutants.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Bonjour et bienvenue sur ce site.
    Première chose, je ne te félicite pas pour tes choix culinaires
    D'abord, il faut utiliser les balises [code]|/code] pour encadrer le programme et qu'il soit plus lisible pour le lecteur.

    Maintenant, avant de réaliser une IHM en C, il faut apprendre le C, ce qui n'est pas simple, et avant tout l'algorithmique ce qui n'est pas simple non plus.
    Par exemple ,qu'obtiens-tu si on tape 5 ?
    Lis les tutos sur le C de ce site, bon courage.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut
    Donc je n'ai aucun moyen de faire ca, dans des moyens simples, avant de me pencher sur le C dans son intégralité et surtout dans tout ses états?

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par psycho0
    Donc je n'ai aucun moyen de faire ca, dans des moyens simples, avant de me pencher sur le C dans son intégralité et surtout dans tout ses états?
    Cet exercice fait partie d'un tuto bien connu. Suis le...

  10. #10
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    C'est pas trop mal.
    Mieux vaut être à l' aise en mode console avant d' attaquer le GUI.

    C'est assez rigolo comme programme j'ai pris 10 minutes pour te montrer une façon de l' écrire. Apprendre par l' exemple ne fait jamais de mal.
    Regardes comment utiliser un tableau de structures, qui évite le long switch plein de code redondant. Regardes aussi comment demander plusieurs plats avant de présenter l' addition.

    PS: si c'est pour ta fac, t'auras une note correcte. Mais gare aux exams ehehe...

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
      unsigned int c=1, nbplats=0;
      float total_a_payer = 0;
     
      /* Définit les caractéristiques d' un plat */
      typedef struct {
        char* code;
        char* nom;
        float prixTTC;
      } plat;
     
      /* Remplit illico un tableau de structures, bien que ça
         puisse être fait depuis un fichier texte ou une BDD */
      plat PLATS[6] = {
        {  NULL ,     NULL    , 0     },
        { "3B28", "Royal kipu", 25.5  },
        { "4B02", "Moc luxe"  , 20.0  },
        { "22F5", "Mc Broute" , 21.25 },
        { "88GT", "Big Crap"  , 12.32 },
        { "88GT", "Fritasse"  , 7.65  }
      };
     
      /* Présente le menu (sans prix, comme dans un grand resto ) */
      printf(" ====MENU====\n");
      for (c=1; c<6; c++)
         printf ("%2d. %s\n", c, PLATS[c].nom);
     
      /* Demande des plats jusqu'à ce que l' addition soit demandée */
      printf ("\nTapez 0 pour l' addition.\nVotre choix? ");  
      while (c!=0)
      {
        scanf ("%d", &c);
        if (c>0 && c<7)
        {
          printf ("(vers la cuisine) José, un %s pronto!! (%.2f eurals)\n"
                  "Et avec ça? ",        PLATS[c].nom, PLATS[c].prixTTC);
          nbplats++;
          total_a_payer += PLATS[c].prixTTC;
        }
      }
      if (nbplats)
      printf("\nPour %d plats faut casquer %.2f euros maintenant: espèces ou carte?"
             "\nMété vou su' le coté siouplet, merssi orevoir suivant!\n",
                                  nbplats, total_a_payer);
     
      getchar(); //system("PAUSE");
      return 0;
    }

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut
    Merci, je vais examiner ca :p

    C'est sympa de ta part ^^

Discussions similaires

  1. [FLASH] pb debutant
    Par ultrakas dans le forum Flash
    Réponses: 2
    Dernier message: 05/06/2003, 00h48
  2. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49
  3. [debutant]Limiter le temps de saisi
    Par Nasky dans le forum C
    Réponses: 5
    Dernier message: 17/03/2003, 15h47
  4. [Debutant] Fichier war
    Par saispasfau dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/03/2003, 15h32
  5. Réponses: 3
    Dernier message: 09/02/2003, 01h09

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