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

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

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

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

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

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

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

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

Structures algébriques

Structures algébriques Structures algébriques 1. Lois de composition s Soit E un ensemble. Une loi de composition interne sur E est une application de E E dans E. Soient E et F deux ensembles. Une loi de composition externe

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

Chapitre 11. Premières Notions sur les fonctions

Chapitre 11. Premières Notions sur les fonctions Chapitre 11 Premières Notions sur les fonctions 1. Exemples Exemple 1 La distance parcourue par une automobile en un temps donné varie en fonction de sa vitesse. Faire deux phrases utilisant les mots suivants.

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

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

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

Lois de probabilité à densité Loi normale

Lois de probabilité à densité Loi normale DERNIÈRE IMPRESSIN LE 31 mars 2015 à 14:11 Lois de probabilité à densité Loi normale Table des matières 1 Lois à densité 2 1.1 Introduction................................ 2 1.2 Densité de probabilité

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

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

Découverte de Python

Découverte de Python Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en

Plus en détail

UTILISER SA CALCULATRICE GRAPHIQUE TI NSPIRE CX CAS

UTILISER SA CALCULATRICE GRAPHIQUE TI NSPIRE CX CAS UTILISER SA CALCULATRICE GRAPHIQUE TI NSPIRE CX CAS Table des matières I ) Bon à savoir 2 I.1. L écran d Accueil (Home), le Bloc-Note (Scratchpad) et les classeurs............................ 2 I.2. Le

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

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

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

2 de AP1 : utilisation de la calculatrice en mode «Programme» CORRECTION

2 de AP1 : utilisation de la calculatrice en mode «Programme» CORRECTION 2 de AP1 : utilisation de la calculatrice en mode «Programme» CORRECTION Algorithmes et programmes : Un algorithme est un ensemble d'instructions structuré de manière à atteindre un but. Ces instructions

Plus en détail

Python - introduction à la programmation et calcul scientifique

Python - introduction à la programmation et calcul scientifique Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

TSTI 2D CH X : Exemples de lois à densité 1

TSTI 2D CH X : Exemples de lois à densité 1 TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun

Plus en détail

Représentation des nombres entiers et réels. en binaire en mémoire

Représentation des nombres entiers et réels. en binaire en mémoire L3 Mag1 Phys. fond., cours C 15-16 Rep. des nbs. en binaire 25-09-05 23 :06 :02 page 1 1 Nombres entiers 1.1 Représentation binaire Représentation des nombres entiers et réels Tout entier positif n peut

Plus en détail

LES ALGORITHMES ARITHMETIQUES

LES ALGORITHMES ARITHMETIQUES LES ALGORITHMES ARITHMETIQUES I- Introduction Dans ce chapitre nous allons étudier quelques algorithmes relatifs à l arithmétique qui est une branche des mathématiques qui étudie les relations entre les

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

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Terminale STMG Lycée Jean Vilar 2013/2014. Terminale STMG. O. Lader

Terminale STMG Lycée Jean Vilar 2013/2014. Terminale STMG. O. Lader Terminale STMG O. Lader Table des matières 1 Information chiffrée (4s) 4 1.1 Taux d évolution....................................... 6 1.2 indices............................................. 6 1.3 Racine

Plus en détail

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé Baccalauréat S/L Métropole La Réunion 13 septembre 2013 Corrigé A. P. M.. P. XRCIC 1 Commun à tous les candidats Partie A 1. L arbre de probabilité correspondant aux données du problème est : 0,3 0,6 H

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani La récursivité 2 Définition Une procédure ou une fonction est dite récursive si elle fait appel à elle même, directement ou indirectement. 3 Exemple : Réalisation

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list =

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

COURS LabVIEW. V. Chollet - 25/11/2013 - COURS LabVIEW 14 - Page 1 sur 37

