Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses

Dimension: px
Commencer à balayer dès la page:

Download "Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses"

Transcription

1 Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses Exercice 0 print('\n ') n = 1234 q = 1234 // 10 # quotient de n par 10 r = 1234 % 10 # reste de n par 10 = chiffre des unités q1 = q // 10 # reste de q par 10 r1 = q % 10 # reste de q1 par 10 = chiffre des dizaines print('n = {}, q = {}, r = {}, q1 = {}, r1 = {}'.format(n, q, r, q1, r1)) print('les restes successifs contiendront les chiffres de n') print('\n ') s = r**3 + r1**3 # contiendra la somme des cubes des chiffres q2 = q1 // 10 s += (q1 % 10)**3 s += (q2 % 10)**3 print('somme des cubes des chiffres de {} : {}'.format(n, s)) n = 1234, q = 123, r = 4, q1 = 12, r1 = 3 Les restes successifs contiendront les chiffres de n Somme des cubes des chiffres de 1234 : 100 Somme des cubes de 1234 : 100 Les chiffres inférieurs à 1000 égaux à la somme des cubes de leurs chiffres : 0, 1, 153, 370, 371, 407, --- Question Somme des cubes de 1234 : 100 print('\n ') def somcube(n): n : entier naturel renvoie la somme des cubes des chiffres de l'écriture décimale de n s = 0 # contiendra la somme des cubes des chiffres q = n # contiendra les quotients successifs par 10 # la boucle stoppe lorsque q = 0 while q: s += (q % 10)**3 q = q // 10 # que l'on peut écrire q //= 10 return s print('somme des cubes de 1234 : ', somcube(1234)) print('\n ') maxi = 1000 print('les chiffres inférieurs à {} égaux à la somme des cubes de leurs\ chiffres :'.format(maxi)) for i in range(maxi + 1): if i == somcube(i): print(i, end = ', ') print() #--- question print('\n --- Question ') def somcube2(n): n : entier naturel renvoie la somme des cubes des chiffres de l'écriture décimale de n 1

2 chiffres_str = str(n) # chaîne de caractères des chiffres de n somme = 0 for c in chiffres_str: somme += int(c)**3 return somme # ou bien : return sum(int(c)**3 for c in chiffres_str ) print('somme des cubes de 1234 : ', somcube(1234)) Exercice 1 import matplotlib.pyplot as plt import scipy.integrate as integ print('\n ') # lecture des données fichier = open('data/ex_001.csv', 'r') LX = [] LY = [] # liste des abscisses # liste des ordonnées for ligne in fichier: donnee = ligne.split(';') LX.append(float(donnee[0])) LY.append(float(donnee[1])) fichier.close() # affichage des données print('abscisses x ordonnées y ') print('-' * 25) for i in range(len(lx)): print('{} {}'.format(lx[i], LY[i])) print() abscisses x ordonnées y print('\n ') plt.plot(lx, LY, marker = 'D') plt.xlabel('$x$') plt.ylabel('$y$') plt.grid() plt.show() print('\n ') def trapeze(x, y): x et y : deux listes numériques de même longueur n renvoie la somme des (x_i-x_(i-1)) * (y_i + y_(i-1)) / 2 pour 0 < i < n trap = 0 # contiendra la somme voulue Valeur de trapeze(lx, LY) : Valeur avec trapz de scipy.integrate :

3 for i in range(1,len(x)): trap += (x[i] - x[i-1]) * (y[i] + y[i-1]) / 2 return trap ''' # que nous pourrions remplacer par : return sum(x[i] - x[i-1]) * (y[i] + y[i-1]) / 2 for i in range(1,n)) ''' print('valeur de trapeze(lx, LY) : ') print(trapeze(lx, LY), end = '\n\n') print('\n ') print('valeur avec trapz de scipy.integrate :') print(integ.trapz(ly, LX)) Exercice 2 print('\n ') # --- création de la matrice M des distances du graphe G --- M = [[0, 9, 3, -1, 7],[9, 0, 1, 8, -1],[3, 1, 0, 4, 2],[-1, 8, 4, 0, -1],[7, -1, 2, -1, 0]] # --- affichage de la matrice M --- print('matrice M des distances du graphe G : ') for ligne in M: for coeff in ligne: print('{:>2}'.format(coeff), end = ' ') print() print() print('\n ') voisins_4 = [] for j in range(5): if M[4][j] > 0: voisins_4.append(j) print('liste des voisins du sommet 4 :', voisins_4) print('\n ') def voisin(i): i : entier sommet de [0,4] retourne la liste vois_i des voisins du sommet i global M vois_i = [] Matrice M des distances du graphe G : Liste des voisins du sommet 4 : [0, 2] Liste des voisins du sommet 0 : [1, 2, 4] Liste des voisins du sommet 1 : [0, 2, 3] Liste des voisins du sommet 2 : [0, 1, 3, 4] Liste des voisins du sommet 3 : [1, 2] Liste des voisins du sommet 4 : [0, 2] Degré du sommet 0 : 3 Degré du sommet 1 : 3 Degré du sommet 2 : 4 Degré du sommet 3 : 2 Degré du sommet 4 : Question Longueur du trajet de [0] : -1 Longueur du trajet de [0, 0] : -1 Longueur du trajet de [0, 1, 0] : 18 Longueur du trajet de [0, 1, 4, 0] : -1 Longueur du trajet de [0, 1, 3, 2, 4] : 23 Longueur du trajet de [0, 1, 4] : -1 3

4 for j in range(5): if M[i][j] > 0: vois_i.append(j) return vois_i for i in range(5): print('liste des voisins du sommet {} : {}'.format(i, voisin(i))) print('\n ') def degre(i): i : entier sommet de [0,4] retourne le nombre de voisins du sommet i global M deg_i = 0 for j in range(5): if M[i][j] > 0: # ou bien deg_i += (M[i][j] > 0) - confusion bool <-> int deg_i += 1 return deg_i for i in range(5): print('degré du sommet {} : {}'.format(i, degre(i))) #--- question print('\n --- Question ') def longueur(l): L : liste de sommets renvoie la longueur du trajet décrit par la liste -si possible - global M n = len(l) if n <= 1: return -1 long = 0 for i in range(n-1): dist = M[L[i]][L[i+1]] if dist > 0: long += dist else : return -1 return long def affiche_longueur(l): print('longueur du trajet de {} : {}'.format(l, longueur(l))) affiche_longueur([0]) affiche_longueur([0,0]) affiche_longueur([0,1,0]) affiche_longueur([0,1,4,0]) affiche_longueur([0,1,3,2,4]) affiche_longueur([0,1,4]) 4

