Exercices Corrigés Langage C : les boucles TANTQUE ET POUR - LES TESTS - LES CONDITIONS AVEC LA FONCTION IF
Exercice 1:
L'utilisateur saisit un caractère, le programme teste s'il s'agit d'une lettre majuscule, si oui il renvoie cette lettre en minuscule, sinon il renvoie un message d'erreur.
Exercice 2:
Saisir un entier, calculer n!
Utiliser une boucle while puis une boucle for.
Quelle est la plus grande valeur possible de n, si n est déclaré int, puis unsigned ?
Exercice 3:
Résoudre
L'utilisateur saisit un caractère, le programme teste s'il s'agit d'une lettre majuscule, si oui il renvoie cette lettre en minuscule, sinon il renvoie un message d'erreur.
Exercice 2:
Saisir un entier, calculer n!
Utiliser une boucle while puis une boucle for.
Quelle est la plus grande valeur possible de n, si n est déclaré int, puis unsigned ?
Exercice 3:
Résoudre
Exercice 4:
Saisir une suite de caractères, compter et afficher le nombre de lettres e et d'espaces.
Utiliser les propriétés du tampon.
Exercice 5:
La fonction kbhit appartient à la bibliothèque conio.h. Une fonction Équivalente peut exister avec d'autres compilateurs. La fonction kbhit teste si un caractère a Été frappé au clavier.
Tant que ce n'est pas vrai kbhit renvoie 0 (ceci signifie que la valeur de la fonction kbhit est 0).
Saisir une suite de caractères, compter et afficher le nombre de lettres e et d'espaces.
Utiliser les propriétés du tampon.
Exercice 5:
La fonction kbhit appartient à la bibliothèque conio.h. Une fonction Équivalente peut exister avec d'autres compilateurs. La fonction kbhit teste si un caractère a Été frappé au clavier.
Tant que ce n'est pas vrai kbhit renvoie 0 (ceci signifie que la valeur de la fonction kbhit est 0).
Exemple:
while(kbhit() == 0) /*tant qu'aucun caractère n'a Été frappé exécuter la boucle*/
{ ..... }
{ ..... }
Cette Écriture est Équivalent à:
while(!kbhit()); /* tant que kbhit est faux, exécuter la boucle */
{ ..... }
Écrire un programme qui affiche le carré des entiers 1, 2, 3 ......, toutes les 500 ms tant qu'aucun caractère n'a été frappé au clavier. Générer la temporisation à l'aide d'une boucle for et d'un décompteur.
-------------------------------------------------------------------------------------------------------
Correction
-------------------------------------------------------------------------------------------------------Exercice 1 :
#include <stdio.h>
#include<conio.h>
void main()
{
char c;
printf("ENTRER UNE LETTRE:");
c = getchar();
if((c>='A') && (c<='Z')) printf("CETTE LETTRE EN MINUSCULE: %c\n",c);
else printf("CE N'EST PAS UNE LETTRE MAJUSCULE\n");
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
Exercice 2 :
#include <stdio.h>
#include <conio.h>
void main()
{
int n,i,fac= 1;
printf("ENTRER UN ENTIER: ");scanf("%d",&n);
for (i=1;i<=n;i++) fac= fac * i;
printf("\nn = %d n! = %d",n,fac);
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE");
getch();
}
Les entiers sont des nombres de 32 bits:
n int: n! maximum= 12!
n unsigned: n! maximum = 12!
Exercice 3 :
#include <stdio.h>
#include <conio.h>
#include <math.h>/* contient la fonction racine */
void main()
{
float a,b,c,delta,x1,x2;
/* saisie de A,B,C */
printf("\t\t\tRESOLUTION DE L'EQUATION DU SECOND DEGRE\n");
printf("\t\t\t 2\n");
printf("\t\t\t AX +BX+C=0\n\n\n");
printf("SAISIR A B C SEPARES PAR RETURN\n");
printf("A = ");scanf("%f",&a);
printf("B = ");scanf("%f",&b);
printf("C = ");scanf("%f",&c);
/* debut du calcul */
/* cas particuliers */
if((a==0)&&(b==0)&&(c==0))printf("INFINITE DE SOLUTIONS\n");
if((a==0)&&(b==0)&&(c!=0))printf("PAS DE SOLUTIONS\n");
if((a==0)&&(b!=0))printf("UNE SOLUTION: X= %f\n",-c/b);
/*cas general */
if(a!=0)
{
delta = b*b-4*a*c;
printf("DELTA= %f\n",delta);
if(delta<0)printf("DELTA NEGATIF PAS DE SOLUTION\n");
else
{
if(delta==0)printf("DELTA NUL, UNE SOLUTION X= %f\n",-b/2/a);
else{
x1= (-b+sqrt(delta))/2/a;
x2= (-b-sqrt(delta))/2/a;
printf("DELTA POSITIF DEUX SOLUTIONS\n");
printf("X1= %f X2= %f\n",x1,x2);
}
}
}
/* calculs termines */
printf("\n\nPOUR CONTINUER FRAPPER UNE TOUCHE");
getch();
}
Exercice 4 :
#include <stdio.h>
#include <conio.h>
void main()
{
char c,compt_espace= 0,compt_e= 0;
printf("ENTRER UNE PHRASE:\n");/* l'utilisateur saisit la totalite de sa phrase */
while((c=getchar())!='\n') /* lors du 1er passage, getchar ne prend */
/* en compte que le 1er caractere */
{ /* les autres sont ranges dans le tampon */
if(c=='e')compt_e++; /* et recuperes par getchar lors */
/* des autres passages */
if(c==' ')compt_espace++;
}
printf("NOMBRE DE e: %d\n",compt_e);
printf("NOMBRE D'ESPACE: %d\n",compt_espace);
printf("POUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}
Exercice 5 :
#include <stdio.h>
#include <conio.h>
void main()
{
int i = 0;
float x,tempo=5000000;
printf("POUR SORTIR DE CE PROGRAMME FRAPPER UNE TOUCHE ...\n");
do
{
printf("i = %d i*i = %d\n",i,i*i);
for(x=tempo;x>0;x--);
i++;
}
while(kbhit()==0); /* on peut aussi ‚crire while(!kbhit()); */
Article plus récent Article plus ancien