Algorithmique Les structures Rappel L'enchaînement séquentiel Les structures conditionnelles Les structures itératives
1. Rappel L’univers lexical Shadok qui se limite aux termes : " Ga ", " Bu ", " Zo ", et " Meu ". L'univers informatique se limite à : l’affectation de variables les calculs (arithmétiques et logiques) la lecture / écriture les tests ou les structures conditionnelles les itérations ou les structures itératives
2. L'enchaînement séquentiel Début instruction 1 instruction 2 instruction 3 Fin notions : - de bloc d'instruction - un bloc peut ne comporter qu'une instruction - un bloc peut être vide - un bloc d'instruction peut comporter un bloc d'instruction
2. L'enchaînement séquentiel Début { instruction 1 instruction 1 ; instruction 2 instruction 2 ; instruction 3 instruction 3 ; Fin } début de bloc fin de bloc fin instruction
2. L'enchaînement séquentiel Début { instruction 1 instruction 1 ; instruction 2 instruction 2 ; instruction 3 instruction 3 ; Fin } Exemple { a = Lire.i ( ) ; b = Lire.i ( ) ; resul = a + b ; System.out.print ("le résultat est " + resul) ; } début de bloc fin de bloc fin instruction
2. L'enchaînement séquentiel Début { instruction 1 instruction 1 ; instruction 2 instruction 2 ; instruction 3 instruction 3 ; Fin } Exemple { a = Lire.i ( ) ; b = Lire.i ( ) ; resul = a + b ; System.out.print ("le résultat est " + resul) ; } {a=Lire.i();b=Lire.i();resul=a+b;System.out.print("le résultat est " + resul);} début de bloc fin de bloc fin instruction
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
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 ) ;
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") ; 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"); else System.out.print ("Le nombre B est le plus grand");
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 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");
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");
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é
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
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
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") ;
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") ;
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") ;
Les conditions imbriquées : if (niveau > 60 ) { } else Bloc d'instruction Bloc d'instruction
Les conditions imbriquées : if (niveau > 60 ) HAUT { 80 MOYEN } 60 else { BAS } Bloc d'instruction Bloc d'instruction
Les conditions imbriquées : if (niveau > 60 ) HAUT { if (seuil > 80) 80 System.out.print ("seuil haut") ; else MOYEN System.out.print ("seuil moyen") ; } 60 else { BAS System.out.print ("seuil bas") ; }
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") ; case '3' : System.out.println ("d'afficher") ; default : System.out.println ("petit problème") ; break; }
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";