0% ont trouvé ce document utile (0 vote)
70 vues4 pages

Solutions Examen CPP

Le document présente des solutions à quatre exercices de programmation orientée objet en C++. Chaque exercice est accompagné d'un énoncé, d'une solution en code C++, et d'explications détaillées sur le fonctionnement du code. Les exercices incluent l'utilisation de boucles, la gestion des entrées utilisateur, et des opérations sur des tableaux.

Transféré par

Dan Snow
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
70 vues4 pages

Solutions Examen CPP

Le document présente des solutions à quatre exercices de programmation orientée objet en C++. Chaque exercice est accompagné d'un énoncé, d'une solution en code C++, et d'explications détaillées sur le fonctionnement du code. Les exercices incluent l'utilisation de boucles, la gestion des entrées utilisateur, et des opérations sur des tableaux.

Transféré par

Dan Snow
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Solutions : Examen Final - Programmation orientée objet en C++

Exercice n°1 : (3 points)


Énoncé : Réécrivez le programme utilisant une structure while.

Code original avec for :

int main() {
int n, s = 0;
for (int i = 0; i < 4; i++) {
cout << "donner un entier" << endl;
cin >> n;
s += n;
}
cout << "somme =" << s << endl;
}

Solution avec while :

#include <iostream>
using namespace std;

int main() {
int n, s = 0, i = 0;

while (i < 4) {
cout << "donner un entier" << endl;
cin >> n;
s += n;
i++;
}

cout << "somme = " << s << endl;


return 0;
}

Explications :
1. La boucle for a été remplacée par une boucle while.
2. Une variable i est initialisée à 0 avant la boucle.
3. La condition i < 4 est vérifiée à chaque itération.
4. La variable i est incrémentée dans le corps de la boucle avec i++.

Exercice n°2 : (5 points)


Énoncé : Écrire un programme qui demande un entier N non nul et affiche tous ses
diviseurs.

Solution :

#include <iostream>
using namespace std;

int main() {
int N;

do {
cout << "Entrez un entier non nul : ";
cin >> N;
} while (N == 0);

cout << "Les diviseurs de " << N << " sont : ";
for (int i = 1; i <= abs(N); i++) {
if (N % i == 0) {
cout << i << " ";
}
}

cout << endl;


return 0;
}

Explications :
1. Un do-while garantit que l'utilisateur entre un entier non nul.
2. La boucle for teste chaque entier de 1 à |N| pour vérifier si c'est un diviseur (N % i == 0).
3. Tous les diviseurs sont affichés séparés par des espaces.

Exercice n°3 : (5 points)


Énoncé : Lire un entier n et calculer la somme suivante : S = 1 + 1/3 + 1/5 + ... + 1/n.

Solution :

#include <iostream>
using namespace std;
int main() {
int n;
double S = 0.0;

cout << "Entrez un entier n : ";


cin >> n;

for (int i = 1; i <= n; i += 2) { // Parcours des nombres impairs


S += 1.0 / i;
}

cout << "La somme S est : " << S << endl;


return 0;
}

Explications :
1. La somme considère uniquement les nombres impairs i = 1, 3, 5, ..., donc la boucle
incrémente i de 2.
2. La division 1.0 / i est utilisée pour garantir un résultat en virgule flottante.
3. Le résultat final est stocké dans une variable S de type double.

Exercice n°4 : (7 points)


Énoncé : Saisir 10 nombres dans un tableau T et :
1. Calculer le nombre d'éléments nuls.
2. Calculer la moyenne des éléments.
3. Trouver et afficher le maximum.

Solution :

#include <iostream>
using namespace std;

// Fonction pour calculer le nombre d'éléments nuls


int nul(int T[], int taille) {
int count = 0;
for (int i = 0; i < taille; i++) {
if (T[i] == 0) {
count++;
}
}
return count;
}
// Fonction pour calculer la moyenne
double moyenne(int T[], int taille) {
int somme = 0;
for (int i = 0; i < taille; i++) {
somme += T[i];
}
return (double)somme / taille;
}

// Fonction pour trouver le maximum


int maximum(int T[], int taille) {
int max = T[0];
for (int i = 1; i < taille; i++) {
if (T[i] > max) {
max = T[i];
}
}
return max;
}

int main() {
const int taille = 10;
int T[taille];

cout << "Entrez 10 nombres : " << endl;


for (int i = 0; i < taille; i++) {
cin >> T[i];
}

cout << "Nombre d'éléments nuls : " << nul(T, taille) << endl;
cout << "Moyenne des éléments : " << moyenne(T, taille) << endl;
cout << "Maximum des éléments : " << maximum(T, taille) << endl;

return 0;
}

Explications :
1. Nombre d'éléments nuls : Une boucle parcourt le tableau, et un compteur count est
incrémenté si un élément est égal à 0.
2. Moyenne : La somme des éléments est calculée, puis divisée par la taille du tableau.
3. Maximum : Une variable max est initialisée avec le premier élément, puis mise à jour si un
élément plus grand est trouvé.

Vous aimerez peut-être aussi