Upload
henriette-page
View
117
Download
1
Embed Size (px)
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";