5 Exercice 3 # données de test t1 = [0,1,1,1,0,0,0,1,0,1,1,0,0,0,0] print('t1 = ', t1) long_t1 = len(t1) print('\n ') def nombrezeros(t,i): t : tableau de 0 et 1 i : indice du tableau renvoie le nombre de 0 consécutifs à partir de t[i] si t[i] = 0 renvoie 0 sinon n = len(t) if t[i]: return 0 else: s = 1 # contiendra le résultat j = i+1 while (j < n) and (t[j] == 0): s += 1 j += 1 return s t1 = [0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0] i nombrezeros(t1, i) Le nombre maximal de zéros contigus d'une liste t de longueur 1 est le maximum de la liste des nombrezeros(t,i) pour i dans [0,n-1] Nombre maximal de 0 contigus de t1 : 4 En notant N la longueur du tableau t, la complexité de nombrezeros est en O(N) et nombrezerosmax y fait N appels ;la complexité de nombrezerosmax est donc en O(N**2). Idée : parcourir le tableau une seule fois. Si t[z] = 0, alors le premier 0 de la série suivante est au plus tôt en t[z + nombrezeros(t, z) + 1]. Conserver la valeur maximale des nombrezeros calculés. Nombre maximal de 0 contigus de t1 : 4 print(' i ', end = '') for i in range(long_t1): print('{:>2} '.format(i), end = '') print() print('nombrezeros(t1, i) ', end = '') for i in range(long_t1): print('{:>2} '.format(nombrezeros(t1, i)), end = '') print() print('\n ') print('le nombre maximal de zéros contigus d\'une liste t de longueur 1 est\ le maximum de la liste des nombrezeros(t,i) pour i dans [0,n-1]\n') def nombrezerosmax(t): t : liste de 0 et 1 renvoie le nombre maximal de 0 contigus de t n = len(t) maxi = nombrezeros(t,0) # contiendra le résultat for i in range(1,n): m = nombrezeros(t,i) 5

6 if m > maxi : maxi = m return maxi print('nombre maximal de 0 contigus de t1 :', nombrezerosmax(t1)) print('\n ') print('en notant N la longueur du tableau t, \ la complexité de nombrezeros est en O(N) et nombrezerosmax y fait N appels ;\ la complexité de nombrezerosmax est donc en O(N**2).') print('\n ') print('idée : parcourir le tableau une seule fois.') print('si t[z] = 0, alors le premier 0 de la série suivante est au plus tôt') print('en t[z + nombrezeros(t, z) + 1].') print('conserver la valeur maximale des nombrezeros calculés.\n') #--- calcul du nombre maximal de 0 contigus - algorithme linéaire, en O(N) def nombrezerosmax2(t): t : liste de 0 et 1 Renvoie le nombre maximal de 0 contigus de t n = len(t) maxi = 0 # contiendra le résultat z = 0 while z < n: if t[z]: z += 1 # t[z] = 1 ; on passe à l'indice suivant else: m = nombrezeros(t, z) if m > maxi: maxi = m z += (m + 1) # t[z] = 0 # et t[i] = 0 pour i dans [z, z + m -1] # tandis que t[z + m] = 1 # le premier 0 suivant est au plus tôt t[z + m + 1] return maxi print('nombre maximal de 0 contigus de t1 :', nombrezerosmax2(t1)) 6

