La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Flowchart Itération Cours 04.

Présentations similaires


Présentation au sujet: "Flowchart Itération Cours 04."— Transcription de la présentation:

1 Flowchart Itération Cours 04

2 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

3 Flowchart / Organigramme

4 Flowchart / Organigramme

5 Flowchart / Organigramme

6 Flowchart / Organigramme : exemple 1

7 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?

8 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 ».

9 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

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

11 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” ?

12 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

13 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 ?

14 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

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

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

17 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)

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

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

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

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

22 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

23 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.

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

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

26 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

27 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

28 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?

29 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

30 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

31 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 ….

32 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

33 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 …..

34 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


Télécharger ppt "Flowchart Itération Cours 04."

Présentations similaires


Annonces Google