0% ont trouvé ce document utile (0 vote)
141 vues8 pages

TP Programmation C: Structures Répétitives

Ce document décrit différentes structures répétitives en C comme while, do while et for. Il contient des explications sur la syntaxe et des exemples de code pour chaque structure.

Transféré par

Sana Refai
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
141 vues8 pages

TP Programmation C: Structures Répétitives

Ce document décrit différentes structures répétitives en C comme while, do while et for. Il contient des explications sur la syntaxe et des exemples de code pour chaque structure.

Transféré par

Sana Refai
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation

TP 3 : Les structures répétitivesDurée : 3h

Objectif
Le but de ce TP est d'apprendre à utiliser les différentes structures conditionnelles dans un
programmeC

Manipulation 3.1 : La structure répétitive WHILE

Il s'agit de l'instruction:

Tant que (expression vraie) Faire


< BLOC D'INSTRUCTIONS >
FinTantQue

oui non
condition
vraie

bloc

d’instructions

1
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation

Syntaxe 3.1.1 Exemple 3.1.1


While (<expression>) /*Afficher 10 fois ”
<bloc d’instructions> Bonjour ” */
int cpt = 0;
while (cpt < 10)
{
printf (”
▪ <expression> peut désigner : Bonjour\n”);
cpt ++;
∙ une variable numérique. }

∙ une expression fournissant un


Autre possibilité :
résultat numérique.
/* Afficher 10 fois ”
▪ <bloc d’instructions> : Bonjour ” */
int cpt = 1;
∙ Une suite d’instructions comprise while (cpt <= 10)
{
entre {}. printf (”
∙ Une seule instruction. Bonjour\n”);
cpt ++;
▪ Tant que l ’<expression> donne une valeur }
différente de 0 le <bloc
d’instructions> est exécuté.
▪ Si l ’<expression> donne 0, l’exécution continue
avec l’instruction qui suit le
bloc.
▪ Le <bloc d’instructions> est exécuté 0 ou n fois.

Exercice 3.1.1
Ecrire un programme C qui permet de saisir un entier positif (en utilisant
« while »)

Exercice 3.1.2
Ecrire un programme C qui permet de répéter l’affichage de la question «
Voulez vous Continuez ? » jusqu’à ce que la réponse soit la lettre o ou O
pour oui et la lettre n ou N pour non, il s’arrêtera. ( en utilisant « while »)

Manipulation 3.2 : La structure répétitive do WHILE

Il s'agit de l'instruction:
Repeter
< BLOC D'INSTRUCTIONS >
TantQue (expression vraie)

2
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation

oui condition vraie non


bloc d'
instructions

suite du programme
Syntaxe 3.2.1 Exemple 3.2.1
do #include <stdio.h>
<bloc d’instructions> #include <conio.h>
#include <math.h>
While (<expression>); /* Calcul de la racine
carrée */
int main ( )
{
float Nbre ;
▪ Le <bloc d ’instructions> est exécuté au moins une do
fois et aussi longtemps que l ’<expression> {
printf (”Entrez un
fournit une valeur différente de 0. entier positif : ”);
scanf (”%d”, &Nbre);
▪ La structure do while est comme la structure while } while (Nbre < 0);
printf (”La racine
avec la différence: carrée de %.2f est
%.2f\n ”,Nbre, sqrt(Nbre));
∙ while
évalue la condition avant
getch();
d’exécuter le bloc d’instructions. }
∙ do while évalue la condition après
avoir exécuté le bloc d’instructions.

▪ En pratique, la structure do - while n'est pas si


fréquente que while; mais dans certains cas, elle
fournit une solution plus élégante.
Exercice 3.2.1
Ecrire un programme C qui permet de saisir un entier positif. (en utilisant « do
…while »)

3
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation

