Différences entre versions de « Structures de contrôle itératives en langage C »

De Didaquest
Aller à la navigationAller à la recherche
 
(25 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
[https://drive.google.com/open?id=1QJnIy9XDDJad_Zorme7IIRith_L5HDbu Carte conceptuelle]
 
{{Widget:Fiche-Conceptuelle-Haut}}
 
{{Widget:Fiche-Conceptuelle-Haut}}
 
+
[[File:boucles.png|center|thumb|650px]]
 
= {{Widget:Traduction-Fiche}} =
 
= {{Widget:Traduction-Fiche}} =
  
Ligne 28 : Ligne 29 :
 
|Domaine-Discipline-Thématique-1= Informatique                           
 
|Domaine-Discipline-Thématique-1= Informatique                           
 
|Domaine-Discipline-Thématique-2= Programmation
 
|Domaine-Discipline-Thématique-2= Programmation
|Domaine-Discipline-Thématique-3= Structures de contrôle
+
|Domaine-Discipline-Thématique-3= Structures de contrôle itératives
|Domaine-Discipline-Thématique-4=  
+
|Domaine-Discipline-Thématique-4= Boucle
|Domaine-Discipline-Thématique-5=
+
|Domaine-Discipline-Thématique-5= Itération
 
|Domaine-Discipline-Thématique-6=
 
|Domaine-Discipline-Thématique-6=
 
|Domaine-Discipline-Thématique-7=
 
|Domaine-Discipline-Thématique-7=
Ligne 48 : Ligne 49 :
 
|Définition= <!-- Ne pas Modifier  -->
 
|Définition= <!-- Ne pas Modifier  -->
 
<!-- *************** Commercez les modifications *******************-->
 
<!-- *************** Commercez les modifications *******************-->
 +
Le C présente trois types de structures de contrôle itératives, c'est-à-dire, de structures de contrôle permettant de réaliser ce qu'on appelle des boucles ; autrement dit, d'exécuter plusieurs fois une portion de code, généralement jusqu'à ce qu'une condition soit fausse.
 +
Le plus grand danger que présentent les itératives est que leur condition de sortie de boucle ne soit jamais fausse... dans un tel cas, on ne sort jamais de la boucle, et on réalise une "boucle infinie".
  
===I-Définition d'une structure de contrôle itérative complète===
+
<!-- ******** Fin Définition Générale ***************************** -->
 +
<!-- ************* Début Définition Approfondissement ************* -->
 +
<!-- Approfondissement des définitions à travers des classifications, des catégorisations, des typologies, ou autre.... -->
 +
|Typologie= <!------------------------------------ Ne pas Modifier  -->
 +
<!-- ****************** Commercez les modifications ****************-->
 +
===Définition d'une structure de contrôle itérative complète===
 
Un résultat a une définition itérative complète s'il est la répétition d'une suite d'instructions, un nombre fini de fois connu à l'avance [https://www.kiteb.net/education/informatique/programmation/scientifiques/fiches/fiche-structures-iteratives.pdf].
 
Un résultat a une définition itérative complète s'il est la répétition d'une suite d'instructions, un nombre fini de fois connu à l'avance [https://www.kiteb.net/education/informatique/programmation/scientifiques/fiches/fiche-structures-iteratives.pdf].
  
Ligne 59 : Ligne 67 :
  
  
===II-Définition d'une structure de contrôle itérative à condition d'arrêt===
+
===Définition d'une structure de contrôle itérative à condition d'arrêt===
 
Un résultat a une définition itérative à condition d'arrêt s'il est la répétition d'une suite d'instruction et l'arrêt est géré par une condition [https://www.kiteb.net/education/informatique/programmation/scientifiques/fiches/fiche-structures-iteratives.pdf].
 
Un résultat a une définition itérative à condition d'arrêt s'il est la répétition d'une suite d'instruction et l'arrêt est géré par une condition [https://www.kiteb.net/education/informatique/programmation/scientifiques/fiches/fiche-structures-iteratives.pdf].
 
#'''La boucle "Tant que"'''[[File:while.png|center|thumb|250px|Syntaxe de la structure de contrôle itérative à condition d'arrêt "Tant que" en langage C]]
 
#'''La boucle "Tant que"'''[[File:while.png|center|thumb|250px|Syntaxe de la structure de contrôle itérative à condition d'arrêt "Tant que" en langage C]]
 
#'''La structure "Répéter ...Tant que"'''[[File:do while.png|center|thumb|250px|Syntaxe de la structure de contrôle itérative à condition d'arrêt "Répéter...Tant que" en langage C]]
 
#'''La structure "Répéter ...Tant que"'''[[File:do while.png|center|thumb|250px|Syntaxe de la structure de contrôle itérative à condition d'arrêt "Répéter...Tant que" en langage C]]
  
<!-- ******** Fin Définition Générale ***************************** -->
 
<!-- ************* Début Définition Approfondissement ************* -->
 
<!-- Approfondissement des définitions à travers des classifications, des catégorisations, des typologies, ou autre.... -->
 
|Typologie= <!------------------------------------ Ne pas Modifier  -->
 
<!-- ****************** Commercez les modifications ****************-->
 
*......................................................................
 
.......................................................................
 
.......................................................................
 
.......................................................................
 
*......................................................................
 
.......................................................................
 
.......................................................................
 
 
}}<!-- ******** Fin Fiche Didactique Définition ******************* -->
 
}}<!-- ******** Fin Fiche Didactique Définition ******************* -->
  