7 Exercice 4 import math as m import scipy.misc as spm print('\n ') def Px(k, n, p): k : entier naturel n : entier naturel >0 p : float de ]0, 1[ La v.a.r X suit une loi de Poisson P(n*p) Renvoie P(X = k) np = n * p return (np)**k * m.exp(- np) / m.factorial(k) n, p = 30, 0.1 lx = [Px(k, n, p) for k in range(n + 1)] print('\n ') def Py(k, n, p): n : entier naturel >0 k : entier naturel de [0,n] p : float de ]0, 1[ La v.a.r Y suit une loi binomiale B(n, p) Renvoie P(Y = k) return spm.comb(n, k) * p**k * (1-p)**(n-k) ly = [Py(k, n, p) for k in range(n + 1)] print('listes des P(X=k) et des P(Y=k) pour n = {0}, p = {1}\ et k dans [0, {0}] :\n'.format(n, p)) print(' k P(X=k) P(Y=k)') print(' ') for k in range(n + 1): print('{:>2} {:<22} {}'.format(k, lx[k], ly[k])) print('\n ') def Ecart(n, p): n : entier naturel >0 p : float de ]0, 1[ La v.a.r. X suit la loi de Poisson P(n*p) La v.a.r. Y suit la loi binomiale B(n, p) Renvoie le plus grand des nombres P(Y=k)-P(X=k) pour k dans [0, n] maxi = 0 # contiendra le résultat Listes des P(X=k) et des P(Y=k) pour n = 30, p = 0.1 et k dans [0, 30] : k P(X=k) P(Y=k) e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e-30 Ecart(30, 0.1) = N(Ecart(30, 0.1), 0.1) = Question N(0.008, 0.075) = 1 N(0.005, 0.075) = 124 N(0.008, 0.1) = 71 Dans le cas p = 0.1 et e = 0.005, la réponse du programme (à l'appel de la ligne 19) est : "OverflowError: long int too large to convert to float". Aucune valeur de n telle que n! soit plus petit que le plus grand float codable sur 64 bits (n <= 170) ne satisfait Ecart(n, 0.1) <

8 for k in range(n+1): distance = abs(px(k, n, p) - Py(k, n, p)) if distance > maxi: maxi = distance return maxi eps = Ecart(n, p) print('ecart({}, {}) = {}'.format(n, p, eps)) float(m.factorial(170))= e+306 Cependant, on considère quelquefois que de bonnes conditions d'approximation de B(n,p) par P(n*p) sont : p <= 0.1, n >= 30 et n * p <= 15. Pour p = 0.1, il suffirait que n soit dant [30, 150]. print('\n ') def N(e, p): e : float > 0 p : float de ]0,1[ Renvoie le plus petit entier naturel n > 0 tel que Ecart(n, p) <= e n = 1 while Ecart(n, p) > e: n += 1 return n print('n(ecart({0}, {1}), {1}) = {2}'.format(n, p, N(eps, p))) #--- question print('\n --- Question ') for (p, e) in [(0.075, 0.008), (0.075, 0.005), (0.1, 0.008)]: print('n({}, {}) = {}'.format(e, p, N(e, p))) print('dans le cas p = 0.1 et e = 0.005, la réponse du programme\ (à l\'appel de la ligne 19) est : \n\ "OverflowError: long int too large to convert to float".') print('aucune valeur de n telle que n! soit plus petit\ que le plus grand float codable sur 64 bits (n <= 170)\ ne satisfait Ecart(n, 0.1) < ') print('float(m.factorial(170))=',float(m.factorial(170)) ) print('\ncependant, on considère quelquefois que de bonnes conditions\ d\'approximation de B(n,p) par P(n*p)') print('sont : p <= 0.1, n >= 30 et n * p <= 15.') print('pour p = 0.1, il suffirait que n soit dant [30, 150].') Exercice 5 # Katia Barré - Lycée Lesage Vannes import numpy as np import matplotlib.pyplot as plt import scipy.optimize as spo print('\n ') 8

9 def g(x): if (x >= 0) and (x < 1): return x elif (x >= 1) and (x < 2): return 1 g_v = np.vectorize(g) lx = np.arange(0, 1.99, 0.01) gx = g_v(lx) plt.figure(1) plt.plot(lx, gx) plt.xlabel('$x$') plt.ylabel('$g(x)$') plt.axis([-0.1, 2.1, -0.1, 1.1]) plt.title('graphe de $g$') plt.grid() plt.show() print('\n ') def f(x): if (x >=0) and (x < 2): return g(x) elif (x >= 2): return (x**0.5) * f(x-2) f_v = np.vectorize(f) print('\n ') lx1 = np.linspace(0, 6, 500) fx = f_v(lx1) plt.figure(2) plt.plot(lx1, fx, linestyle = 'None', marker = '.', ms = 3) plt.xlabel('$x$') plt.ylabel('$f(x)$') plt.axis([-0.1, 6.1, -0.1, 5.1]) plt.title('graphe de $f$') plt.grid() plt.show() print('\n ') print('on lit graphiquement que alpha est dans [5, 6], intervalle sur lequel f est croissante.') # --- programmons la méthode de dichotomie eps = 0.01 a, b = 5, 6 fa, fb = f(a), f(b) while b-a > eps: On lit graphiquement que alpha est dans [5, 6], intervalle sur lequel f est croissante. 9

10 c = (a+b) / 2 fc = f(c) if f(c) > 4: b = c fb = fc else : a = c fa = fc print('une valeur approchée à {} près de la plus petite valeur alpha > 0\ telle que f(alpha) > 4 est :\n {}\n'.format(eps, b)) Une valeur approchée à 0.01 près de la plus petite valeur alpha > 0 telle que f(alpha) > 4 est : f(alpha-0.01) = , f(alpha) = (Recherche du zéro de f-4 dans [5, 5.5] par méthode de dichotomie de scipy : ). print('f(alpha-{}) = {}, f(alpha) = {}\n\n'.format(eps, f(b - eps), f(b))) print('(recherche du zéro de f-4 dans [5, 5.5] par méthode de dichotomie de scipy :') print(spo.bisect(lambda x : f(x) - 4, 5, 5.5), ').') Exercice 6 print('\n ') print('la fonction d retourne la liste croissante des diviseurs de l\'entier n') def d(n): n : entier naturel non nul Renvoie la liste croissante des diviseurs de l\'entier n L = [1] for nombre in range(2, n+1): if n % nombre == 0: L.append(nombre) return L for n in [4, 9, 10, 11]: print('d({}) = {}'.format(n, d(n))) print('\n ') def DNT(n): n : entier naturel non nul Renvoie la liste croissante des diviseurs "non-trivaux" de l\'entier n L = [] for nombre in range(2, n): if n % nombre == 0: L.append(nombre) return L # ou bien : return d(n)[1:-1] La fonction d retourne la liste croissante des diviseurs de l'entier n d(4) = [1, 2, 4] d(9) = [1, 3, 9] d(10) = [1, 2, 5, 10] d(11) = [1, 11] DNT(4) = [2] DNT(9) = [3] DNT(10) = [2, 5] DNT(11) = [] sommecarresdnt(4) = 4 sommecarresdnt(9) = 9 sommecarresdnt(10) = 29 sommecarresdnt(11) = 0 Les nombres <= 1000 et égaux à la somme de leurs diviseurs non triviaux sont : 4, 9, 25, 49, 121, 169, 289, 361, 529, 841, 961, On peut conjecturer, à la lecture de cette liste, que les nombres égaux à la somme de leurs diviseurs non triviaux sont les carrés des nombres premiers. for n in [4, 9, 10, 11]: print('dnt({}) = {}'.format(n, DNT(n))) 10

11 print('\n ') def sommecarresdnt(n): n : entier naturel non nul Renvoie la somme des carrés des diviseurs "non-trivaux" de l\'entier n s = 0 for nombre in range(2, n): if n % nombre == 0: s += nombre**2 return s for n in [4, 9, 10, 11]: print('sommecarresdnt({}) = {}'.format(n, sommecarresdnt(n))) print('\n ') maxi = 1000 print('les nombres <= {} et égaux à la somme de leurs \ diviseurs non triviaux sont :'.format(maxi)) for i in range(2, maxi + 1): if i == sommecarresdnt(i): print(i, end = ', ') print('\n\non peut conjecturer, à la lecture de cette liste,\ que les nombres égaux à la somme de leurs diviseurs non triviaux sont\ les carrés des nombres premiers.') Exercice 7 print('\n ') ord_a = ord('a') lettres = '' for i in range(ord_a, ord_a + 26): lettres += chr(i) # ou bien : lettres = ''.join([chr(ord_a + i) for i in range(26)]) print(lettres) print('\n ') def decalage(n): n : entier Renvoie l'alphabet après décalage de n vers la gauche global lettres decale = '' abcdefghijklmnopqrstuvwxyz decalage(1) = bcdefghijklmnopqrstuvwxyza decalage(3) = defghijklmnopqrstuvwxyzabc indices(e, "phrase originale avec des e ") = [5, 15, 19, 23, 26] indices(y, "phrase originale avec des e ") = [] codage(3, 'oralensam') : rudohqvdp dico(0) = {'c': 'c', 'b': 'b', 'a': 'a', 'g': 'g', 'f': 'f', 'e': 'e', 'd': 'd', 'k': 'k', 'j': 'j', 'i': 'i', 'h': 'h', 'o': 'o', 'n': 'n', 'm': 'm', 'l': 'l', 's': 's', 'r': 'r', 'q': 'q', 'p': 'p', 'w': 'w', 'v': 'v', 'u': 'u', 't': 't', 'z': 'z', 'y': 'y', 'x': 'x'} dico(3) = {'c': 'f', 'b': 'e', 'a': 'd', 'g': 'j', 'f': 'i', 'e': 'h', 'd': 'g', 'k': 'n', 'j': 'm', 'i': 'l', 'h': 'k', 'o': 'r', 'n': 'q', 'm': 'p', 'l': 'o', 's': 'v', 'r': 'u', 'q': 't', 'p': 's', 'w': 'z', 'v': 'y', 'u': 'x', 't': 'w', 'z': 'c', 'y': 'b', 'x': 'a'} 11

12 for i in range(26): decale += lettres[(i + n) % 26] return decale # ou bien : # global ord_a # return ''.join([chr(ord_a + (i + n) % 26) for i in range(26)]) for i in [1, 3]: print('decalage({}) = {}'.format(i, decalage(i))) codage_dico(3, 'oralensam') : rudohqvdp --- Question Pour décoder un mot codé de décalage n, il suffit d'appliquer un décalage de -n (ou de 26-n,...) codage(-3, codage(3, 'oralensam')): oralensam codage(23, codage(3, 'oralensam')): oralensam print('\n ') def indices(x, phrase): x : caractère phrase : chaîne de caractères Retourne la liste des indices de x dans la phrase (vide si x n'y figure pas) ind = [] long = len(phrase) for i in range(long): if phrase[i] == x: ind.append(i) return ind ee, pphrase = 'e', "phrase originale avec des e " print('indices({}, "{}") = '.format(ee, pphrase), indices(ee, pphrase)) yy = 'y' print('indices({}, "{}") = '.format(yy, pphrase), indices(yy, pphrase)) print('\n ') def codage(n, phrase): n : entier phrase : chaîne de caractères Renvoie la chaîne phrase codée avec un décalage de n lettres global ord_a if n % 26 == 0: return phrase else: long = len(phrase) lettre_codee = '' for lettre in phrase: lettre_codee += chr(ord_a + (ord(lettre) - ord_a + n) % 26) return lettre_codee print("codage(3, 'oralensam') : ", codage(3, 'oralensam'), '\n') #---- seconde idée : usage d'un dictionnaire def dico(n): global ord_a return {chr(ord_a + i) : chr(ord_a + (i + n) % 26) for i in range(26)} 12

13 print('dico(0) = ', dico(0)) print('dico(3) = ', dico(3), '\n') def codage_dico(n, phrase): n : entier phrase : chaîne de caractères Renvoie la chaîne phrase codée avec un décalage de n lettres if n % 26 == 0: return phrase else: dico_n = dico(n) return ''.join(dico_n[lettre] for lettre in phrase) print("codage_dico(3, 'oralensam') : ", codage_dico(3, 'oralensam')) #--- question print('\n --- Question ') print('pour décoder un mot codé de décalage n, il suffit d\'appliquer un décalage de -n (ou de 26-n,...)') print("codage(-3, codage(3, 'oralensam')): ", codage(-3, codage(3, 'oralensam'))) Exercice 8 import numpy as np import matplotlib.pyplot as plt M, m = 20, 10 print('\n ') def f(c): c : nombre On considère la suite récurrente définie par : u_0 = 0 et u_{n+1} = u_n **2 + c pour tout entier naturel n Renvoie : le plus petit entier k de [0, m] tel que u_k > M s'il existe m + 1 sinon global M, m u = 0 k = 0 while k < m: u = u**2 + c k += 1 if abs(u) > M: return k # renvoie k de [0, m] tel u_k > M return m + 1 # renvoie m

14 print('\n ') f_v = np.vectorize(f) LX = np.linspace(-2, 2, 401) fx = f_v(lx) Pour augmenter la résolution, on peut augmenter les paramètres M, m et K. plt.figure(1) plt.plot(lx, fx, linestyle = 'None', marker = '.', ms = 3) plt.axis([-2.1, 2.1, -0.1, m + 1.1]) plt.grid() plt.xlabel('$c$') plt.ylabel('$f(c)$') plt.title('graphe de $f$') plt.show() print('\n ') K = 101 x = np.linspace(-2, 0.5, K) y = np.linspace(-1.1, 1.1, K) X, Y = np.meshgrid(x, y) tableau_valeurs = f_v(x + 1j * Y) print('\n ') plt.figure(2) plt.imshow(tableau_valeurs, extent = [-2, 0.5,-1.1,1.1]) plt.title('$m = $ {}, $m$ = {}, $K$ = {}'.format(m, m, K)) plt.axis('scaled') plt.show() print('pour augmenter la résolution, on peut augmenter les paramètres M, m et K.') #--- tests def f1(c, m, M): u = 0 k = 0 while k < m: u = u**2 + c k += 1 if abs(u) > M: return k return m + 1 f1_v = np.vectorize(f1) def resolution(m, M, K): m : entier limite l'indice de la suite M : limite le module de la suite K : nombre de points sur les axes Trace l'image du code du tableau f(x + jy) où x dans [-2, 0.5] (K valeurs) y dans [-1.1, 1.1] (Ka valeurs) f fonction qui à un nombre complexe c associe le plus petit entier k de [0, m] tel que u_k > M s'il existe 14

15 m + 1 sinon avec (u_n) la suite récurrente définie par : u_0 = 0 et u_{n+1} = u_n **2 + c pour tout entier naturel n x = np.linspace(-2, 0.5, K) y = np.linspace(-1.1, 1.1, K) X, Y = np.meshgrid(x, y) tableau_valeurs = f1_v(x + 1j * Y, m, M) plt.imshow(tableau_valeurs, extent = [-2, 0.5,-1.1,1.1]) plt.title('$m = $ {}, $m$ = {}, $K$ = {}'.format(m, m, K)) plt.axis('scaled') plt.show() resolution(20, 30, 200) resolution(30,50, 500) Exercice 9 # Katia Barré - Lycée Lesage Vannes import numpy as np print('\n ') R = np.arange(1, 7).reshape(2, 3) print('r = \n', R) S = np.arange(1, 10).reshape(3, 3) R = [[1 2 3] [4 5 6]] S = [[1 2 3] [4 5 6] [7 8 9]] 15

16 print('s = \n', S) print('\n ') def test(m): M : matrice Renvoie n si M est carrée d'ordre n 0 sinon n = len(m) if n == len(m[0]): return n else: return 0 print('test(r) = ', test(r)) print('test(s) = ', test(s)) print('\n ') test(r) = 0 test(s) = 3 M1 = [[ ] [ ] [ ] [ ] [ ]] test(m1) = 5 La matrice est symétrique réelle donc toutes ses valeurs propres sont réelles. Valeurs propres de M1 : [ ] --- Question dansintervalle(valp_m1, 0, 1) = True fichier = open('data/ex_009.txt', 'r') matrice = [] for ligne in fichier: matrice.append(list(eval(ligne))) fichier.close() M1 = np.array(matrice) print('m1 = \n', M1) print('test(m1) = ', test(m1)) print('\n ') print('la matrice est symétrique réelle donc toutes ses valeurs propres sont réelles.') valp_m1, vecp_m1 = np.linalg.eig(m1) print('valeurs propres de M1 : \n ', valp_m1) #--- question print('\n --- Question ') def dansintervalle(l, a, b): L : liste de nombres complexes a, b : float Renvoie True si tous les éléments de L sont dans [a, b] False sinon for x in L: if abs(x.imag) > 1e-16 or x.real > b or x.real < a: return False return True print('dansintervalle(valp_m1, 0, 1) = ', dansintervalle(valp_m1, 0, 1)) 16

17 Exercice 10 # Katia Barré - Lycée Lesage Vannes import random print('\n ') def comptage(l, N): N : entier > 10 L : liste d'entiers de [0, N - 1] Renvoie une liste P telle que P[k] est le nombre d'occurence de k dans L P = [0] * N for x in L: P[x] += 1 return P Liste L = [0, 0, 4, 0, 4, 0, 3, 3, 1, 1, 2, 4, 3, 1, 3, 4, 0, 1, 3, 3] Comptage(L, 5) = [5, 4, 1, 6, 4] L = [0, 0, 4, 0, 4, 0, 3, 3, 1, 1, 2, 4, 3, 1, 3, 4, 0, 1, 3, 3] tri(l, 5) = [0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4] En notant M = len(l), La fonction comptage est de complexité O(M + N), de même que la fonction tri. Le tri par insertion est de complexité O(N^2). Le tri par fusion est de complexité O(N ln(n)). N = 5 ml = [random.randint(0, N - 1) for i in range(20)] print('liste L = ', ml) print('comptage(l, 5) = ', comptage(ml, N)) print('\n ') def tri(l, N): N : entier L : liste d'entiers de [0, N - 1] Renvoie la liste L triée par ordre croissant P = comptage(l, N) Q = [] for i in range(n): for k in range(p[i]): Q.append(i) return Q print('\n ') print(' L = ', ml) print('tri(l, 5) = ', tri(ml, N)) print('\n ') print('en notant M = len(l),') print('la fonction comptage est de complexité O(M + N), de même que la fonction tri.') print('le tri par insertion est de complexité O(N^2).') print('le tri par fusion est de complexité O(N ln(n)).') 17

18 Exercice 11 import numpy as np import matplotlib.pyplot as plt import scipy.integrate as integ b, w = 0.5, 6.0 print('\n ') def p(t): global b, w wt = w * t return np.cos(t) + b * np.cos(wt), np.sin(t) + b * np.sin(wt) def v(t): global b, w wt = w * t bw = b * w return -np.sin(t) - bw * np.sin(wt), np.cos(t) + bw * np.cos(wt) def a(t): global b, w wt = w * t bw2 = b * w**2 return -np.cos(t) - bw2 * np.cos(wt), -np.sin(t) - bw2 * np.sin(wt) print('\n ') dt = np.pi * 0.01 t = np.arange(-np.pi, np.pi + dt, dt) pt = p(t) plt.figure(1) plt.plot(pt[0], pt[1]) plt.xlabel('$x(t)$') plt.ylabel('$y(t)$') plt.title('trajectoire') plt.grid() plt.axis('scaled') --- Question plt.show() print('\n ') print('\n ') def c(t): 18

19 x, y = p(t) x1, y1 = v(t) x2, y2 = a(t) d = (x1**2 + y1**2) / (x1 * y2 - y1 * x2) return x - d * y1, y + d * x1 ct = c(t) plt.figure(2) plt.plot(pt[0], pt[1]) plt.plot(ct[0], ct[1]) #--- tracé de quelques segments [p(t)c(t)] for u in np.linspace(-np.pi + dt, -dt, 5): xp, yp = p(u) xc, yc = c(u) plt.plot([xp, xc], [yp, yc], marker = 'o', color = 'r') plt.grid() plt.legend(['point $p$', 'Centre de courbure $c$']) plt.title('trajectoire et développée') plt.axis('scaled') plt.show() #--- question print('\n --- Question ') def distance(a, B): A et B : deux points du plan (couples de float) retourne la longueur du segment [AB] xa, ya = A xb, yb = B return ((xb - xa)**2 + (yb - ya)**2)** Question def longueur(n): N : entier naturel > 0 Renvoie la longueur de la ligne polygonale reliant les points p(t) pour t dans [-pi, pi] pour le pas de discrétisation delta_t = pi / N t = np.linspace(-np.pi, np.pi, 2 * N) long = 0 A = p(t[0]) for i in range(1, 2 * N): B = p(t[i]) long += distance(a, B) A = B return long longueur_v = np.vectorize(longueur) # tracé de la longueur de la ligne polyngonale en fonction du nombre de points n = range(20, 301, 3) 19

20 long_n = longueur_v(n) plt.plot(n, long_n, linestyle = 'None', marker = 'o', ms = 3) norme_v = lambda u : (1 + (b * w)**2 + 2 * b * w * np.cos((w-1) * u))**0.5 longueur_p, err = integ.quad(norme_v, -np.pi, np.pi) plt.plot([20, 300], [longueur_p, longueur_p], color = 'r') plt.xlabel('$n$') plt.ylabel('longueur en fonction de $N$') plt.legend(['longueur du polygône avec $2N$ points', 'Longueur de la courbe'],\ loc = 'lower right') plt.grid() plt.show() 20

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Arts & Métiers Filière PSI

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Arts & Métiers Filière PSI Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Arts & Métiers Filière PSI Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes

Plus en détail

TD 1 : Listes et séquences. PC - Lycée Thiers

TD 1 : Listes et séquences. PC - Lycée Thiers Exercice 1 Exercice 1. Exercice 1. 1. Ecrire une fonctions moyenne() prenant en paramètre une séquence numérique (liste ou tuple) et retournant sa moyenne. 2. Ecrire une fonctions variance() prenant en

Plus en détail

TD Informatique Révisions d algorithmique

TD Informatique Révisions d algorithmique LYCÉE CHAPTAL PT* 2015/2016 TD INFO 1 RÉVISIONS D ALGORITHMIQUE TD Informatique Révisions d algorithmique 1.1 Listes Exercice 1 : échange d éléments Écrire une fonction echange(l, i, j) qui échange les

Plus en détail

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

Plus en détail

Révisions : programmation en langage python

Révisions : programmation en langage python Révisions : programmation en langage python Retrouvez tout le cours de première année (et plus) sur le site : http://pcsi.kleber.free.fr/ipt/index.html 1. Modules Les modules sont des bibliothèques de

Plus en détail

TD 8 - Manipulation de Fichiers. Informatique MPSI/PCSI - Lycée Thiers

TD 8 - Manipulation de Fichiers. Informatique MPSI/PCSI - Lycée Thiers TD 8 - Manipulation de Fichiers Informatique MPSI/PCSI - Lycée Thiers Exercice 1 / / Exercice 1 : / En python, créer un fichier essai.txt (à l aide de la commande f = open( essai.txt, w ), dans lequel

Plus en détail

Révisions : numpy, matplotlib. PC/PC* - Lycée Thiers

Révisions : numpy, matplotlib. PC/PC* - Lycée Thiers Révisions : numpy, matplotlib Modules scientifiques de python Tableaux bi-dimensionnels avec array() Le sous-module linalg La classe matrix() Polynomes avec la classe poly1d() Syntaxe de plot() Exemples

Plus en détail

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016 2015/2016 Exercice 1 : Pile renversée Corrigé Consignes Pour tous les exercices de cette planche on aura préalablement écrit l implémentation des piles à capacité limitée ou illimitée vue en cours, et

Plus en détail

TD2 - Ecriture binaire/héxadécimale d une entier. PCSI - Lycée Thiers

TD2 - Ecriture binaire/héxadécimale d une entier. PCSI - Lycée Thiers TD2 - Ecriture binaire/héxadécimale d une entier Ecriture d un nombre dans une base Ecriture d un nombre en base m > 1 Ecriture d un nombre en base 2 Ecriture d un nombre en base 16 Corrigé Corrigé Ecriture

Plus en détail

Certificat Big Data Apprentissage TP1 Introduction à Python

Certificat Big Data Apprentissage TP1 Introduction à Python Certificat Big Data Apprentissage TP1 Introduction à Python Olivier Schwander 30 septembre 2015 1 / 31 Outline Environnement de travail Commentaires Installation Éditeur Expressions Structures de contrôle

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers Programmation en Python - Cours 2 : Premiers programmes Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Utilisation en mode interactif Ecriture d un programme

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-onventions Initiation à la programmation en Python Une commande Python sera écrite en caractère gras. Exemples : print("bonjour") max=input("nombre maximum autorisé :") Le résultat de l'exécution d'un

Plus en détail

Chapitre 6 : Génération aléatoire

Chapitre 6 : Génération aléatoire Chapitre 6 : Génération aléatoire Alexandre Blondin Massé Laboratoire d informatique formelle Université du Québec à Chicoutimi 12 février 2013 Cours 8STT105 Département d informatique et mathématique

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

TP3 : des listes python aux tableaux numpy.. 1 Mini cours avec expérimentation sur machine :

TP3 : des listes python aux tableaux numpy.. 1 Mini cours avec expérimentation sur machine : TP3 : des listes python aux tableaux numpy.. 1 Mini cours avec expérimentation sur machine : 1.1 Identifiant et affectation Lorsqu on fait l affectation a=3.2, le nom de variable a pointe (on peut imaginer

Plus en détail

Informatique (INFO-F-206) Exemple de questionnaire d examen

Informatique (INFO-F-206) Exemple de questionnaire d examen Informatique (INFO-F-206) Exemple de questionnaire d examen Jean Cardinal Année académique 2010 2011 Consignes : 1. Les réponses doivent figurer sur des feuilles distinctes, indiquant le numéro de la question,

Plus en détail

Ch. 1 : Bases de programmation en Visual Basic

Ch. 1 : Bases de programmation en Visual Basic Ch. 1 : Bases de programmation en Visual Basic 1 1 Variables 1.1 Définition Les variables permettent de stocker en mémoire des données. Elles sont représentées par des lettres ou des groupements de lettres

Plus en détail

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende Que faire en algorithmique en classe de seconde? BEGIN Que dit le programme? Algorithmique (objectifs pour le lycée) La démarche algorithmique est, depuis les origines, une composante essentielle de l

Plus en détail

Cours Info - 12. Représentation des nombres en machine. D.Malka MPSI 2014-2015. D.Malka Cours Info - 12 MPSI 2014-2015 1 / 45

Cours Info - 12. Représentation des nombres en machine. D.Malka MPSI 2014-2015. D.Malka Cours Info - 12 MPSI 2014-2015 1 / 45 Cours Info - 12 Représentation des nombres en machine D.Malka MPSI 2014-2015 D.Malka Cours Info - 12 MPSI 2014-2015 1 / 45 Sommaire Sommaire 1 Bases de numération par position 2 Représentation des entiers

Plus en détail

Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A

Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A Djamel Aouane, Frederic Devernay, Matthieu Moy Mars - avril 2015 1 Manipulations de fichiers Pour organiser des

Plus en détail

TD 7 - Listes et chaînes de caractères. Informatique MPSI/PCSI - Lycée Thiers

TD 7 - Listes et chaînes de caractères. Informatique MPSI/PCSI - Lycée Thiers TD 7 - Listes et chaînes de caractères. Informatique MPSI/PCSI - Lycée Thiers Exercice 1 : Tri à bulle Correction Exercice 1 - I - Algorithmes de tri : Un algorithme de Tri prend en paramètre une liste

Plus en détail

Présentation du programme d informatique

Présentation du programme d informatique Présentation du programme d informatique UPS 31 mai 2015 Table des matières 1 Introduction 2 1.1 Présentation.................................. 2 1.2 Représentation des nombres.........................

Plus en détail

Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés.

Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés. Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés. 1 0.0.1 Suite récurrente (Fibonacci) * Réécrire la fonction u de façon à ce qu elle ne soit

Plus en détail

Algorithmique avancée en Python TDs

Algorithmique avancée en Python TDs Algorithmique avancée en Python TDs Denis Robilliard sept. 2014 1 TD 1 Révisions 1. Ecrire un programme qui saisit un entier, et détermine puis affiche si l entier est pair où impair. 2. Ecrire un programme

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Elements de correction du TP 1 9 octobre 2014

Elements de correction du TP 1 9 octobre 2014 PSI* PSI Informatique Pour Tous, Lycée Kléber Elements de correction du TP 1 9 octobre 2014 Exercice 1 Rappels : Une chaîne est une suite éventuellement vide non modifiable de caractères : chaine = Je

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Informatique. Programmation en Python.

Informatique. Programmation en Python. BCPST 1 B 13 septembre 2015 Informatique. Programmation en Python. Ce document est un support de cours, il vous permet d avoir sa structure et ses éléments les plus importants. Au cours des séances en

Plus en détail

Ce chapitre présente une initiation à Python sous la forme d un tutoriel qui, au

Ce chapitre présente une initiation à Python sous la forme d un tutoriel qui, au Chapitre 1 Tutoriel d initiation à Python 1 re partie Le langage Python 1, créé en 1989 par Guido van Rossum, est utilisé dans de nombreux domaines. Sa syntaxe simple en fait un langage facile à lire et

Plus en détail

Introduction à la programmation en langage Python

Introduction à la programmation en langage Python Université Paris-Sud Méthodologie Licence MPI S2 - Année 2015-2016 Introduction à la programmation en langage Python 1. Présentation Le Langage Python Python est un langage de programmation (au même titre

Plus en détail

Juin 2014 Loudun. Apprendre à programmer avec Python

Juin 2014 Loudun. Apprendre à programmer avec Python Juin 2014 Loudun Apprendre à programmer avec Python 1 Table des matières I Dialoguer avec la machine........................................ 5 I.1 Afficher un message : La fonction print...........................

Plus en détail

Python 3 Mémo. Pour permettre au programme en cours d exécution d afficher un texte ou un nombre on utilise la commande print.

Python 3 Mémo. Pour permettre au programme en cours d exécution d afficher un texte ou un nombre on utilise la commande print. Langage Python 3 Mémo I Entrées, Sorties et Variables 1 ) Sorties Pour permettre au programme en cours d exécution d afficher un texte ou un nombre on utilise la commande print. Exemples : print("bonjour!")

Plus en détail

Algorithmique au lycée

Algorithmique au lycée Stage PAF christian.brucker@ac-strasbourg.fr jean-paul.quelen@ac-strasbourg.fr 13 mars 2015 Lycée Jean Monnet STRASBOURG Sommaire du stage Les programmes Sommaire du stage Les programmes Sommaire du stage

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Soutien illimité 7j/7 en maths: Coach, profs, exercices & annales, cours. Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban

Soutien illimité 7j/7 en maths: Coach, profs, exercices & annales, cours. Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban EXERCICE 1 : 4 Points Cet exercice est un questionnaire à choix multiples. Aucune justification n est demandée. Pour chacune des questions, une

Plus en détail

DS Informatique Scientifique

DS Informatique Scientifique DUT Mesures Physiques - semestre S'2 DS Informatique Scientifique 10 décembre 2012 0. Directives Durée : 2h Tout système électronique interdit (calculatrice, téléphone, etc). Téléphone portable éteint

Plus en détail

Banque PT 2015 - IPT partie info

Banque PT 2015 - IPT partie info I Banque PT 2015 - IPT partie info Marc REZZOUK (marc.rezzouk@free.fr) Q1 In [1]: from math import ceil def init_t(tmax, dt): n = ceil(tmax / dt) T = [i * dt for i in range(n+1)] return T # version 2 def

Plus en détail

Licence STIC, Semestre 1 Algorithmique & Programmation 1

Licence STIC, Semestre 1 Algorithmique & Programmation 1 Licence STIC, Semestre 1 Algorithmique & Programmation 1 Exercices Alexandre Tessier 1 Introduction 2 instruction de sortie 3 expressions 4 variable informatique 5 séquence d instructions, trace Exercice

Plus en détail

Arbres binaires et codage de Huffman

Arbres binaires et codage de Huffman MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par

Plus en détail

Une introduction au langage python

Une introduction au langage python Une introduction au langage python Lycée Thiers 2014-15 Jean-Philippe Préaux 2 Table des matières 1 Premier contact 5 1.1 Introduction...................................... 5 1.1.1 Le langage python..............................

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Cours Info - 8. Fonctions & Modularité. D.Malka MPSI 2015-2016. D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40

Cours Info - 8. Fonctions & Modularité. D.Malka MPSI 2015-2016. D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40 Cours Info - 8 Fonctions & Modularité D.Malka MPSI 2015-2016 D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40 Sommaire Sommaire 1 Intérêt des fonctions 2 Déclaration d une fonction 3 Appel d une fonction 4

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

L enseignement de l algorithmique au Lycée

L enseignement de l algorithmique au Lycée L enseignement de l algorithmique au Lycée Sisteron 12 novembre 2009 Fernand Didier didier@irem.univ-mrs.fr Approche naïve C est une méthode, une façon systématique de procéder, pour faire quelque chose

Plus en détail

ISN Chapitre 1 Python : les bases PYTHON : LES BASES

ISN Chapitre 1 Python : les bases PYTHON : LES BASES 1. Un premier programme PYTHON : LES BASES Voici un programme (ou script) qui va demander votre nom, votre année de naissance, puis qui va vous saluer et vous donner votre âge en 2013. Pour écrire un programme,

Plus en détail

Expressions, types et variables en Python

Expressions, types et variables en Python Expressions, types et variables en Python 2015-08-26 1 Expressions Les valeurs désignent les données manipulées par un algorithme ou une fonction. Une valeur peut ainsi être : un nombre, un caractère,

Plus en détail

TP 7 : Manipulation d images.

TP 7 : Manipulation d images. Lycée Masséna TP 7 : Manipulation d images. On va voir deux choses dans ce TP : les tableaux Numpy, qui sont très pratiques pour les opérations terme à terme entre tableaux de nombres à plusieurs dimensions.

Plus en détail

TP Maple 4 Eléments de programmation

TP Maple 4 Eléments de programmation TP Maple 4 Eléments de programmation Les structures de branchement (tests) et de répétition (boucles) sont au fondement de la programmation informatique. Elles permettent respectivement d effectuer certaines

Plus en détail

Les supports de cours suivants font référence au cours de Mr SOL et à son livre : "Accès à l'université" chez DUNOD

Les supports de cours suivants font référence au cours de Mr SOL et à son livre : Accès à l'université chez DUNOD Les supports de cours suivants font référence au cours de Mr SOL et à son livre : "Accès à l'université" chez DUNOD Les supports de cours ne sont pas complets, ils ne contiennent ni les démonstrations,

Plus en détail

3 - Boucles for et Séquences (range, listes, chaînes de caractères)

3 - Boucles for et Séquences (range, listes, chaînes de caractères) 3 - Boucles for et Séquences (range, listes, chaînes de caractères) Exercices et programmes à rendre dans le compte-rendu de TP : ex 1 (TP3_1), ex 2 (TP3_2), ex 3 (TP3_3), ex 5 (TP3_5), ex 6 (TP3_6), ex

Plus en détail

TP Tracé de courbes : module Pylab

TP Tracé de courbes : module Pylab TP Tracé de courbes : module Pylab But de ce TP : Découvrir le module Pylab permettant de tracer des courbes : les représentations graphiques sont souvent utiles lorsque l on étudie un problème de physique,

Plus en détail

Tri en Python. # on cherche k tel que a k = min(a j ) ji

Tri en Python. # on cherche k tel que a k = min(a j ) ji Tri en Python On considère ici des tableaux ou listes d entiers ou de ottants. En Python, on peut trier une liste à l aide de la méthode sort : si a est une liste d entiers ou de ottants, a.sort() modi

Plus en détail

Informatique Chapitre 4: Types et typages

Informatique Chapitre 4: Types et typages Informatique Chapitre 4: Types et typages Booléens et listes Jérôme DIDIER 8/10/2014 Objectifs du cours Compétences visées Savoir que les variables peuvent avoir plusieurs types et les connaitre ; Type

Plus en détail

Algorithmie ISI301 TP 1 : Python et premiers algorithmes

Algorithmie ISI301 TP 1 : Python et premiers algorithmes Algorithmie ISI301 TP 1 : Python et premiers algorithmes 1 Python : apprentissage Pour avoir une vision plus large des différentes possibilités du langage Python, nous ne pouvons que vous conseiller d

Plus en détail

Java & Algorithme Corrigé du test final

Java & Algorithme Corrigé du test final Java & Algorithme Corrigé du test final 1 QUESTIONS EN JAVA Chaque question est sur un point, sauf certaines sur deux points. En tout, le QCM est noté sur 24 : la note est divisée par 6 pour revenir entre

Plus en détail

Cours numéro 9 : arbres binaires et de recherche

Cours numéro 9 : arbres binaires et de recherche Cours numéro 9 : arbres binaires et de recherche LI213 Types et Structures de données Licence d Informatique Université Paris 6 Arbre Arbre Un arbre est un ensemble fini A d éléments, liés entre eux par

Plus en détail

xkcd Le langage Python La GUI tkinter Christian Nguyen Département d informatique Université de Toulon et du Var 2012-2013

xkcd Le langage Python La GUI tkinter Christian Nguyen Département d informatique Université de Toulon et du Var 2012-2013 La GUI tkinter Département d informatique Université de Toulon et du Var 2012-2013 Présentation Python est né en 1990, son concepteur est De Guido Van Rossum(Pays Bas). Il présente les caractéristiques

Plus en détail

Cours fonctions, expressions algébriques

Cours fonctions, expressions algébriques I. Expressions algébriques, équations a) Développement factorisation Développer Développer un produit, c est l écrire sous forme d une somme. Réduire une somme, c est l écrire avec le moins de termes possibles.

Plus en détail

Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1. B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.

Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1. B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac. Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Programme de la séance Correction de la simulation d examen Questions

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Aménagement du programme de Mathématiques de seconde 2017 Algorithme et Programmation

Aménagement du programme de Mathématiques de seconde 2017 Algorithme et Programmation Aménagement du programme de Mathématiques de seconde 2017 Algorithme et Programmation Guide de démarrage au langage Python Document rédigé sous la direction des IA-IPR de l académie de Nice, par D. Lacroix

Plus en détail

TP 5 & 6 : Graphique

TP 5 & 6 : Graphique L1-S1-IMP Informatique Année 2010-2011 Semestre 1 TP 5 & 6 : Graphique 1 Bases 1.1 Bibliothèque graphique Pour dessiner des figures géométriques (et autres), Caml offre une bibliothèque de fonctions graphiques.

Plus en détail

Introduction à la programmation. Python. Damien Rohmer

Introduction à la programmation. Python. Damien Rohmer Introduction à la programmation Python Damien Rohmer 000 Premier "programme" 001 Premier "programme" 002 Commandes Notion de variables: a est une variable (qui vaut 7) b est une variable (qui vaut 2) 003

Plus en détail

NFP136- Cours 2 ALGORITHMES ET COMPLEXITÉ. Définition d'un algorithme Un exemple Présentation des algorithmes Évaluation d'un algorithme Complexité

NFP136- Cours 2 ALGORITHMES ET COMPLEXITÉ. Définition d'un algorithme Un exemple Présentation des algorithmes Évaluation d'un algorithme Complexité NFP136- Cours 2 ALGORITHMES ET COMPLEXITÉ PLAN Définition d'un algorithme Un exemple Présentation des algorithmes Évaluation d'un algorithme Complexité 1 DÉFINITION D'UN ALGORITHME Procédure de calcul

Plus en détail

Cours de spécialité mathématiques en Terminale ES

Cours de spécialité mathématiques en Terminale ES Cours de spécialité mathématiques en Terminale ES O. Lader 2014/2015 Lycée Jean Vilar Spé math terminale ES 2014/2015 1 / 51 Systèmes linéaires Deux exemples de systèmes linéaires à deux équations et deux

Plus en détail

INF130 - Ordinateurs et programmation. Semaine 08. Document présenté par Frédérick Henri et conçu par les enseignants en informatique du SEG

INF130 - Ordinateurs et programmation. Semaine 08. Document présenté par Frédérick Henri et conçu par les enseignants en informatique du SEG INF130 - Ordinateurs et programmation Semaine 08 Document présenté par Frédérick Henri et conçu par les enseignants en informatique du SEG Retour sur l'examen intra Objectifs Tableaux à deux dimensions

Plus en détail

Informatique Pour Tous III-Propositions de solutions aux exercices

Informatique Pour Tous III-Propositions de solutions aux exercices Informatique Pour Tous III-Propositions de solutions aux exercices exercice 1 exercice 2 exercice 3 exercice 4 exercice 1 exercice 1 Fonction de saisie d'un nombre def input_nb(invite): """ cette fonction

Plus en détail

Projets individuels Informatique II

Projets individuels Informatique II Projets individuels Informatique II 1. Faites un programme en C qui effectue la lecture à partir du clavier d un nombre entier N qui détermine la taille d une matrice N x N et qui recherche la valeur minimale

Plus en détail

Séance de travaux pratiques n 1 Quelques éléments de correction

Séance de travaux pratiques n 1 Quelques éléments de correction Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Séance de travaux pratiques n 1 Quelques éléments

Plus en détail

REPRÉSENTATIONS GRAPHIQUES

REPRÉSENTATIONS GRAPHIQUES REPRÉSENTATIONS GRAPHIQUES Objectif: apprendre à faire des représentations graphiques pour visualiser les résultats des algorithmes, comme celui de la résolution d une équation f(x) = 0 par la méthode

Plus en détail

Introduction à la programmation. Python. Damien Rohmer

Introduction à la programmation. Python. Damien Rohmer Introduction à la programmation Python Damien Rohmer 000 Premier "programme" 001 Premier "programme" 002 Commandes Notion de variables: 19 a est une variable (qui vaut 7) b est une variable (qui vaut 2)

Plus en détail

Algorithmique Travaux Dirigés

Algorithmique Travaux Dirigés Algorithmique Travaux Dirigés Master Technologie et Handicap : Intensifs 1 Corrigé Exercice 1 Affectations 1. Considérons les algorithmes ci-dessous. (a) Quel sera le contenu des variables a, b et éventuellement

Plus en détail

Calculs et Fonctions. Commandes Calculs et Fonctions

Calculs et Fonctions. Commandes Calculs et Fonctions Calculs et Fonctions Commandes Calculs et Fonctions Asymptote CercleOsculateur Coefficients Courbe CourbeImplicite Courbure Degré Dénominateur Dérivée ElémentsSimples Extremum Facteurs Fonction Intégrale

Plus en détail

Python langage de programmation

Python langage de programmation Initiation à la programmation avec Python langage de programmation Valérie Bellynck (2009), d après un diaporama d Alain Bozzi (2008), lui-même venant de celui de Bob Cordeau (2008) 1 Langage de Programmation

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Informatique 2014-2015 MP/MP*/PC/PC*/PSI* DS1 Samedi 22 novembre. Exercice N 1 A la découverte de la notation polonaise inversée

Informatique 2014-2015 MP/MP*/PC/PC*/PSI* DS1 Samedi 22 novembre. Exercice N 1 A la découverte de la notation polonaise inversée Le sujet comporte un total de 3 exercices indépendants qui peuvent être traités dans l ordre de votre choix. Exercice N 1 A la découverte de la notation polonaise inversée Introduction La notation polonaise

Plus en détail

Informatique TP3 : Interface graphiques et tracer de fractales CPP 1A

Informatique TP3 : Interface graphiques et tracer de fractales CPP 1A Informatique TP3 : Interface graphiques et tracer de fractales CPP 1A Romain Casati, Wafa Johal, Frederic Devernay, Matthieu Moy Avril - juin 2014 Ce TP est dédié à la construction de courbes fractales.

Plus en détail

Applications des maths

Applications des maths Applications des maths Série de Taylor Exercices préalables Exercice a) On considère le polynôme p(x) = x 4 + x 3 + x + x +. Déterminer la valeur de p(0), p'(0), p''(0), p'''(0), p (4) (0), p (5) (0),

Plus en détail

Année Universitaire 2013/2014 DST de Printemps

Année Universitaire 2013/2014 DST de Printemps Année Universitaire 2013/2014 DST de Printemps Parcours : Licence LIMI201 & LIMI211 Code UE : J1MI2013 Épreuve : Algorithmes et Programmes Date : Lundi 16 juin 2014 Heure : 16 heures 30 Durée : 2 heures

Plus en détail

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e

Plus en détail

Compte en banque : Exemple de conception et implantation par raffinement successif

Compte en banque : Exemple de conception et implantation par raffinement successif Compte en banque : Exemple de conception et implantation par raffinement successif 11 octobre 2014 1 Énoncé On veut écrire un programme qui fait la mise à jour de votre compte en banque. Le programme traite

Plus en détail

Éléments de Programmation Cours 7 - n-uplets et Listes avancées

Éléments de Programmation Cours 7 - n-uplets et Listes avancées Éléments de Programmation Cours 7 - n-uplets et Listes avancées Romain Demangeon 1I001 - Section 11 PEIP 21/10/2015 Précisions Calendrier: Ni cours ni TD/TME de 1I001 les 26 et 27 octobre. Ni cours ni

Plus en détail

Cours d informatique du 17/11/2009 A. Rappels sur les boucles

Cours d informatique du 17/11/2009 A. Rappels sur les boucles Cours d informatique du 17/11/2009 A. Rappels sur les boucles 1) Rappel sur les invariants de boucle : L invariant de boucle est un outil pour concevoir cette boucle. Il peut exister plusieurs invariants

