T.P. 5 : tableaux bi-dimensionnels, binomiaux, triangle de Pascal 1

T.P. 5 : tableaux bi-dimensionnels, binomiaux, triangle de Pascal
Un point important de terminologie : ce que nous appelons liste en python est plus souvent
appel´e tableau en informatique. Une liste de nombres par exemple T=[1,3,4]sera pour nous aussi
appel´ee tableau . En r´ealit´e du point de vue informatique, la structure de donn´ee tableau et la
structure de donn´ee liste ont des diff´erences, suivant la fa¸con dont elles sont coees en machine,
pour savoir notamment si on acc`ede `a toutes les entr´ees avec le mˆeme temps ou pas. Vous reviendrez
`a ce probl`emes en Option Info. notamment, mais pour nous, on emploiera les mots listes ou tableaux
pour parler des listes Python.
En revanche ce qu’on appelle tableau dans le langage courant est un objet bidimension-
nel comme une matrice, par exemple a b c
d e f. Comment coder de tels tableaux dits bidi-
mensionnels en informatique ?
1 Tableaux bidimensionnels vus comme liste double : premi`ere
approche
Une fa¸con rudimentaire pour fabriquer un tableau bidimensionnel en Python est d’utiliser
une liste de listes. Par exemple L=[[1,2],[3,4]] est ce qu’on appelle en informatique un tableau
bidimensionnel qui code ce que les humains ont envie de voir comme le tableau pour humain :
1 2
3 4.
a) Comment afficher ce tableau Lsur deux lignes ?
b) Fabriquer une fonction affiche_tableau_pour_humain qui est une fonction d’affichage :
elle prend en argument un tableau informatique (liste de listes) et l’affiche ligne par ligne
sans crochet ni virgules.
c) Comment modifier Lpour obtenir dans L [[1,2],[3,5]].
d) Ecrire une fonction Tzeros(m,n) qui prend en arguments deux entiers met net retourne un
tableau `a mlignes et ncolonnes rempli de z´eros.
e) Soit L=Tzeros(3,3). Modifier la premi`ere entr´ee de la premi`ere ligne de Lpour y mettre
un 1.
f) Fabriquer une fonction qui transforme une liste en un tableau qui va `a la ligne toutes les
dix entr´ees : attention, on veut que cette fonction retourne un tableau informatique bidi-
mensionnel (liste de listes). A l’aide de cette fonction et de affiche_tableau_pour_humain
on peut alors afficher tous les nombres entiers jusqu’`a 100 `a partir de L=list(range(101))
sous la forme d’un tableau pour humain.
2 Calcul des binomiaux par la formule explicite
a) Ecrire une fonction factorielle(n) qui prend en argument un entier net renvoie sa fac-
torielle.
b) Ecrire une fonction binomial(m,n) qui prend en argument deux entiers met net retourne
m
nqui doit ˆetre de type integer, grˆace `a la formule explicite.
3 Le tableau du triangle de Pascal
a) Fabriquer une fonction qui prend comme argument un entier naturel n et renvoie une liste
double qui correspond au triangle de Pascal jusqu’`a la ligne n. N.B. On n’utilisera pas la
formule explicite, mais la formule du triangle de Pascal.
1
b) Appliquer la fonction d’affichage pr´ec´edent pour obtenir le tableau du triangle de Pascal
align´e `a gauche.
c) Modifier la fonction d’affichage pr´ec´edent pour obtenir le tableau du triangle de Pascal
centr´e.
Indication : utiliser la m´ethode center sur les chaˆınes de caract`eres.
d) A partir d’un tableau obtenu par la question pr´ec´edente, obtenir le tableau o`u l’on remplace
chaque entr´ee par un O si elle est paire et un si elle est impaire. Commentez le dessin
obtenu pour une valeur de n assez grande.
4 Crible d’Eratosth`ene
Le c´el`ebre crible d’Eratosth`ene pour trouver tous les nombres premiers inf´erieurs `a un entier n
consiste `a ´ecrire tous les entiers inf´erieurs ou ´egaux `a n, puis rayer les multiples de 2, ceux de 3 et
ensuite de chaque nombre non rae qui est premier. A la fin il ne reste que les nombres premiers.
Programmez le crible d’Eratosth`ene pour le nombres premiers `a partir d’une liste en rempla¸cant
au fur et `a mesure tous les nombres non premiers par des *. Affichez le r´esultat sous la forme d’un
tableau grˆace `a la fonction pr´ec´edente.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !