[PDF] [PDF] Algorithmes et structures de données : TD 4 Corrigé - LaBRI

Licence MASS/Scico 5`eme semestre (2006/2007) Algorithmes et structures de données : TD 4 Corrigé Types - Enregistrements - Temps d'un algorithme T(n)



Previous PDF Next PDF





[PDF] exercices corrigés algorithmepdf

Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27 corrigé - retour au cours Exercice 5 4 Réécrire l'algorithme  



[PDF] Exercices avec Solutions

Exercices Corrigés d'Algorithmique – 1ére Année MI 5 EXERCICE 1 Ecrire un algorithme qui demande un nombre à l'utilisateur, puis calcule et affiche le carré  



[PDF] Algorithmique et programmation : les bases (Algo) Corrigé

ALGORITHMIQUE ET PROGRAMMATION 1 Exercice 8 : Cube d'un réel (avec une variable) Un exemple d'algorithme/programme est donné ci-dessous



[PDF] SUJET + CORRIGE

UE J1BS7202 : Algorithmique et Programmation SUJET + CORRIGE Pour cet exercice, du fait que les indices d'un tableau T sont compris entre 0 et 



[PDF] Algorithmes et structures de données : TD 4 Corrigé - LaBRI

Licence MASS/Scico 5`eme semestre (2006/2007) Algorithmes et structures de données : TD 4 Corrigé Types - Enregistrements - Temps d'un algorithme T(n)



[PDF] Algorithmes et programmation en Pascal TD corrigés

Edouard Thiel TD corrigés Algorithmes et programmation en Pascal TP Écrire un programme qui demande le jour et l'heure, puis affiche si la boulangerie



[PDF] Algorithmique - Correction du TD3

18 déc 2012 · Exercice 4 Corriger le programme C++ suivant afin de résoudre le problème suivant : – Données : un nombre entier positif n – Résultat : le 



[PDF] Les tableaux 1 Exercice 1 - LIPN

