L'ordre est le nombre de traitements précédents dont dépend le résultat.

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

Download "L'ordre est le nombre de traitements précédents dont dépend le résultat."

Transcription

1 CHAPITRE 4 LES ALGORITHMES RECURRENTS I/ Introduction : Un algorithme ou un traitement est dit récurrent s il utilise un procédé itératif ou récursif pour engendrer un résultat qui dépend de 1 ou plusieurs résultats précédents, on parle alors d un algorithme ou d un traitement récurrent d ordre. L'ordre est le nombre de traitements précédents dont dépend le résultat. Un algorithme récurrent d ordre p est un algorithme donnant un résultat dépendant des p résultats précédents. p peut être 1,2,3, etc. II/ Exemples d'algorithmes récurrents II-1 Calcul de somme Activité 1/ Ecrire une analyse et un algorithme de la procédure Somme_Matrice, qui calcule la somme des éléments d une matrice carrée d entiers comportant n lignes et n colonnes (4 n 20). 2/ Ce traitement est-il récurent? Dans l affirmative donnez son ordre. * - * - * - * - * - * - * - * - * - * - * Réponse à la question 2 : 1- Pour calculer la somme des éléments d'une matrice, nous devons cumuler la totalité de ses éléments. Le cumul nécessite une initialisation à zéro de la variable de calcul, ici Somme. Un parcourt, de toute les lignes et les colonnes est donc nécessaire pour lire le contenu des cases et les ajouter chaque fois à la somme. Somme somme + M[ligne, colonne] Puisque ce traitement fait toujours référence à l élément précédent, donc c est un traitement récurent d ordre 1. Analyse de la fonction Somme_Matrice Résultat : SOMME_MAT Traitement : Pour calculer la somme des éléments de la matrice M de type MAT, nous devons cumuler tous les éléments quelle contient. Deux boucles complètes, une pour parcourir les lignes et l autre pour parcourir les colonnes de la matrice sont nécessaires. Une initialisation à zéro de la variable Somme est obligatoire (traitement récurent d'ordre 1). Pour ligne de 1 à N Faire Pour colonne de 1 à N Faire Somme Somme + M [ligne, colonne] 4INFINFRC0004 Page 1

2 Fin Pour Fin Pour Fin Analyse Algorithme de la fonction SOMME_MAT 0) Fonction Somme_Matrice (M : MAT ; N : Entier) : Entier 1) Somme 0 2) Pour ligne de 1 à N Faire Pour colonne de 1 à N Faire Somme S + M [ligne, colonne] Fin Pour Fin Pour 3) Somme_Matrice Somme 4) Fin Somme_Matrice Tableau de codification des objets locaux : Objets Type / Nature Rôle Somme Entier Variable de cumul ligne Entier Compteur des lignes de la matrice colonne Entier Compteur des colonnes de la matrice Traduction en Pascal FUNCTION Somme_Matrice (M : MAT; N : Integer) : Integer ; VAR Somme, ligne, colonne : Integer ; Somme := 0; For ligne := 1 To N Do For colonne := 1 To N Do Somme := Somme + M[ligne, colonne] ; End ; End ; Somme_Matrice := Somme ; End; III/ Algorithme récurrent sur les chaînes Activité Suite de Thue-Morse 4INFINFRC0004 Page 2

3 Si on considère sur l ensemble des chaînes constituées uniquement de "0" et de "1"(mots binaires), la transformation qui consiste à remplacer toute occurrence du caractère "0" par la chaîne "01" et toute occurrence du caractère "1" par la chaîne "10", on définit la suite de Thue-Morse en partant de la chaîne "0" : U0 "0" U1 "01" U2 "0110" U3 " " U4 " " U5 " " 1/ Cette suite est-elle récurrente? Dans l affirmative donnez son ordre. * - * - * - * - * - * - * - * - * - * - * 2/ Ecrire un programme nommé Suite_Thue_Morse permettant de calculer et d'afficher les N premiers termes de la suite de Thue-Morse à partir d un caractère A ("0" ou "1") donnée. Réponse à la question 1 : - * - * - * - * - * - * - * - * - * - * - * - * - Le premier résultat dépend de la première valeur du caractère ("0" ou "1"), un deuxième résultat est obtenu à partir du premier trouvé, et ainsi de suite. On conclu que c'est une suite récurrente d ordre Analyse Analyse du programme principal Résultat : Ecrire ("La suite de Thue-morse à partir de ", A, " Est ", Fn Thue_Morse (N, A) ) Traitement : Thue_Morse est une fonction appelée au niveau du programme principal dans un contexte d'affichage. Cette fonction génère la suite Thue_Morse à partir d'un caractère A de départ qui est soit "0" sit "1". Fin Saisie Algorithme du programme principal 0) Début Suite_Thue_Morse 1) Saisie (N, A) 2) Ecrire ("La suite de Thue-morse à partir de ", A, " Est ", Fn Thue_Morse (N, A) ) 3) Fin Suite_Thue_Morse Tableau de codification des objets globaux : Objets Type / Nature Rôle 4INFINFRC0004 Page 3

