Flowchart Itération Cours 04.

Slides:



Advertisements
Présentations similaires
Section VI Structures répétitives (suite)
Advertisements

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.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Chapitre 4 la représentation des nombres. Chapitre 4 : La représentation des nombres 1 - Introduction 1.1 – Notion de mot 2 - La représentation des entiers.
CINI – Li115 1 Semaine 3 Boucles (suite), tirages aléatoires, bibliothèque graphique ● Imbrication d'instructions if et for ● Boucles for imbriquées ●
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus grande.
Intégration du P7 dans l’épreuve E41
V Suite géométrique : 1°) Définition : un+1
Les tables de multiplication au ce1 « Une construction réfléchie des tables favorise-t-elle leur mémorisation et leurs transferts ? » DOUARCHE Vaéa.
Les Instructions Itératives (Les Boucles)
Algorithmiques Abdelbasset KABOU
« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils.
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Algorithme et programmation
Semaine #1 INF130 par Frédérick Henri.
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Principes de programmation (suite)
Master Réseaux et Systèmes Distribués (RSD)
3°) Décomposition d’un nombre entier en produit d’entiers :
Progressions calcul CM
de toute série statistique
L’Instruction de Test Alternatif
Algorithmiques Abdelbasset KABOU
Les Nombres Réels Leçon 1.
Les nombres entiers.
Les Instructions – Organigramme
Un Algorithme , c'est Quoi ?
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Langages de programmation TP3
Reconnaître un multiple ou un diviseur
Cours N°6: Algorithmiques Structures Conditionnelles
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.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Algorithmique & Langage C IUT GEII S1 Notes de cours (deuxième partie)
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Cours N°9: Algorithmiques Les Tableaux 1
Les tableaux.
Formules de calculs et Fonctions. Structure des formules de calcul Commencez toujours votre calcul par le signe =, ensuite sans laisser d’espaces, placez.
Type Concret – Type Abstrait
Entrées/Sorties - Variables - Calculs - Alternative
Exercice : le jeu. Vous devez concevoir l’algorithme permettant de jouer avec votre calculatrice : elle détermine au hasard un nombre caché entier entre.
Diviser un entier par un nombre à un chiffre
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
OPTIMISATION 1ère année ingénieurs
Automatismes 5.
Connaître les multiples et diviseurs d’un nombre.
On lance 100 fois de suite une pièce de monnaie.
Automatismes 7.
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus.
Automatismes 1.
CHAPITRE 6 Stabilité des SA.
CSI 3505 Algorithmes Voraces
RABAH M ed Ali 2018/2019
Algorithmie - Programmation 2
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Exercices récapitulatifs
Nombres premiers : ce sont des nombres entiers positifs, qui ne sont divisibles que par 1 et eux- mêmes. Exemples : 24 est divisible par 2, par 3, par.
Tableaux Cours 06.
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
L.P.M Chapitre N°3 Les structures de contrôle itératives Dégager le traitement itératif Problème Nombre d’itération ?? Inconnu à l’avance Connu à l’avance.
VRAI ou FAUX.
Chapter 11: Récursivité Java Software Solutions Second Edition
Introduction à L’Informatique
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
Type Tableau Partie 1 : Vecteurs
Tableaux : Algorithmes de recherches
Transcription de la présentation:

Flowchart Itération Cours 04

Flowchart / Organigramme Un organigramme est « une représentation graphique normalisée de l'enchaînement des opérations et des décisions effectuées par un programme d'ordinateur » (wikipedia) Exemple ci-contre

Flowchart / Organigramme

Flowchart / Organigramme

Flowchart / Organigramme

Flowchart / Organigramme : exemple 1

