Vous êtes sur la page 1sur 8

USTHB 2015/2016

Faculté Electronique et Informatique

Département Informatique

Module ALGO1 (LMD M/I)

Série d’exercices N°1


Exercice :

Ecrire un algorithme pour résoudre chacun des problèmes suivants :

a) Calcul du minimum de trois nombres réels.


#include <stdio.h>
#include <stdlib.h>
main ()
{float a,b,c;
printf("donner les trois valeurs");
scanf("%f %f %f",&a,&b,&c);
if(a<b)
if(c<a) printf("le minimum est %f", c);
else printf("le minimum est %f", a);
else
if(c<b) printf("le minimum est %f", c);
else printf("le minimum est %f", b);
system("pause");
}

b) Ordonner trois nombres entiers.


#include <stdio.h>
#include <stdlib.h>
main ()
{float a,b,c;
printf("donner les trois valeurs");
scanf("%f %f %f",&a,&b,&c);
if(a<b)
if(c<a) printf("le tri est %f %f %f", c,a,b);
else printf("le tri est %f %f %f", a,c,b);
else
if(c<b) printf("le tri est %f %f %f", c,b,a);
else printf("le tri est %f %f %f", b,c,a);
system("pause");
}

Exercice 6 :  

Ecrire un algorithme en utilisant l’instruction ”Cas … Vaut”  pour résoudre le problème


suivant :
Etant donné l’âge d’un enfant, on veut l’informer de sa catégorie :

o Poussin  de  6 à 7 ans


o Pupille   de  8 à  9 ans
o Minime  de 10 à 11 ans
o Cadet de 12 à 15 ans
o Junior de 16 à 18 ans
o Senior 19 ans et plus.

#include <stdio.h>
#include <stdlib.h>
int main()
{
int age;
printf("Quelle age a l'anfant ?");
scanf("%d", &age);
switch(age)
{case 6 ... 7:

printf ("poussin");
break;

case 8 ... 9:

printf ("Pupille ");


break;

case 10 ... 11:

printf ("Minime ");


break;

case 12 ... 15:


printf ("Cadet ");
break;
case 16 ... 18:
printf ("Junior ");
break;
case 19 ... 100:
printf("Senior");
break;

default : printf("age ne convient pas");


}
system("PAUSE");
return 0;
}
Exercice 10 :  

Ecrire un algorithme pour résoudre chacun des problèmes suivants :

 Soit N nombres entiers quelconques, calculer le nombre de valeurs positives, le nombre


de valeurs négatives et celui des valeurs nulles.
#include <stdio.h>
#include <stdlib.h>