COURS LabVIEW. V. Chollet - 25/11/2013 - COURS LabVIEW 14 - Page 1 sur 37 COURS LabVIEW V. Chollet - 25/11/2013 - COURS LabVIEW 14 - Page 1 sur 37 Chapitre 1 CALCULS DANS LabVIEW I INTRODUCTION Un calcul utilise des données pour fournir un résultat à partir d une formule. ENTREES

Plus en détail

COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE

COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE Le 29 novembre 2013, Rapport projet TS114 COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE Par Marc BELLINGER et Antoine BINON. 2eme année Télécommunications. 1 Introduction : Le but de ce projet est d implémenter

Plus en détail

L ALGORITHMIQUE. Algorithme

L ALGORITHMIQUE. Algorithme L ALGORITHMIQUE Inspirée par l informatique, cette démarche permet de résoudre beaucoup de problèmes. Quelques algorithmes ont été vus en 3 ième et cette année, au cours de leçons, nous verrons quelques

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

MESURES PHYSIQUES 1 è année 2010 2011. Informatique Scientifique version 2.2. Python 3. Exercices corrigés

MESURES PHYSIQUES 1 è année 2010 2011. Informatique Scientifique version 2.2. Python 3. Exercices corrigés MESURES PHYSIQUES 1 è année 2010 2011 Informatique Scientifique version 2.2 Python 3 Exercices corrigés Énoncés Énoncés des exercices Remarque Les exercices suivants sont fournis à titre d exemples et

Plus en détail

FONCTIONS. I Généralités sur les fonctions. Définitions. Remarque. Exercice 01. Remarque

FONCTIONS. I Généralités sur les fonctions. Définitions. Remarque. Exercice 01. Remarque FNCTINS I Généralités sur les fonctions Définitions Soit D une partie de l'ensemble IR. n définit une fonction f de D dans IR, en associant à chaque réel de D, un réel et un seul noté f() et que l'on appelle

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

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

Découverte du tableur CellSheet

Découverte du tableur CellSheet Découverte du tableur CellSheet l application pour TI-83 Plus et TI-84 Plus. Réalisé par Guy Juge Professeur de mathématiques et formateur IUFM de l académie de Caen Pour l équipe des formateurs T 3 Teachers

Plus en détail

Travaux dirigés n o 6

Travaux dirigés n o 6 Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui

Plus en détail

Introduction à Scilab

Introduction à Scilab Introduction à Scilab Nicolas Kielbasiewicz 21 juin 2007 Scilab est un logiciel gratuit développé à l INRIA (l Institut National de Recherche en Informatique et Automatique) sous Windows, Linux et Mac,

Plus en détail

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Le langage Java - Syntaxe

Le langage Java - Syntaxe Le langage Java - Syntaxe LES BASES: litéraux, types, expressions, instructions LE LANGAGE JAVA - SYNTAXE LES COMMENTAIRES LES IDENTIFICATEURS LISTES DES MOTS RÉSERVÉS: LES LITÉRAUX BOOLÉENS LA DÉCLARATION

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

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

Site de la spécialité ISN du lycée Louis Marchal

Site de la spécialité ISN du lycée Louis Marchal Site de la spécialité ISN du lycée Louis Marchal 1) Codage d' un entier positif Un ordinateur ne manipule que des 0 et des 1 (circuit ouvert ou fermé par exemple), toutes les données doivent donc être

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

CORRECTIONS DES EXERCICES DU CONCOURS D ENTREE EPITA 2005

CORRECTIONS DES EXERCICES DU CONCOURS D ENTREE EPITA 2005 CORRECTIONS DES EXERCICES DU CONCOURS D ENTREE EPITA 2005 REMARQUE : Les programmes en Pascal, C sont des exemples et peuvent être discutés en terme d implémentation et de construction. Le choix qui a

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 7 : Structures et Fichiers OBJECTIFS DE LA SÉANCE Deux notions abordées dans ce cours Celle

