Vous êtes sur la page 1sur 2

UNIVERSITÉ DE BORDJ BOU ARRÉRIDJ

FACULTÉ DES SCIENCES ET DE LA TECHNOLOGIE


DÉPARTEMENT D'ÉLECTRONIQUE
MASTER : SYSTÈMES DE TÉLÉCOMMUNICATION (M1: S1)
PROGRAMMATION OBJET EN C++
SOLUTION DE L’EXAMEN DE RATTRAPAGE
DU MERCREDI 8 SEPTEMBRE 2021
Exercice 1 (8pts)
Soit le programme avec une fonction minmax qui a comme paramètres des entiers i, j,
min et max. Cette fonction place le plus petit de i et de j dans min et le plus grand
dans max.

#include <iostream> int main()


using namespace std; {
void minmax(int i, int j, int min, int max) int a(10), b(15), w, x;
{ minmax(a, b, w, x);
if (i<j) { cout << "Le plus petit vaut : " << w << endl;
min=i; cout << "Le plus grand vaut : " << x << endl;
max=j; return 0;
} }
else
{
min=j;
max=i;
}
}

1. Donner l’affichage exacte de l’exécution du programme ?


Affichage :
Le plus petit vaut : 0
Le plus grand vaut : 0
2. Est-ce que le programme fait son travail (max dans x et min dans w) ?Expliquer.
Non, x et w ne contiennent pas les bonnes valeurs. En effet, les variables x et w sont
passées par valeurs et de ce fait, il ne sont pas changées dans la fonction minmax
3. Dans le cas contraire, proposer une solution.
Les variables x et w doivent être passées par références.
void minmax(int i, int j, int& min, int& max)
{
if (i<j) {
min=i;
max=j;
}
else
{
min=j;
max=i;
}
}

Affichage :
Le plus petit vaut : 10
Le plus grand vaut : 15

Page 1 sur 2
Exercice 2 (12pts)
On écrira en outre un petit programme de test qui :
1. créera un compteur et affichera sa valeur (avec une fonction membre);
2. l'incrémentera 10 fois, puis affichera à nouveau sa valeur;
3. le décrémentera 20 fois, puis affichera une troisième fois sa valeur

Compteur.hpp Compteur.cpp

class Compteur #include "Compteur.hpp"


{ #include <iostream>
public:
Compteur(int c=0); Compteur::Compteur(int c)
void affiche(); {
void inc(); if (c >= 0)
void dec(); m_Counter = c;
}
private: void Compteur::inc()
int m_Counter; {
}; m_Counter++;
}
void Compteur::dec()
{
if (m_Counter > 0)
m_Counter--;
}
void Compteur::affiche()
{
std::cout << m_Counter;
}

main.cpp Affichage :
#include <iostream> 0 10 0
#include "Compteur.hpp"

using namespace std;


int main()
{
Compteur c;
c.affiche();
for (int i=0;i<10;i++)
c.inc();
cout << " ";
c.affiche();
for (int i=0;i<20;i++)
c.dec();
cout << " ";
c.affiche();
}

Page 2 sur 2

Vous aimerez peut-être aussi