4 N Entier Nombre d'éléments de la suite A Caractère Caractère "0" ou "1" Thue_Morse Fonction Fonction qui génère la suite Thue_Morse Analyse de la fonction Thue_Morse Résultat = Thue_Morse Traitement : - On initialise la chaîne de caractères Ch à la valeur de A - On initialise un compteur j à la valeur 1. Ce compteur avance d'un pas de 2 car à chaque fois on ajoute deux caractères "01 ou "10" à la chaîne Ch. - On vérifie la valeur de CH[j], si elle vaut "0" alors on insère le caractère "1" dans la chaîne Ch à la position J+1, sinon on insère le caractère "0" puis on incrémente de 2 le compteur j. - On répète ce traitement N fois. Fin Analyse Algorithme de la fonction Thue_Morse 0) Fonction Thue_Morse (N : Entier ; A: Caractère) : Chaîne 1) CH A 2) Pour i de 1 à N Faire j 1 Répéter Si CH[j] = "0" Alors insère ("1", CH, j +1) Sinon insère ("0", CH, j +1) Fin Si L Long (Ch) j j + 2 Jusqu'à (j > L) Fin Pour 3) Thue_Morse Ch 4) Fin Thue_Morse Tableau de codification des objets locaux : Objets Type / Nature Rôle i Entier Compteur j Entier Compteur L Entier Longueur de la chaîne Ch Chaîne Chaîne représentant la suite Thue_morse Traduction en Pascal PROGRAM Suite_Thue_Morse ; USES Crt ; VAR N : Integer ; A : Char ; 4INFINFRC0004 Page 4

5 { } PROCEDURE Saisie (VAR N : Integer ; VAR A: Char ); Repeat Write('Donner le nombre d''éléments de la suite : '); readln (N); Until N In [ ] ; End; Repeat Write('Donner un caractère 0 ou 1 : '); readln (A); Until A In ['0', '1'] ; { } FUNCTION Thue_Morse (N: Integer; A : Char ) : String ; VAR Ch : String ; i, j, L : Integer ; Ch := A ; For i := 1 To N Do j := 1 ; Repeat If Ch [j] = '0' Then Insert ('1', Ch, j+1) Else Insert ('0', Ch, j+1); L := Length (Ch) ; j := j+ 2; Until j > l ; End; Thue_Morse := Ch ; End ; {========== Programme principal ===================} Saisie (N, A) ; WriteLn('La suite de Thue-morse à partir de ', A, ' Est ', Thue_Morse (N, A) ) ; END. IV/ Triangle de Pascal Le triangle de Pascal est le tableau des coefficients qui sont utilisés pour le développement de certaines expressions comme (a+b)² ou (a+b) n. Cela s'appelle la "formule du binôme de Newton". Les coefficients s'appellent les "coefficients binomiaux" ou "coefficients du binôme". Ce triangle est le suivant : 4INFINFRC0004 Page 5

6 0 : 1 (a+b) 0 = 1 1 : 1 1 (a+b) 1 = 1*a + 1*b 2 : (a+b) 2 = 1*a 2 + 2*a*b + 1*b 2 3 : (a+b) 3 = 1*a 3 + 3*a 2 *b + 3*a*b 2 + 1*b 3 4 : (a+b) 4 = 1*a 4 + 4*a 3 *b + 6*a 2 *b 2 + 4*a*b 3 + 1*b 4 On obtient chaque coefficient en additionnant le nombre qui lui est situé au-dessus ainsi que celui qui lui est situé au-dessus à gauche. Pour n = 3, le Triangle de Pascal affiché est le suivant : Ligne 1 1 Ligne Ligne Colonnes MAT[3,2] = MAT[2,2] + MAT[2,1] Pour n = 5, le Triangle de Pascal affiché est le suivant : Ligne 1 1 Ligne Ligne Ligne Ligne Colonnes MAT[5,4] = MAT[4,4] + MAT[4,3] On constate que le calcul du contenu de la case (3,2) fait référence au contenu de deux cases précédentes. C'est un traitement récurrent d'ordre 2. Lecture : La tradition attribue le nom de triangle de Pascal au triangle décrit plus haut. Cependant, ce triangle était déjà connu en Orient et moyen Orient plusieurs siècles avant la publication de Blaise Pascal. Il était ainsi connu des mathématiciens persans, par exemple al-karaji ( ) ou Omar Khayam au XI e siècle qui l'utilisent pour développer (a + b) n Activité 4INFINFRC0004 Page 6

