Vous êtes sur la page 1sur 6

Université Mohammed Premier

Faculté des Sciences - Oujda


Master physique de la Matière et de Rayonnements (Semestre1)
2022-2023

Révision en langage C

Exercice 1

Ecrire un programme qui affiche la ou les solutions d’une équation du second degré de la
forme ax2 +bx+c.
Pour calculer la racine nous utilisons la fonction sqrt() ;

Solution

#include<stdio.h>
#include<math.h>
main()
{
/* Calcul des solutions réelles et complexes d'une équation du second degré */
int A, B, C;
double D; /* Discriminant */
printf("Calcul des solutions réelles et complexes d'une équation du second \n");
printf("degré de la forme ax^2 + bx + c = 0 \n\n");
printf("Introduisez les valeurs pour a, b, et c : ");
scanf("%i %i %i", &A, &B, &C);
/* Calcul du discriminant b^2-4ac */
D = pow(B,2) - 4.0*A*C;
/* Distinction des différents cas */
if (A==0 && B==0 && C==0) /* 0x = 0 */
printf("Tout réel est une solution de cette équation.\n");
else if (A==0 && B==0) /* Contradiction: c # 0 et c = 0 */
printf("Cette équation ne possède pas de solutions.\n");
else if (A==0) /* bx + c = 0 */
{
printf("La solution de cette équation du premier degré est :\n");
printf(" x = %.4f\n", (double)C/B);
}
else if (D<0) /* b^2-4ac < 0 */
{
printf("Les solutions complexes de cette équation sont les suivantes :\n");
printf("x1 = %.4f + i%.4f\n", (double)(-B),(double)(sqrt(-D)/(2*A))) ;
printf("x2 = %.4f + i%.4f\n", (double)(-B),(double)(-sqrt(-D)/(2*A))) ;
}
else if (D==0) /* b^2-4ac = 0 */
{
printf("Cette équation a une seule solution réelle :\n");
printf(" x = %.4f\n", (double)-B/(2*A));
Université Mohammed Premier
Faculté des Sciences - Oujda
Master physique de la Matière et de Rayonnements (Semestre1)
2022-2023

}
else /* b^2-4ac > 0 */
{
printf("Les solutions réelles de cette équation sont :\n");
printf(" x1 = %.4f\n", (double)(-B+sqrt(D))/(2*A));
printf(" x2 = %.4f\n", (double)(-B-sqrt(D))/(2*A));
}
return 0;
}

Exercice 2

Ecrire un programme en utilisant les fonctions qui demande à l’utilisateur de saisir le rayon
d’un cercle puis le programme affiche le diamètre, la surface et le périmètre.
Solution

#include <stdio.h>
float surface(float r)
{
return r*r*3.14;
}
float perimetre(float r)
{
return 2*r*3.14;
}
float diametre(float r)
{
return 2*r;
}
void main(void)
{
int r;

printf("Entrer le rayon:");
scanf("%d",&r);
Université Mohammed Premier
Faculté des Sciences - Oujda
Master physique de la Matière et de Rayonnements (Semestre1)
2022-2023

printf("\nLa surface est %f",diametre(r));


printf("\nLa surface est %f",surface(r));
printf("\nLe perimetre est %f",perimetre(r));
}
Exercice 3
Ecrire un programme qui utilise un menu pouvant effectuer les opérations suivantes: somme,
soustraction, multiplication, division, le reste d'une division entière et puissance. Après avoir
choisi l'opération, le programme doit demander à l'utilisateur d'entrer les deux termes de
l'opération, puis le programme affiche le résultat.

Solution

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

main(void)
{
double res = 0;

while (1)
{
double a;
double b;
char op;

printf("> ");
scanf("%lf %lf %c", &a, &b, &op);

if (op == 'q')
break;

switch (op)
{
case '+':
res = a + b;
break;

case '-':
res = a - b;
break;

case '*':
res = a * b;
Université Mohammed Premier
Faculté des Sciences - Oujda
Master physique de la Matière et de Rayonnements (Semestre1)
2022-2023

break;

case '/':
res = a / b;
break;

printf("%lf\n", res);
}
return 0;
}

Exercice 4

Ecrire à l'aide des pointeurs un programme qui affiche les diviseurs d’un entier positif n non
nul.

Solution

#include<stdio.h>
main()
{
int i,N;
int *nbre;
nbre=&N;

printf("Entrer le nombre :");


scanf("%d",nbre);

for(i=1;i<=*nbre;i++)
{if(*nbre%i==0)
printf("diseur : %d\n",i);
}

}
Exercice 5

Ecrire un programme en C pour trouver la longueur d'une chaîne de caractères sans utiliser la
fonction strlen().

Solution

#include<stdio.h>
Université Mohammed Premier
Faculté des Sciences - Oujda
Master physique de la Matière et de Rayonnements (Semestre1)
2022-2023

#include<string.h>
main()
{
char chaine[100];
int cpt=0,i;
printf("Entrer la chaine : ");
scanf("%s",chaine);

for(i=0;chaine[i]!='\0';i++)
cpt++;

printf("Le nombre de caractéres dans %s est de : %d",chaine,cpt);

printf("\n********Avec strlen *******\nLe nombre de caractéres dans %s est de :


%d",chaine,strlen(chaine));

}
Exercice 6

A l’aide de pointeurs, écrivez un programme qui demande à l’utilisateur de saisir 10 entiers


qu’on stocke dans un tableau Tab et les afficher par suite. Enfin, le programme détermine et
affiche le minimum du tableau Tab.

Solution

#include <stdio.h>
void main(void)
{
int N;
int Tab[100],min;
printf("Entrer la taille du tableau:");
scanf("%d",&N);
int *p;
p = Tab;
printf("******Saisie tableau*****\n");
for ( p = Tab ; p < Tab+N ; p++ )
{
Université Mohammed Premier
Faculté des Sciences - Oujda
Master physique de la Matière et de Rayonnements (Semestre1)
2022-2023

printf("Entrez une valeur: T[%d]",p-Tab);


scanf("%d",p);

}
printf("\n******Affichage tableau*****\n");
for ( p = Tab ; p < Tab+N ; p++ )
{

printf("\nT[%d] est %d",p-Tab, *p);

}
min=Tab [0];
for ( p = Tab ; p < Tab+N ; p++ )
{

if(*p<min)
min=*p;
}
printf("\n******Affichage minimum*****\n") ;
printf("Le minimum du tableau est %d",min);
}

Vous aimerez peut-être aussi