Problème du robot (rappel) Le robot dispose d’une quantité infinie de fûts de bière qui ont chacun une capacité limitée. Le robot fait face à une file de personnes désirant boire une bière On ne connait pas la taille de la file Chaque personne ne veut qu’une seule bière Une personne qui est servie ne revient plus dans la file Dès que le robot commence à servir de la bière, plus personne n’intègre la file (taille fixe et finie) Le robot peut vérifier 2 choses: Le fût est-il vide? Y-a-t-il encore une personne à servir? Le robot peut faire 2 actions: Servir une bière Changer le fût Quelle serait la séquence d’étapes à réaliser par le robot pour servir toute la file?

Problème du robot : algorithme itératif Faisons abstraction du fût. Que doit faire le robot serveur de bière ? Combien de fois doit-il servir à boire ? Quel serait l’algorithme ? « Tant qu’il y a quelqu’un dans la file, il faut lui servir à boire ».

Problème du robot : algorithme itératif TANT QUE il y a une personne à servir = vrai FAIRE servir à boire à la personne FIN TANT QUE Condition de séjour BOUCLE

Problème du robot : algorithme itératif Intégrons la vérification sur le fût.

Ecritures répétées Quelle serait la séquence d’instruction nécessaire pour écrire 3 fois à l’écran “Hello World” ? ECRIRE “Hello world” Quid si on doit écrire 300 fois “Hello World” ?

Ecritures répétées Quid si on doit écrire 300 fois “Hello World” ? TANT QUE ??? FAIRE ECRIRE “Hello World” FIN TANT QUE Objectif de la boucle : Ecrire 300 fois “Hello World” Comment faire? Compter le nombre de fois que l’on passe dans la boucle et arrêter après la 300ième fois

Ecritures répétées Compter le nombre de passage ⇒ Utilisation d’un compteur TANT QUE cpt < 300 FAIRE ECRIRE “Hello World” FIN TANT QUE Suffisant ?

Ecritures répétées Compter le nombre de passage ⇒ Utilisation d’un compteur cpt ← 0 TANT QUE cpt < 300 FAIRE ECRIRE “Hello World” cpt ← cpt + 1 FIN TANT QUE Attention: Veillez toujours à initialiser vos variables correctement (ex.: compteur) et incrémenter le compteur

Flowchart / Organigramme : exemples 2 et 3 Séquence linéaire Séquence alternative « si … alors … sinon »

Flowchart / Organigramme : exemples 4 et 5 Séquence répétitive « tant que … faire … » Séquence répétitive « répéter … jusqu'à … »

Exercices Afficher les 100 premiers nombres entiers positif à partir de 0 (inclus) Afficher les nombres entiers compris entre 50 et 100 (inclus) Afficher les nombres pairs entre 0 à 20 (inclus)

Exercice 4 DONNEES IN: n : integer PRECONDITIONS n >0 POSTCONDITIONS / INTERACTIONS Les nombres de zéro à n inclus sont affichés

Exercice 5 DONNEES IN: n, m : integer PRECONDITIONS n < m POSTCONDITIONS / INTERACTIONS Les nombres entiers compris entre n et m inclus sont affichés

Exercice 6 DONNEES IN: n, m : integer PRECONDITIONS n < m POSTCONDITIONS / INTERACTIONS Les nombres pairs compris entre n et m inclus sont affichés

Exercice 7 DONNEES IN: n, m : integer PRECONDITIONS / POSTCONDITIONS INTERACTIONS Les nombres pairs compris entre n et m inclus sont affichés

Exercice 8 DONNEES Les nombres sont entiers PRECONDITIONS / POSTCONDITIONS INTERACTIONS Demander à l’utilisateur de rentrer des nombres. Dès que l’utilisateur rentre la lettre ‘q’, afficher la somme des nombres

Exercice 9 DONNEES IN: n, m : integer PRECONDITIONS n, m > 0 POSTCONDITIONS / INTERACTIONS Affiche : m * n CONSIGNE : Vous ne pouvez pas utiliser l’opérateur de multiplication.

