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 :

Plusieurs problèmes de débutant


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Japon

    Informations forums :
    Inscription : Octobre 2010
    Messages : 64
    Points : 107
    Points
    107
    Par défaut Plusieurs problèmes de débutant
    Bonjour,

    C'est encore moi ! J'ai pas mal de petits programmes à faire (je suis étudiant) et j'en ai qui me posent vraiment problème car même avec pas mal de réflexion j'y arrive tout simplement pas (peut-être ne suis-je pas fait pour être développeur) et comme je n'ai pas le prof sous la main, j'aurais besoin de votre aide.

    On me demande de faire un programme qui reconnait si l'utilisateur a entré une lettre majuscule ou minuscule. Là je ne sais tout simplement pas comment faire reconnaitre à la console ce genre de chose !

    Je dois faire un programme qui si l'utilisateur a entre le chiffre "1" par exemple, doit afficher 1+2+3+4+5 = 15. Or moi a part afficher 12345, je ne sais pas additionner une valeur incrémentée.

    Merci à vous.

  2. #2
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Il s'agit en effet de problèmes de débutant pour lesquels tu trouveras sans problème les réponses dans le Tutoriels d'initiation au C ou dans la FAQ C.
    Vous postez du code ? Merci d'utiliser les balises
    Un message vous paraît pertinent ? Merci de le gratifier d'un vote positif
    Vous avez obtenu une réponse à votre question ? Merci d'utiliser le tag
    __________________
    Ingénieur R&D, diplômé en 2007 de l'ISIMA
    Docteur en informatique, diplômé en 2015 de l'EDSPI de Clermont-Ferrand

  3. #3
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    On me demande de faire un programme qui reconnait si l'utilisateur a entré une lettre majuscule ou minuscule. Là je ne sais tout simplement pas comment faire reconnaitre à la console ce genre de chose !
    Pour saisir un caractère, c'est getchar. Comme tu n'as peut-être pas le temps de tout lire maintenant, stdin c'est le périphérique d'entrée standard (tout bêtement le clavier si tu as lancé ton programme normalement), et stdout la sortie standard ("l'écran"). Mais bien entendu, je te conseille de lire le tutoriel en entier dès que tu le pourras.

    Pour connaître la casse d'un caractère, on appelle isupper/islower. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (isupper(c))
        printf("C'est une majuscule.\n");
    Je dois faire un programme qui si l'utilisateur a entre le chiffre "1" par exemple, doit afficher 1+2+3+4+5 = 15
    Et si l'utilisateur entre le chiffre "2" ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Japon

    Informations forums :
    Inscription : Octobre 2010
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    Eh bien je suppose, même si cela n'est pas précisé, que cela ferait 2+3+4+5+6 (+ 4 chiffres après le chiffre inséré).

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par kEep OnE Voir le message
    Eh bien je suppose, même si cela n'est pas précisé, que cela ferait 2+3+4+5+6 (+ 4 chiffres après le chiffre inséré).
    Non on ne pouvait rien supposer du tout, à moins d'avoir une boule de cristal mais moi je n'en ai pas en tout cas. La preuve personne ne t'a répondu jusqu'ici car ta question était tout simplement icompréhensible. Tiens je te fais la même pour comprendre :
    Je dois faire un programme qui si l'utilisateur a entre le chiffre "1" par exemple, doit afficher 1+3+5+7 = 16. Or moi a part afficher 1357, je ne sais pas additionner une valeur incrémentée.
    Pourrais-tu me dire ce que je veux que mon programme affiche si l'utilisateur entre le chiffre "2" ?

    N'oublie jamais : question bien posée => réponses plus rapides + personnes plus motivées pour t'aider.

    Maintenant pour revenir à ton problème, c'est basique. Soit n le nombre entré par l'utilisateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int resultat = n;
    /* Ajoutons n+1, n+2, n+3 et n+4 a resultat. */
    for(i = n + 1; i <= n + 4; i++)
        resultat = resultat + i;
    Il y a aussi des formules mathématiques qui donnent immédiatement le résultat sans passer par une boucle mais je suppose que ce n'est pas ce que tu veux faire. J'ai proposé également quelques exercices corrigés sur les conditions (exo 1 à 3) et les boucles (à partir de l'exo 4) ici au cas où ça t'intéresserait.

  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 631
    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 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Melem Voir le message
    Non on ne pouvait rien supposer du tout, à moins d'avoir une boule de cristal mais moi je n'en ai pas en tout cas. La preuve personne ne t'a répondu jusqu'ici car ta question était tout simplement icompréhensible. Tiens je te fais la même pour comprendre :
    Pourrais-tu me dire ce que je veux que mon programme affiche si l'utilisateur entre le chiffre "2" ?
    Salut
    Il y a quand-même de fortes présomptions sur le fait que si, pour 1, ça doit calculer 1+2+3+4+5; alors pour 2 cela devra calculer 2+3+4+5+6. http://fr.wikipedia.org/wiki/Rasoir_d%27Ockham
    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
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Mouais, ou alors le « "1" » était une faute de frappe et il aurait fallu lire « 5 », auquel cas il pourrait s'agir de faire la somme des entiers naturels de 1 à n. Le rasoir d'Ockham, ça dépend beaucoup du point de vue de celui qui expose le problème…

  8. #8
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Salut
    Il y a quand-même de fortes présomptions sur le fait que si, pour 1, ça doit calculer 1+2+3+4+5; alors pour 2 cela devra calculer 2+3+4+5+6.
    Pourquoi pas 2+3+4+5 par exemple ? Je t'invite d'ailleurs à répondre à la question que j'ai alors à kEep OnE aussi si tu veux bien.

    Obsidian : C'est exactement ça .

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    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 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Melem Voir le message
    Pourquoi pas 2+3+4+5 par exemple ?
    J'y ai pensé aussi car effectivement au premier abord cette hypothèse peut se concevoir. Mais j'ai aussi réfléchi à la solution que ça entraine et je me suis dit que si j'avais été le prof, j'aurais préféré la première hypothèse

    Citation Envoyé par Melem Voir le message
    Citation Envoyé par Melem Voir le message
    Je dois faire un programme qui si l'utilisateur a entre le chiffre "1" par exemple, doit afficher 1+3+5+7 = 16
    Pourrais-tu me dire ce que je veux que mon programme affiche si l'utilisateur entre le chiffre "2" ?
    Je t'invite d'ailleurs à répondre à la question que j'ai alors à kEep OnE aussi si tu veux bien.
    Je pense que tu veux parler de ta question ci-dessus recopiée. Ben comme tu pars du nombre de départ pour l'additionner à ses 3 successeurs avec un saut de 2 entre chaque, par simple analogie je ferai pareil avec 2 et j'irai calculer 2+4+6+8...

    Citation Envoyé par Melem Voir le message
    Obsidian : C'est exactement ça .
    Ben oui, c'est vrai qu'invoquer l'hypothèse d'une erreur de frappe est évidemment plus vraisemblable !!!

    Toutefois je comprends bien que tu aies voulu faire comprendre à kEep OnE que poser un problème de façon correcte et complète est évidemment important et utilisé cette métaphore pour ça. Mais lui apprendre la logique, la réflexion et l'esprit d'analogie est aussi utile non ? Ce n'est pas pour rien qu'il existe des tests de logique où on donne 2+4+6+... et on demande de compléter la série...
    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]

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Japon

    Informations forums :
    Inscription : Octobre 2010
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    Pardon, excusez-moi je me suis honteusement trompé ! Bon la consigne est en japonais et parfois je me fourvoie un peu . C'est bien le dernier chiffre qu'il faut entrer et donc additionner a partir de 1. Si l'utilisateur entre un nombre inférieur à 1, la boucle ne démarre pas.
    Si j'entre 5 ça fera donc : 1+2+3+4+5 = 15
    Si j'entre 3 : 1+2+3 = 6

    Par contre j'ai trouvé pour les minuscules/majuscules.

  11. #11
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Sve@r : Et voilà ! Sujet clos entre nous je l'espère .

    kEep OnE : Dans ce cas, tu prends une variable resultat initialisée à 0, tu fais varier une variable i de 1 à n et tu ajoutes chaque i dans resultat. En C ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int resultat = 0;
    for(i = 1; i <= n; i++)
        resultat = resultat + i;
    printf("resultat : %d\n", resultat);
    J'attire à nouveau ton attention sur le fait qu'il existe de nombreux cours de C sur ce site, par fois avec des exrcices corrigés, et que je t'invite à les consulter. Personnellement, je te conseille celui-ci.

Discussions similaires

  1. requete, problème de débutant
    Par focus dans le forum Access
    Réponses: 4
    Dernier message: 16/02/2006, 06h51
  2. Problème de débutant dans une requête
    Par decour dans le forum Access
    Réponses: 7
    Dernier message: 14/10/2005, 15h17
  3. [C#][service windows] problème de débutant avec 1 timer
    Par Nycos62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/10/2005, 12h22
  4. Réponses: 3
    Dernier message: 24/09/2005, 10h34
  5. [DB2] problèmes de débutant
    Par rémi_tounul dans le forum DB2
    Réponses: 4
    Dernier message: 21/04/2005, 18h08

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