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 0iet i<net 0jet j<nalors
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 1an-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 nqet qpet p0alors
imin=p
pour i allant de p+1 aqfaire
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 0an-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
#python triangle.py
n? 4
*
**
***
****
Solution :
a=input("n?")
s=""
for i in range(a):
for j in range(i):
s+="*"
s+="\n"
print s
Solution plus simple :
a=input("n?")
s=""
for i in range(a):
s+="*"
print s
Master Handi – Université Paris 8 – 2012 Algo/Python
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 !