#!/usr/bin/env python # encoding: utf-8 # Definitions preliminaires # Copiez ces definitions au debut de votre fichier .py def liste(): return [] def queue(l): return l[1:] def tete(l): return l[0] def cons(x, l): return [x] + l def vide(l): return l == [] def pgcd(a, b): """Calcule le plus grand commun diviseur de deux entiers.""" if b == 0: return a else: r = a % b return pgcd(b, r) def ppcm(a, b): """Calcule le plus petit commun multiple de deux entiers.""" return a*b/pgcd(a,b) def double(x): return 2*x # Tests # Copiez ces lignes a la fin de votre fichier .py (apres les definitions des fonctions) print "Avant-dernier element de [1, 2, 3, 4, 5] :" print avant_dernier([1, 2, 3, 4, 5]) print print "Ajouter 3 à tous les elements de [1, 2, 3, 4] :" print ajoute(3, [1, 2, 3, 4]) print print "Plus petit commun multiple de la liste [1, 2, 3, 4, 5, 6] (la bonne reponse est 4*3*5 = 60) :" print multiple([1, 2, 3, 4, 5, 6]) print print "Teste si les listes [2, 4, 1, 6] et [2, 4, 8, 6] ne contiennent que des valeurs paires :" print paire([2, 4, 1, 6]) print paire([2, 4, 8, 6]) print print "Repete le 2e element de [1, 2, 3, 4, 5] 4 fois (l'indexation commence a 0, donc le 2e element est '3') :" print repete(4, 2, [1, 2, 3, 4, 5]) print print "Applique la fonction 'double' au elements de [1, 2, 3, 4, 5] un nombre de fois donne par [1, 2, 0, 3, 1] (la bonne reponse est [2, 8, 3, 32, 10]) :" print applique(double, [1, 2, 3, 4, 5], [1, 2, 0, 3, 1]) print print "Teste si les listes [1, 4, 3, 5, 1], [1, 4, 3, 5, 1, 2] et [1, 4, 3, 2, 1] sont alternees :" print alterne([1, 4, 3, 5, 1]) print alterne([1, 4, 3, 5, 1, 2]) print alterne([1, 4, 3, 2, 1])