:: Enseignements :: ESIPE :: E3INFO :: 2013-2014 :: Algorithmique ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Introduction à l'algorithmique, manipulation de tableaux |
Ce TP permet de manipuler des algorithmes simples sur les tableaux et
leur complexité.
Exercice 1 - Tableau aléatoire
Écrire une fonction qui remplit un tableau de
taille éléments
avec des entiers pseudo-aléatoires obtenus avec les fonctions suivantes;
#include <stdlib.h>
long int rand(void);
void srand(unsigned int seed);
la fonction
srandom pourvant être initialisée grâce à
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
en commençant la fonction
main par l'instruction
srandom(getpid()).
Exercice 2 - Minimum et maximum d'un tableau
Écrire une fonction itérative de recherche du minimum et du
maximum d'un tableau, en effectuant
un parcours du tableau.
Combien de comparaisons ont été effectuées?
Exercice 3 - Recherche dans un tableau
On souhaite écrire des fonctions de recherche d'un élément dans un tableau.
Les fonctions sont itératives et renvoient l'indice de l'élément si une occurrence
a été trouvée, et
-1 sinon.
On pourra tester ces fonctions dans un programme qui affiche
Element présent ou
Elément absent et l'index.
Combien de comparaisons ont été effectuées?
Exercice 4 - Décalage circulaire dans un tableau
- Écrire une fonction void DecaleUn(int t[], int taille)
qui effectue un décalage circulaire à gauche des éléments du tableau.
Ainsi {0,1,2,3,4,5} devient {1,2,3,4,5,0}.
Combien d'opérations d'affectation sont effectuées?
- Écrire une fonction void DecaleMult(int t[], int taille, int k)
qui effectue un décalage circulaire à gauche de k positions des
éléments du tableau.
Combien d'opérations d'affectation sont effectuées?
- Écrire une fonction void MirroirPartiel(int t[], int taille, int debut, int fin)
qui inverse l'ordre des éléments du tableau entre les indices debut
et fin compris.
Ainsi, le tableau t={0,1,2,3,4,5} devient {0,3,2,1,4,5}
après exécution de MirroirPartiel(t,6,1,3).
Combien d'opérations d'affectation sont effectuées?
- Montrer que la suite d'appels:
MirroirPartiel(t, taille, 0, k-1);
MirroirPartiel(t, taille, k, taille-1);
MirroirPartiel(t, taille, 0, taille-1);
réalise le décalage circulaire à gauche de k positions.
Combien d'opérations d'affectation sont effectuées?
© Université de Marne-la-Vallée