Algorithmique Boucles et Itérations

Slides:



Advertisements
Présentations similaires
La boucle for : init7.c et init71.c
Advertisements

Introduction a L’algorithme
Tris.
Chapitre annexe. Récursivité
Initiation à la programmation et algorithmique cours 2
Algorithmique (suite)
Sensibilisation à l’Algorithmique et structure de données
Calculs de complexité d'algorithmes
EXERCICE 2.1 : APRES AVOIR DEMANDE LA SAISIE DUN NOMBRE POSITIF (ERREUR DE SAISIE A TRAITER). AFFICHER LE DECOMPTE EN PARTANT DE CE NOMBRE JUSQUÀ ARRIVER.
DECLARATION DE VARIABLES
BUT DE LALGORITHME Afficher la table de multiplication dune valeur saisie au clavier (valeur comprise entre 1 et 9). Gérer lerreur de saisie.
Algorithmique Résume.
Les Algorithmes de tri.
II- Les structures de contrôle à condition d’arrêt
Les Structures de contrôles itératives
Exercices Algorithmiques
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
VBA / Excel TP 6 La boucle FOR.
5. Les structures répétitives
4. Les structures de tests
8. Les tableaux P. Costamagna – ISEN N1.
Section VI Structures répétitives (suite)
Les bases de l’Algorithmique
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Semaine #1 INF155 par Frédérick Henri.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Récursivité.
Démarche de résolution de problèmes
Algorithmique et Programmation
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Algorithmique et structure de données
Les éléments de base de l’algorithmique
Structures de contrôle de l’exécution
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Sémantique axiomatique
Python La structure itérative
Algorithmes et résolution de problèmes FGE
Algorithme de Bellman-Ford
Introduction à l’algorithmique
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Semaine #1 INF135 par Frédérick Henri.
8PRO107 Éléments de programmation
Répéter dans un programme avec une Instruction itérative
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
Déclaration des données constantes Déclaration des données variables
1 Algorithmique et programmation en Itérations (boucles) Types numériques simples (suite)
Programmation linéaire en nombres entiers
Structures de contrôle
Introduction au langage C Fonctions et Procédures
Organisation des données Introduction à la programmation Traitements simples Affectation Parcours Définition du tableau Les Tableaux Mise en situation.
Cours LCS N°4 Présenté par Mr: LALLALI
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Initiation à l’Algorithmique
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Module algorithmique et programmation
Introduction à la programmation (420-PK2-SL) cours 8
La pile de crêpes.
Scripts et fonctions Instructions de contrôle
Algorithmique Tableaux de données
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Algorithmique Algorithmique  Pascal
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Philippe Gandy – 6 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Introduction à l’Informatique Licence SPI Mme Delmotte.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
O UTILS DE P ROGRAMMATION P OUR LES M ATHÉMATIQUES Mr. BENDIB. I MAA, LAMIS Laboratory, Université Larbi Tébessi - Tébessa.
Transcription de la présentation:

Algorithmique Boucles et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 22/09/2003 Dernière modification: 22/09/2003

Introduction Dans un algo, on doit souvent répéter les mêmes blocs d’instruction … Avec quelques variations dans les paramètres pour préciser le déroulement de l’algo … Il est fastidieux d’écrire plusieurs fois la même chose Surtout que le nombre de répétitions à faire peut varier en fonction de l’algo lui-même et de ce qu’il fait : il est très dur de connaître ce nombre à l’avance.

Introduction Pour gérer ces cas, on fait appel à des instructions en boucle qui ont pour effet de répéter plusieurs fois une même instruction. Deux formes existent : si le nombre de répétitions est connu avant l'exécution de l'instruction de répétition, … et s’il n’est pas connu. On appellera itération l'exécution de la liste des instructions.

Répétition inconditionnelle Il est fréquent que le nombre de répétitions soit connu à l'avance, et que l'on ait besoin d'utiliser le numéro de l'itération afin d'effectuer des calculs ou des tests. Le mécanisme permettant cela est la boucle Pour. Pour variable de valeur initiale à valeur finale faire liste d'instructions Fin pour

Répétition inconditionnelle La variable dont on donne le nom va prendre successivement toutes les valeurs entières entre valeur initiale et valeur finale. Pour chaque valeur prise par la variable, la liste des instructions est exécutée. La valeur utilisée pour énumérer les itérations est appelée valeur d'itération, indice d'itération ou compteur. L'incrémentation par 1 de la variable est implicite.

Répétition inconditionnelle Autre forme de la boucle Pour : Pour variable décroissante de valeur initiale à valeur finale faire liste d'instructions Fin pour La variable d'itération est décrémentée de 1 après chaque itération.

Répétition inconditionnelle Exemple n° 1 Programme TableDe9 Début écrire(1*9) écrire(2*9) écrire(3*9) écrire(4*9) écrire(5*9) écrire(6*9) écrire(7*9) écrire(8*9) écrire(9*9) écrire(10*9) fin

Répétition inconditionnelle Exemple n° 1 Il est plus simple d'utiliser une boucle avec un compteur prenant d'abord la valeur 1, puis augmentant peu à peu jusqu'à atteindre 10. Programme TableDe9 Déclarations Var i : entier { compteur de la boucle } Début pour i de 1 à 10 faire écrire(i*9) fin pour fin

Répétition inconditionnelle Exemple n° 2 On veut imprimer, pour n donné, la somme des carrés des n premiers entiers. Cette somme, notée s, est obtenue en calculant le n-ième terme d'une suite définie par récurrence : sn=sn-1+n² Algorithmiquement le calcul de cette suite se fait en deux étapes : initialisation (ici, s0=0) répétition de : calcul du ième terme en fonction du terme d'indice i-1