Plus en détail

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/?? Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement

Plus en détail

CALCULATRICE AUTORISEE

CALCULATRICE AUTORISEE Lycée F. MISTRAL AVIGNON BAC BLANC 2012 Epreuve de MATHEMATIQUES Série S CALCULATRICE AUTORISEE DUREE : 4 heures Dès que le sujet vous est remis, assurez-vous qu il est complet Ce sujet comporte 3 pages

Plus en détail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

Plus en détail

Manipulations binaires en C++

Manipulations binaires en C++ Manipulations binaires en C++ Tous les exercices devront être résolus sans utiliser les opérateurs *, / et % Rappels En informatique, les nombres sont stockés sous forme binaire. Même si ce n'est pas nécessaire,

Plus en détail

II. Conversions. I. Initialisation. III. Méthode point. TD Python Traitement d images MP*

II. Conversions. I. Initialisation. III. Méthode point. TD Python Traitement d images MP* Le but de ce TD est d utiliser les procédures et fonctions Python pour traiter des fichiers images. II. Conversions I. Initialisation Importer le module numpy sous l appellation np. On utilise le module

Plus en détail

Systèmes Informatiques TD 3: langage C opérations élémentaires

Systèmes Informatiques TD 3: langage C opérations élémentaires Systèmes Informatiques TD 3: langage C opérations élémentaires P. Bakowski bako@ieee.org Opérateurs logiques/arithmétiques Le langage C offre une liste importante d opérateurs logiques et arithmétiques.

Plus en détail

Raisonnement par récurrence Suites numériques

Raisonnement par récurrence Suites numériques Chapitre 1 Raisonnement par récurrence Suites numériques Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Raisonnement par récurrence. Limite finie ou infinie d une suite.

Plus en détail

λ-calcul et typage Qu est-ce qu une fonction?

λ-calcul et typage Qu est-ce qu une fonction? λ-calcul et typage Nicolas Barnier, Pascal Brisset ENAC Avril 2009 Nicolas Barnier, Pascal Brisset (ENAC) λ-calcul et typage Avril 2009 1 / 1 Qu est-ce qu une fonction? Classiquement Pas de notation uniforme/standard

Plus en détail

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. L usage d une calculatrice est autorisé Durée : 3heures Deux annexes sont à rendre avec la copie. Exercice 1 5 points 1_ Soit f la

Plus en détail

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE BACCALAURÉAT GÉNÉRAL SESSION 2012 MATHÉMATIQUES Série S Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE Les calculatrices électroniques de poche sont autorisées, conformément à la

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo7. 1.1. Hello world!

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo7. 1.1. Hello world! Exo7 Algorithmes et mathématiques Vidéo partie 1. Premiers pas avec Python Vidéo partie 2. Ecriture des entiers Vidéo partie 3. Calculs de sinus, cosinus, tangente Vidéo partie 4. Les réels Vidéo partie

Plus en détail

Plus courts chemins, programmation dynamique

Plus courts chemins, programmation dynamique 1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique

Plus en détail

TP 8 : Arbres binaires de recherche

TP 8 : Arbres binaires de recherche TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef

Plus en détail

Unité A Fonctions quadratiques

Unité A Fonctions quadratiques Unité A Fonctions quadratiques FONCTIONS QUADRATIQUES Dans cette unité, les élèves : tracent et décrivent des données de forme quadratique; déterminent le sommet, le domaine et l'image, l'axe de symétrie

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas 1. Arbres ordonnés 1.1. Arbres ordonnés (Arbres O) On considère des arbres dont les nœuds sont étiquetés sur un ensemble muni d'un

Plus en détail

Rhino CivilEngineering v.1.0

Rhino CivilEngineering v.1.0 Rhino CivilEngineering v.1.0 Rhino Civil Engineering à était développé par RhinoForYou et validé au sein d une grande société d ingénierie. Cette première version est adressée aux utilisateurs de Grasshopper,

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Introduction à l Algorithmique

