22
1 Algorithmique Algorithmique Les structures Les structures 1. 1. Rappel Rappel 2. 2. L'enchaînement séquentiel L'enchaînement séquentiel 3. 3. Les structures conditionnelles Les structures conditionnelles 4. 4. Les structures itératives Les structures itératives

1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

Embed Size (px)

Citation preview

Page 1: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

1

AlgorithmiqueAlgorithmique

Les structuresLes structures

1.1. RappelRappel

2.2. L'enchaînement séquentielL'enchaînement séquentiel

3.3. Les structures conditionnellesLes structures conditionnelles

4.4. Les structures itérativesLes structures itératives

Page 2: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

2

1. Rappel

L’univers lexical Shadok qui se limite aux termes :L’univers lexical Shadok qui se limite aux termes :

" " Ga Ga ", " ", " Bu Bu ", "", " Zo Zo ", et "  ", et " MeuMeu ".  ".

L'univers informatique se limite à :L'univers informatique se limite à :

l’affectation de variablesl’affectation de variablesles calculs (arithmétiques et logiques)les calculs (arithmétiques et logiques)la lecture / écriture la lecture / écriture les tests ou les structures conditionnellesles tests ou les structures conditionnellesles itérations ou les structures itérativesles itérations ou les structures itératives

Page 3: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

3

2. L'enchaînement séquentiel

DébutDébut instruction 1 instruction 1

instruction 2instruction 2 instruction 3instruction 3

FinFin

notions :notions :- de bloc d'instruction- de bloc d'instruction- un bloc peut ne comporter qu'une instruction- un bloc peut ne comporter qu'une instruction- un bloc peut être vide- un bloc peut être vide- un bloc d'instruction peut comporter un bloc d'instruction- un bloc d'instruction peut comporter un bloc d'instruction

Page 4: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

4

2. L'enchaînement séquentiel

DébutDébut {{ instruction 1instruction 1 instruction 1 ; instruction 1 ;

instruction 2instruction 2 instruction 2 ; instruction 2 ;instruction 3instruction 3 instruction 3 ; instruction 3 ;

FinFin }}

début de bloc

fin de bloc

fin instruction

Page 5: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

5

2. L'enchaînement séquentiel

DébutDébut {{ instruction 1instruction 1 instruction 1 ; instruction 1 ;

instruction 2instruction 2 instruction 2 ; instruction 2 ;instruction 3instruction 3 instruction 3 ; instruction 3 ;

FinFin }}

ExempleExemple

{ { a = Lire.i ( )a = Lire.i ( ) ;; b = Lire.i ( )b = Lire.i ( ) ;; resul = a + bresul = a + b;; System.out.print ("le résultat est " + resul) ;System.out.print ("le résultat est " + resul) ;}}

début de bloc

fin de bloc

fin instruction

Page 6: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

6

2. L'enchaînement séquentiel

DébutDébut {{ instruction 1instruction 1 instruction 1 ; instruction 1 ;

instruction 2instruction 2 instruction 2 ; instruction 2 ;instruction 3instruction 3 instruction 3 ; instruction 3 ;

FinFin }}

ExempleExemple

{ { a = Lire.i ( )a = Lire.i ( ) ;; b = Lire.i ( )b = Lire.i ( ) ;; resul = a + bresul = a + b;; System.out.print ("le résultat est " + resul) ;System.out.print ("le résultat est " + resul) ;}}

{a=Lire.i();b=Lire.i();resul=a+b;System.out.print("le résultat est " + {a=Lire.i();b=Lire.i();resul=a+b;System.out.print("le résultat est " + resul);}resul);}

début de bloc

fin de bloc

fin instruction

Page 7: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

7

3. Les structures conditionnelles

La structure if else se traduit en français en si sinon. Elle permet de programmer un choix, en plaçant derrière le terme if une condition. La structure if else se conduit de la façon suivante :

if (condition) {

une ou plusieurs instructions ; }else {

une ou plusieurs instructions ; }

Page 8: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

8

exemple :

if (nbr_a > nbr_b) { resultat = nbr_a ; System.out.print ("Le nombre A est supérieur au nombre B") ; }

else { resultat = nbr_b ; System.out.print ("Le nombre B est supérieur au nombre A") ; }

System.out.print ("Le résultat est supérieur : " + resultat ) ;

Page 9: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

9

SI il n'y a qu'un seule instruction dans un bloc d'instruction ALORS les accolades sont inutiles et peuvent être supprimées.

if (nbr_a > nbr_b) { System.out.print ("Le nombre A est le plus grand ") ; }

else { System.out.print ("Le nombre B est le plus grand") ; }

if (nbr_a > nbr_b) System.out.print ("Le nombre A est le plus grand") ;

else System.out.print ("Le nombre B est le plus grand") ;

if (nbr_a > nbr_b) System.out.print ("Le nombre A est le plus grand");else System.out.print ("Le nombre B est le plus grand");

Page 10: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

10

SI le bloc d'instruction else est vide ALORS il peut être suprimé.

if (nbr_a > nbr_b) { System.out.print ("Le nombre A est le plus grand ") ; }