7 On se propose d afficher les N premières lignes du Triangle de Pascal avec (3 N 100). On rappelle que le principe de remplissage des n premières lignes de la matrice MAT représentant le Triangle de Pascal est le suivant : Pour une ligne donnée : Le premier élément et le dernier élément sont égaux à 1, Les autres éléments sont déterminés en appliquant la formule suivante : MAT [ligne, colonne] = MAT [ligne-1, colonne] + MAT [ligne-1, colonne-1] Questions 1/ Est-ce que ce traitement est récurrent? Dans l affirmative donnez son rang. 2- Ecrire un programme nommé Triangle_de_Pascal, Qui affiche pour un nombre de lignes compris entre 1 et 20 (3 N 20), deux fois le triangle. Le premier triangle est obtenu par traitement itératif et le second par un traitement récursif. * - * - * - * - * - * - * - * - * - * - * 1/ L'exemple ci-dessous montre que le calcul du contenu de la case (3, 2) fait référence au contenu de deux cases précédentes. C'est un traitement récurrent d'ordre 2. 2/ Analyse du problème Analyse du programme principal Résultat : Deux affichages d une matrice contenant les différentes valeurs du Triangle de Pascal, réalisé chaque fois par l'appel la procédure Afficher_Triangle Traitement : - Le premier affichage est celui de la matrice obtenue par le traitement itératif (Proc Triangle_itératif). - Le deuxième affichage est celui de la matrice obtenue par le traitement récursif (Proc Triangle_récursif). - L'entier N qui représente le nombre de lignes du Triangle, est lu par la procédure Saisie. Fin analyse Algorithme du programme principal 0) Début Triangle_Pascal 1) Proc Saisie (N) 2) Proc Triangle_itératif (N, MAT) 3) Proc Afficher_Triangle (N, MAT) 4) Proc Triangle_récursif (N, MAT) 5) Proc Afficher_Triangle (N, MAT) 6) Fin Triangle_Pascal 4INFINFRC0004 Page 7

8 Tableau de codification des objets globaux : Objets Type / Nature Rôle N Entier Nombre de lignes du triangle de Pascal MAT Matrice Représentant le Triangle de Pascal Saisir Procédure Permet de saisir N le nombre de lignes du Triangle Triangle_itératif Procédure Permet de remplir la matrice représentant le Triangle de Pascal par un procédé itératif Triangle_récursif Procédure Permet de remplir la matrice représentant le Triangle de Pascal par un procédé récursif Affiche_Triangle Procédure Permet d afficher le Triangle de Pascal Max_N Constante = 20 Nombre de lignes max du triangle Tableau de codification des nouveaux types : Type Matrice = Tableau de 20 lignes et N colonnes d entiers Analyse de la procédure Triangle_iteratif Résultat = Remplir la matrice MAT Traitement : On constate que : Ligne 1 MAT [1,1] contient la valeur 1 Ligne 2 MAT [2,1] et MAT [2,2] contiennent la valeur1 Ligne x On utilise deux boucles : une pour les lignes et une autre pour les colonnes. Pour ligne de 3 à N Faire MAT [ligne, 1] 1 (première case de la ligne reçoit 1) MAT [Ligne, Ligne] 1 (dernière case de la ligne reçoit 1) Pour colonne de 2 à ligne -1 Faire MAT [ligne, colonne] MAT [ligne - 1, colonne] + MAT [ligne -1, colonne - 1] Fin Pour Fin Pour Algorithme 0) Procédure Triangle_itératif (N: Entier; VAR MAT : Matrice); 1) MAT [1,1] 1 2) MAT [2,1] 1 3) MAT [2,2] 1 4) Pour ligne de 3 à N Faire MAT [ligne, 1] 1 MAT [Ligne, Ligne] 1 Pour colonne de 2 à ligne -1 Faire MAT [ligne, colonne] MAT [ligne - 1, colonne] + MAT [ligne -1, colonne - 1] Fin Pour Fin Pour 5) Fin Triangle_itératif 4INFINFRC0004 Page 8