Plus en détail

Cahier de vacances - Préparation à la Première S

Cahier de vacances - Préparation à la Première S Cahier de vacances - Préparation à la Première S Ce cahier est destiné à vous permettre d aborder le plus sereinement possible la classe de Première S. Je vous conseille de le travailler pendant les 0

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

Devoir Surveillé informatique MP, PC, PSI

Devoir Surveillé informatique MP, PC, PSI NOM : Classe : Devoir Surveillé informatique MP, PC, PSI L utilisation des calculatrices n est pas autorisée pour cette épreuve. Le langage de programmation choisi est Python. L espace laissé pour les

Plus en détail

1 Représentation des entiers naturels

1 Représentation des entiers naturels 1 Représentation des entiers naturels 1.1 Système de numération à position dans une base Depuis le Moyen Âge, on écrit les nombres entiers naturels dans un système de numération à position en base 10.

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Feuille d'exercices 1. Prise en main. Ecrire un programme qui ache la phrase Bonjour le monde! à l'écran.

Feuille d'exercices 1. Prise en main. Ecrire un programme qui ache la phrase Bonjour le monde! à l'écran. Master MIMSE - Spécialité 3-1ère Année J0MS7301 : Algorithmique et Programmation Objet Feuille d'exercices 1 Prise en main Exercice 0 : Ecrire un programme qui ache la phrase Bonjour le monde! à l'écran.