else { }

if (nbr_a > nbr_b) {

System.out.print ("Le nombre A est le plus grand") ; }

if (nbr_a > nbr_b) System.out.print ("Le nombre A est le plus grand");

Page 11: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

11

Le bloc d'instruction si ne devrait jamais être vide.Si cela devait arriver ALORS changer le test !!

if (nbr_a > nbr_b) { }

else { System.out.print ("Le nombre B est le plus grand ") ; }

if (nbr_a < nbr_b) {

System.out.print ("Le nombre B est le plus grand") ;}

if (nbr_a < nbr_b) System.out.print ("Le nombre B est le plus grand");

Page 12: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

12

La condition : if (nbr_a > nbr_b)

Une condition est une comparaison. Elle est obligatoirement entre parenthèse. Elle est composée de trois éléments :

- une valeur - un opérateur de comparaison - une autre valeur

Les valeurs peuvent être a priori de n’importe quel type (numériques, caractères…) mais on ne peut comparer que des choses comparables !

Les opérateurs de comparaison sont : == l'égalité!= la différence> >= la supériorité< <= l'infériorité

Page 13: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

13

La condition composée :

if ((nbr_a >10) && (nbr_a < 20)) 20

Si nbr_a est supérieur à 10 et si nbr_a est inférieur à 20 10

if ((nbr_a <10) || (nbr_a > 20)) 20

Si nbr_a est inférieur à 10 ou si nbr_a est supérieur à 20 10

Page 14: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

14

Jeu de la logique :

Si ((tu n'as pas de température) ET (tu as une bonne tension))Alors

Ouvrir la fenêtre Sinon

Fermer la fenêtre

Cette petite règle pourrait tout autant être formulée comme suit :

Si ((tu as de la température) OU (tu n'as pas une bonne tension)) Alors

Fermer la fenêtre Sinon

Ouvrir la fenêtre

Page 15: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

15

L'exemple donne en Java :

if ((temp < 37.5) && (tension < 170))System.out.print ("OUVRIR") ;

else System.out.print ("FERMER") ;

Cette petite règle pourrait tout autant être formulée comme suit :

if ((temp > 37.5) || (tension > 170)) System.out.print ("FERMER") ;

else System.out.print ("OUVRIR") ;

Page 16: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

16

L'exemple donne en Java : if ((temp < 37.5) && (tension < 170))

System.out.print ("OUVRIR") ; else

System.out.print ("FERMER") ;

Cette petite règle pourrait tout autant être formulée comme suit :

if ((temp > 37.5) || (tension > 170)) System.out.print ("FERMER") ;

else System.out.print ("OUVRIR") ;

Page 17: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

17

L'exemple donne en Java : FERMER 170

if ((temp < 37.5) && ((tension < 170) || (tension > 100))) System.out.print ("OUVRIR") ; OUVRIR

else System.out.print ("FERMER") ; 100

FERMER

Cette petite règle pourrait tout autant être formulée comme suit :

if ((temp > 37.5) || ((tension > 170) && (tension < 100))) System.out.print ("FERMER") ;

else System.out.print ("OUVRIR") ;

Page 18: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

18

Les conditions imbriquées :

if (niveau > 60 ) {

}else { }

Bloc d'instruction

Bloc d'instruction

Page 19: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

19

Les conditions imbriquées :

if (niveau > 60 ) HAUT {

80

MOYEN

} 60else { BAS }

Bloc d'instruction

Bloc d'instruction

Page 20: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

20

Les conditions imbriquées :

if (niveau > 60 ) HAUT {

if (seuil > 80) 80 System.out.print ("seuil haut") ;else MOYEN

System.out.print ("seuil moyen") ;

} 60else { BAS System.out.print ("seuil bas") ; }

Page 21: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

21

L'instruction switch permet de faire plusieurs tests de valeurs sur le contenu d'une même variable. Ce branchement conditionnel simplifie beaucoup le test de plusieurs valeurs d'une variable, car cette opération aurait été compliquée (mais possible) avec des if imbriqués.

char choix ;System.out.print ("Entrez votre choix ? : ") ;

choix = Lire.c () ;

switch (choix) {

case '1' : System.out.println ("insérer") ; break ;

case '2' : System.out.println ("supprimer") ; break ;

case '3' : System.out.println ("d'afficher") ; break ;default : System.out.println ("petit problème") ;

break; }

Page 22: 1 Algorithmique Les structures 1.Rappel 2.L'enchaînement séquentiel 3.Les structures conditionnelles 4.Les structures itératives

22

L'opérateur ternaire :

Il est possible de faire un test avec une structure beaucoup moins lourde grâce à la structure suivante, appelée opérateur ternaire:

variable = (condition) ? valeur si vrai : valeur si faux

exemple :

String remarque ;int note ;

System.out.print ("entrez la note : ");note = Lire.i () ;remarque = (note > 10) ? "bon" : "pas bon" ;System.out.println ("remarque est "+ remarque) ;

if (note >10) remarque = "bon" ;else remarque = "pas bon";