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
Solution:
#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
Solution:
#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
Solution:
#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
Solution:
#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
Solution:
#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
Solution:
#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.
Solution:
#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.
Solution:
#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
Solution:
#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 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