Ecrire un programme qui demande à l'utilisateur de taper son âge puis affiche son année de naissance.
La sortie est la suivante :
Entrez votre âge : 32
Vous êtes né(e) vers l'année : 1987
Ecrire un programme qui demande à l'utilisateur de taper son âge puis affiche son année de naissance.
La sortie est la suivante :
Entrez votre âge : 32
Vous êtes né(e) vers l'année : 1987
La solution est ici.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Je suis un dev débutant et j'essai à faire des codes pour me former, j'ai trouvé cet exercice sur net, merci quand même pour la réponse
Salut,
De manière générale, on peut t'aider à tout, mais on ne fera rien à ta place.
Si tu as un problème avec un programme que tu dois créer, tu nous en montre le code que tu as déjà écrit et tu nous explique le problème auquel tu es confronté, pour que nous puissions te donner les explications utiles et t'orienter vers la solution.
Si tu as d'avantage un problème de compréhension face à un concept ou face à un principe, dis nous ce que tu (crois) en avoir compris, que nous puissions corriger le tir ou apporter les précisions nécessaires.
Dans le cas présent, tu nous dit que tu dois écrire un programme. Et bien, fait le! Ce genre de programme fait tout de suite cinq linges, et la logique à mettre en place est des plus simple : comment calcule-t-on l'année de naissance d'une personne depuis son age
Une fois que tu auras écrit ton code, présente le nous pour que nous puissions en discuter
Si tu n'arrives pas à écrire ton code, dis nous ce que tu as essayé de faire et qui n'a pas fonctionné, nous pourrons corriger le tir. Si tu ne sais même pas par quoi commencer pour écrire ton code : essaye de trouver un tutoriel qui t'expliquera les bases du langage que tu veux apprendreNous ne pourrons rien faire de plus pour t'aider tant que tu n'auras pas travaillé un tout petit peu par toi même
![]()
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
J'avais pas idée du concept, procédure et charte de ce site, primo, secondo si je savais dès le début que cela me rend exposé à la dérision, je l'aurai pas dû faire.
J'ai bien notifié que je suis un débutant en c++ , autodidacte, sans cours ni assistance.
Merci de tt fç
La forme était également déplorable: Tu as directement recopié l'énoncé sans rien qui vienne de toi!
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.
Mais ou vois-tu la moindre dérision dans ce que j'ai écrit?
Tu nous dis que tu as un exercice à résoudre. C'est bien! Car c'est en forgeant que l'on devient forgeron: C'est en résolvant des problèmes (qui seront simple au début, et qui deviendront de plus en plus complexes par la suite) que tu apprendra à programmer.
Mais si je te donnes les cinq lignes de codes nécessaires à la résolution de cet exercice, tu n'apprendras rien.
Je peux faire quelques "piqures de rappel" pour t'aider à résoudre ton problème, mais ce sont elles qui te donneront une bonne raison de croire que je suis condescendant, que je te porte en dérision, car, a priori, tout ce que je vais pouvoir dire, tu le sais déjà parfaitement. Maintenant, si tu y tiens...:
1- Il faut savoir que chaque donnée que tu vas manipuler dans un programme C++ doit être typée : on doit indiquer au compilateur le type de donnée que l'on manipule, pour qu'il puisse en déduire les opérations que la donnée peut supporter.
Dans le cas présent, le type qui nous intéresse surtout, c'est le type int (l'abréviation de integer en anglais) qui représente une valeur numérique entière. Ce type nous permet de représenter des valeurs allant de -2 milliards (et une chique) à + 2 milliards (et une chique), ce qui sera parfait pour représenter aussi bien les différentes années que l'on va manipuler que l'age de la personne.
2- Pour pouvoir accéder à une donnée, il faut que nous leur donnions un nom. Le premier caractère de ce nom doit être une lettre ou un underscore _ et les autres caractères doivent être des lettres, des chiffres ou des underscore.
C++ est "sensible à la casse", dans le sens où il fait la différence entre les majuscules et les minuscules. Ainsi, la donnée (numérique entière) qui représenterait l'année de naissance de l'utilisateur pourrait s'appeler
anneeDeNaissance ou naissance, mais il serait considéré comme différent de ANNEEDENAISSANCE ou de NAISSANCE.
De même, nous serions sans doute bien inspirés de représenter l'année courante au travers d'une donnée (qui sera elle aussi de type int), et de la nommer par exemple anneeCourante ou, si tu y tiens, tout simplement annee et de lui donner comme valeur l'année en cours (à savoir 2019).
Par la suite, comme nous voudrons calculer l'age de la personne à partir de ces deux années, nous serons sans doute bien inspirés de créer une troisième donnée (qui sera aussi de type int) nommée age et dont on calculera la valeur sur base de la formule "archi connue" l'age = l'année en cours - l'année de naissance. Mais ca, je présumes que tu connaissais cette formule, non
3- Tout code C++ doit prendre la forme d'une fonction. Lorsqu'on lance le programme, il y a une fonction bien particulière qui est appelée de manière systématique. Cette fonction sert littéralement de "point d'entrée" du programme. Le nom de cette fonction est main et elle prend généralement la forme dele mot clé int que l'on trouve en premier indique que cette valeur doit renvoyer une valeur numérique entière au système d'exploitation pour qu'il s'ache si tout s'est bien passé. Vient ensuite le nom de la fonction, car, pour pouvoir appeler une fonction, il faut bien savoir comment elle s'appelle, et une paire de parenthèses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int main(){ // ce qui doit être fait return 0; // indique au système d'exploitation que tout s'est bien passé }
Quand on souhaite transmettre des valeurs à une fonction qu'elle est totalement incapable de deviner par elle-même (on parle d'arguments ou de paramètres, selon le sens dans lequel on regarde les choses), on indique leur type et le nom qui permet d'y accéder entre les parenthèses, en les séparant (s'il y en a plusieurs) par des virgules.
Enfin, la paire d'accolade { et } représente le "corps de la fonction" : l'ensemble des instructions qui doivent être exécutées dans l'ordre bien particulier qui est indiqué, pour que la fonction soit en mesure de fournir le résultat attendu. Je reviendrai un peu plus tard sur ce point particulier.
4- C++ est un langage dit "modulaire", dans le sens où l'on peut très facilement utiliser des fonctionnalités "développées par d'autres" dans nos propres programmes. Par exemple, il existe toute une bibliothèque de fonctionnalités appelée "bibliothèque standard" (S(T)L de son petit nom, acronyme de Standard (Templated) Library), qui fourni un grand nombre de fonctionnalités d'usage particulièrement courant.
Parmi les fonctionnalités qu'elle offre, on trouve la notion de flux de données : les moyens de faire entrer des données issues de l'utilisateur et de faire sortir des données à destination de l'utilisateur.
Le flux d'entrée (celui qui permet de récupérer les données introduites par l'utilisateur) s'appelle std::cin et le flux de sortie (celui qui permet d'afficher des données à l'écran) s'appelle std::cout. Pour pouvoir utiliser ces deux flux, nous allons devoir inclure un fichier dans notre code qui indique au compilateurs qu'ils existent. C'est le fichier iostream (abréviation Input Output STREAMs).
L'inclusion se fait en ajoutant dans les premières lignes de code (avant même le début de la fonction main) une ligne ressemblant à5- Le code va s'exécuter dans l'ordre exact dans lequel il est écrit : le compilateur va travailler exactement de la même manière que celle que tu utilise pour lire un bon livre : tu lis le livre de la première page à la dernière, en ignorant, alors que tu lis la page 10 ce qui se passe à la page 12
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <iostream>Dis toi qu'il en va strictement de même du compilateur : quand il traite la ligne 10 de ton code, il sait tout ce qui s'est passé pendant les 9 premières lignes, mais il n'a absolument aucune idée de ce qui se passe à la ligne 12.
Si, à un moment ou à un autre, il rencontre un identifiant qu'il ne connait pas, il ne va pas être content, et s'arrêter de fonctionner sur une erreur.
Ton code devra donc:
- déclarer la variable anneeCourante et lui donner la valeur de l'année en cours (2019, au moment d'écrire ces lignes)
- déclarer la variable anneeDeNaissance pour que le compilateur sache qu'elle existe
- afficher un message (au travers de std::cout) indiquant à l'utilisateur que l'on s'attend à ce qu'il introduise son année de naissance
- attendre (au travers de std::cin) que l'utilisateur ait introduit son année de naissance (valeur qui devra être fournie à la variable anneeDeNaissance (il devra appuyer sur <enter> pour valider son introduction)
- déclarer la variable age et lui donner la valeur correspondant à la soustraction année courante - année de naissance
- afficher un message indiquant que l'age de la personne est (la valeur de la donnée age
- renvoyer 0 pour indiquer au compilateur que tout s'est bien passé
Je ne peux décemment pas faire plus sans en arriver à te donner le code tout fait de ton programme. Maintenant, si tu veux plus d'explication ou de l'aide supplémentaire, il va falloir montrer que tu le mérite, en faisant un petit effort toi aussi. Car ce n'est qu'au travers de tes propres efforts que tu sera en mesure d'évoluer![]()
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
Partager