site de Fabien Torre


Source de tableaux-simples.py

1: 2: # calcul de la moyenne des éléments d'un tableau t 3: 4: def moyenne (t): 5: somme = 0 6: for e in t: 7: somme = somme + e 8: print('la moyenne vaut',(somme/len(t))) 9: 10: def moyenne_version_fori (t): 11: somme = 0 12: for i in range(0,len(t)): 13: somme = somme + t[i] 14: print('la moyenne vaut',(somme/len(t))) 15: 16: def moyenne_version_while (t): 17: somme = 0 18: i = 0 19: while (i<len(t)): 20: somme = somme + t[i] 21: i=i+1 22: print('la moyenne vaut',(somme/len(t))) 23: 24: 25: # compte le nombre d'occurrences d'un élément x dans un tableau t 26: 27: def occurrences (x,t): 28: fois = 0 29: for e in t: 30: if e==x: 31: fois = fois + 1 32: print(x,'apparait',fois,'fois') 33: 34: 35: # combien ont eu la moyenne dans un tableau de notes t 36: def onteulamoyenne (t): 37: fois = 0 38: for e in t: 39: if e>=10: 40: fois = fois + 1 41: print(fois,'ont eu la moyenne') 42: 43: 44: # teste si l'élément x est présent dans la tableau t 45: def present (x,t): 46: i = 0 47: while ((i<len(t)) and (t[i]!=x)): # attention à l'ordre des conditions 48: i = i+1 49: if (i<len(t)): 50: print(x,'est présent') 51: else: 52: print(x,'n\'est pas présent') 53: 54: def presentPython (x,t): 55: if (x in t): 56: print(x,'est présent') 57: else: 58: print(x,'n\'est pas présent') 59: 60: 61: # appels aux procédures définies ci-dessus sur un tableau de notes 62: 63: print("--- petit tableau de notes ---") 64: 65: notes = [5,12,8,20,10] # on définit un tableau 66: notes.append(13.5) # on lui ajoute un élément 67: notes[2] = 9 # on modifie la 2ème case 68: 69: print(notes) 70: 71: moyenne(notes) # moyenne de la promo 72: 73: occurrences(12,notes) # combien de personnes ont eu 12 ? 74: 75: onteulamoyenne(notes) # combien de personnes ont eu la moyenne ? 76: 77: present(12,notes) # est-ce quelqu'un a eu 12 ? 78: present(17,notes) # est-ce quelqu'un a eu 17 ? 79: 80: 81: 82: #--- pareil avec des tableaux très grands --- 83: 84: print("--- grand tableau de notes ---") 85: 86: import random 87: import time 88: 89: # on produit un tableau de un million de notes aléatoires 90: notes = [] 91: for i in range(0,1000000): 92: notes.append(random.choice(range(0,21))) 93: 94: # on chronomètre le calcul de la moyenne de ce tableau 95: t1 = time.clock() 96: moyenne(notes) 97: t2 = time.clock() 98: print('calculée en ',(t2 - t1),'sec.') 99: 100: # on chronomètre le calcul du nombre d'occurrences sur ce tableau 101: t1 = time.clock() 102: occurrences(20,notes) 103: t2 = time.clock() 104: print('calculé en ',(t2 - t1),'sec.') 105: 106: # on produit un tableau des un million premiers entiers dans un ordre aléatoire 107: 108: print("--- grand tableau des premiers entiers ---") 109: 110: liste = list(range(0,1000000)) 111: random.shuffle(liste) 112: 113: # on compare notre algorithme de présence à l'implémentation in de Python 114: # avec un entier présent 115: t1 = time.clock() 116: present(20,notes) 117: t2 = time.clock() 118: print('notre réponse en ',(t2 - t1),'sec.') 119: t1 = time.clock() 120: presentPython(20,notes) 121: t2 = time.clock() 122: print('réponse de Python en ',(t2 - t1),'sec.') 123: # avec un nombre absent 124: t1 = time.clock() 125: present(-1,notes) 126: t2 = time.clock() 127: print('notre réponse en ',(t2 - t1),'sec.') 128: t1 = time.clock() 129: presentPython(-1,notes) 130: t2 = time.clock() 131: print('réponse de Python en ',(t2 - t1),'sec.')
site de Fabien Torre, université de Lille