Algorithmique/Python

publicité
Algorithmique/Python
Master “Technologie et Handicap” : Intensifs 1
Examen du 8 octobre 2012, 17h
Durée 2h, documents (poly et notes de cours) autorisés
Correction
1
Algorithmique
1. On souhaite écrire une fonction pour permutter 2 éléments d’indices i et j d’un tableau d’entiers.
(a) Quels sont les arguments de cette fonction ?
(b) Écrire la fonction.
Solution :
(a) Il faut passer en argument le tableau, sa longueur et les indices à permutter.
(b) fonction permutter(var t: entier[] par reference,
i, j, n : entier par valeur)
var tmp:entier
debut
si 0≤i et i<n et 0≤j et j<n alors
tmp=t[i]
t[i]=t[j]
t[j]=tmp
sinon
// erreur
finsi
fin
2. Écrire une fonction permettant d’aller chercher le plus petit élément d’un tableau donné en argument. La fonction
renverra l’indice du plus petit élément trouvé.
Solution :
fonction pluspetiti(var t: entier[] par reference,
n: entier par valeur):entier
var imin,i:entier
debut
si n>0 alors
imin=0
pour i allant de 1 a n-1 faire
si t[min]>t[i] alors
imin=i
finsi
fait
retourner imin
sinon
// erreur
finsi
fin
Master Handi – Université Paris 8 – 2012
Algo/Python
3. Écrire une fonction (inspirée de la précédente) permettant d’aller chercher le plus petit élément d’une partie d’un
tableau donné en argument. On passera en argument le tableau et sa longueur, ainsi que les indices de début et de
fin de la partie du tableau qui nous intéresse. La fonction renverra l’indice de ce plus petit élément.
Exemple
Si un tableau tab contient [1, 4, 3, 7, 2], la fonction pluspetitdusoustableau(tab,5,1,3)
renverra la valeur 2 (indice de la case contenant la plus petite valeur du sous tableau [4, 3, 7], délimité par
l’indice de début 1 et l’indice de fin 3.
Solution :
fonction pluspetiti(var t: entier[] par reference,
n, p, q: entier par valeur):entier
var imin,i:entier
debut
si n≥q et q≥p et p≥0 alors
imin=p
pour i allant de p+1 a q faire
si t[min]>t[i] alors
imin=i
finsi
fait
retourner imin
sinon
// erreur
finsi
fin
4. En utilisant les fonctions précédentes, écrire une fonction permettant de trier un tableau du plus petit au plus grand.
Solution :
fonction trier(var t: entier[] par reference,
n : entier par valeur)
var i:entier
debut
pour i allant de 0 a n-1 faire
imin=pluspetiti(t, n, i, n)
permutter(t,i,imin)
// ou directement : permutter(t,i,pluspetiti(t, n, i, n))
fait
fin
2
Python
Écrire un programme qui affiche un triangle de taille n avec des étoiles.
Exemple
Solution :
Solution plus simple :
# python triangle.py
n? 4
*
**
***
****
a=input("n?")
s=""
for i in range(a):
for j in range(i):
s+="*"
s+="\n"
print s
a=input("n?")
s=""
for i in range(a):
s+="*"
print s
Master Handi – Université Paris 8 – 2012
Algo/Python
Téléchargement