Plus en détail

Manipulation d image avec numpy

Manipulation d image avec numpy Manipulation d image avec numpy 1 Format numérique d image Une image peut être numérisée sous forme d image matricielle (en anglais «bitmap») par une matrice de points colorés. Cette matrice a n lignes

Plus en détail

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) Bernard Le Stum Université de Rennes 1 Version du 13 mars 2009 Table des matières 1 Fonctions partielles, courbes de niveau 1 2 Limites et continuité

Plus en détail

Programmation avec Python - Automne 2015 Bruno Martin & Jean-Paul Roy L1-Sciences. Cours n 4. http://deptinfo.unice.fr/~roy.

Programmation avec Python - Automne 2015 Bruno Martin & Jean-Paul Roy L1-Sciences. Cours n 4. http://deptinfo.unice.fr/~roy. Programmation avec Python - Automne 2015 Bruno Martin & Jean-Paul Roy L1-Sciences Cours n 4 http://deptinfo.unice.fr/~roy La Tortue 1 Les deux types de graphisme dans le plan Il y a deux types de graphisme

Plus en détail

Licence E.E.A. TD N 2 de Langage C/C++

Licence E.E.A. TD N 2 de Langage C/C++ TD N 2 de Langage C/C++ 1 Licence E.E.A. TD N 2 de Langage C/C++ Ce TD a pour objectif de vous faire découvrir et utiliser le langage C et peut être C++. Il s agira de transcrire sous la forme d un programme

Plus en détail

Baccalauréat ES Centres étrangers 12 juin 2014 - Corrigé

Baccalauréat ES Centres étrangers 12 juin 2014 - Corrigé Baccalauréat ES Centres étrangers 1 juin 14 - Corrigé A. P. M. E. P. Exercice 1 5 points Commun à tous les candidats 1. On prend un candidat au hasard et on note : l évènement «le candidat a un dossier

Plus en détail

PARTIE 2 : ALGORITHMIQUE & PROGRAMMATION

PARTIE 2 : ALGORITHMIQUE & PROGRAMMATION PARTIE 2 : ALGORITHMIQUE & PROGRAMMATION TP 1 DÉCOUVERTE DE PYTHON Objectifs Découvrir l environnement Python. Découvrir les limites de Python. Manipuler différents types. Python est un langage de programmation

Plus en détail

Tableau d'enregistrements

Tableau d'enregistrements Tableau d'enregistrements Regrouper plusieurs enregistrements dans un tableau est parfaitement possible! Exemple : représenter les données concernant 50 personnes algorithme monalgorithme // déclaration

Plus en détail