9 Tableau de codification des objets locaux : Objets Type / Nature Rôle ligne Compteur Compteur des lignes de la matrice colonne Compteur Compteur des colonnes de la matrice Analyse de la procédure Triangle_récursif Résultat : matrice remplie représentant le Triangle de Pascal Traitement : Pour chacune des n lignes de la matrice, un parcourt des colonnes (de la première à celle qui porte le numéro de la ligne), est nécessaire pour déterminer leurs valeurs en faisant appel à la fonction récursive Val_Triangle. Algorithme 0) Procédure Triangle_récursif (N : Entier ; VAR MAT : matrice) 1) Pour ligne de 1 à n Faire Pour colonne de 1 à ligne Faire Mat [ligne, colonne] Fn Val_Triangle (colonne, ligne) FinPour FinPour 2) Fin Triangle_récursif Analyse de la fonction Val_Triangle Résultat : Val_Triangle Traitement : (déterminer une valeur du Triangle selon la ligne (x) et la colonne (y) données comme paramètres). Pour la première ligne, la valeur est égale à 1, Si le numéro de ligne est égal au numéro de colonne, la valeur est aussi égale à 1, sinon la valeur trouvée à l intersection de la ligne x et de la colonne y est égale à (la valeur trouvée à l intersection de la ligne x et de la colonne y-1) + (la valeur trouvée à l intersection de la ligne x-1 et de la colonne y-1) Fin Analyse Algorithme 0) Fonction Val_Triangle (x, y : Entier) : Entier 1) Si (x = 1) OU (y = x) Alors Val_Triangle 1 Sinon Val_Triangle Fn Val_Triangle (x, y - 1) + Fn Val_Triangle (x - 1, y - 1) Finsi 2) Fin Val_Triangle Analyse de la procédure Afficher_Triangle Résultat = Afficher la matrice MAT 4INFINFRC0004 Page 9

10 Traitement : On utilise deux boucles : une pour les lignes et une autre pour les colonnes afin d'afficher le contenu de la matrice. Fin Analyse Algorithme de la procédure Afficher_Triangle 0) Procédure Afficher_Triangle (N : Entier ; MAT : Matrice) 1) Pour ligne de 1 à N Faire Pour colonne de 1 à ligne Faire Ecrire (Mat [ligne, colonne]," ") {Sans retour à la ligne} FinPour Ecrire ( ) {avec retour à la ligne} FinPour 2) Fin Afficher_Triangle Traduction en Pascal PROGRAM Triangle_de_Pascal ; USES Crt ; CONST max = 20; TYPE Matrice = ARRAY[1.. 20, ] Of Integer ; VAR N : Integer ; MAT : Matrice ; { } PROCEDURE Saisie (VAR N : Integer ); Repeat Write ('Nombre de lignes du triangle : '); ReadLn (N) ; Until N IN [3.. max] ; END ; { } PROCEDURE Triangle_iteratif (N: Integer; VAR MAT : Matrice); VAR ligne, colonne : Integer ; MAT [1,1] := 1 ; MAT [2,1] := 1 ; 4INFINFRC0004 Page 10

11 MAT [2,2] := 1 ; For ligne := 3 To N Do MAT [ligne, 1] := 1; MAT [Ligne, Ligne] := 1; For colonne := 2 To ligne -1 Do MAT [ligne, colonne] := MAT [ligne - 1, colonne] + MAT [ligne -1, colonne - 1]; End ; End ; END ; { } FUNCTION Val_Triangle (x, y : Integer) : Integer ; If (x = 1) OR (y = x) Then Val_Triangle := 1 Else Val_Triangle := Val_Triangle (x, y - 1) + Val_Triangle (x - 1, y - 1) ; END ; { } PROCEDURE Afficher_Triangle (n : Integer; MAT : matrice); VAR ligne, colonne : Integer ; For ligne := 1 To N Do For colonne := 1 To ligne Do Write(Mat [ligne, colonne]:2,' ') ; End; WriteLn ; End; END ; { } PROCEDURE Triangle_recursif (N : Integer; VAR MAT : Matrice) ; VAR ligne, colonne : Integer ; For ligne := 1 To N Do For colonne := 1 To ligne Do Mat [ligne, colonne] := Val_Triangle (colonne, ligne) ; END; {=============== Programme principal ============== } 4INFINFRC0004 Page 11

