Les structures alternatives et répétitives en C - Programmation Maroc

 Programmation Maroc

le chemin vers la programmation

Programmation Maroc

mercredi 27 mai 2020

Les structures alternatives et répétitives en C

                           

                              

                      ***  Les  structures alternatives et répétitives *** 

1) Les structures alternatives 
1-1) Introduction :
Contrairement  au traitement séquentiel, la structure alternative ou conditionnelle permet d’exécuter ou non une série d’instructions selon la valeur d’une condition.
1-2)  La structure    if {}   ou    if {} else {}
Syntaxe : 










Une condition est une expression  logique  ou une variable logique évaluée à  Vrai ou faux. La condition est évaluée. Si  elle est vraie, la série d’instruction(s)1 est exécutée et l’ensemble d’instruction(s) 2 est ignoré, la machine sautera directement à la première instruction située  après cette structure.
De  même, au cas où la condition  était fausse la machine saute directement à la première ligne située après le  else et exécute l’ensemble d’instruction2.

Exercice d’application 1
Ecrire un programme  qui affiche si un nombre entier  saisi au clavier est pair ou impair.
















Remarque : il existe aussi un autre type de condition c’est la condition composées.
Certains problèmes exigent  de formuler des conditions qui ne peuvent être exprimées sous la forme simple, par exemple la condition  de  note  de devoir doit être inclus dans  l’intervalle [0, 20],  cette  condition est composée de deux conditions simples qui  sont   note 0    et   note 20

Exercice d’application 2
Ecrire  un programme qui permet de faire  une remarque d’une note saisi au clavier ( si la note supérieur  à 10  alors on affiche  validé sinon non validé  (NB : la note comprise entre 0 et 20 ! )


          


     














Exercice 1:
Ecrire un programme  qui demande deux nombres m et n à  l’utilisateur et l’informe ensuite si le produit  de ces deux nombres est positif ou négatif. On inclut   dans le programme  le cas  où le produit peut être nul.



 

                         


















Exercice 2:
Une boutique propose à ces clients, une réduction de 15% pour les montants d’achat supérieurs à 200 dh. Ecrire un programme permettant de saisir le prix total HT et de calculer le montant TTC en prenant en compte la réduction et la TVA=20%.



 


                                              
















1-3)  Structure à choix multiples   ( Switch )
La condition  if... else  que l'on vient de voir est le type de condition le plus souvent utilisé. Toutefois, le  if... else  peut s'avérer quelque peu… répétitif : Prenons cet exemple : 

















Pour résoudre ce problème de la répétition de  if  else   if  else …. plusieurs fois. On utilise une nouvelle structure  à choix multiples. Cette  structure conditionnelle permet de choisir le traitement à effectuer en fonction  de la valeur ou de l’intervalle de valeurs d’une variable ou  d’une expression.


Syntaxe :  




                    












Lorsque l’ordinateur rencontre cette instruction, il vérifie la valeur de la variable, et il la compare  aux différentes valeurs.  
Les valeurs sont évaluées  dans l’ordre, les unes après les autres, et une fois la valeur de variable  est vérifiée l’action associée  est exécutée. On peut utiliser une instruction default  (facultative), dont l’action sera exécutée si aucune des valeurs évaluées n’a pas été remplie.

Exercice d’application :
Ecrire un programme  permettant d’afficher le mois en lettre selon le  numéro saisi  au clavier  (janvier=1  ,  février =2  …….. décembre = 12).




























Remarque : Vous devez mettre une instruction break ;   à la fin de chaque cas. Pour ignorer les  instructions en dessous ! L'instruction break ;  commande en fait à l'ordinateur de « sortir » des accolades. Et  instruction  defaulf ;   sera exécutée si aucune des valeurs  évaluées n’a pas été remplie.

2) Les Structures  répétitives 
2-1) Introduction
Prenons d’une saisie au clavier, par exemple, on pose une question à laquelle doit répondre par  « oui » ou « non ». 
L’utilisateur risque de taper autre chose (une autre lettre), le programme peut soit planter par  une erreur d’exécution soit dérouler normalement jusqu'au bout, mais en produisant des  résultats fantaisistes.
Pour éviter ce problème, on peut mettre en place un contrôle de saisie pour vérifier que les données entrées au clavier correspondent bien à celles attendues par le programme.



 














!!! Le programme  ci-dessus résout le problème si on se trompe qu’une  seule fois, et on fait entrer une valeur correcte à la deuxième demande. Sinon en cas de deuxième  erreur, il faudrait rajouter un  «  if  ». Et ainsi de suite, on peut rajouter des  centaines  de  «  if  » 