Répétition inconditionnelle Exemple n° 2 Programme SommeCarrés Déclarations Var s : entier { résultat de la somme } n : entier { borne supérieure de la suite } i : entier { compteur de boucle } Début Écrire(‘entrez la borne max de la suite: ‘) lire(n) { 1 } s  0 { 2 } pour i de 1 à n faire { 3 } s  s + i2 { 4 } Fin pour { 5 } écrire(s) fin

Répétition inconditionnelle Schéma de l'évolution de l'état des variables instruction par instruction : On suppose que la valeur introduite par l'utilisateur est 4. Instructions n s i 1 4 2 3 5 14 30 fin écrire

Répétition inconditionnelle Exercice Ecrire l'algorithme qui permet d'imprimer le maximum de n entiers positifs donnés au fur et à mesure. Le programme doit demander n à l’utilisateur, puis doit demander n fois de rentrer un nombre. Au bout de n nombre saisis, le programme affiche le maximum. On suppose que les entiers saisis par l’utilisateur sont positifs (pas besoin de vérification dans le programme)

Répétition inconditionnelle Exercice 1ère méthode: initialisation à un terme artificiel. Programme maximum Déclarations Variable n : entier { nombre d'entiers positifs donné } maximum : entier { maximum des i premiers entiers } nombre : entier { ième nombre lu } i : entier { indice d'itération } Début lire(n) { 1 } maximum  -1 { 2 } pour i de 1 à n faire { 3 } lire(nombre) { 4 } si nombre > maximum alors { 5 } maximum  nombre { 6 } fin si Fin fin pour écrire (maximum) { 7 } fin

Répétition inconditionnelle Schéma de l'évolution de l'état des variables instruction par instruction Instructions n maximum i nombre nombre > maximum 1 4 2 -1 3 5 Vrai 6 faux 8 7 (fin) écrire

Répétition inconditionnelle Exercice 2ème méthode: initialisation à un terme utile. Programme maximum Déclarations Variable n : entier { nombre d'entiers positifs donné } maximum : entier { maximum des i premiers entiers } nombre : entier { ième nombre lu } i : entier { indice d'itération } Début lire(n) { 1 } écrire(‘Entrez le 1er chiffre: ‘) lire(maximum) { 2 } pour i de 2 à n faire { 3 } lire(nombre) { 4 } si nombre > maximum alors { 5 } maximum  nombre { 6 } fin si fin pour écrire (maximum) { 7 } fin

Répétition inconditionnelle Schéma de l'évolution de l'état des variables instruction par instruction Instructions n maximum i nombre nombre > maximum 1 4 2 3 5 faux 8 Vrai 6 7 (fin) (écrire)

Répétitions conditionnelles L'utilisation d'une boucle pour nécessite de connaître à l'avance le nombre d'itérations désiré, c'est-à-dire la valeur finale du compteur. Dans beaucoup de cas, on souhaite répéter une instruction tant qu'une certaine condition est remplie … … alors qu'il est à priori impossible de savoir à l'avance au bout de combien d'itérations cette condition cessera d'être satisfaite. Le mécanisme permettant cela est la boucle Tant que.

Répétitions conditionnelles Syntaxe de la boucle Tant que : Tant que condition faire liste d'instructions Fin tantque Exécution de l’itération basée sur un type booléen dont la valeur est vrai la liste d'instructions est répétée autant de fois que la condition de poursuite a la valeur vraie.

Répétitions conditionnelles Remarques: Du fait que la condition est évaluée avant l'exécution des instructions à répéter, il est possible que celles-ci ne soient jamais exécutées. Il faut que la liste des instructions ait une incidence sur la condition afin qu'elle puisse être évaluée à faux et que la boucle se termine. Il faut toujours s'assurer que la condition devient fausse au bout d'un temps fini.

Répétitions conditionnelles Exemple n°1: Demander à l’utilisateur de saisir un entier positif et le redemander jusqu’à ce que l’entier soit positif.

Répétitions conditionnelles Exemple n°1: Programme TestSaisie Déclaration Variable nb_lu : entier Début nb_lu  -1 tant que nb_lu<0 faire écrire(‘entrez un entier positif: ‘) lire(nb_lu) fin tantque Fin

Répétitions conditionnelles Exemple n°2: Demander à un utilisateur de saisir des entiers, tant que la somme de ces entiers est inférieure à 200 Ecrire à la fin de l’algo, le nombre d’entiers que l’utilisateur a saisi pour arriver à 200.

Répétitions conditionnelles Exemple n°2: Programme TestSomme Déclaration Variable nb_lu, somme, nb : entier Début somme  0 nb  0 tant que somme<200 faire écrire(‘entrez un entier positif: ‘) lire(nb_lu) somme  somme + nb_lu nb  nb + 1 Fin fin tantque écrire(nb)

Boucles imbriquées Le corps d’une boucle est une suite d’instructions Or une boucle est elle-même une instruction … Donc le corps d'une boucle peut contenir une boucle dite imbriquée, puisque c’est une instruction comme une autre La boucle imbriquée utilise un compteur différent

Boucles imbriquées A chaque passage dans la boucle principale, la boucle imbriquée sera totalement exécutée … Attention aux boucles infinies, et à la gestion des compteurs !

Répétitions conditionnelles Exemple n°3: Demander à un utilisateur de saisir un entier positif Pour chaque entier N partant de 1 à l’entier saisi par l’utilisateur, écrire les nombres allant de 1 à cet entier N Exemple (saisie: 6) : 1 12 123 1234 12345 123456

Répétitions conditionnelles Exemple n°3: Programme TestSaisie Déclaration Variable nb_lu, somme, nb : entier Début lire(nb_lu) Pour i de 1 à nb_lu faire Pour j de 1 à i faire écrire (j) fin pour fin