Exercice 10 DONNEES IN: n, m : integer PRECONDITIONS n, m > 0 POSTCONDITIONS / INTERACTIONS Affiche : nm CONSIGNE : Vous devez utiliser l’opérateur de multiplication.

Exercice 11 DONNEES IN: n, m : integer PRECONDITIONS n, m >= 0 POSTCONDITIONS / INTERACTIONS Affiche : nm CONSIGNE : Vous devez utiliser l’opérateur de multiplication.

Exercice 12 Factorielle: 2 ! = 1*2 5 ! = 1*2*3*4*5 DONNEES IN: n : integer PRECONDITIONS n > 0 POSTCONDITIONS / INTERACTIONS Affiche: n ! Factorielle: 2 ! = 1*2 5 ! = 1*2*3*4*5 10 ! = 1*2*3*4*5*6*7*8*9*10

Définition d’un nombre premier Nombre ayant strictement 2 diviseurs (1 et lui même) 2 = Nombre premier ? Oui (1 et 2 sont les uniques diviseurs) 3 = Nombre premier ? Oui (1 et 3 sont les uniques diviseurs) 4 = Nombre premier ? Non (1, 2 et 4 sont diviseurs) 1 = Nombre premier ? Non (il n’y a qu’un seul diviseur) 64 = Nombre premier ? Non

Algorithme des nombres premiers Idées de base pour déterminer si un nombre est premier? Exemple: 65 Parcourir les nombres entre de 2 à 64 et vérifier si l’un d’eux est diviseur S’il existe un tel nombre, que conclure?

Algorithme des nombres premiers Le nombre x est-il premier? Si x = 1 ⇒ Pas premier Si x = 2 ⇒ Premier Si x > 2 ⇒ Essayer de trouver un nombre compris entre [2 .. x-1] qui divise x Il faut les parcourir tous Tant qu’on a pas trouvé un tel nombre, on peut faire l’hypothèse que x est premier Si un seul nombre est diviseur, alors on peut conclure que x n’est pas premier

Algorithme (n°1) des nombres premiers estPremier ← VRAI SI (x = 1) ALORS estPremier ← FAUX FIN SI i ← 2 TANT QUE i < x FAIRE SI (x MOD i = 0) ALORS FIN_SI i ← i + 1 FIN TANT QUE

Algorithme des nombres premiers Pas moyen de faire plus rapide? Faut-il tester tous les nombre entre [2 .. x-1] ? Si le nombre n’est pas divisible par 2… Il ne sera pas divisible par 4 Il ne sera pas divisible par 6 Il ne sera pas divisible par 8 ….

Algorithme (n°2) des nombres premiers estPremier ← VRAI SI (x = 1 OU x = 0 OU (x MOD 2 = 0 AND x ≠ 2)) ALORS estPremier ← FAUX FIN SI i ← 3 TANT QUE i < x FAIRE SI (x MOD i = 0) ALORS FIN_SI i ← i + 2 FIN TANT QUE

Afficher les 10 premiers nombres premiers Quelques idées dans le désordre : Dès qu’on en a trouvé 10, on peut stopper. Ne pas confondre: 2 compteurs sont nécessaires “Les 10 premiers nombres premiers” “Les nombres premiers entre 0 et 10” Le premier compteur parcourt tous les nombres entiers (afin de voir s’il s’agit d’un nombre premier). Tester pour 1 Si premier, afficher, sinon on passe au suivant Le deuxième compte le nombre de nombre premier affiché jusqu’ici. Tester pour 2 Tester pour 3 Si premier, afficher, sinon on passe au suivant …..

Afficher les 10 premiers nombres premiers j = 0 // Nombre de nombres premiers affichés x = 0 // Nombre actuellement testé TANT QUE j < 10 FAIRE [ALGORITHME NOMBRE PREMIER] SI estPremier ALORS j = j + 1 ECRIRE x ECRIRE RETOUR LIGNE FIN SI x = x + 1 FIN TANT QUE