Exercice C++ Corrigé pour Débutant | Partie 4
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:
Écrire un programme C++ pour convertir un nombre octal en nombre décimal.
Exemple:
Entrez un nombre octal: 123 Le nombre décimal est: 83
#include <iostream> #include <string> #include <cmath> using namespace std; // Fonction pour convertir un nombre octal en décimal int convertirOctalEnDecimal(const string& octal) { // Variable pour stocker la valeur décimale int decimal = 0; // Parcourir chaque caractère de la chaîne octale de droite à // gauche for (int i = 0; i < octal.length(); ++i) { // Convertir chaque caractère en entier et calculer sa // contribution decimal += (octal[octal.length() - 1 - i] - '0') * pow(8, i); } // Retourner la valeur décimale return decimal; } int main() { string octal; // Demander à l'utilisateur d'entrer un nombre octal cout << "Entrez un nombre octal: "; cin >> octal; // Appeler la fonction pour convertir en décimal et afficher le // résultat int resultat = convertirOctalEnDecimal(octal); cout <<"Le nombre décimal est: "<< resultat << endl; return 0; }
Sortie:
Entrez un nombre octal: 123 Le nombre décimal est: 83
Explication:
Dans l'exercice ci-dessus, la fonction convertirOctalEnDecimal():
- Cette fonction prend une chaîne représentant un nombre octal et le convertit en un entier décimal.
- Une boucle for parcourt chaque caractère de la chaîne octale de droite à gauche (du chiffre le moins significatif au plus significatif).
- Chaque chiffre octal est multiplié par 8i8i où ii est la position du chiffre dans le nombre, et cette contribution est ajoutée au total.
Exercice 2:
Écrire un programme C++ pour convertir un nombre octal en un nombre binaire.
Exemple:
Entrez un nombre octal: 123 Le nombre binaire est: 1010011
#include <iostream> #include <string> #include <cmath> using namespace std; // Fonction pour convertir un nombre octal en décimal int convertirOctalEnDecimal(const string& octal) { // Variable pour stocker la valeur décimale int decimal = 0; // Parcourir chaque caractère de la chaîne octale de droite à // gauche for (int i = 0; i < octal.length(); ++i) { decimal += (octal[octal.length() - 1 - i] - '0') * pow(8, i); } return decimal; // Retourner la valeur décimale } // Fonction pour convertir un nombre décimal en binaire string convertirDecimalEnBinaire(int decimal) { // Chaîne pour stocker la valeur binaire string binaire = ""; // Vérifier si le nombre est zéro if (decimal == 0) { return "0"; } while (decimal > 0) { // Ajouter le reste à gauche de la chaîne binaire = to_string(decimal % 2) + binaire; decimal /= 2; // Diviser par 2 pour obtenir le prochain bit } return binaire; } int main() { string octal; // Demander à l'utilisateur d'entrer un nombre octal cout << "Entrez un nombre octal : "; cin >> octal; // Convertir le nombre octal en décimal int decimal = convertirOctalEnDecimal(octal); // Convertir le nombre décimal en binaire string resultat = convertirDecimalEnBinaire(decimal); // Afficher le résultat cout <<"Le nombre binaire est : "<< resultat << endl; return 0; }
Sortie:
Entrez un nombre octal: 123 Le nombre binaire est: 1010011
Explication:
Dans l'exercice ci-dessus, la fonction convertirOctalEnDecimal():
- Cette fonction prend une chaîne représentant un nombre octal et la convertit en un entier décimal.
- Elle parcourt la chaîne octale de droite à gauche, et pour chaque chiffre, elle le multiplie par 8i8i et ajoute la valeur au total.
La fonction convertirDecimalEnBinaire():
- Cette fonction prend un entier décimal et le convertit en une chaîne binaire.
- Elle utilise une boucle while pour diviser le nombre décimal par 2 et ajouter les restes (qui correspondent aux bits) au début de la chaîne binaire.
Exercice 3:
Écrire un programme C++ pour convertir un nombre octal en un nombre hexadécimal.
Exemple:
Entrez un nombre octal: 77 Le nombre hexadécimal est: 3f
#include <iostream> #include <string> #include <cmath> #include <sstream> // Pour std::stringstream using namespace std; // Fonction pour convertir un nombre octal en décimal int convertirOctalEnDecimal(const string& octal) { int decimal = 0; // Variable pour stocker la valeur décimale // Parcourir chaque caractère de la chaîne octale de droite à // gauche for (int i = 0; i < octal.length(); ++i) { decimal += (octal[octal.length() - 1 - i] - '0') * pow(8, i); } return decimal; // Retourner la valeur décimale } // Fonction pour convertir un nombre décimal en hexadécimal string convertirDecimalEnHexadecimal(int decimal) { stringstream ss; ss << hex << decimal; // Convertir en hexadécimal return ss.str(); // Retourner la chaîne hexadécimale } int main() { string octal; // Demander à l'utilisateur d'entrer un nombre octal cout << "Entrez un nombre octal : "; cin >> octal; // Convertir le nombre octal en décimal int decimal = convertirOctalEnDecimal(octal); // Convertir le nombre décimal en hexadécimal string resultat = convertirDecimalEnHexadecimal(decimal); // Afficher le résultat cout << "Le nombre hexadécimal est : " << resultat << endl; return 0; }
Sortie:
Entrez un nombre octal: 77 Le nombre hexadécimal est: 3f
Explication:
Dans l'exercice ci-dessus, la fonction convertirOctalEnDecimal():
- Cette fonction prend une chaîne représentant un nombre octal et la convertit en un entier décimal.
- Pour chaque chiffre du nombre octal, on le multiplie par 8i8i, où ii est la position du chiffre dans le nombre, en commençant par la droite.
La fonction convertirDecimalEnHexadecimal():
- Cette fonction prend un entier décimal et le convertit en une chaîne hexadécimale en utilisant un flux std::stringstream.
- L'opérateur std::hex est utilisé pour convertir le nombre en hexadécimal.
Exercice 4:
Écrivez une fonction C++ qui prend un tableau et renvoie le dernier élément du tableau.
Exemple:
Le dernier élément du tableau est: 1
#include <iostream> int getLastElement(int arr[], int size) { return arr[size - 1]; // Renvoie le dernier élément } using namespace std; int main() { int tab[] = {4, 5, 3, 2, 1}; // Obtenir le dernier élément du tableau d'entiers cout <<"Le dernier élément du tableau est: "<< getLastElement(tab, 5) << endl; return 0; }
Sortie:
Le dernier élément du tableau est: 1
Explication:
Dans l'exercice ci-dessus, la fonction getLastElement():
- Prend un tableau d'entiers arr et sa taille size en paramètres.
- Renvoie le dernier élément du tableau en utilisant l'indice size - 1.
Exercice 5:
Écrire un programme C++ pour comparer deux nombres.
Exemple:
Entrez le premier nombre: 1 Entrez le deuxième nombre: 2 1 est plus petit que 2
#include <iostream> using namespace std; int main() { // Déclaration de deux variables pour stocker les nombres int n1, n2; // Demander à l'utilisateur d'entrer les deux nombres cout << "Entrez le premier nombre: "; cin >> n1; cout << "Entrez le deuxième nombre: "; cin >> n2; // Comparaison des deux nombres if (n1 > n2) { cout << n1 <<" est plus grand que "<< n2 << endl; } else if (n1 < n2) { cout << n1 <<" est plus petit que "<< n2 << endl; } else { cout << n1 <<" est égal à "<< n2 << endl; } return 0; }
Sortie:
Entrez le premier nombre: 1 Entrez le deuxième nombre: 2 1 est plus petit que 2
Explication:
Dans la conditions if-else:
- Si num1 est plus grand que n2, il affiche que n1 est plus grand.
- Si num1 est plus petit que n2, il affiche que n1 est plus petit.
- Sinon, il affiche que les deux nombres sont égaux.
Exercice 6:
Écrire un programme C++ pour compter les lettres, les espaces, les chiffres et les autres caractères d'une chaîne saisie.
Exemple:
Entrez une chaîne de caractères: Rue 45, Quartier Sain Denis:France Nombre de lettres: 26 Nombre d'espaces: 4 Nombre de chiffres: 2 Nombre d'autres caractères: 2
#include <iostream> #include <cstring> // Pour utiliser strlen() using namespace std; int main() { // Déclaration des variables // Chaîne de caractères avec une taille maximale de 100 char str[100]; int lettres = 0, espaces = 0, chiffres = 0, autres = 0; // Demande à l'utilisateur d'entrer une chaîne de caractères cout << "Entrez une chaîne de caractères: "; // Utilisation de getline pour lire toute la ligne cin.getline(str, 100); // Parcourir la chaîne pour compter les caractères for (int i = 0; i < strlen(str); i++) { if (isalpha(str[i])) { lettres++; } else if (isspace(str[i])) { espaces++; } else if (isdigit(str[i])) { chiffres++; } else { autres++; } } // Affichage des résultats cout << "Nombre de lettres: " << lettres << endl; cout << "Nombre d'espaces: " << espaces << endl; cout << "Nombre de chiffres: " << chiffres << endl; cout << "Nombre d'autres caractères: " << autres << endl; return 0; }
Sortie:
Entrez une chaîne de caractères: Rue 45, Quartier Sain Denis:France Nombre de lettres: 26 Nombre d'espaces: 4 Nombre de chiffres: 2 Nombre d'autres caractères: 2
Explication:
Dans l'exercice ci-dessus, la boucle for:
- La boucle parcourt chaque caractère de la chaîne jusqu'à la fin (longueur de la chaîne obtenue avec strlen()).
- La fonction isalpha() vérifie si le caractère est une lettre.
- La fonction isspace() vérifie si le caractère est un espace.
- La fonction isdigit() vérifie si le caractère est un chiffre.
- Les autres caractères sont classés dans la catégorie "autres".
Exercice 7:
Écrire un programme en C++ pour vérifier si un nombre est positif, négatif ou nul.
Exemple:
Entrez un nombre: 8 Le nombre 8 est positif.
#include <iostream> using namespace std; int main() { // Déclaration de la variable pour stocker le nombre int n; // Demande à l'utilisateur d'entrer un nombre cout << "Entrez un nombre: "; cin >> n; // Vérification si le nombre est positif, négatif ou nul if (n > 0) { cout <<"Le nombre "<< n <<" est positif."<< endl; } else if (n < 0) { cout <<"Le nombre "<< n <<" est négatif."<< endl; } else { cout <<"Le nombre est nul."<< endl; } return 0; }
Sortie:
Entrez un nombre: 8 Le nombre 8 est positif.
Explication:
Dans la conditions if-else:
- Si le nombre est supérieur à 0, le programme affiche qu'il est positif.
- Si le nombre est inférieur à 0, le programme affiche qu'il est négatif.
- Si le nombre est égal à 0, le programme affiche qu'il est nul.
Exercice 8:
Écrire un programme C++ pour afficher la chaîne de caractères suivante dans un format spécifique (voir sortie).
Exemple:
Lorem ipsum dolor sit amet, consectetur adipiscing elit facilisi neque ad lacus velit, hac suscipit suspendisse.
#include <iostream> int main() { // Affichage de la chaîne de caractères dans un format spécifique std::cout << "Lorem ipsum dolor sit amet,\n \tconsectetur adipiscing elit facilisi\n \t\tneque ad lacus velit,\n \thac suscipit suspendisse." << std::endl; return 0; }
Sortie:
Lorem ipsum dolor sit amet, consectetur adipiscing elit facilisi neque ad lacus velit, hac suscipit suspendisse.
Explication:
Les séquences de caractères \t sont utilisées pour insérer des tabulations dans la chaîne.
Les séquences de caractères \n sont utilisées pour insérer des retours à la ligne.
Exercice 9:
Écrire un programme C++ pour afficher les nombres impairs de 1 à 10.
Exemple:
1 3 5 7 9
#include <iostream> int main() { // Boucle pour afficher les nombres impairs de 1 à 10 for (int i = 1; i <= 10; i++) { // Vérifie si le nombre est impair if (i % 2 != 0) { std::cout << i << " "; } } return 0; }
Sortie:
1 3 5 7 9
Explication:
Boucle for: La boucle commence à 1 et s'incrémente jusqu'à 10.
- La condition i % 2 != 0
i % 2 != 0
vérifie si le nombre n'est pas divisible par 2 (donc impair). - Si la condition est vraie, le nombre est affiché.
É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