12 Saisie (N) ; WriteLn ('Triangle de Pascal - Traitement itératif '); Triangle_iteratif (N, MAT) ; Afficher_Triangle (N, MAT) ; WriteLn; WriteLn('Triangle de Pascal - Traitement récursif '); Triangle_recursif (N, MAT); Afficher_Triangle (N, MAT) ; END. V/ La suite de Fibonacci Léonard de Pise, plus connu sous le nom de Fibonacci, étudia du point de vue numérique la reproduction des lapins. L'unité de base est un couple de lapins, il considère qu'un couple de jeunes lapins met une saison pour devenir adulte, attend une deuxième saison de gestation, puis met au monde un couple de jeunes lapins à chaque saison suivante. En supposant que les lapins ne meurent jamais, et lorsque l'on met côte à côte le nombre de couples de lapins à chaque saison, cela donne... la suite de Fibonacci : 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, Le nombre de couples de lapins U n à la saison n est égal au nombre de couples de lapins adultes, c'est-à-dire le nombre total de lapins qu'il y avait à la saison précédente n-1, auquel on ajoute le nombre de couples de jeunes lapins, qui est égal au nombre de couples de lapins adultes à la saison précédente, donc au nombre total de couples à la saison n-2. C'est pourquoi on a: U n = U n-1 + U n-2 Tout ceci est plus clair avec un tableau: saison n nombre de couples de lapins adultes ( = u n-1 ) nombre de couples de jeunes lapins (= u n-2 ) nombre total de couples de lapins u n (Fibo) La suite de Fibonacci est une suite récurrente dont chaque élément obéit à la relation de récurrence : U n = U n-1 + U n-2 4INFINFRC0004 Page 12

13 Avec U 1 = 1 et U 2 = 1 Donc c'est une suite récurrente d'ordre 2. Activité 1 Ecrire un programme qui, pour un entier N donné, calcule le N ième terme de la suite de Fibonnaci. U n = U n-1 + U n-2 Avec U 1 = 1 et U 2 = 1 Donner une solution itérative, sans avoir recourt à un tableau, utilisant une fonction nommée Fibo_Itérative. N étant un entier compris entre 1 et 50. * - * - * - * - * - * - * - * - * - * - * Analyse du programme principal Suite_itérative_Fibonacci Résultat : Ecrire ("Fibo de ", N, " = ", Valeur_Fibo) Traitement : - Une fonction itérative Fibo_Itérative retourne la valeur du N ième terme de la suite. - Une procédure Saisie, assure la lecture et le test de l'entier N. Fin Suite_itérative_Fibonacci Algorithme 0) Début Suite_itérative_Fibonacci 1) Proc Saisie (N) 2) Valeur_suite Fn Fibo_Itérative (N) 3) Ecrire ("Fibo de ", N, " = ",Valeur_Fibo) 4) Fin Suite_itérative_Fibonacci Tableau de codification des objets globaux : Objets Type / Nature Rôle N Entier Nombre de terme de la suite Valeur_Fibo Entier Long Valeur de la suite Analyse et algorithme de la procédure Saisie - Voir les exemples précédents, car cette procédure à fait l'objet de plusieurs études. Il est à noter qu'elle figure au niveau de la traduction en Pascal. Analyse de la fonction Fibo_Itérative Résultat = Fibo_Itérative Traitement : 4INFINFRC0004 Page 13

14 - Cette suite est récurrente d'ordre 2. On doit initialiser ses deux premiers termes. U1 = 1 U2 = 1 - Donc on constate que si N 2, le dernier terme de la suite est égal à 1 Si N 2 Alors Fibo 1 - Sinon on calcule cette suite par une itération de 3 à N Fibo u1 + u2 u1 u2 u2 Fibo - Le résultat final est la dernière valeur obtenue Fibo_Itérative Fibo Fin Fibo_Itérative Algorithme 0) Fonction Fibo_Itérative (N : Entier) : Entier Long 1) U1 1 2) U2 1 3) Si N 2 Alors Fibo 1 Sinon Pour i de 3 à N Faire Fibo U1 + U2 U1 U2 U2 Fibo Fin Pour Fin Si 5) Fibo_Itérative Fibo 6) Fin Fibo_Itérative Tableau de codification des objets locaux : Objets Type / Nature Rôle U1, U2 Entier Eléments de la suite Fibo Entier Long Calcul de la suite i Entier Compteur Traduction en Pascal PROGRAM Suite_iterative_Fibonacci ; USES Crt ; CONST Nmax = 50 ; VAR Valeur_Fibo : LongInt ; N : Integer ; 4INFINFRC0004 Page 14