int main()
{
int x,n,i;

int nb1=0, nb2=0, nb3=0;


printf("donner n\n");scanf ("%d",&n);
for ( i=0;i<n;i++)
{printf("donner une valeur \n");
scanf ("%d",&x);
if (x<0)nb1++;
else if (x==0) nb2++;
else nb3++;
}
printf("le nobre de val negatives est %d nulles %d
posetives %d\n",nb1,nb2,nb3);
system("PAUSE");
return 0;
}

 Soit N caractères quelconques, calculer le nombre d’occurrences des caractères  ‘E’ et


le nombre d’occurrences de ‘e’.

#include <stdio.h>
#include<stdlib.h>

int main ()
{int i,cpt1,n,cpt2;
char c ;
cpt1= 0 ;
cpt2=0;
printf("Donner n\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("Donner un caractere");scanf(" %c",&c);
if (c=='e' ) cpt1++;
else if(c=='E')cpt2++;
}
printf("le nombre de fois que le caractere e apparait est: %d \n"
, cpt1) ;
printf("le nombre de fois que le caractere E apparait est:
%d\n" , cpt2) ;
system("PAUSE");
return 0;
}

 Déterminer tous les diviseurs d’un entier X donné.


 Déterminer si un nombre entier X est premier ou non.

#include <stdio.h>
#include <stdlib.h>
int main ()
{
int x , i , nb=0;
do
{printf ("choisissez un nombre entier positif \n");
scanf("%d",&x);}while ( x <= 0);
printf ("les diviseurs de %d sont :\n",x);
printf ("%d\n",1);
printf ("%d\n",x);
i = 2;
while ( i <= x/2)
{
if ( x % i == 0)
{nb++;
printf ("%d\n",i);
}
i = i + 1;
}
if (nb==0)printf ("%d est premier\n",x);
else printf ("%d n'est pas premier\n",x);
system("PAUSE");
return 0;
}

Série d’exercices N°2

Exercice 1 :

Écrire les actions paramétrées (procédure ou fonction) permettant de résoudre les problèmes
suivants :

a. Calcul de la somme de deux nombres entiers.

#include <stdio.h>
#include <stdlib.h>
int somme(int a,int b)
{return a+b;}
int main()
{int x,y;
scanf("%d%d", &x,&y);
printf("la somme est %d",somme(x,y));
system("pause");
return 0;
}
b. Calcul de la factorielle de N (N !).

#include <stdio.h>
#include<stdlib.h>
long fact (int N)
{long p=1;
int i;
for(i=1;i<=N;i++)
p=p*i;
return p;
}
int main ()
{
int N,i;
long p=1;
scanf("%d",&N);
printf("Le fact est %ld\n",fact(N));
system("pause");
return 0 ;
}

c. Vérifier si un nombre entier A divise un nombre entier B.

#include <stdio.h>
#include <stdlib.h>
int divise(int x, int y)
{
if(x!=0)
if(y%x==0)return 1;
return 0;
}

int main ()
{
int a,b,c;
printf ("donner a \n");
scanf ("%d",&a);
printf ("donner b \n");
scanf ("%d",&b);
if(divise(a,b))printf ("%d divise %d", a,b);
else printf ("%d ne divise pas %d", a,b);
system ("pause");
return 0;
}
d. Calcul du quotient et du reste de la division entière de deux nombres entiers A et B.

#include <stdio.h>
#include <stdlib.h>
void quotient_reste(int a,int b)
{ int c, d;
c=a/b;
d=a%b;
printf("le quotient est %d\n",c);
printf("le reste est %d\n",d);
}
int main()
{int x,y;
printf("donner x et y\n") ;
scanf("%d%d",&x,&y);
quotient_reste(x,y);
system("pause");
return 0;
}

e. Vérifier si un caractère donné est une voyelle (voyelles : 'a', 'e', 'i', 'o', 'u', 'y'). 

#include <stdio.h>
#include <stdlib.h>

int voyelle (char c)


{c=tolower(c); // la fonction tolower rend le caractere c
minuscule
if (c=='a' || c=='e'|| c=='u'|| c=='i'|| c=='y')
return 1;
else return 0;
}

int main()
{
char x;
printf("Donner x\n");
scanf ("%c",&x);
if(voyelle(x)==1) printf("%c EST UNE VOYELLE\n",x);
else printf ("%c N EST PAS UNE VOYELLE\n",x);
system("pause");
return 0;
}

f. Permuter (échanger) le contenu de deux variables réelles.

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
void permut(int a,int b)
{int c;
c=a;
a=b;
b=c;
printf("le contenu de x est %d\n",a);
printf("le contenu de y est %d\n",b);
}
int main()
{int x,y;
printf("donner x et y\n");
scanf("%d%d",&x,&y);
permut(x,y);
system("pause");
return 0;
}

Exercice 2 :(Examen 1er semestre 2005-2006)

a) Ecrire une fonction qui retourne Vrai si le caractère passé en paramètre est égal à o ou
O (qui veut dire Oui), et Faux sinon.

#include <stdio.h>
int vrai (char c)
{if (c=='o'||c=='O')return 1;
else return 0;
}

main () {
char c;
scanf (" %c",&c);
if(vrai(c)) printf ("vrai");
else printf ("faux");
}
c) Ecrire une procédure qui permet d’afficher la table de multiplication de 1 à 9 d’un
nombre entier.

Ecrire un algorithme qui demande un nombre entier à l’utilisateur et qui ensuite affiche la
table de multiplication de 1 à 9 de ce nombre. Il faut utiliser la fonction précédente pour
permettre à l’utilisateur de fournir des nombres aussi longtemps qu’il le désire.
#include <stdio.h>
#include <stdlib.h>
int vrai(char c)
{if (c=='o' || c=='O') return 1;
else return 0;
}

void table(int a)
{int i;
for(i=1;i<=9;i++)
printf ("%d * %d = %d\n",a,i,a*i);

}
int main ()
{char cc;
int i , j ,x, nb=0;
do {printf("donner x");
scanf ("%d",&x);
table(x);
printf("voulez vous introduire un nombre si oui tapez O ou o");
scanf (" %c",&cc);
}while (vrai(cc));
system("PAUSE");
return 0;
}

Vous aimerez peut-être aussi