Généralités Pseudocode Complexité P ROGRAMMATION EN F ORTRAN : Analyse de complexité Hacène Ouzia Polytech’Paris UPMC Sciences de la Terre (3 ème année) Université Pierre et Marie Curie Séance 2 2017 Hacène Ouzia Programmation en Fortran 2017 1 / 40 Généralités Pseudocode Complexité TABLE DES MATIÈRES 1 Généralités Algoritmes Opérations de base 2 Pseudocode Instructions de test Alternatives multiples Boucles Application 3 Hacène Ouzia e n è 2 OU c a H Complexité Théorie Pratique Applications c A I Z 7 1 0 Programmation en Fortran 2017 2 / 40 Généralités Pseudocode Complexité Algoritmes Opérations de base Table des matières 1 Généralités Algoritmes Opérations de base 2 Pseudocode 3 Complexité c Hacène Ouzia A I Z e n è 7 1 0 2 OU c a H Programmation en Fortran 2017 3 / 40 Généralités Pseudocode Complexité Algoritmes Opérations de base Algorithme ⌅ DÉFINITION A LGORITHME A I Z 7 1 0 2 Un algorithme énonce une solution d’un problème sous la forme d’une série d’opérations à effectuer. ⌅ C ATÉGORIES D ’ ALGORITHMES e n è OU + Algorithmes séquentiels + Algorithmes parallèles c a H + Algorithmes distribués c Hacène Ouzia Programmation en Fortran 2017 4 / 40 Généralités Pseudocode Complexité Algoritmes Opérations de base Algorithme ⌅ DÉFINITION A LGORITHME A I Z 7 1 0 2 Un algorithme énonce une solution d’un problème sous la forme d’une série d’opérations à effectuer. ⌅ C ATÉGORIES D ’ ALGORITHMES e n è OU + Algorithmes séquentiels + Algorithmes parallèles c a H + Algorithmes distribués c Hacène Ouzia Programmation en Fortran 2017 4 / 40 Généralités Pseudocode Complexité Algoritmes Opérations de base Algorithme 7 1 0 2 ⌅ O PÉRATIONS Quelles opérations faut-il pour écrire 1 un algorithme ? A I Z + Affectation + Condition + Boucles OU + Fonctions (pour rendre la tâche plus agréable) e n è ⌅ Que faut-il faire après ? c a H + Validation + Optimisation (complexité) c 1. Implémenter, Coder Hacène Ouzia Programmation en Fortran 2017 5 / 40 Généralités Pseudocode Complexité Algoritmes Opérations de base Algorithme 7 1 0 2 ⌅ O PÉRATIONS Quelles opérations faut-il pour écrire 1 un algorithme ? A I Z + Affectation + Condition + Boucles OU + Fonctions (pour rendre la tâche plus agréable) e n è ⌅ Que faut-il faire après ? c a H + Validation + Optimisation (complexité) c 1. Implémenter, Coder Hacène Ouzia Programmation en Fortran 2017 5 / 40 Généralités Pseudocode Complexité Algoritmes Opérations de base Algorithme 7 1 0 2 ⌅ O PÉRATIONS Quelles opérations faut-il pour écrire 1 un algorithme ? A I Z + Affectation + Condition + Boucles OU + Fonctions (pour rendre la tâche plus agréable) e n è ⌅ Que faut-il faire après ? c a H + Validation + Optimisation (complexité) c 1. Implémenter, Coder Hacène Ouzia Programmation en Fortran 2017 5 / 40 Généralités Pseudocode Complexité Algoritmes Opérations de base Algorithme 7 1 0 2 ⌅ O PÉRATIONS Quelles opérations faut-il pour écrire 1 un algorithme ? A I Z + Affectation + Condition + Boucles OU + Fonctions (pour rendre la tâche plus agréable) e n è ⌅ Que faut-il faire après ? c a H + Validation + Optimisation (complexité) c 1. Implémenter, Coder Hacène Ouzia Programmation en Fortran 2017 5 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Table des matières 1 Généralités 2 Pseudocode Instructions de test Alternatives multiples Boucles Application 3 Hacène Ouzia e n è 2 OU c a H Complexité c A I Z 7 1 0 Programmation en Fortran 2017 6 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Instructions de test : C vs Fortran A I Z e n è c 2 OU c a H F IGURE – Fortran Hacène Ouzia 7 1 0 F IGURE – C Programmation en Fortran 2017 7 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Instructions de test : C vs Fortran A I Z e n è c 2 OU c a H F IGURE – Fortran Hacène Ouzia 7 1 0 F IGURE – C Programmation en Fortran 2017 8 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Instructions de test : Pseudo-code I NSTRUCTIONS 1 Début 2 Condition 3 7 Si Condition alors ! Instructions à exécuter si la condition est vraie sinon ! Instructions à exécuter sinon Fin si 8 ! Tests imbriqués ; 9 Si A alors ! La condition A est vraie sinon Si B alors ! La condition ¬A ^ B est vraie sinon ! La condition ¬A ^ ¬B est vraie Fin si Fin si 4 5 6 11 12 13 14 15 16 17 18 Hacène Ouzia Valeur d’une expression logique ; A I Z e n è 10 c 7 1 0 DE TEST 2 OU c a H Fin Programmation en Fortran 2017 9 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Application A I Z ⌅ E XERCICE 7 1 0 2 OU Ecrire un programme qui réalise la fonction caractéristique du sous-ensemble 2N de N, c.-à-d. : ⇢ 1 si n 2 2N (n) = 0 sinon e n è c Hacène Ouzia c a H Programmation en Fortran 2017 10 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Alternatives multiples : C vs Fortran A I Z e n è c 2 OU c a H F IGURE – Fortran Hacène Ouzia 7 1 0 F IGURE – C Programmation en Fortran 2017 11 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Alternatives multiples : Pseudo-code A LTERNATIVES 1 2 Début Valeur 4 5 6 A I Z Valeur d’une expression arithmétique ; Suivant Valeur Faire Cas Valeur vaut un Faire ! Bloc du cas un Fin cas 3 7 1 0 2 OU Cas Valeur appartient à (1, 36) Faire ! Bloc du cas (1, 36) Fin cas e n è 7 8 9 c a H Par défaut Faire ! Traitement par défaut Fin cas Fin suivant 10 11 12 13 14 MULTIPLES Fin Hacène Ouzia c Programmation en Fortran 2017 12 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Conditionnelles à plusieurs choix A I Z ⌅ E XERCICE 7 1 0 2 Ecrire un programme qui réalise la fonction suivante : 8 "Lundi", si n 2 7N > > < "Mardi", si n 2 7N + 1 J (n) = ... > > : "Dimanche", si n 2 7N + 6 e n è c Hacène Ouzia OU c a H Programmation en Fortran 2017 13 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Boucles définies : C vs Fortran A I Z e n è c 2 OU c a H F IGURE – Fortran Hacène Ouzia 7 1 0 F IGURE – C Programmation en Fortran 2017 14 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Boucles définies : Pseudo-code B OUCLE 1 2 DÉFINIE A I Z Début Pour i = 0 à n faire ! Corps de la boucle 3 Fin pour 5 ! Avec un pas différent de 1; Pour i =initiale à finale, pas = valeur faire c a H ! Corps de la boucle ; 7 Fin pour 8 9 e n è 2 OU 4 6 7 1 0 Fin Hacène Ouzia c Programmation en Fortran 2017 15 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Boucles définies A I Z ⌅ E XERCICES 7 1 0 2 Ecrire deux programmes calculant les deux fonctions suivantes : OU S (n) = e n è c Hacène Ouzia c a H F (n) = n X k7 k =1 n Y k k =1 Programmation en Fortran 2017 16 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Boucles indéfinies : C vs Fortran A I Z e n è c 2 OU c a H F IGURE – C F IGURE – Fortran Hacène Ouzia 7 1 0 Programmation en Fortran 2017 17 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Boucles indéfinies : Pseudo-code B OUCLES 1 2 Début Condition e n è ! Corps de la boucle tant que 4 Fin tant que 5 Fin c Hacène Ouzia 2 OU Valeur d’une expression logique ; Tant que Condition faire 3 6 A I Z INDÉFINIES 7 1 0 c a H Programmation en Fortran 2017 18 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Boucles indéfinies A I Z ⌅ E XERCICE 7 1 0 2 Soit " une p précision donnée. Ecrire un programme qui calcul une approximation de 2 à " près à l’aide de la méthode de Héron. I OU Indication : utiliser la suite ci-dessous ⇣ ( un+1 = 12 un + cè ne a H c Hacène Ouzia u0 = 1 2 un ⌘ Programmation en Fortran , n 2 N⇤ 2017 19 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Résumé ⌅ O SSATURE D ’ UN Algorithme 5 : Tâche réalisée par l’algorithme A I Z Entrées : ! Les entrées de l’algorithme Sorties : ! Les valeurs de retour 1 2 Début ! Corps de l’algorithme ; 3 ! ... Exemple ... ; 4 Si la vie est belle alors e n è 2 OU ! Fais ce que t’as à faire 5 sinon 6 c a H ! Ne te plains pas et fais ce que t’as à faire 7 c Fin si 8 9 7 1 0 ALGORITHME Fin Hacène Ouzia Programmation en Fortran 2017 20 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Application A I Z ⌅ E XERCICE 7 1 0 2 OU Soient a, b et c trois réels. Ecrire un algorithme pour résoudre dans C l’équation suivante : ax 2 + bx + c = 0, e n è où x est une variable réelle. c Hacène Ouzia c a H Programmation en Fortran 2017 21 / 40 Généralités Pseudocode Complexité Instructions de test Alternatives multiples Boucles Application Application Algorithme 6 : solutions de l’équation ax 2 + bx + c = 0 Entrées : a,b, c :: réels Sorties : x1 , x2 :: complexes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hacène Ouzia A I Z 7 1 0 2 Début Si a = 0 alors SolutionEquationDegreUn(b,c); Fin si b2 4ac ; Si < 0 alors p p b i b+i x1 , x2 ; 2a 2a sinon Si = 0 alors b x1 ; 2a sinon p p b b+ x1 , x2 ; 2a 2a Fin si Fin si Fin e n è c OU c a H Programmation en Fortran 2017 22 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Table des matières 1 Généralités 2 Pseudocode 3 Complexité Théorie Pratique Applications c Hacène Ouzia A I Z e n è 7 1 0 2 OU c a H Programmation en Fortran 2017 23 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Outils mathématiques ⌅ N OTATION G RAND O Soit f 2 E = F (N, N) A I Z O+1 (f ) = {g 2 E : 9 > 0,9↵ > 0, 8x OU 7 1 0 2 ↵ : g (x) f (x)} g 2 ⇥ (f ) , f 2 O (g) et g 2 O (f ) e n è ⌅ E XEMPLE O (1) = {. . . , 1, 8, 10103, . . .} , c a H O (n) = {. . . , n, 1001n, . . . , 542000n, . . .} , En revanche c Hacène Ouzia 2n 2 / O (n) . Programmation en Fortran 2017 24 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Outils mathématiques ⌅ N OTATION G RAND O Soit f 2 E = F (N, N) A I Z O+1 (f ) = {g 2 E : 9 > 0,9↵ > 0, 8x OU 7 1 0 2 ↵ : g (x) f (x)} g 2 ⇥ (f ) , f 2 O (g) et g 2 O (f ) e n è ⌅ E XEMPLE O (1) = {. . . , 1, 8, 10103, . . .} , c a H O (n) = {. . . , n, 1001n, . . . , 542000n, . . .} , En revanche c Hacène Ouzia 2n 2 / O (n) . Programmation en Fortran 2017 24 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Outils mathématiques ⌅ C LASSES DE COMPLEXITÉ + Constante ! O (1) + Logarithmique ! O (log n) + Linéaire ! O (n) e n è + n log n ! O (n log n) + Quadratique ! O n2 ac + Polynomiale ! O n k n A I Z 7 1 0 2 OU ,k 2 N + Exponentielle ! O (2 ) cH Hacène Ouzia Programmation en Fortran 2017 25 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Applications ⌅ E XERCICE A I Z Montrer les propositions suivantes : + 8k + 8k k 1:n +n 2O n 1 : nk + log (n) 2 O nk e n è + n + sin (n) 2 O (n) + n 2 + 8k 2 O n2 2 OU c a H n 1 : 2 + n 2 O (2n ) c Hacène Ouzia k 7 1 0 k Programmation en Fortran 2017 26 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une instruction de base ⌅ C ODE C OMPLEXITÉ DES INSTRUCTIONS DE BASE 1 2 3 4 5 6 7 8 9 10 11 12 13 7 1 0 2 program complexiteDeclaration implicit none integer, parameter :: N = 45 real, dimension(N) :: RTableau logical, dimension(N) :: LTableau integer :: k write(*,"(’ Entrer la valeur de k : ’)", advance=’no’) read(*,*) k k = 3*k + 67 write(*,"(’ La nouvelle valeur de k : ’)", advance=’no’) write(*,*) k stop "fin du programme ... " end program A I Z e n è c OU c a H ⌅ C OMPLEXITÉ : O (1) Hacène Ouzia Programmation en Fortran 2017 27 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une instruction de base ⌅ C ODE C OMPLEXITÉ DES INSTRUCTIONS DE BASE 1 2 3 4 5 6 7 8 9 10 11 12 13 7 1 0 2 program complexiteDeclaration implicit none integer, parameter :: N = 45 real, dimension(N) :: RTableau logical, dimension(N) :: LTableau integer :: k write(*,"(’ Entrer la valeur de k : ’)", advance=’no’) read(*,*) k k = 3*k + 67 write(*,"(’ La nouvelle valeur de k : ’)", advance=’no’) write(*,*) k stop "fin du programme ... " end program A I Z e n è c OU c a H ⌅ C OMPLEXITÉ : O (1) Hacène Ouzia Programmation en Fortran 2017 27 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une instruction conditionnelle ⌅ C ODE C OMPLEXITÉ D ’ UNE CONDITION 1 2 3 4 5 6 7 A I Z Condition = ... ! Complexite en O(h) if Condition then ... ! Complexite en O(f) else ... ! Complexite en O(g) end if e n è c 7 1 0 2 OU c a H ⌅ C OMPLEXITÉ : O (h) + O (max {f , g}) Hacène Ouzia Programmation en Fortran 2017 28 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une instruction conditionnelle ⌅ C ODE C OMPLEXITÉ D ’ UNE CONDITION 1 2 3 4 5 6 7 A I Z Condition = ... ! Complexite en O(h) if Condition then ... ! Complexite en O(f) else ... ! Complexite en O(g) end if e n è c 7 1 0 2 OU c a H ⌅ C OMPLEXITÉ : O (h) + O (max {f , g}) Hacène Ouzia Programmation en Fortran 2017 28 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une boucle do ⌅ C ODE C OMPLEXITÉ D ’ UNE BOUCLE FINIE 1 2 3 4 5 do i=1, N ... ... ! Complexite en O(f) ... end do e n è A I Z 7 1 0 2 OU c a H ⌅ C OMPLEXITÉ : O (N ⇥ f ) c Hacène Ouzia Programmation en Fortran 2017 29 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une boucle do ⌅ C ODE C OMPLEXITÉ D ’ UNE BOUCLE FINIE 1 2 3 4 5 do i=1, N ... ... ! Complexite en O(f) ... end do e n è A I Z 7 1 0 2 OU c a H ⌅ C OMPLEXITÉ : O (N ⇥ f ) c Hacène Ouzia Programmation en Fortran 2017 29 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une boucle do ⌅ C ODE C OMPLEXITÉ D ’ UNE BOUCLE INDÉFINIE 1 2 3 4 5 6 7 A I Z Condition = ... ! Complexite en O(h) do while( Condition ) ... ... ! Complexite en O(f) ... end do e n è 7 1 0 2 OU c a H ⌅ C OMPLEXITÉ : O(h) + O (B ⇥ f ), où B est un majorant du nombre d’itérations c Hacène Ouzia Programmation en Fortran 2017 30 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une boucle do ⌅ C ODE C OMPLEXITÉ D ’ UNE BOUCLE INDÉFINIE 1 2 3 4 5 6 7 A I Z Condition = ... ! Complexite en O(h) do while( Condition ) ... ... ! Complexite en O(f) ... end do e n è 7 1 0 2 OU c a H ⌅ C OMPLEXITÉ : O(h) + O (B ⇥ f ), où B est un majorant du nombre d’itérations c Hacène Ouzia Programmation en Fortran 2017 30 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application + Quelle est la complexité de l’algorithme suivant. Algorithme 7 : A I Z 7 1 0 2 Entrées : n :: Entier naturel m :: Entier naturel 1 Début 2 p 3 Tant que p n ou q m faire è c a p 4 5 cH 6 7 Hacène Ouzia ne 1, q 1 OU p+1 q q+1 Fin tant que Fin Programmation en Fortran 2017 31 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application 7 1 0 + Quelle est la complexité de l’algorithme suivant. Algorithme 8 : A I Z Entrées : n :: Entier naturel m :: Entier naturel 1 2 Début q 1; p e n è 4 q sinon 5 c a H 6 Hacène Ouzia q+1 p p+1 Fin si Fin tant que 7 8 9 10 OU Tant que p n faire Si q m alors 3 c 1 2 Fin Programmation en Fortran 2017 32 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application 7 1 0 + Quelle est la complexité de l’algorithme suivant. Algorithme 9 : Entrées : n :: Entier naturel m :: Entier naturel 1 2 Début q 1; p e n è 4 q sinon 5 c a H 6 7 Hacène Ouzia p q+1 p+1 q 1 Fin si Fin tant que 8 9 10 11 OU Tant que p n faire Si q m alors 3 c 1 A I Z 2 Fin Programmation en Fortran 2017 33 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application - Quelle est la complexité de la procédure ci-dessous ? Procédure SolutionEquationDegreUn(a,b,solution) A I Z Entrée : a, b :: réels Sortie : solution :: réel 1 2 3 4 5 6 7 8 9 10 11 Hacène Ouzia Début solution 0 Si a = 0 alors Si b 6= 0 alors Exception() Fin si sinon b solution a Fin si return solution Fin e n è c 7 1 0 2 OU c a H Programmation en Fortran 2017 34 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application 7 1 0 - Quelle est la complexité de la procédure ci-dessous ? 2 Algorithme 10 : solutions de l’équation ax + bx + c = 0 Entrée : a,b, c :: réels Sortie : x1 , x2 :: complexes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Hacène Ouzia Début Si a = 0 alors SolutionEquationDegreUn(b,c) sinon b2 4ac Si < 0 alors p p b i b+i x1 , x2 2a 2a sinon Si = 0 alors b x1 2a sinon p p b b+ x1 , x2 2a 2a Fin si Fin si Fin si Fin e n è c A I Z 2 OU c a H Programmation en Fortran 2017 35 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application A I Z ⌅ E XERCICE 7 1 0 2 OU Ecrire et implémenter un algorithme permettant de calculer la valeur n! pour tout entier naturel n. Analyser la complexité de votre algorithme. e n è c Hacène Ouzia c a H Programmation en Fortran 2017 36 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application : factorielle Algorithme 11 : Factorielle A I Z Entrée : N :: entier naturel non nul Sortie : Produit :: entier naturel non nul 1 Début 2 Produit 1 3 Pour k = 2 à N faire Produit 4 Fin pour 6 return Produit Fin Hacène Ouzia c 2 OU Produit ⇤ k c a H 5 7 e n è 7 1 0 Programmation en Fortran 2017 37 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une boucle do 7 1 0 ⌅ C ODE C ALCULER LE FACTORIEL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 program factoriel implicit none integer :: N integer :: indice, Produit call system("clear") write(*,"(’ Entrez la valeur de N : ’)",advance=’no’) read(*,*) N Produit = 1 do indice = 1, N Produit = Produit * indice end do write(*,"(’ Resultat : ’)",advance=’no’) write(*,*) Produit stop "Fin factoriel" end program factoriel A I Z e n è c OU c a H ⌅ C OMPLEXITÉ O (n) Hacène Ouzia Programmation en Fortran 2017 38 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Complexité d’une boucle do 7 1 0 ⌅ C ODE C ALCULER LE FACTORIEL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 program factoriel implicit none integer :: N integer :: indice, Produit call system("clear") write(*,"(’ Entrez la valeur de N : ’)",advance=’no’) read(*,*) N Produit = 1 do indice = 1, N Produit = Produit * indice end do write(*,"(’ Resultat : ’)",advance=’no’) write(*,*) Produit stop "Fin factoriel" end program factoriel A I Z e n è c OU c a H ⌅ C OMPLEXITÉ O (n) Hacène Ouzia Programmation en Fortran 2017 38 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application : tri par insertion 7 1 0 - Quelle est la complexité de l’algorithme ci-dessous ? Algorithme 12 : Tri par insertion Entrées : N :: un entier naturel non nul, T :: Tableau à N éléments Sortie : T :: Tableau à N éléments 1 Début Pour j = 2 à N faire 2 OU 3 copieElementCourant T (j) 4 Pour i = j à 1, pas = 1 faire Si T (i) > copieElementCourant alors 5 ac T (i + 1) 6 T (i) Fin si Fin pour Fin pour 7 8 9 10 11 Hacène Ouzia e n è A I Z 2 Fin cH T (i) copieElementCourant Programmation en Fortran 2017 39 / 40 Généralités Pseudocode Complexité Théorie Pratique Applications Application : k-ème plus grand élément 7 1 0 - Quelle est la complexité de la procédure ci-dessous ? Algorithme 13 : k -ème plus grand élément d’un tableau Entrées : k , N :: entiers naturels non nuls, T :: Tableau de N réels tous distincts Sortie : Resultat : réel 1 2 3 4 5 Début Chercher oui j 1 Tant que Chercher et j N faire Compteur 0 ElementCourant T (j) Pour i = 1 à N faire e n è 6 7 8 9 10 11 12 c 13 14 15 16 17 18 Hacène Ouzia A I Z 2 OU Si i = 6 j et ElementCourant < T (i) alors Compteur Compteur + 1 Fin si Fin pour Si Compteur = k 1 alors Chercher non Resultat ElementCourant Fin si j j +1 Fin tant que c a H Fin Programmation en Fortran 2017 40 / 40