15 { } PROCEDURE Saisie (VAR N : Integer); Repeat Write ('N = '); ReadLn (N); Until N IN [1.. Nmax] ; END ; { } FUNCTION Fibo_Iterative (N : Integer ) : LongInt ; VAR U1, U2, i : Integer ; Fibo : LongInt ; U1 := 1 ; U2 := 1 ; If N <= 2 Then Fibo := 1 Else For i := 3 To N Do Fibo := U1 + U2 ; U1 := U2 ; U2 := Fibo ; End ; Fibo_Iterative := Fibo ; END ; {============ P P ===================} ClrScr ; Saisie (N) ; Valeur_Fibo := Fibo_Iterative (N); WriteLn ('Fibo de ', N, ' = ',Valeur_Fibo) ; END. Activité 2 Remplacer dans le programme précédent la fonction Fibo_Itérative par une autre fonction réalisant le même traitement itératif mais en utilisant pour le calcul, un tableau d'entiers long. Cette fonction sera nommée Fibo_Tab. * - * - * - * - * - * - * - * - * - * - * 4INFINFRC0004 Page 15

16 Analyse de la fonction Fibo_Tab Résultat = Fibo_Tab Traitement : - On initialise les deux premières case du tableau T à 1. T[1] 1 T(2] 1 - Donc on constate que si N 2, le dernier terme de la suite est égal à 1 Si N 2 Alors Fibo 1 - Sinon on calcule cette suite par une itération de 3 à N Pour i de 3 à N Faire T[i] T[i - 1] + T[i - 2] - Le résultat final est la dernière valeur obtenue Fibo_Itérative T[N] Fin Fibo_Tab Algorithme 0) Fonction Fibo_Tab (N : Entier ; T : Tab) : Entier Long 1) T[1] 1 2) T[2] 1 3) Si N 2 Alors Fibo 1 Sinon Pour i de 3 à N Faire T[i] T[i-1] + T[i-2] Fin Pour Fibo T[n] Fin Si 4) Fibo_Tab Fibo 5) Fin Fibo_Tab Modification du tableau de codification des objets globaux : Objets Type / Nature Rôle N Entier Nombre de terme de la suite Valeur_Fibo Entier Long Valeur de la suite T Tab Tableau des termes de la suite Nmax Constante = 50 Valeur maximal de N Tableau de codification des nouveaux types Types Tab = Tableau de Nmax Entier Long Tableau de codification des objets locaux : Objets Type / Nature Rôle Fibo Entier Long Calcul de la suite i Entier Compteur 4INFINFRC0004 Page 16

17 Traduction en Pascal de la fonction Fibo_Tab FUNCTION Fibo_Tab (N : Integer ; T : Tab) : LongInt ; VAR i : Integer ; Fibo : LongInt ; T[1] := 1 ; T[2] := 1 ; If (N < = 2) Then Fibo := 1 Else For i := 3 To N Do T[i] := T[i-1] + T[i-2] ; End ; Fibo := T[n] ; Fibo_Tab := Fibo ; END ; Activité 3 Remplacer dans le programme précédent la fonction Fibo_Tab par une autre fonction réalisant le même traitement mais cette fois avec un procédé récursif. Cette fonction sera nommée Fibo_Récursive. * - * - * - * - * - * - * - * - * - * - * Analyse de la fonction Fibo_Récursive Résultat = Fibo_Récursive Traitement : Le calcul de la fonction de Fibonacci fait référence aux deux éléments précédents. U n = U n-1 + U n-2 Avec U 1 = 1 et U 2 = 1 PuisqueU3 fait référence à ces deux éléments précédents U1 et U2 qui sont connus, on peut dire que U3 est aussi connu. Pour un l'élément N on peut écrire : Fibo_Récursive Fn Fibo_Récursive (N-1) + Fn Fibo_Récusive (N-2) C'est un traitement récursif Fin Analyse 3/ Solutions récursive : 4INFINFRC0004 Page 17

18 Algorithme 0) Fonction Fibo_Récursive (N : Entier ) : Entier Long 1) Si N 2 Alors Fibo_Récursif 1 Sinon Fibo_Récursif Fn Fibo_Récursif (N-1) + Fn Fibo_Récursif (N-2) Fin Si 2) Fin Fibo_Récursif Traduction en Pascal de la fonction Fibo_Récursif FUNCTION Fibo_Recursif (N : Integer ) : LongInt ; If (N < = 2) Then Fibo_Recursif := 1 Else Fibo_Recursif := Fibo_Recursif (N-1) + Fibo_Recursif (N-2) ; END ; VI/ Le nombre d'or Définition et valeur du nombre d'or Le nombre d'or est la solution positive de l'équation : x 2 -x -1 = 0 C'est-à dire le nombre (1 + 5 ) / 2 La suite (Vn) définie sur N* par Vn = ϕ = Exemples pour n de 1 à 7: Fib (n + 1) Fib (n) dont une valeur approchée est 1,618. semble converger vers le nombre d'or n Fib (n) Valeur exacte de Valeur approchée de Fib (n+1) / Fib (n) Fib (n+1) / Fib (n) /2 1, /3 1, /5 1, /8 1, /13 1,615 4INFINFRC0004 Page 18

