Pages - Menu

Pages

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
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).

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()); */


                           

3 commentaires: