Vous êtes sur la page 1sur 2

Universite de Bordeaux - Coll`ege S&T

LST Mention MI Semestre 2

2013-2014

J1MI2013: Algorithmes et Programmes: feuille 06


Tableaux

Travaux dirig
es
Pour chacun des exercices, on etudiera la complexite des algorithmes utilises.
Exercice 1.
Soient t1 et t2 deux tableaux de nombres tries dans lordre croissant.
On veut fusionner ces deux tableaux en un troisi`eme egalement trie dans lordre croissant. Par
exemple, si t1=[2,5,5,8,9] et t2=[1,3,5], le tableau resultant est
fusion(t1,t2) = [1,2,3,5,5,5,8,9]

Ecrire
la fonction fusion(t1,t2) (cette fonction doit retourner un nouveau tableau, sans modifier t1 ni t2).

Exercice 2.
Ecrire
une fonction insertionTableauTrieDansTableauTrie(t,s) qui ins`ere
les elements dun tableau s trie en ordre croissant dans un autre tableau t trie lui aussi en ordre
croissant. Elle ne doit pas utiliser de tableau auxiliaire et ne doit pas deplacer plus dune fois
chacun des elements des deux tableaux.

Travaux pratiques
Exercice 1.

Ecrire
et tester les fonctions etudiees en TD.

Exercice 2. Ecrire
une fonction ligneTrianglePascal(n) qui calcule et retourne un tableau
dentiers contenant la n-i`eme ligne du triangle de Pascal (pour 0 p n, le p-i`eme element
du tableau est Cpn ). La fonction nutilisera quun seul tableau de dimension maximale n + 1 et
neffectuera aucune multiplication (la seule operation arithmetique necessaire est laddition).

Exercices compl
ementaires

Exercice 3.
Ecrire
une fonction cumuler(t) qui transforme un tableau t en remplacant
chaque element du tableau t par la somme des elements qui le prec`edent au sens large (lelement
lui meme est compris dans cette somme). Par exemple si, avant lappel, le tableau t est
t = [0, 1, 2, 3, 4, 5, 6], apr`es lappel cumuler(t), le tableau t devient [0, 1, 3, 6, 10, 15, 21]
Exercice 4.
Tout entier naturel peut secrire de mani`ere unique sous la forme dune somme
de puissances de 2.
k
P
bi 2i avec bi = 0 ou bi = 1
Soit n en entier donne. Alors n =
i=0

La representation binaire de cet entier correspond donc au tableau B = [b0 , b1 , ... , bk ]. Elle
secrira bk ....b1 b0 .
Dans la suite, on notera t un tableau binaire, n un nombre entier decimal et b la suite de 0 et
de 1 correspondant `
a la representation binaire dun entier.

Ecrire
une fonction tableauBinaire(n) qui retourne un tableau correspondant `a la representation binaire de cet entier.
Par exemple tableauBinaire(13) retournera le tableau [1, 0, 1, 1]
et tableauBinaire(52) retournera [0, 0, 1, 0, 1, 1]

Ecrire
une fonction estTableauPair(t) qui retournera True si le tableau t est le tableau
binaire dun nombre pair.

Ecrire
une fonction conversionDecimale(t) qui retourne le nombre entier correspondant au
tableau binaire donne par le tableau t.
Par exemple, conversionDecimale([1, 1, 0, 0, 1, 1, 0, 1]) retourne 179.

Ecrire
une fonction multiplierPar2PuissanceK(t,k) qui modifie le tableau t representant
lentier n pour que le nouveau tableau represente lentier n * 2k .

Ecrire
une fonction additionnerBinaire(t1,t2) qui retourne un nouveau tableau binaire
representant la somme des entiers representes par les tableaux binaires t1 et t2. Par exemple
laddition des tableaux [1, 0, 1, 1] et [0, 0, 1, 0, 1] donnera le tableau [1, 0, 0, 0, 0, 1].

Vous aimerez peut-être aussi