Exercice C++ Corrigé pour Débutant | Partie 3
Avec des exercices corrigés en C++, vous pratiquerez divers concepts du langage C++. Vous commencerez par des exercices C++ de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Exercice 1: Additionnez les chiffres d’un nombre
Écrivez un programme C++ qui lit un entier entre 0 et 1000 et calcul la somme de tous les chiffres. Par exemple, le nombre 122, la somme de tous ses chiffres est 5.
Astuce: utilisez l’opérateur % pour extraire les chiffres et utilisez l’opérateur / pour supprimer le chiffre extrait. Par exemple, 122 % 10 = 2 et 122/10 = 12.
Exemple:
Entrez un entier entre 0 et 1000: 122 La somme des chiffres de 122 est: 5
#include <iostream> int sommeChiffres(int nombre) { int somme = 0; // Tant que le nombre n'est pas nul while (nombre != 0) { // Ajoute le dernier chiffre à la somme somme += nombre % 10; // Enlève le dernier chiffre du nombre nombre /= 10; } return somme; } using namespace std; int main() { int nombre; // Demander à l'utilisateur d'entrer un entier entre 0 et 1000 cout << "Entrez un entier entre 0 et 1000: "; cin >> nombre; // Vérifier si l'entier est dans l'intervalle valide if (nombre < 0 || nombre > 1000) { cout <<"Le nombre doit être entre 0 et 1000."<< endl; } else { // Calculer et afficher la somme des chiffres int somme = sommeChiffres(nombre); cout <<"La somme des chiffres de "<< nombre <<" est: "<< somme << endl; } return 0; }
Sortie:
Entrez un entier entre 0 et 1000: 122 La somme des chiffres de 122 est: 5
Explication:
Dans la fonction sommeChiffres:
- Calcule la somme des chiffres d'un entier donné.
- Utilise une boucle while pour extraire chaque chiffre avec l'opérateur % 10 et l'ajouter à la variable somme.
- Le nombre est ensuite divisé par 10 pour retirer le dernier chiffre jusqu'à ce que le nombre devienne zéro.
Exercice 2: Suite de Fibonacci
Écrivez un programme C++ qui renvoie une séquence de Fibonacci. Une séquence de Fibonacci est une série de nombres: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... Le nombre suivant est trouvé en additionnant les deux nombres précédents. Supposons que les index commencent à 0, par exemple, fibonacci(0) = 0, fibonacci(1) = 1, etc...
Exemple:
Entrez le nombre d'éléments de la séquence de Fibonacci: 10 La séquence de Fibonacci avec 10 éléments est: 0 1 1 2 3 5 8 13 21 34
#include <iostream> using namespace std; void afficherFibonacci(int n) { int a = 0, b = 1, suivant; cout <<"La séquence de Fibonacci avec "<< n <<" éléments est: "<< endl; for (int i = 1; i <= n; ++i) { // Affiche le nombre courant de la séquence cout << a << " "; // Calcul du prochain nombre de Fibonacci suivant = a + b; a = b; b = suivant; } cout << endl; } int main() { int nombreElements; // Demander à l'utilisateur le nombre d'éléments de la séquence // de Fibonacci cout <<"Entrez le nombre d'éléments de la séquence de Fibonacci:"; cin >> nombreElements; // Afficher la séquence afficherFibonacci(nombreElements); return 0; }
Sortie:
Entrez le nombre d'éléments de la séquence de Fibonacci: 10 La séquence de Fibonacci avec 10 éléments est: 0 1 1 2 3 5 8 13 21 34
Explication:
Dans la fonction afficherFibonacci():
- Affiche la séquence de Fibonacci avec n éléments.
- Les deux premiers nombres de la séquence sont a = 0 et b = 1.
- À chaque itération de la boucle, le prochain nombre est la somme des deux précédents.
- Les variables a et b sont mises à jour pour les prochains calculs.
Exercice 3: Fizz Buzz
Écrivez un programme C++ qui renvoie « Fizz » pour des multiples de trois et « Buzz » pour des multiples de cinq. Pour les nombres qui sont des multiples de trois et de cinq, affichez « FizzBuzz ». Pour les nombres qui ne sont ni l'un ni l'autre, renvoyez le nombre saisi.
Exemple:
Entrez un nombre: 15 FizzBuzz
#include <iostream> using namespace std; void fizzBuzz(int nombre) { if (nombre % 3 == 0 && nombre % 5 == 0) { // Multiples de 3 et 5 cout << "FizzBuzz" << endl; } else if (nombre % 3 == 0) { // Multiples de 3 cout << "Fizz" << endl; } else if (nombre % 5 == 0) { // Multiples de 5 cout << "Buzz" << endl; } else { // Ni multiple de 3, ni de 5 cout << nombre << endl; } } int main() { int nombre; // Demander à l'utilisateur d'entrer un nombre cout << "Entrez un nombre: "; cin >> nombre; // Appeler la fonction FizzBuzz pour ce nombre fizzBuzz(nombre); return 0; }
Sortie:
Entrez un nombre: 15 FizzBuzz
Explication:
La fonction fizzBuzz() vérifie le nombre saisi par l'utilisateur:
- Si le nombre est divisible par 3 et 5, elle affiche « FizzBuzz ».
- Si le nombre est divisible par 3, elle affiche « Fizz ».
- Si le nombre est divisible par 5, elle affiche « Buzz ».
- Si aucune de ces conditions n'est remplie, elle affiche le nombre lui-même.
Exercice 4: Décimal ➜ Binaire
Écrire un programme C++ pour convertir un nombre entier en un nombre binaire.
Exemple de sortie:
Entrez un nombre entier: 10 Le nombre en binaire est: 1010
#include <iostream> #include <string> using namespace std; string convertirEnBinaire(int nombre) { string binaire = ""; if (nombre == 0) { return "0"; // Le binaire de 0 est 0 } while (nombre > 0) { // Ajouter le reste de la division à gauche de la chaîne binaire = to_string(nombre % 2) + binaire; nombre /= 2; // Diviser le nombre par 2 } return binaire; } int main() { int nombre; // Demander à l'utilisateur d'entrer un entier cout << "Entrez un nombre entier: "; cin >> nombre; // Appeler la fonction pour convertir en binaire et afficher le // résultat string resultat = convertirEnBinaire(nombre); cout <<"Le nombre en binaire est: "<< resultat << endl; return 0; }
Sortie:
Entrez un nombre entier: 10 Le nombre en binaire est: 1010
Explication:
Dans l'exercice ci-dessus la fonction convertirEnBinaire():
- Cette fonction convertit un nombre entier en binaire.
- Si le nombre est 0, elle retourne directement "0" (car c'est une exception).
- Elle utilise une boucle while qui continue tant que le nombre est supérieur à 0. À chaque itération :
- Elle calcule le reste de la division par 2 (ce qui correspond à un chiffre binaire, soit 0 soit 1) et le place à gauche de la chaîne binaire.
- Elle divise le nombre par 2 jusqu'à ce qu'il atteigne 0.
Exercice 5: Décimal ➜ Hexadécimal
Écrire un programme C++ pour convertir un nombre décimal en un nombre hexadécimal.
Exemple:
Entrez un nombre décimal: 255 Le nombre en hexadécimal est: FF
#include <iostream> #include <iomanip> // Pour std::hex et std::uppercase using namespace std; string convertirEnHexa(int nombre) { // Chaîne pour stocker la valeur hexadécimale string hex = ""; // Vérifier si le nombre est zéro if (nombre == 0) { return "0"; } while (nombre > 0) { // Récupérer le reste pour la conversion int reste = nombre % 16; // Convertir le reste en caractère hexadécimal if (reste < 10) { // Ajout des chiffres 0-9 hex = static_cast<char>('0' + reste) + hex; } else { // Ajout des lettres A-F hex = static_cast<char>('A' + (reste - 10)) + hex; } // Diviser par 16 pour obtenir le prochain chiffre nombre /= 16; } return hex; } int main() { int nombre; // Demander à l'utilisateur d'entrer un entier cout << "Entrez un nombre décimal: "; cin >> nombre; // Appeler la fonction pour convertir en hexadécimal et afficher // le résultat string resultat = convertirEnHexa(nombre); cout <<"Le nombre en hexadécimal est: "<< resultat << endl; return 0; }
Sortie:
Entrez un nombre décimal: 255 Le nombre en hexadécimal est: FF
Explication:
Dans l'exercice ci-dessus, la fonction convertirEnHexa():
- Cette fonction prend un entier décimal et le convertit en hexadécimal.
- Si le nombre est 0, elle retourne "0" directement.
- Une boucle while continue tant que le nombre est supérieur à 0. À chaque itération :
- Elle calcule le reste de la division par 16, ce qui correspond à un chiffre hexadécimal.
- Si le reste est inférieur à 10, il est converti en caractère en ajoutant '0'.
- Si le reste est supérieur ou égal à 10, il est converti en lettre (A-F) en ajoutant 'A' moins 10.
- Le nombre est ensuite divisé par 16 pour passer au chiffre suivant.
Exercice 6: Décimal ➜ Octal
Écrire un programme C++ pour convertir un nombre décimal en nombre octal.
Exemple:
Entrez un nombre décimal: 65 Le nombre en octal est: 101
#include <iostream> #include <string> using namespace std; string convertirEnOctal(int nombre) { // Chaîne pour stocker la valeur octale string octal = ""; // Vérifier si le nombre est zéro if (nombre == 0) { return "0"; } while (nombre > 0) { // Récupérer le reste pour la conversion int reste = nombre % 8; // Ajouter le reste à gauche de la chaîne octal = to_string(reste) + octal; // Diviser par 8 pour obtenir le prochain chiffre nombre /= 8; } return octal; } int main() { int nombre; // Demander à l'utilisateur d'entrer un entier cout << "Entrez un nombre décimal: "; cin >> nombre; // Appeler la fonction pour convertir en octal et afficher le // résultat string resultat = convertirEnOctal(nombre); cout <<"Le nombre en octal est: "<< resultat << endl; return 0; }
Sortie:
Entrez un nombre décimal: 65 Le nombre en octal est: 101
Explication:
Dans l'exercice ci-dessus, la fonction convertirEnOctal() :
- Cette fonction prend un entier décimal et le convertit en octal.
- Si le nombre est 0, elle retourne "0" directement.
- Une boucle while continue tant que le nombre est supérieur à 0. À chaque itération :
- Elle calcule le reste de la division par 8, ce qui correspond à un chiffre octal.
- Le reste est converti en chaîne de caractères et ajouté à gauche de la chaîne octal.
- Le nombre est ensuite divisé par 8 pour passer au chiffre suivant.
Exercice 7: Binaire ➜ Décimal
Écrire un programme C++ pour convertir un nombre binaire en nombre décimal.
Exemple:
Entrez un nombre binaire: 1011 Le nombre décimal est: 11
#include <iostream> #include <string> #include <cmath> using namespace std; int convertirEnDecimal(const string& binaire) { // Variable pour stocker le résultat décimal int decimal = 0; // Parcourir chaque caractère de la chaîne binaire de droite à // gauche for (int i = 0; i < binaire.length(); ++i) { // Vérifier si le caractère est un '1' if (binaire[binaire.length() - 1 - i] == '1') { // Ajouter 2^i à la valeur décimale decimal += pow(2, i); } } return decimal; } int main() { string binaire; // Demander à l'utilisateur d'entrer un nombre binaire cout << "Entrez un nombre binaire : "; cin >> binaire; // Appeler la fonction pour convertir en décimal et afficher le // résultat int resultat = convertirEnDecimal(binaire); cout <<"Le nombre décimal est: "<< resultat << endl; return 0; }
Sortie:
Entrez un nombre binaire: 1011 Le nombre décimal est: 11
Explication:
Dans l'exercice ci-dessus, la fonction convertirEnDecimal():
- Cette fonction prend une chaîne représentant un nombre binaire et la convertit en un entier décimal.
- Elle initialise une variable decimal à 0 pour stocker le résultat.
- Une boucle for parcourt chaque caractère de la chaîne binaire de droite à gauche (c'est-à-dire, du bit le moins significatif au bit le plus significatif).
- Si le caractère est '1', la fonction ajoute 2i2i à decimal, où ii est la position du bit.
Exercice 8: Binaire ➜ Hexadécimal
Écrire un programme C++ pour convertir un nombre binaire en un nombre hexadécimal.
Exemple:
Entrez un nombre binaire: 110110 Le nombre hexadécimal est: 36
#include <iostream> #include <string> #include <cmath> #include <sstream> // Pour std::stringstream using namespace std; string convertirBinaireEnHexa(const string& binaire) { // Variable pour stocker la valeur décimale int decimal = 0; // Convertir le nombre binaire en décimal for (int i = 0; i < binaire.length(); ++i) { if (binaire[binaire.length() - 1 - i] == '1') { // Ajouter 2^i à la valeur décimale decimal += pow(2, i); } } // Convertir le nombre décimal en hexadécimal stringstream ss; ss << hex << decimal; // Convertir en hexadécimal return ss.str(); // Retourner la chaîne hexadécimale } int main() { string binaire; // Demander à l'utilisateur d'entrer un nombre binaire cout << "Entrez un nombre binaire: "; cin >> binaire; // Appeler la fonction pour convertir en hexadécimal et afficher // le résultat string resultat = convertirBinaireEnHexa(binaire); cout <<"Le nombre hexadécimal est: "<< resultat << endl; return 0; }
Sortie:
Entrez un nombre binaire: 110110 Le nombre hexadécimal est: 36
Explication:
Dans l'exercice ci-dessus, la fonction convertirBinaireEnHexa():
- Cette fonction prend une chaîne représentant un nombre binaire et la convertit d'abord en décimal.
- Elle initialise une variable decimal à 0 pour stocker le résultat.
- Une boucle for parcourt chaque caractère de la chaîne binaire de droite à gauche. Si le caractère est '1', la fonction ajoute 2i2i à decimal, où ii est la position du bit.
- Après avoir obtenu la valeur décimale, la fonction utilise un std::stringstream pour convertir le nombre décimal en hexadécimal en utilisant std::hex.
- Elle retourne la chaîne hexadécimale résultante.
Exercice 9: Binaire ➜ Octal
Écrire un programme C++ pour convertir un nombre binaire en nombre octal.
Exemple:
Entrez un nombre binaire: 10110 Le nombre octal est: 26
#include <iostream> #include <string> #include <cmath> using namespace std; // Fonction pour convertir un nombre binaire en décimal int convertirBinaireEnDecimal(const string& binaire) { // Variable pour stocker la valeur décimale int decimal = 0; // Convertir le nombre binaire en décimal for (int i = 0; i < binaire.length(); ++i) { if (binaire[binaire.length() - 1 - i] == '1') { // Ajouter 2^i à la valeur décimale decimal += pow(2, i); } } return decimal; // Retourner la valeur décimale } // Fonction pour convertir un nombre décimal en octal string convertirDecimalEnOctal(int decimal) { // Chaîne pour stocker la valeur octale string octal = ""; // Vérifier si le nombre est zéro if (decimal == 0) { return "0"; } while (decimal > 0) { // Récupérer le reste pour la conversion int reste = decimal % 8; // Ajouter le reste à gauche de la chaîne octal = to_string(reste) + octal; // Diviser par 8 pour obtenir le prochain chiffre decimal /= 8; } return octal; // Retourner la chaîne octale } int main() { string binaire; // Demander à l'utilisateur d'entrer un nombre binaire cout << "Entrez un nombre binaire: "; cin >> binaire; // Convertir le nombre binaire en décimal int decimal = convertirBinaireEnDecimal(binaire); // Convertir le nombre décimal en octal string resultat = convertirDecimalEnOctal(decimal); // Afficher le résultat cout <<"Le nombre octal est: "<< resultat << endl; return 0; }
Sortie:
Entrez un nombre binaire: 10110 Le nombre octal est: 26
Explication:
Dans l'exercice ci-dessus, la fonction convertirBinaireEnDecimal():
- Cette fonction prend une chaîne représentant un nombre binaire et la convertit en un entier décimal.
- Elle utilise une boucle for pour parcourir chaque bit du nombre binaire, en ajoutant 2i2i au total si le bit est '1'.
Fonction convertirDecimalEnOctal():
- Cette fonction prend un entier décimal et le convertit en une chaîne octale.
- Elle utilise une boucle while pour diviser le nombre décimal par 8, en collectant les restes jusqu'à ce que le nombre soit réduit à 0.
Éditeur de code C++: Testez votre code en ligne!
QCM sur C++ – Partie 1QCM sur C++ avec des réponses pour la préparation des concours, des tests en ligne, examens et aux certifications. Ces questions et réponses sur C++…Lire plus
- Exercice C++ Corrigé pour Débutant | Partie 1
- Exercice C++ Corrigé pour Débutant | Partie 2
- Exercice C++ Corrigé pour Débutant | Partie 3
- Exercice C++ Corrigé pour Débutant | Partie 4
- Exercice C++ Corrigé pour Débutant | Partie 5
- Exercice C++ Corrigé pour Débutant | Partie 6
- Exercice C++ Corrigé pour Débutant | Partie 7
- Exercice C++ Corrigé pour Débutant | Partie 8
- Exercice C++ Corrigé pour Débutant | Partie 9
- Exercice C++ Corrigé pour Débutant | Partie 10
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 1
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 2
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 3
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 4
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 5
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 6
- Exercices corrigés C++ les classes et l’héritage – Partie 1
- Exercices corrigés C++ les classes et l’héritage – Partie 2
- Exercice C++ Corrigé – Partie 1