0% ont trouvé ce document utile (0 vote)
60 vues6 pages

Cours Informatique2

Transféré par

ismailguesmia000
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
60 vues6 pages

Cours Informatique2

Transféré par

ismailguesmia000
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 PDF, TXT ou lisez en ligne sur Scribd

1ère Année ST- LMD

Informatique (2019/2020)

IV. Les boucles


Les boucles sont des structures qui permettent d'exécuter plusieurs fois la même série d'instructions
jusqu'à ce qu'une condition ne soit plus réalisée...
On appelle parfois ces structures instructions répétitives ou bien itérations. La façon la plus
commune de faire une boucle est de créer un compteur (une variable qui s'incrémente, c'est-à-dire
qui augmente de 1 à chaque tour de boucle) et de faire arrêter la boucle lorsque le compteur dépasse
une certaine valeur.

IV.1. La boucle for


L'instruction for permet d'exécuter plusieurs fois la même série d'instructions : c'est une boucle !
Dans sa syntaxe, il suffit de préciser le nom de la variable qui sert de compteur (et éventuellement
sa valeur de départ, la condition sur la variable pour laquelle la boucle s'arrête (basiquement une
condition qui teste si la valeur du compteur dépasse une limite) et enfin une instruction qui
incrémente (ou décrémente) le compteur.
La syntaxe de cette expression est la suivante :
for (compteur ; condition ; modification du compteur) {
liste d’instructions ;}
Par exemple:
for (i=1; i<6; i++) {
printf ("%d", i);}
Cette boucle affiche 5 fois la valeur de i, c'est-à-dire 1, 2, 3, 4, 5.
Elle commence à i=1, vérifie que i est bien inférieur à 6, etc. jusqu'à atteindre la valeur i=6, pour
laquelle la condition ne sera plus réalisée, la boucle s'interrompra et le programme continuera son
cours.
Remarque :
 il faudra toujours vérifier que la boucle a bien une condition de sortie (i.e. le compteur
s'incrémente correctement)
 une instruction printf ( ); dans votre boucle est un bon moyen pour vérifier la valeur du
compteur pas à pas en l'affichant !
 il faut bien compter le nombre de fois que l'on veut faire exécuter la boucle :
for (i=0;i<10;i++) exécute 10 fois la boucle (i de 0 à 9)
for (i=0;i<=10;i++) exécute 11 fois la boucle (i de 0 à 10)
for (i=1;i<10;i++) exécute 9 fois la boucle (i de 1 à 9)
for (i=1;i<=10;i++) exécute 10 fois la boucle (i de 1 à 10)

IV.2. La boucle while


L'instruction while représente un autre moyen d'exécuter plusieurs fois la même série
d'instructions.
La syntaxe de cette expression est la suivante :

[Link]
1ère Année ST- LMD
Informatique (2019/2020)
while (condition réalisée) {
liste d'instructions;}
Cette instruction exécute la liste d'instructions tant que (while) la condition est réalisée.
La condition de sortie pouvant être n'importe quelle structure conditionnelle, les risques de boucle
infinie (boucle dont la condition est toujours vraie) sont grands, c'est-à-dire qu'elle risque de
provoquer un plantage du programme en cours d'exécution !
Par exemple :
Cette boucle affiche 6 fois la valeur de i, c'est-à-dire 1, 2, 3, 4, 5,6.
i=1;
while (i<=6)
{printf ("%d ", i);
i=i+1 ;
}

IV.3. La boucle do…while (faire tant que)


L'instruction s'exécute, puis l'expression est évaluée. Si elle est vraie, on effectue de nouveau
l'instruction, et ainsi de suite.
La syntaxe de cette expression est la suivante :
do {
liste d'instructions;}
while (condition ) ;
Par exemple:
i=1;
do
{ printf ("%d ",i);
i=i+1;
}
while (i<=6);
Exercice 10 :
Écrire un programme qui permet d’introduire un nombre entier et afficher sa factorielle.
Exercice 11 :
Écrire un programme qui permet de calculer la somme suivante :
n
S   cos  j 
j 0

Avec : n et 𝜃 introduites par l’utilisateur.

Exercice 12 :
Écrire un programme qui permet de calculer la quantité suivante :

[Link]
1ère Année ST- LMD
Informatique (2019/2020)
n
k!
S  2
k 3 sin  k 

Solution :
#include <stdio.h>
Ex10: int main() {
#include <stdio.h> int n,i,fact;
int main ( ) printf("donner un nombre n=");
{ int n ,fact,i ; scanf("%d",&n);
printf (" entrez svp un nombre entier n= " ) ; fact=1;
scanf (" % d" , & n) ; i=1;
fact=1 ; while (i<=n)
for ( i= 1 ; i<=n ; i++ ) {
{ fact=fact*i;
fact = fact * i ; i=i+1;
} }
printf ("factorielle= %d",fact); printf("factorielle= %d",fact);
return 0; return 0;
} }

Ex11 :
#include <stdio.h>
#include <stdio.h>
#include<math.h>
#include<math.h>
int main() {
int main() {
float j,n,theta,S;
float j,n,theta,S;
printf ("entrer n =");
printf ("entrer n =");
scanf ("%f",&n);
scanf ("%f",&n);
printf("entrer l'angle theta=");
printf("entrer l'angle theta=");
scanf("%f",&theta);
scanf("%f",&theta);
S=0;
S=0;
j=0;
j=0;
while (j<=n)
do
{S=S+ cos(j*theta);
{S=S+ cos(j*theta);
j=j+1;
j=j+1;
}
}
printf("la somme S=%.3f",S);
while (j<=n);
return 0;
printf("la somme S=%.3f",S);
}
return 0;
}

[Link]
1ère Année ST- LMD
Informatique (2019/2020)
Ex12:
#include <stdio.h>
#include<math.h>

int main() {
int n,i,j,fact;
float s,theta;

printf("entrer n,theta=");
scanf("%d %f",&n,&theta);
s=2;
for(i=3;i<=n;i++)
{fact=1;
for(j=1;j<=i;j++)
{fact=fact*j;
}

s=s+(fact/sin(i*theta));
}

printf("somme= %f ",s);
return 0;
}

V. les tableaux
V.1 Définitions
Un tableau (uni-dimensionnel) A est une variable structurée formée d'un nombre entier N de
variables simples du même type, qui sont appelées les composantes du tableau. Le nombre de
composantes N est alors la dimension du tableau.

[Link]
1ère Année ST- LMD
Informatique (2019/2020)

V.2 La déclaration
int JOURS[12]={31,28,31,30,31,30,31,31,30,31,30,31};
Définit un tableau du type int de dimension 12. Les 12 composantes sont initialisées par les valeurs
respectives 31, 28, 31, ... , 31.
On peut accéder à la première composante du tableau par JOURS[0], à la deuxième composante
par JOURS[1], . . . , à la dernière composante par JOURS[11].
Note : Les éléments du tableau ne sont absolument pas initialises : ce serait une erreur de croire
qu’ils sont tous à zéro juste après la création du tableau !
Pour accéder `a la case d’indice i, on utilisera tab [i].
Exemple d’utilisation :
– tab [3] = 12 ; met la valeur 12 dans la case numéro 3 du tableau tab.
– printf ("%d", tab [3]) affiche la valeur contenue dans la case numéro 3 du tableau tab.
– tab [3] = tab [3] + 2 ; ajoute 2 à la valeur contenue dans la case numéro 3 du tableau. Puisqu’elle
contenait auparavant la valeur 12, elle contiendra à présent la valeur 14.
Exercice 14 :
écrire un programme qui permet de définir un type tableau (vecteur) de 10 éléments réels, saisir et
afficher les éléments de ce tableau.
#include <stdio.h>
int main () {
int tab [10] ; /* un tableau de 10 entiers est initialisee */
int i ;
/* On demande à l’utilisateur de remplir les 10 cases du tableau */
for (i = 0 ; i < 10 ; i = i + 1) {
printf ("Quelle valeur pour la case %d ?\n", i) ;
scanf ("%d", &tab [i]) ;
}
/* On affiche à present le tableau complet */
printf ("Voici le tableau que vous avez rempli :\n") ;
for (i = 0 ; i < 10 ; i = i + 1) {
printf ("%d ", tab [i]) ;
}
return 0 ;
}
Exercice 15 :
Écrire un programme qui permet de remplir un tableau de n éléments réels, trier ce dernier dans
un ordre croissant et afficher le tableau trié.
que ce qu’on doit modifier dans le programme pour trier le tableau dans un ordre décroissant ?

[Link]
1ère Année ST- LMD
Informatique (2019/2020)

#include <stdio.h>
int main () {
int tab [5]={5,2,9,6,1};
int i,j;
int c;
for (i = 0 ; i < 5 ; i = i + 1) {
for (j=i+1;i<5;j++){
if((tab[j])>(tab[i])){
c=tab[i];tab[i]=tab[j];tab[j]=c;
}
}
}
for (i = 0 ; i < 5 ; i = i + 1) {
printf ("%d ", tab [i]) ;}
return 0;
}

[Link]

Vous aimerez peut-être aussi