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.')