Ce premier volet (C++ 1) visait à vous montrer comment on doit ordonner les instructions pour que l’ordinateur puisse afficher quelque chose à l’écran. Le second volet (C++ 2) explique comment interagir avec lui via le clavier et surtout comment le préparer à gérer vos données : on va voir qu’on doit avertir l’ordinateur du type de grandeurs qu’il va devoir stocker.
On commence par un petit programme qui vous demande votre nom et qui l’affiche ensuite sur la console.
#include <iostream>
#include <string>
using namespace std;
int main()
{
// Phase d'allocation et d’initialisation
string nomUtilisateur("");
int ageUtilisateur(0) ;
// Acquisition des donnees
cout << "Quel est votre nom ?" << endl;
cin >> nomUtilisateur ;
cout << "Quel est votre age ?" << endl;
cin >> ageUtilisateur ;
cout << "\n";
// Restitution des donnees
cout << "L'utilisateur est<< nomUtilisateur << et il a "<<ageUtilisateur<<" ans."<< endl;
// Preparation de l’arret de la fonction
return 0;
}
Que fait ce code ?
#include <iostream>
#include <string>
using namespace std;
int main()
{code code code}
string nomUtilisateur("");
int ageUtilisateur(0) ;
cout << "Quel est votre nom ?" << endl;
cin >> nomUtilisateur ;
cout << "Quel est votre age ?" << endl;
cin >> ageUtilisateur ;
cout << "\n";
cout << "L'utilisateur est "<< nomUtilisateur <<" et il a "<<ageUtilisateur<<" ans."<< endl;
return 0;
Facile, non ?
Non.
01° Rajouter quelques lignes de code pour pouvoir lire le prénom et l’afficher correctement dans la console après le nom de l’utilisateur.
02° Créer le code permettant de stocker l’argent contenu (en euro, sans les centimes) dans la poche gauche, puis l’argent contenu dans la poche droite.
03° Rajouter le code pour afficher l’argent total que porte la personne.
Pas facile n’est-ce pas ? Vous vouliez réussir à afficher 50 en rentrant 45 et 5. Mais, votre programme affiche certainement 455. Pas terrible comme calcul… Si vous trouvez bien 50, c'est que vous avez déjà compris le principe de ce chapitre ! Bravo !
En réalité, puisqu’on veut faire du calcul, il ne faut pas chercher à stocker une chaîne de caractère mais bien un nombre. Si on additionne avec l’opération + deux chaînes de caractères « 45 » et « 5 », on a la concaténation des deux « 455 » et pas le calcul 45+5=50.
On doit donc stocker un nombre dans les variables de type Integer ou Int (voir la première activité).
Les types de variables disponibles et les contenus attendus de ces variables sont donnés ci-dessous :
Type de variable | Nom de déclaration | Ce qu'il peut contenir |
---|---|---|
Booléen – Boolean | bool | Une valeur parmi deux possibles, vrai (true) ou faux (false). |
Caractère - Character | char | Un caractère unique. |
Chaîne de caractère ou string | string | Une chaîne de caractères, c'est-à-dire un mot ou une phrase. |
Entier - Integer | int | Un nombre entier (attention aux limites maximales) |
Entier - Integer positif | unsigned int | Un nombre entier positif ou nul (plus de latitude en valeur max) |
Nombre réel | float | Un nombre à virgule (attention aux limites maximales) |
Nombre réel | double | Un nombre à virgule (prend plus de place mais valeur max plus grande) |
04° Modifier les types de variables pour afficher l’argent total que porte la personne.
05° Essayez avec 10,5 et 0,60. Pourquoi est-ce ça ne fonctionne pas ?
06° Modifier les types de variables pour stocker et afficher correctement l’argent total que porte la personne, même si elle porte des centimes.
Remarque : Attention, en C, on déclare
C’est une source assez courante d’erreurs lors de la compilation. C’est assez facile de passer à côté si on ne regarde pas les couleurs de l’éditeur.
Remarque 2 : Il existe des « règles » liées à la nomination des variables que la plupart des programmateurs respectes car elle permet de faire facilement la différence entre variable et fonction :
Java, Python et C++ sont sensibles à la casse : ils distinguent majuscules et minuscules.
Remarque 3 :Modifier le contenu d’une variable se nomme une affectation. Si l’ancien contenu d’une variable n’est plus d’importante après traitement de l’information, on peut éventuellement l’utiliser pour garder en mémoire le calcul qu’on a fait à partir d’elle. Par exemple, on a 2,8% de rémunération sur un compte et qu’on désire connaître la somme en fin de mois, on peut utiliser :
#include <iostream>
#include <string>
using namespace std;
int main()
{
// Phase d'allocation et d’initialisation
int sousSous(0);
float rendement(0);
// Acquisition des donnees
cout << "Combien d'argent en euros sur le compte ?" << endl;
cin >> sousSous ;
cout << "Quel rendement en pourcentage pour le compte ?" << endl;
cin >> rendement ;
cout << "\n";
// Restitution des donnees
sousSous = sousSous*(1+rendement/100) ;
cout << "Le compte est credite en fin de mois de "<< sousSous << " euros. " << endl;
// Preparation de l’arret de la fonction
return 0;
}
Ainsi, on peut modifier la valeur de sousSous en faisant un calcul sur la valeur actuelle de sousSous.
07° Utiliser le code et tester le calcul pour 400 euros et 10% de rendement.
08° Faire de même avec 448 euros et 10% de rendement. En théorie, on a 448 + 44.8 = 492.8 euros. Et ici ?
09° Modifier le type de certaines variables pour régler le problème de l’absence de cents.
Il reste un problème : lorsqu’on utilise cin pour obtenir une chaîne de caractère, la fonction ne va enregistrer que le premier mot d’un ensemble contenant des mots séparés par des espaces.
Pour lire une ligne entière, il faut utiliser le code suivant :
getline(cin, chaineAStocker);
10° Créer un code qui enregistre trois phrases et qui les restitue dans le désordre. N’oubliez pas #include <string>
pour gérer correctement les chaînes de caractères.
Dernier problème : le mélange des fonctions getline et cin. Si vous utilisez un cin, il faudra placer une ligne de code supplémentaire juste après le cin pour réinitialiser la prise en compte des espaces :
cin.ignore();
Sans cela, un getline situé à la suite du cin ne va pas être rempli correctement.
11° Créer un code qui demande combien de lignes on compte écrire. Dans le cadre de ce programme, on répondra 3. Écrire ensuite les phrases dans un ordre différent et afficher le nombre de phrases affichées..
La prochaine étape dans la conception d’un programme : les choix logiques.