Vous êtes sur la page 1sur 4

Ecole Préparatoire en Sciences et Techniques d'Oran

Module : Algorithmique 2 et structures de données avancées Intitulé : Informatique


2'n" aînée, Semestre 2, Année universitaire2013-2014 Corrigé type-Examen de synthèse
Mai2014 Durée: 02h00mn

Partie cours : (5.75 pts)

Exercice I : les fichiers (2.75 pts)


#include<iostream>
#include<fstream>

using namespace std;


mainO {
ofstream fichierl("fichL.txt") ; ----> (1pt)
string sl, sZi
cin >> s1; cin >> s2;
fichier1<<''Nom:.,<<s1<<''\nPrénom:',<<s2;___=>
]

Exercice 2 : la POO (3 pts)

Soit le programme ci-dessous :

class compte{
double actif;
public : ----> 0.25
; ----> 0.25pt
compte(double)

void afficherO; *----> 0.7Spt


't.
J,
compte : : compte(double x)
{
actif=x; ) -*-->0.25

{
cout << "L'actif du compte = " << actif << endl;
1
I

mainO {
compte C(2855.20) ;

D. afficherO ;

]
Partie TD : (14.25 pts)
Exercice 1 : les piles et les files (10.00 pts)

1. les structures pile et file : (0-75+0.75=1.50 pts)


struct Pile
{
int chiffre;
pile 'k lien;
1.
Jt
pile "sommet=NUll;
struct file
{
int chi-ffre;
file " lien;
1.
J,
file '?premier=NULL;
file 'f dernier=NULL;
2. la foncion Clnsert: (1.50 Pts)
void Clnsert(int N, pile "& sommet, file'r& premier, file'r' & dernier)
{
int nb=N, x;
while(nb ! =0)
{
x=nb%Z i
empiler(sommet,x);
enfiler(Premier, dernier, x) ;
nb=nb/2i
)
]
3. les fonctions defiler et depiler : ( 1.75 +2'00=3'75 pts)

int depiler (Pile*&sommet)


i
int v=-1;
if (sommet !=NULL)
{
pile*temp=Sommêt i
v=têftp-)Chiffre;
sommet=sommet->lien;
deletetemp;
)
return v;
]
int defiler(file'f& premier, file'!& dernier)
{
int v=-1;
if (premier ! =NULL)
t
file'!temp-plemier ;
v=temp->chiffre ;
preni er=premi er->1 i en;
delete temP;
if (premier==NUll) dernier=NUll ;

]
return v;
]
4. la fonction BinDeci: (2.00 Pts)
int BinDeci (file'r&premier, file'!&dernier)
{
int d=0, p=1, def;
while (Premier ! =NULL)
{
def=defiler(Premier, dernier) ;

d=d+(def'*p);
P=P"2;
1
I
return d;
i
5. lemain:(1.25 pts)
maino
{
int z;
Cout << ,,Nombre = " ; cin>> z;
Clnsert (z , sommet , premier , dernier) ;
cout << "Ie nombre = " << BinDeci(premier, dernier) << endl;
]

Exercice 2 : les arbres binaires (4.25 pts)


I . Ia sturcture tree : ( 1 .00 Pt)
struct tree
{
char val;
tree'r d;
tree't g;
)
tree 'rracineI=NULL I

tree 'rracine2=NULL I

2. la foncti on Huuteur: (I .00 Pt)

int Hauteur(tree *r)


JI
tree *d=r;
if (r==§IJLL) return 0;
else return (1+max(Hauteur(r->g), Hauteur(r->d))) ;

3. la fonction ldemtree : (2.25 pts)


bool b=true;
bool IdemTree(tree*r1", tree*r2)
i
if b){
(r1!=NULL && r2!=NULL &&
if (rL->x l= r?->x) return b=false;
else
{
b=IdemTree(r1->g, r2->g) ;

b=IdemTree(rL->d, r2->d) ;

]
i
else if (rL!=NULL I I r2l=NULL) return false;
else return b;
]
F.Z.LEBBAH

Vous aimerez peut-être aussi