Introduction à l Algorithmique Introduction à l Algorithmique N. Jacon 1 Définition et exemples Un algorithme est une procédure de calcul qui prend en entier une valeur ou un ensemble de valeurs et qui donne en sortie une valeur ou

Plus en détail

1 Codes linéaires. G = [I k A]. Dans ce cas on constate que la matrice. H = [ t A I n k ] est une matrice de contrôle de C. Le syndrome de x F n q

1 Codes linéaires. G = [I k A]. Dans ce cas on constate que la matrice. H = [ t A I n k ] est une matrice de contrôle de C. Le syndrome de x F n q 1 Codes linéaires Un code de longueur n est une partie de F n q. Un code linéaire C de longueur n sur le corps ni F q est un sous-espace vectoriel de F n q. Par défaut, un code sera supposé linéaire. La

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante :

x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante : Ocaml - Exercices Exercice Définir en Ocaml les fonctions suivantes:. f : x sin x + cos x. g : x x 3x+ x x 5 3. Fonction h calculant la moyenne géométrique de deux float positifs ( xy) Exercice Ecrire

Plus en détail

1.6- Génération de nombres aléatoires

1.6- Génération de nombres aléatoires 1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

BTS Groupement A. Mathématiques Session 2011. Spécialités CIRA, IRIS, Systèmes électroniques, TPIL

BTS Groupement A. Mathématiques Session 2011. Spécialités CIRA, IRIS, Systèmes électroniques, TPIL BTS Groupement A Mathématiques Session 11 Exercice 1 : 1 points Spécialités CIRA, IRIS, Systèmes électroniques, TPIL On considère un circuit composé d une résistance et d un condensateur représenté par

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Lecture graphique. Table des matières

Lecture graphique. Table des matières Lecture graphique Table des matières 1 Lecture d une courbe 2 1.1 Définition d une fonction.......................... 2 1.2 Exemple d une courbe........................... 2 1.3 Coût, recette et bénéfice...........................

Plus en détail

TRACER LE GRAPHE D'UNE FONCTION

TRACER LE GRAPHE D'UNE FONCTION TRACER LE GRAPHE D'UNE FONCTION Sommaire 1. Méthodologie : comment tracer le graphe d'une fonction... 1 En combinant les concepts de dérivée première et seconde, il est maintenant possible de tracer le

Plus en détail

Marches, permutations et arbres binaires aléatoires

Marches, permutations et arbres binaires aléatoires Marches, permutations et arbres binaires aléatoires Épreuve pratique d algorithmique et de programmation Concours commun des Écoles Normales Supérieures Durée de l épreuve: 4 heures Cœfficient: 4 Juillet

Plus en détail

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire CHAPITRE N5 FONCTIONS LINEAIRES NOTION DE FONCTION FONCTIONS LINEAIRES NOTION DE FONCTION FONCTIONS LINEAIRES NOTION DE FONCTION Code item D0 D2 N30[S] Items étudiés dans le CHAPITRE N5 Déterminer l'image

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

2.1. Les fonctions. Les fonctions se définissent de la manière suivante : NomDeLaFonction(param1, param2,...)= { \\ Code de la fonction

2.1. Les fonctions. Les fonctions se définissent de la manière suivante : NomDeLaFonction(param1, param2,...)= { \\ Code de la fonction TP1, prise en main de Pari/GP et arithmétique Le programme que nous allons utiliser pour les TP se nomme PARI/GP dont le point fort est la théorie des nombres (au sens large). Il est donc tout à fait adapter

Plus en détail

Nombre dérivé et tangente

Nombre dérivé et tangente Nombre dérivé et tangente I) Interprétation graphique 1) Taux de variation d une fonction en un point. Soit une fonction définie sur un intervalle I contenant le nombre réel a, soit (C) sa courbe représentative

Plus en détail