Exercice 3.2.2
Ecrire un programme C qui permet de répéter l’affichage de la question «
Voulez vous Continuez ? » jusqu’à ce que la réponse soit la lettre o ou O pour
oui et la lettre n ou N pour nom, il s’arrêtera. (en utilisant « do …while »)

Manipulation 3.3 : La structure répétitive for


Il s'agit de l'instruction:

Pour i =1 à n Faire

< BLOC D'INSTRUCTIONS >

FinPour

initialisation

condition de
continuité vraie
non
oui

bloc d'instructions

modification suite du programme

Syntaxe 3.3.1 Exemple 3.3.1


for (<expr1>,<expr2>;<expr3>) int n ,total=0;

<bloc d’instructions> for (n=1 ;n<11;n++)

▪ L’instruction for est équivalent à : total+=n;

<expr1>); printf(“la somme des nombres de 1 a 10 est %d\

While (<expr2>) n”,total):


{
<bloc d’instructions>
<expr3>);

4
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
}

▪ <expr1> est évaluée une fois avant le passage de la

boucle (pour initialiser les données de la boucle). ▪


<expr2> est évaluée avant chaque passage de la
boucle (pour décider si la boucle est répétée ou
non).
▪ <expr3> est évaluée à la fin de chaque passage de
la boucle (pour réinitialiser les données de la
boucle)

REMARQUE :

▪ <expr1> et <expr3> peuvent contenir plusieurs


initialisations ou réinitialisations séparées par des
virgules.
▪ Les 3 expressions <expr1>, <expr2> et <expr3> ne

portent pas forcément sur la même variable. ▪ Les 3


expressions peuvent être omises, mais pas les ‘;’.

Exercice 3.3.1
Ecrire un programme C qui permet de calculer le factoriel d’un entier n saisi au
clavier.

Exercice 3.3.2
Ecrire un programme C qui permet d’afficher les nombre pairs compris entre 0
et 100
Manipulation 3.4 : Choix de la structure répétitive
Choisir la structure qui reflète le mieux l’idée du programme :

▪ Si le bloc d’instructions ne doit pas être exécuté si la condition est fausse, alors utilisez while ou
for.

▪ Si le bloc d’instructions doit être exécuté au moins une fois, alors utilisez do while

▪ Si le nombre d’exécutions du bloc d’instructions dépend d’une ou plusieurs variables qui sont
modifiées à la fin de chaque répétition, alors utilisez for.

▪ Si le bloc d’instructions doit être exécuté aussi longtemps qu’une condition extérieure est vraie,
alors utilisez while.

5
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation

Exercice 3.4.1
Ecrire un programme C qui permet d’afficher les nombres premiers inferieurs à 100.

Exercice 3.4.2
1- Afficher le triangle isocèle suivant formé de plusieurs lignes en utilisant les
instructions de contrôle. Exemple d’exécution:
Donner le nombre de lignes : 6
*
***
*****
*******
*********
***********
2. Modifier le programme pour qu’il affiche ce triangle dans le sens inverse :

***********
*********
*******
*****
***
*

Exercice 3.4.3
Écrire un programme C qui permet de déterminer si un entier naturel donné par l'utilisateur
est un nombre parfait. On rappelle qu'un nombre est parfait s'il est égal à la somme de ses
diviseurs stricts (sauf lui-même). Ainsi par exemple, l'entier 6 est parfait car 6 = 1 + 2 + 3.

Exercice 3.4.5
Écrire un programme C qui lit deux entiers a et b puis calcule et afficha leur PGCD( Plus
grand Commun Diviseur) en utilisant la méthode suivante :
-si a= b ; PGCD(a,b) = a
-si a > b ; PGCD(a,b) = PGCD(a-b,b)
-si b > a ; PGCD(a,b) = PGCD(a,b-a)
Exemple :
PGCD(18,45)=PGCD(18,27)=PGCD(18,9)=PGCD(9,9)=9

6
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
7
S.REFAI & N.DAGHFOUS

Vous aimerez peut-être aussi