Ligne 141 : Ligne 137 :
 
<!-- Compléter les pointillés et Supprimer les lignes non utilisées          -->
 
<!-- Compléter les pointillés et Supprimer les lignes non utilisées          -->
 
<!-- ****************** Commercez les modifications ***********************  -->
 
<!-- ****************** Commercez les modifications ***********************  -->
 +
<pre>
 +
Exemple d'utilisation de la boucle "for" :
 +
 +
Enoncé : afficher la table de multiplication de 7 :
 +
 +
Code :
 +
int j;
 +
for(j=1;j<=9;j++)
 +
printf("%i * 7 = %i \n";j;j*7);
 +
 +
Résultat :
 +
1 * 7 = 7
 +
2 * 7 = 14
 +
3 * 7 = 21
 +
4 * 7 = 25
 +
5 * 7 = 35
 +
6 * 7 = 42
 +
7 * 7 = 49
 +
8 * 7 = 56
 +
9 * 7 = 63
 +
 +
</pre>
 +
<pre>
 +
Exemple d'utilisation de la boucle "while" :
 +
 +
Enoncé : chercher le plus grand diviseur du nombre 215 (à part lui même) :
 +
 +
Code :
 +
int diviseur=214;
 +
while(215 % diviseur != 0)
 +
{diviseur--;}
 +
printf("Le plus grand diviseur de 215 est : %i.",diviseur);
 +
 +
Résultat :
 +
Le plus grand diviseur de 215 est : 45.
 +
</pre>
 +
<pre>
 +
Exemple d'utilisation de la boucle "do...while" :
 +
 +
Enoncé : A travers des saisies répétitives, un utilisateur doit essayer de trouver un chiffre secret (<=20) :
 +
 +
Code :
 +
int chiffre_Saisie, chiffre_Secret=15;
 +
do
 +
{printf("Essayer de trouver le chiffre secret <=20 : \n");
 +
scanf("%i",&chiffre_Saisi);
 +
}while(chiffre_Saisi != chiffre_Secret);
 +
printf("\n Bravo, chiffre secret rouvé !");
 +
Résultat :
 +
 +
Essayer de trouver le chiffre secret :
 +
4 // 1er essai de l'utilisateur
 +
Essayer de trouver le chiffre secret :
 +
17 // 2ème essai de l'utilisateur
 +
Essayer de trouver le chiffre secret :
 +
2 // 3ème essai de l'utilisateur
 +
Essayer de trouver le chiffre secret :
 +