19 Les 100 premières décimales du nombre d'or sont : 1, On a vu précédemment que : La suite de Fibonacci est une suite de nombres entiers. Voici le début de cette suite : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,... jusqu'à l'infini. Un nombre de la suite est le résultat de la somme de ses deux précédents (U 3 = U 1 + U 2 ). Voici maintenant pourquoi le nombre d'or et la suite de Fibonacci sont étroitement liés: 1/0 = Ceci n'existe pas. 1/1 = 1 2/1 = 2 3/2 = 1.5 5/3 = /5 = /8 = /13 = /21 = Fib (n + 1) = 1.6. Fib (n) Le nombre d'or, habituellement désigné par la lettre φ (phi) de l'alphabet grec. Activité Ecrire une fonction nommé Nombre_Or, qui retourne une approximation du nombre d'or avec une précision de 10-6 * - * - * - * - * - * - * - * - * - * - * Analyse de la fonction Nombre_Or Résultat = Nombre_Or Traitement : On calcule en premier lieu la suite de Fibonacci dans un tableau. U[i ] = U[i -1] + U[i - 2] avec U[1] = 1 et U[2] = 1 Fib (n + 1) Puis on calcule La suite (Vn) définie sur N* par Vn = qui converge vers le Fib (n) nombre d'or. V[i] = U[i] / U[i-1] On répète ce calcul jusqu'à une précision donnée (par exemple de 10-6 ) Fin Analyse Algorithme 0) Fonction Nombre_Or (précision : Réel) : Réel ; 1) U[1] 1 U[2] 2 i 2; 2) Répéter i i + 1 4INFINFRC0004 Page 19

20 U[i] U[i-1] + U[i-2] V[i] U[i] / U[i-1] Jusqu'à ABS(V[i] - V[i-1]) < précision ; 3) Nombre_Or V[i] 4) Fin Nombre_Or 4INFINFRC0004 Page 20

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

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

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

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

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

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

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

Plus en détail

Feuille TD n 1 Exercices d algorithmique éléments de correction

Feuille TD n 1 Exercices d algorithmique é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é Feuille TD n 1 Exercices d algorithmique éléments

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Propagation sur réseau statique et dynamique

Propagation sur réseau statique et dynamique Université de la Méditerranée UFR Sciences de Luminy Rapport de stage informatique pour le Master 2 de Physique, Parcours Physique Théorique et Mathématique, Physique des Particules et Astroparticules.

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

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

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

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

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

Enseignement secondaire technique

Enseignement secondaire technique Enseignement secondaire technique Régime technique Division technique générale Cycle moyen Informatique 11TG Nombre de leçons: 2.0 Nombre minimal de devoirs: - Langue véhiculaire: / Remarque générale:

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

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

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Algorithmes et programmation en Pascal. Cours

Algorithmes et programmation en Pascal. Cours Algorithmes et programmation en Pascal Faculté des Sciences de Luminy Edouard Thiel Cours Deug 1 Mass MA Module de 75 heures 1997 à 2004 2 Algorithmes et programmation en Pascal Edouard Thiel Table des

Plus en détail

Programmation structurée et algorithmes de base en Pascal

Programmation structurée et algorithmes de base en Pascal Programmation structurée et algorithmes de base en Pascal Miage1, IF2, DEUG sciences Patrice Effi BROU UFR Mathématiques et informatique Decembre 2003 Chapitre 1 Sommaire 1 Théorie des langages et compilation

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

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

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

Utilitaires méconnus de StrataFrame

Utilitaires méconnus de StrataFrame Utilitaires méconnus de StrataFrame Voici quelques classes d utilitaires, parmi ceux qui se trouvent dans le NameSpace MicroFour.StrataFrame.Tools. Cette liste n est pas exhaustive, et les regroupements

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

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

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

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

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

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer

Plus en détail

4. Les structures de données statiques

4. Les structures de données statiques 4. Les structures de données statiques 4.1 Tableaux à une dimension 4.1.1 Introduction Imaginons que dans un programme, nous ayons besoin simultanément de 25 valeurs (par exemple, des notes pour calculer

Plus en détail

Algorithmique et structures de données I

Algorithmique et structures de données I Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence

Plus en détail

0 si a=b. Si a^ et b^ sont deux éléments différents du même anneau, alors le résultat de

0 si a=b. Si a^ et b^ sont deux éléments différents du même anneau, alors le résultat de 1) Dans un programme contenant les déclarations : type anneau=^elem; elem=record prec,suiv:anneau; cle:integer completez les fonctions et procédures suivantes. function cree(cle:integer):anneau; Cette

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

