Vous êtes sur la page 1sur 2

Université Kasdi Merbah Ouargla

Faculté des Mathématiques et des Sciences de la Matière


Domaine des mathématiques et informatique
Première année tronc commun
Module: ASD 2 algorithmiqueet stuctures de données
Enseignant: Mourad BELHADJ
Année universitaire: 2018/2019
Classe: Tronc commun math. et informatique
Type: Corrigé du Rattrapage

Exercice1 08 points
Écrire les taches suivantes (procédures ou fonctions) qui permettent de:
• Déclarer une liste chaînée
Déclaration;
pointeur =enregistrement
valeur: entier
suivant :liste
fin
• Insérer au début les éléments de la liste.
Fonction inserer_debut(x:entier, l: liste):liste;
Var : p: liste ;
début
new(p);
pˆ.valeur ← x;
pˆ.suivant ← l;
returner(p);
fin

• Remplir la liste
procedure remplir_liste();
Var : p: liste ;
début
pour i ← 5, 1 faire
inserer_debut(i);
fin
fin

• Afficher les éléments de la liste


Procédure Affiche_liste(l: liste);
Var : p: liste ;
début
p ← l;
Si (p 6= null) alors
afficher(p.̂valeur);
affiche_liste(pˆ.suivant);
FinSi
fin

Exercice2 06 points

• Écrire une fonction ou procédure qui permet de trier un tableau T de 10 éléments de type entier. Voir
Solution TD.
• Écrire une procédure qui permet de créer un liste à partir de tableau T (utiliser la fonction insérer de
l’exercice 1.

Procédure tabaliste(t: tableau, var l: liste);


Var : i :entier;
début
pour i ← 10 a 1 faire
inserer_debut(t[i], tete);
fin
fin

Exercice3 06 points

1. Dérouler la fonction avec les valeurs x = 6 et y = 3, puis expliquer le fonctionnement de la fonction


récursive suivante:
Fonction fonct1(x, y:entier):entier;
début
Si (x=0) alors
retourner(y)
Sinon
retourner(fonct1(x-1,x + y)
FinSi

fin
avec les valeurs x=6 et y=3, la fonction retourne (1+2+3+4+5+6) + 3 = 24.

fonct1(6,3)
\
fonct1(5,6+3)
\
fonct1(4,5+6+3)
\
fonct1(3,4+5+6+3)
\
fonct1(2,3+4+5+6+3)
\
fonct1(1,2+3+4+5+6+3)
x=0 retourner y= (1+2+3+4+5+6+3) = 24

la fonction permet de calculer la somme (1 + 2 + .. + x) + y = ((x ∗ (x + 1))/2) + y

Vous aimerez peut-être aussi