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

Preview:

Citation preview

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

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

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

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

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

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

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 ; }

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

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");

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");

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");

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é

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

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

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") ;

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") ;

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") ;

18

Les conditions imbriquées :

if (niveau > 60 ) {

}else { }

Bloc d'instruction

Bloc d'instruction

19

Les conditions imbriquées :

if (niveau > 60 ) HAUT {

80

MOYEN

} 60else { BAS }

Bloc d'instruction

Bloc d'instruction

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") ; }

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; }

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";

Recommended