TRIGONOMETRIE Algorithme : mesure principale

TRIGONOMETRIE Algorithme : mesure principale TRIGONOMETRIE Algorithme : mesure principale Déterminer la mesure principale d un angle orienté de mesure! 115" Problèmatique : Appelons θ la mesure principale, θ et! 115" sont deux mesures du même angle,

Plus en détail

Solutions du chapitre 4

Solutions du chapitre 4 Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

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

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

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

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Compléments de documentation Scilab : affichage de texte et formatage de nombres Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de

Plus en détail

Par combien de zéros se termine N!?

Par combien de zéros se termine N!? La recherche à l'école page 79 Par combien de zéros se termine N!? par d es co llèg es An dré Do ucet de Nanterre et Victor Hugo de Noisy le Grand en seignants : Danielle Buteau, Martine Brunstein, Marie-Christine

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

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

Exercices de dénombrement

Exercices de dénombrement Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.

Plus en détail

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

http://cermics.enpc.fr/scilab

http://cermics.enpc.fr/scilab scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,

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

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

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

I- Définitions des signaux.

I- Définitions des signaux. 101011011100 010110101010 101110101101 100101010101 Du compact-disc, au DVD, en passant par l appareil photo numérique, le scanner, et télévision numérique, le numérique a fait une entrée progressive mais

Plus en détail

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES TRAVAUX PRATIQUES Le présent travail vise à développer une interface visuelle de programmation des entrées- sorties du port LPT d un PC à l aide du logiciel VISUAL BASIC. I- EDITION ET TEST DU PROGRAMME

Plus en détail

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox Fiche 2 Cette fiche est la suite directe de la première. 1. Instructions conditionnelles : 1.1. Reprise de la fiche 1 : Lecture d'un algorithme : ORDINATEUR INTERDIT : Après

Plus en détail

Algorithmes de recherche

Algorithmes de recherche Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème

Plus en détail

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x = LE NOMBRE D OR Présentation et calcul du nombre d or Euclide avait trouvé un moyen de partager en deu un segment selon en «etrême et moyenne raison» Soit un segment [AB]. Le partage d Euclide consiste

Plus en détail

Probabilités Loi binomiale Exercices corrigés

Probabilités Loi binomiale Exercices corrigés Probabilités Loi binomiale Exercices corrigés Sont abordés dans cette fiche : (cliquez sur l exercice pour un accès direct) Exercice 1 : épreuve de Bernoulli Exercice 2 : loi de Bernoulli de paramètre

Plus en détail

Chp. 4. Minimisation d une fonction d une variable

Chp. 4. Minimisation d une fonction d une variable Chp. 4. Minimisation d une fonction d une variable Avertissement! Dans tout ce chapître, I désigne un intervalle de IR. 4.1 Fonctions convexes d une variable Définition 9 Une fonction ϕ, partout définie

Plus en détail

Correction TD algorithmique

Correction TD algorithmique Affectation Correction TD algorithmique Exercice 1 algo affect1b b 5 a b+1 b 2 Il vaut faire passer la notion de variable et la notion de stockage mémoire. Une variable n a donc pas d historique et à un

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

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

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Dans l'article précédent, vous avez appris

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

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

CORRECTION EXERCICES ALGORITHME 1

CORRECTION EXERCICES ALGORITHME 1 CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré

Plus en détail

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

MINISTERE DE L ENSEIGNEMENT TECHNIQUE ET DE LA FORMATION PROFESSIONNELLE. (Pour l obtention du diplôme d analyste programmeur)

MINISTERE DE L ENSEIGNEMENT TECHNIQUE ET DE LA FORMATION PROFESSIONNELLE. (Pour l obtention du diplôme d analyste programmeur) REPUBLIQUE DU SENEGAL Un peuple un but une foi MINISTERE DE L ENSEIGNEMENT TECHNIQUE ET DE LA FORMATION PROFESSIONNELLE DIRECTION DE LA FORMATION PROFESSIONNELLE (Pour l obtention du diplôme d analyste

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

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

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

Les suites numériques

Les suites numériques Chapitre 3 Term. STMG Les suites numériques Ce que dit le programme : Suites arithmétiques et géométriques CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Suites arithmétiques et géométriques Expression du terme

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

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