Ecrire les algorithmes permettant : 1 Le calcul du nombre d'occurences d'un élément donné dans un tableau Nb_occurences (T: Tableau d'entier, N: entier) 



[PDF] Exercices et problèmes dalgorithmique - Adrien Poupa

corrigés des exercices et problèmes Pour compléter cette structure classique, un chapitre introductif résume les bases minimales de la programmation 



[PDF] Algorithmique – Travaux Dirigés - AAATE

Corrigé Exercice 1 – Affectations 1 Considérons les algorithmes ci-dessous Dans la plupart des langages de programmation le dernier exemple (1 6) ne 

[PDF] exercice corrigé algorithme tableau pdf

[PDF] exercice corrigé analyse financière esg

[PDF] exercice corrigé analyse swot

[PDF] exercice corrigé audit interne

[PDF] exercice corrigé batterie

[PDF] exercice corrigé c++ classe

[PDF] exercice corrigé calcul d'erreur

[PDF] exercice corrigé calcul de ph

[PDF] exercice corrigé champ magnétique crée par un solénoide

[PDF] exercice corrigé chiffre d'affaire prévisionnel

[PDF] exercice corrigé chimie organique licence

[PDF] exercice corrigé chimie organique mecanisme reactionnel

[PDF] exercice corrigé choix d'investissement en avenir incertain

[PDF] exercice corrigé cinématique du point matériel pdf

[PDF] exercice corrigé cinématique du solide

Universit´e Bordeaux 2 Licence MASS/Scico 5`eme semestre (2006/2007) Algorithmes et structures de donn´ees : TD 4 Corrig´e Types - Enregistrements - Temps d"un algorithme T(n)

Exercice 4.1Types

D´eclarer des types qui permettent de stocker :

1. Un joueur de basket characteris´e par son nom, sa date de naissance, sa nationalit´e, et son

sexe type t_sexe = (masculin, feminin); type t_joueur = RECORD nom : string; nation : string; sexe : t_sexe; END;

2. Une association de joueurs de basket

type t_assoc = array[1..N] of t_joueur; Remarque :Pour permettre `a l"association de croitre, c"est-`a-direavoir plus de N joueurs, il faudra allouer un tableau dynamique ou une liste...

3. Une equipe de basket avec son nom, ses joueurs, ainsi que les points gagn´es et les basket

marqu´es et encaiss´es dans la saison courante. type t_equipe = RECORD nom : string; joueurs : array[1..N] of t_joueur; points : integer; basketmarque : integer; basketencaisse : integer; END; Remarque :Pour les joueurs, il vaudrait mieux allouer un tableau dynamique ou une liste...

4. Un tableau de 18 equipes de basket

type t_tableau = array[1..18] of t_equipe; Exercice 4.2Je constate que la somme desnpremiers nombres impairs est ´egale `an2, c"est `a dire que1 + 3 + 5 +...+ (2n-1) =n2.

1. Ecrivez lafunction sommeImpairs(n : integer) : integer;qui calcule la somme

desnnombres impairs. function sommeImpairs(n : integer) : integer;var i, somme : integer;begin somme := 0; for i := 1 to n do begin somme := somme + (2*i)-1; end; result := somme; end;

2. Ecrivez lafunction carre(n : integer) : integer;qui calculen2

function carre(n : integer) : integer; begin result := n*n; end;

3. Faites tourner l"appel de fonctionresultat := sommeImpairs(3);

n sommeiresult 3 0 1 1 2 4 3 9

4. Faites tourner l"appel de fonctionresultat := carre(3);

n result 3 9

5. Faites tourner l"appel de fonctionresultat := sommeImpairs(6);

2 nsommeiresult 6 0 1 1 2 4 3 9 4 16 5 25
6 36

6. Faites tourner l"appel de fonctionresultat := carre(6);

n result 6 36

7. Quelle algorithme est plus efficace? (Rappel: Si on double la valeur d"entr´ee, comment va

´evoluer le temps d"´execution de l"algorithme). Bien evidemment c"est ce dernier algorithme qui est plus efficace. On dit qu"il est de complexit´e constante - aussi appel´e O(1) - car le temps d"´ex´ecution n"est pas influenc´e par la valeur d"entr´ee de la fonction. Le premier algorithme est de

complexit´e lin´eaire - aussi appel´e O(N) car le temps d"´ex´ecution est lin´eaire en

fonction de la la valeur d"entr´ee de la fonction.

Exercice 4.3Complexit´e

1. Consid´erer le tableau suivant :

type t_tableau = array[1..15] of integer;

2. Ecrire la fonction

function dedans(quoi : integer) : integer; qui renvoie la position dans le tableau de l"´elementquois"il est dedans, et 0 sinon. function dedans(quoi : integer) : integer; var position : integer; var i : integer; var entree : integer; d´ebut position := 0; i := 1; tant que (i<=15 ET position = 0) faire 3 entree = tab[i];si (quoi = entree) alors position := i; fin si i := i + 1; fin tant que result := position; fin

3. Faites tourner l"algorithmeresultat := dedans(31)avec le vecteur

1,3,3,7,8,12,17,18,18,26,29,31,40,44,46.

quoi positionientreeresult 31
0 1 1 2 3 3 3 4 7 5 8 6 12 7 17 8 18 9 18 10 26
11 29
12 31
12 13 12

4. D´eterminer la fonction de temps maximale ("worst case")T(n) pour un tableau de taille

n.

T(n) = 6n + 3

Remarque :Pour etre d´emonstrative, j"avais introduit la variableentr´ee, elle n"est pas forc´ement n´ecessaire. De plus, la comparaisonposition = 0dans la condition de la boucle tant queest optionnel. Si on la met pas, le meilleur cas est aussi le pire de cas, c"est-`a-dire 4 dans tout les cas les 15 it´erations de la boucletant queseront effectu´e. 5

Exercice 4.4Complexit´e

1. Vous pouvez maitenant supposer que levecteurest tri´e d"ordre croissant, c"est `a dire que

Consid´erer la fonction suivant :

function enigme(quoi : integer, n : integer) : integer; begin var inf, sup, milieu : integer; var trouve : boolean; inf := 1; sup := n; trouve := FAUX; tant que (sup >=inf ET trouve = FAUX) milieu := (inf + sup) DIV 2; si (quoi = tab[milieu]) alors trouve := VRAI; sinon si (quoi < tab[milieu]) sup := milieu -1; sinon inf := milieu + 1; fin si fin si fin tant que if (trouve = FAUX) result := 0; sinon result := milieu; fin si end

2. Faites tourner cette fonctionresultat := enigme(31,15);dans un tableau avec les

valeur de1,3,3,7,8,12,17,18,18,26,29,31,40,44,46. . quoi ninfsupmilieutrouveresult 31
15 1 15 FAUX 8 9 12 VRAI 12

3. Que fait cet algorithme? Est-ce qu"il est mieux que celui dessus? Pourquoi? Avez-vous

une id´ee de sa complexit´e asymptotique? 6 C"est un algorithme de recherche dichotomique. En algorithmique, la dichotomie (du grec <>) est un processus it´eratif de recherche o`u `a chaque ´etape l"espace de recherche est restreint `a l"une de deux parties. Pour desgrands valeur de longuer de donn´eesn, cet algorithme est mieux que celui dessus. Son temps maximal d"ex´ecution est T(n) = 7log2n+ 5?O(logn), sa complexit´e asymptotique est doncO(logn). 7

Exercice 4.5BONUS

Une solution compr´ehensible se trouve par exemple sur elevesg/lecon8/lecon.html

Exercice 4.6Puissance4

1. D´eclarer un type qui permet de stocker un damier du jeu "Puissance4" du typetype

t champ = (vide, jaune, rouge);. type t_puissance4 = array[1..6] of array[1..7] of t_champ; var puissance4 : t_puissance4;

2. D´eclarer un type qui permet de stocker 2 joueurs avec leurs noms et leurs couleurs de pion

t champrespectives. type t_joueur = record nom : string; couleur : t_champ; end; var joueur : array[1..2] of t_joueur;

3. Ecrire la proc´edure

procedure initialiser; qui initialise le jeu de Puissance4 (tous les champs sont vides). procedure initialiser; var i,j : integer; d´ebut pour i de 1 `a 6 faire pour j de 1 `a 7 faire puissance4[i][j] := vide; fin pour fin pour fin 8

4. Ecrire la fonctionfunction possible(var c : integer) : boolean;

qui teste si un jeueur peut mettre un pion la colonnec.

5. Ecrire la proc´edure

function possible(var c : integer) : boolean; d´ebut si puissance4[1][c] := vide alors { si 1 est la ligne la plus haute, sinon [6][c] } result := VRAI; sinon result := FAUX; finquotesdbs_dbs18.pdfusesText_24