15 // 4ème essai de l'utilisateur
 +
Bravo, chiffre secret trouvé !
 +
</pre>
  
*...............................................................................
 
................................................................................
 
................................................................................
 
................................................................................
 
*...............................................................................
 
................................................................................
 
................................................................................
 
................................................................................
 
 
}}<!--************** Fin Fiche Didactique Explicitations ******************* -->
 
}}<!--************** Fin Fiche Didactique Explicitations ******************* -->
 
  
 
= {{Widget:Erreurs-confusions-Fiche}} =
 
= {{Widget:Erreurs-confusions-Fiche}} =
Ligne 163 : Ligne 210 :
 
<!-- ****************** Commercez les modifications *************************-->
 
<!-- ****************** Commercez les modifications *************************-->
  
* Confusion entre [["Répéter ... tant que" et "Répéter...jusqu'à]]
+
* Confusion entre [["Répéter ... tant que(condition)" et "Répéter...jusqu'à(condition)"]]
* Confusion entre [[....... et ........]]
+
Pour "Répéter ... tant que(condition)", un bloc d'instructions va être répété tant que la "condition" est ''vraie''.
* Erreur fréquente:Les trois structures ont des utilisations exclusives.
+
Autrement dit, la boucle s'arrête quand "condition" devient ''fausse'' : initialement "condition" est ''vraie'', et à un certain moment elle va devenir ''fausse''.
* Erreur fréquente: Pas du compteur est toujours égal à 1.
+
Pour "Répéter...jusqu'à(condition)", un bloc d'instructions va être répété tant que la "condition" est ''fausse''.
* Erreur fréquente: Oubli de l'initialisation du compteur quand on l'utilise dans "while" ou "do...while".
+
Autrement dit, la boucle s'arrête quand "condition" devient ''vraie'' : initialement "condition" est ''fausse'', et à un certain moment elle va devenir ''vraie''.
* Erreur fréquente: Oubli de l'incrémentation/décrémentation du compteur quand on l'utilise dans "while" ou "do...while".
+
[[File:Tant_que_vs_jusquà.PNG|center|thumb|650px]]
* Erreur fréquente:Erreur syntaxique : on oublie, fréquemment de saisir ";" à la fin de la structure "do ... while" :
+
 
 +
* '''Erreur fréquente :''' pas du compteur est obligatoirement égal à 1.
 +
* '''Erreur fréquente :''' oubli de l'initialisation du compteur quand on l'utilise dans "while" ou "do...while".
 +
* '''Erreur fréquente : ''' oubli de l'incrémentation/décrémentation du compteur quand on l'utilise dans "while" ou "do...while".
 +
* '''Erreur fréquente : erreur syntaxique : on oublie fréquemment de saisir ";" à la fin de la structure "do ... while".
 
}}<!-- ************** Fin Fiche Didactique Conceptions ********************* -->
 
}}<!-- ************** Fin Fiche Didactique Conceptions ********************* -->
 
  
 
= {{Widget:Questions-possibles-Fiche}} =
 
= {{Widget:Questions-possibles-Fiche}} =
Ligne 182 : Ligne 232 :
 
<!-- ************ Commercez les modifications *********************-->
 
<!-- ************ Commercez les modifications *********************-->
  
* [[.................. ?]]
+
* [[Les trois structures ont-elles des usages exclusifs ?]]
* [[.................. ?]]
+
La réponse est non. Autrement dit, dans pas mal de cas, ce qu'on peut faire avec une boucle, on peut aussi le faire avec les deux autres.
* [[.................. ?]]
+
<pre>
 +
Exemple : Afficher les numéros de 1 à 10.
 +
 
 +
Avec la boucle "for" // Avec la boucle "while" //  Avec la boucle "do...while"
 +
for(j=1;j<=10;j++)  // j=1                    // j=1
 +
{                    // while(j<=10)          // do
 +
printf("%i",j);    // {                      // {
 +
}                    //  printf("%i",j);      //  printf("%i",j);
 +
                    //  j++;                  //  j++;
 +
                    // }                      // }while(j<=10);
 +
</pre>
 +
 
 +
* [[Peut-on avoir des boucles de la même forme imbriquées ?]]
 +
* [[Peut-on avoir des boucles de formes différentes imbriquées ?]]
 +
* [[Est ce qu'on peut avoir plus qu'une condition dans la forme "for" ?]]
  
 
}}<!-- ******** Fin Fiche Didactique Questions ******************* -->
 
}}<!-- ******** Fin Fiche Didactique Questions ******************* -->
Ligne 201 : Ligne 265 :
 
<!-- ****************** Commercez les modifications **************************  -->
 
<!-- ****************** Commercez les modifications **************************  -->
  
* ..................                                               
+
* Avant de démarrer le cours, il faudrait mieux commencer par une activité simple, un questionnaire par exemple, contenant quelques mots clés pour que les apprenants soient familiarisés avec d'une façon souple.                                            
:* .................
+
* Pour résoudre les exercices, il est déconseillé de donner rapidement la réponse. Au contraire, inciter les apprenants à utiliser les trois formes de boucles pour qu'ils dégagent tous seuls la solution adéquate
* ..................                                               
 
:* .................                                               
 
  
 
}}<!-- ************************* Fin Idées-Enseignement ********************** -->
 
}}<!-- ************************* Fin Idées-Enseignement ********************** -->
 
  
 
== {{Widget:Aides et astuces-Fiche}} ==
 
== {{Widget:Aides et astuces-Fiche}} ==
Ligne 218 : Ligne 279 :
 
<!-- ****************** Commercez les modifications **************************  -->
 
<!-- ****************** Commercez les modifications **************************  -->
  
* ..................                                               
+
* Pour le développement en langage C, voici quelques exemples d'environnements de développement intégrés (EDI) :
:* .................
+
[https://www.eclipse.org/ide/ Eclipse], [http://www.codeblocks.org/ Code::Blocks] ou [https://codelite.org/ CodeLite].                                              
* ..................                                               
+
                                     
:* .................                                               
 
  
 
}}<!-- ************************* Fin Astuces-Enseignement ********************** -->
 
}}<!-- ************************* Fin Astuces-Enseignement ********************** -->
Ligne 233 : Ligne 293 :
 
<!-- ****************** Commercez les modifications ************-->
 
<!-- ****************** Commercez les modifications ************-->
  
:* ..................
+
:* https://fr.wikiversity.org/wiki/Introduction_au_langage_C/Structures_r%C3%A9p%C3%A9titives
:* ..................
+
:* chrome-extension://cbnaodkpfinfiipjblikofhlhlcickei/src/pdfviewer/web/viewer.html?file=https://depinfo.u-cergy.fr/~tliu/ens/intro/td-intro-info-5.pdf
:* ..................
+
:* https://fr.wikibooks.org/wiki/Programmation_C/It%C3%A9rations
  
 
}}<!-- ************ Fin Liens Education ********************** -->
 
}}<!-- ************ Fin Liens Education ********************** -->
Ligne 249 : Ligne 309 :
 
<!-- ****************** Commercez les modifications *********************-->
 
<!-- ****************** Commercez les modifications *********************-->
  
* ..................                                               
+
*« Chapitre 9 - Structures de contrôle (if, while, for, switch, ...) - Tutorial C - Calculatrices TI - Squalenet.net ». s. d. Consulté le 13 mai 2020. https://www.squalenet.net/fr/ti/tutorial_c/9-controle-if-while-for-switch.php5.
* ..................
+
 
* ..................                                               
+
*« Les boucles - Le langage C • Tutoriels • Zeste de Savoir ». s. d. Zeste de Savoir. Consulté le 31 mars 2020. https://zestedesavoir.com/tutoriels/755/le-langage-c-1/1042_les-bases-du-langage-c/4295_les-boucles/.
* ..................                                               
 
  
 +
                                         
 
}}<!-- ************* Fin Fiche Didactique Bibliographie *************** -->
 
}}<!-- ************* Fin Fiche Didactique Bibliographie *************** -->
  
 
{{Widget:Fiche-Conceptuelle-Bas}}
 
{{Widget:Fiche-Conceptuelle-Bas}}

Version actuelle datée du 13 mai 2020 à 12:03

Carte conceptuelle


Autres Fiches Conceptuelles
Posez une Question


(+)

Target Icon.pngVotre Publicité sur le Réseau Target Icon.png

Boucles.png

Puce-didaquest.png Traduction


More-didaquest.png Traductions


Puce-didaquest.png Définition

Domaine, Discipline, Thématique


More-didaquest.png Justification


Définition écrite


Définition d'une structure de contrôle itérative complète

Un résultat a une définition itérative complète s'il est la répétition d'une suite d'instructions, un nombre fini de fois connu à l'avance [1].

Une boucle for se décompose en trois parties (ou trois clauses) : - une expression et/ou une déclaration qui sera le plus souvent l’initialisation d’une variable ; - une condition ; - une seconde expression, qui consistera le plus souvent en l’incrémentation d’une variable.

Syntaxe de la structure de contrôle itérative complète en langage C


Définition d'une structure de contrôle itérative à condition d'arrêt

Un résultat a une définition itérative à condition d'arrêt s'il est la répétition d'une suite d'instruction et l'arrêt est géré par une condition [2].

  1. La boucle "Tant que"
    Syntaxe de la structure de contrôle itérative à condition d'arrêt "Tant que" en langage C
  2. La structure "Répéter ...Tant que"
    Syntaxe de la structure de contrôle itérative à condition d'arrêt "Répéter...Tant que" en langage C

More-didaquest.png Structures de contrôle itératives en langage C - Historique (+)


Définition graphique




Puce-didaquest.png Concepts ou notions associés


More-didaquest.png Structures de contrôle itératives en langage C - Glossaire / (+)



Puce-didaquest.png Exemples, applications, utilisations

Exemple d'utilisation de la boucle "for" : 

Enoncé : afficher la table de multiplication de 7 :

Code : 
int j;
for(j=1;j<=9;j++)
printf("%i * 7 = %i \n";j;j*7);

Résultat :
1 * 7 = 7
2 * 7 = 14
3 * 7 = 21
4 * 7 = 25
5 * 7 = 35
6 * 7 = 42
7 * 7 = 49
8 * 7 = 56
9 * 7 = 63

Exemple d'utilisation de la boucle "while" : 

Enoncé : chercher le plus grand diviseur du nombre 215 (à part lui même) :

Code :
int diviseur=214;
while(215 % diviseur != 0)
{diviseur--;}
printf("Le plus grand diviseur de 215 est : %i.",diviseur);

Résultat :
Le plus grand diviseur de 215 est : 45.
Exemple d'utilisation de la boucle "do...while" : 

Enoncé : A travers des saisies répétitives, un utilisateur doit essayer de trouver un chiffre secret (<=20) :

Code :
int chiffre_Saisie, chiffre_Secret=15;
do
{printf("Essayer de trouver le chiffre secret <=20 : \n");
 scanf("%i",&chiffre_Saisi);
}while(chiffre_Saisi != chiffre_Secret);
printf("\n Bravo, chiffre secret rouvé !");
Résultat :

Essayer de trouver le chiffre secret :
4 // 1er essai de l'utilisateur
Essayer de trouver le chiffre secret :
17 // 2ème essai de l'utilisateur
Essayer de trouver le chiffre secret :
2 // 3ème essai de l'utilisateur
Essayer de trouver le chiffre secret :
15 // 4ème essai de l'utilisateur
Bravo, chiffre secret trouvé !

(+)


Puce-didaquest.png Erreurs ou confusions éventuelles



Puce-didaquest.png Questions possibles



Puce-didaquest.png Liaisons enseignements et programmes

Idées ou Réflexions liées à son enseignement



Aides et astuces



Education: Autres liens, sites ou portails




Puce-didaquest.png Bibliographie