* La solution à ce problème consiste à utiliser une structure répétitive.
Une structure répétitive, encore appelée boucle, est utilisée quand une instruction ou une liste d’instruction, doit être répétée plusieurs fois. La répétition est soumise à une condition.

 
2-2) La boucle while
La boucle while  permet de répéter un traitement tant que la condition est vraie.

Syntaxe :   








==> L’exécution de la boule dépend de la valeur de la condition. Si est vrai, le programme exécute les instructions qui suivent, jusqu’à ce qu’il  rencontre la accolade  }. Il retourne ensuite sur la ligne du while, procède au même examen, et ainsi de suite.
==> La boucle ne s’arrête que lorsque prend la valeur fausse, et dans ce cas le programme poursuit son exécution après  la boucle  « sortir des accolades ».

Exemple:




 
















Remarque :  Si la  structure   while   contient la condition ne devient jamais fausse. Le programme tourne dans une boucle infinie et n’en sort plus.


Exemple :













Dans cet exemple nous avons  une boucle infinie. L’ordinateur ne s’arrêtera jamais d’afficher le message Bonsoir  car la variable i qui est testée dans la condition n’est jamais incrémenter. Alors pour  résoudre  le problème de boucle infinie dans ce cas-là, on incrémente la variable i à chaque tour de boucle  pour afficher   Bonsoir  10 fois exactement.  



 














Exercice 1
Ecrire un programme  qui calcule la somme  S = 1+2+3+4+……..+ 10. Utilisant la boucle while.




















Exercice 2 
Ecrire un programme qui calcule la somme   S= 1+2+3+4+……..+ N,  où N saisi par l’utilisateur. 




















2-3)  La boucle  for

La boucle  for  permet de répéter une liste d’instructions un nombre connu de fois.
Syntaxe :







Exemple:

      


Cet exemple  permet d’afficher le message bonjour 10  fois, et tant que la condition est vraie la boucle répète l’exécution des instructions qui se trouvent  entre les accolades. 
==> La partie d’initialisation  est de type entier. Elle est initialisée par la valeur initiale, la partie instruction(s) augmente cette valeur par  1 automatiquement à  chaque tour de  boucle  jusqu'à la valeur finale.
==> Lorsque la valeur compteur vaut la valeur finale, le traitement est exécuté une seule  fois puis le programme sort de la boucle.

Exemple:


 

 










Exercice 1 
Ecrire un programme  qui calcule   S= 1+2+3+4+……..+ 10. Utilisant la boucle for.



















Exercice 2   
Ecrire un programme qui calcule  S= 1+2+3+4+……..+ N. Utilisant la boucle for.


     
Exercice 3
Ecrire un programme  qui affiche la table de multiplication de 5. Utilisant la boucle for.



Exercice 4
Ecrire un programme qui affiche la table de multiplication d’un  entier saisie par l’utilisateur, Utilisant la boucle for.




2-4) La  boucle   do ….While
Cette boucle permet de répéter les instructions qui se trouvent entre les accolades tant que la condition est vraie.
Remarque : Cette boucle ne s’utilise en général que pour des menus, elle est dangereuse car il  n’y a pas de vérification de la condition avant  d’y entrer.
Ce type de boucle est  très  similaire à while, bien qu’un peu moins  utilisé en général.
La seule chose qui  change en fait  par rapport  à while, c'est  la position de la condition.  Au li eu  d'être au début  de la boucle, la condition est  à la fin:


Syntaxe : 










la boucle while  pourrait  très  bien ne jamais  être exécutée si  la condition est  fausse dès  le départ. Par exemple, si la condition est fausse  dès  le début  et  on ne serait  jamais  rentré   dans  la boucle. et Pour la boucle do… while, c'est  différent: cette boucle s'exécutera toujours  au moins  une fois même si la condition est fausse.
 
Il  est  donc  parfois  utile de faire des  boucles  de ce type, pour s'assurer que l'on rentre au moins  une fois  dans  la  boucle. 

!!!  N'oubliez  pas  de mettre un point-virgule  après  le while, si non votre programme plantera à la compilation !

Exemple:
En utilisant  la boucle do…..while, on écrit  un programme  qui affiche Bonjour 10 fois.




















Exercice 1
Ecrire un programme qui calcule la somme  S= 1+2+3+…+ 10. Utilisant la boucle  do…..while.























Exercice 2
Ecrire un programme  qui affiche la table de multiplication de 5. Utilisant la boucle  do …. While.



       

















                          


Aucun commentaire:

Publier un commentaire