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

Programmes C pour Mathématiques et Pointeurs

Ce document contient des exercices de programmation en langage C avec leurs solutions respectives. Les exercices portent sur des sujets variés comme le calcul des solutions d'une équation du second degré, la manipulation de fonctions, les opérations sur des nombres, l'utilisation de tableaux et de pointeurs.

Transféré par

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

Programmes C pour Mathématiques et Pointeurs

Ce document contient des exercices de programmation en langage C avec leurs solutions respectives. Les exercices portent sur des sujets variés comme le calcul des solutions d'une équation du second degré, la manipulation de fonctions, les opérations sur des nombres, l'utilisation de tableaux et de pointeurs.

Transféré par

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

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