0% ont trouvé ce document utile (0 vote)
73 vues16 pages

Exercice 1: L2 Mia Correction

Le document contient des exemples de code C pour résoudre des exercices liés aux nombres narcissiques, aux nombres complexes, et à d'autres sujets mathématiques. Le code propose des fonctions pour résoudre ces problèmes de manière structurée.

Transféré par

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

Exercice 1: L2 Mia Correction

Le document contient des exemples de code C pour résoudre des exercices liés aux nombres narcissiques, aux nombres complexes, et à d'autres sujets mathématiques. Le code propose des fonctions pour résoudre ces problèmes de manière structurée.

Transféré par

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

L2 MIA CORRECTION SN 2019-2020

ALC
Exercice 1

Nombre narcissique
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

/*************** Q1 *****************/
int nombreChiffres(long N)
{
int i=1 ;
if (N<0)
{
N=-N;
}
while(N>=10)
{
N/=10;
i++;
}
return i;
}

/*************** Q2 *****************/
float narcissique(int nbr){
int reste, temp;
float somme = 0.0;
temp= nombreChiffres (nbr);

while(nbr){

reste=nbr%10;
somme =somme + pow(reste,temp);
nbr =nbr/10;
}
return somme;
}

/*************** Q3 *****************/
void netrenar(int nbr1, int nbr2){
int temp1;
if(nbr1 > nbr2 ){
temp1 = nbr1;
nbr1= nbr2;
nbr2= temp1;
}

for ( int i= nbr1 +1 ; i<nbr2; i++){


float nar= narcissique(i);
if(nar == i) {
printf("les nombres narcissiques compris entre %d et %d sont %d\n", nbr1,nbr2, i);
}
}

int main()
{

int nbre, nbrNar;

int nbre1, nbre2;


float nap;
/*************** Q1 *****************/
long N,s;
printf("entrez un nombre\n");
scanf("%ld",&N);
s=nombreChiffres(N);
printf("le nombre de chiffre(s) de %ld est %ld\n",N,s);

/************* Q2 ***********/

printf("Entrez un nombre\n");
scanf("%d",&nbre);

nbrNar= narcissique(nbre);

if (nbre == nbrNar){
printf("Votre nombre est un nombre narcissique\n");
}else{
printf("Votre nombre n'est pas un nombre narcissique\n");
}

/************* Q3 **********/
printf("Entrez le premier nombre\n");
scanf("%d",&nbre1);
printf("Entrez le second nombre\n");
scanf("%d",&nbre2);
/********** Q4 *********/
netrenar(nbre1, nbre2);

return 0;
}
Exercice 2

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
typedef struct complex complex ;
//Q1
struct complex{
double Re;
double Im;
};
//Q2
complex PrintComplex(complex z){
return(z.Re , z.Im);
}
//Q3
complex AddComplex(complex z , complex a){
return PrintComplex(z.Re+a.Re , z.Im+a.Im);
};
//Q4
complex ProdComplex(complex z , complex a){

return PrintComplex((z.Re*a.Re-z.Im*a.Im) , (z.Im*a.Re+z.Re*a.Im));


};
//Q5
complex AbsComplex(complex z){
return sqrt(z.Re*z.Re +z.Im*z.Im);
}
L2 MIA CORRECTION SN 2018-2019

ALC
Exercice 2
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int factoriel (int n){


int fact, i;
if((n==0) ||(n==1)){
fact= 1;
}
else{
fact=1;
for(i=1;i<=n; i++){
fact= fact * i;
}
}
return fact;
}

int main()
{
int n, facto;
int nombre, i;
float x, S=0;
printf("Entrer un nombre\n");
scanf("%d", &n);
facto= factoriel(n);
printf("la factorielle du nombre %d est %d\n\n", n, facto);

printf(" xxxxxx Entrer un entier pour le calcule de la somme xxxx\n\n ");


scanf("%d", &nombre);
printf("xxxxxxx Entrer un reel pour le calcule de la somme xxxxxx \n\n");
scanf("%f", &x);
for(i= 1; i<=nombre; i++){
S = S + ((pow(-1,i))* pow(x,(i+1)))/factoriel(2*i + 1);
}
printf("La somme est %f xxxx", S);
return 0;
L2 MIA CORRECTION SN 2017-2018

ALC
Exercice 1
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main ()
{
int i, j,k ;
char nom[]="christian";
printf("entrez i \n");
scanf ("%d",&i);
for (j=0 ; j<i ; j++)
{
for (k=0 ; k<j+1 ; k++)
{
if (j<9)
printf ("%c", nom[j]);
else
printf("*");
}
printf("\n");
}
return 0;
}
Exercice 2
#include<stdio.h>
#include<stdlib.h>
void initialiser(int *nbb , int *jo);
void jeu(int jo , int *nbb);
void machine_joue(int *nbb);
void utilisateur_joue(int *nbb);
void changer_joueur(int *jo);
// les fonctions
//Q5
void changer_joueur(int *jo)
{
if(*jo==2)
{ *jo=1; }
else
{ *jo=2;}

}
//Q4
void utilisateur_joue(int *nbb)
{
int billes_pris;
do
{
printf("combien de billes:\n");
scanf("%d",&billes_pris);
}
while((billes_pris <=0 ) ||(billes_pris >=4 ) || (billes_pris >*nbb));
*nbb=*nbb-billes_pris;
}

//Q3
void machine_joue(int *nbb)
{
int billes_pris , modu;
modu=*nbb%4;
switch(modu)
{
case 0: billes_pris=3 ;
break;
case 1: billes_pris=1 ;
break;
case 2: billes_pris=1 ;
break;
case 3: billes_pris=2 ;
break;
}
printf("j\' ai pris %d billes \n", billes_pris);
*nbb=*nbb-billes_pris;
}

//Q2
void jeu(int jo , int *nbb)
{
if(jo==2){
machine_joue(nbb); }
else
{ utilisateur_joue(nbb); }
}

//Q1
void initialiser(int *nbb , int *jo)
{
int rep;
printf("donnez le nombre de billes\n");
scanf("%d",nbb);
printf("choix du prenier joueur\n");
printf("\tutilisateur.:1\n");
printf("\tmachine......:2\n");
printf("qui ?\n");
scanf("%d",&rep);
switch(rep)
{
case 1: *jo=1;
break;
case 2: *jo=2;
break;
}
}

int main()
{
int finjeu=0;
int nbbilles , joueur , perdant;
initialiser(&nbbilles , &joueur);
while(!finjeu){
printf("il reste %d billes\n",nbbilles);
jeu(joueur,&nbbilles);
if(nbbilles==0){
perdant=joueur;
finjeu=1; }
else
{ changer_joueur(&joueur); }
}
if(perdant==1){
printf("domage tu as perdu\n");
}
else {
printf(" bravo tu as gagne\n ");
}
return 0;
L2 MIA CORRECTION

ALC (compilation d’antiennes épreuves)


EXERCICE 2

#include<stdio.h>
#include<stdlib.h>
int main (){
int T[50] , TPOS[50],TNEG[50];
int n , npos, nneg;
int i;
printf("entrez la dimension du tabeau (max 50):\n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("entrez l'element %d :\n",i);
scanf("%d",&T[i]);
}
printf("tableau donne\n");
for(i=0;i<n;i++){
printf("%d",T[i]);
printf("\n");
}
npos=0;
nneg=0;
for(i=0;i<n;i++){
if(T[i]>0){
TPOS[npos]=T[i];
npos++;
}
if(T[i]<0){
TNEG[nneg]=T[i];
nneg++;
}
}
printf("tableau TPOS:\n");
for(i=0;i<npos;i++){
printf("%d",TPOS[i]);
printf("\n");
}
printf("tableau TNEG:\n");
for(i=0;i<nneg;i++){
printf("%d",TNEG[i]);
printf("\n");
}
return 0;
}
EXERCICE 3

#include<math.h>
#include<stdio.h>
#include<stdlib.h>
/* Saisie des coefficients de l'equation */
void saisie (double *a, double *b, double *c);

/* resolution de l'equation: la valeur retournee donne le nombre de solutions,


* qui se trouvent dans *x1 et *x2, la valeur 3 indique que tout R
* est solution */
int resoudre (double a, double b, double c, double *x1, double *x2);

/* Affichage de la resolution avec la convention de la fonction resoudre */


void affiche (int v, double x1, double x2);

int main()
{
int val;
double a, b, c, x1,x2;

saisie(&a, &b, &c);

val = resoudre(a, b, c, &x1, &x2);

affiche(val, x1, x2);

return 0;
}

void saisie(double *a, double *b, double *c)


{
printf("a = "); scanf("%lf",a);
printf("b = "); scanf("%lf",b);
printf("c = "); scanf("%lf",c);
}

int resoudre(double a, double b, double c, double *x1, double *x2)


{
double delta;
if (a == 0.0)
{
if (b == 0.0)
{
if (c == 0.0)
{
return 3;
}
else
{
return 0;
}
}
else
{
*x1 = -c/b;
return 1;
}
}
else
{
delta = b*b - 4*a*c;
if (delta < 0)
{
return 0;
}
else if (delta == 0)
{
*x1 = -b / 2*a;
return 1;
}
else
{
*x1 = (-b + sqrt(delta)) / 2*a;
*x2 = (-b - sqrt(delta)) / 2*a;
return 2;
}
}
}

void affiche(int v, double x1, double x2)


{
switch(v)
{
case 0: printf("pas de solution reelle\n");
break;
case 1: printf("une seule solution: x1 = %f\n", x1);
break;
case 2: printf("deux solutions: x1 = %f et x2 = %f\n", x1, x2);
break;
case 3: printf("l\'ensemble de solutions est R\n");
break;
L2 MIA CORRECTION SN 2019-2020

SDA
EXECICE 1

# include <stdio.h>
# include <math.h>
int main ()
{
int XA,YA,XB,YB;
double DIST;
/*Attention:la chaine de format que nous utiliserons*/
/*s'attend à ce que les données soient séparées par*/
/*une virgule lors de l'entrée.*/
printf("entrez les coordonnées du point A:XA,YA");
scanf ("%d %d",&XA,&YA);
printf("entrez les coordonnées du point B:XB,YB");
scanf("%d %d",&XB,&YB);
DIST=sqrt(pow(XA-XB,2)+pow(YA-YB,2));
printf("La distance entre A(%d,%d) et B(%d,%d) est %.3f\n",XA,YA,XB,YB,DIST);
return 0;
}

EXECICE 2

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
struct personne
{
char nom[20];
char numero[12];
};
typedef struct personne pers;
void saisir_personne(pers *pp);
void saisir_repertoire(pers rep[] , int nb);
void afficher_repertoire(pers rep[] , int nb);
char *chercher_personne(pers rep[] , int nb , char *nom);
// les fonctions
//Q4
char *chercher_personne(pers rep[] , int nb , char *nom)
{
int i;
for (i=0 ; i<nb;i++){
if(strcmp(nom, rep[i].nom)==0)
{ return rep[i].numero; }
}
return NULL ;
}

//Q3
void afficher_repertoire(pers rep[] , int nb)
{
int i;
printf("Affichage du repertoire\n");
printf("%20s...Numero\n" ,"nom");
for(i=0 ; i<nb ; i++)
{ printf("%20s ...%s", rep[i].nom , rep[i].numero); }

//Q2
void saisir_repertoire(pers rep[] , int nb)
{
int i;
printf(" saisie du repertoire de %d personnes :\n",nb);
for(i=0;i<nb ; i++){
saisir_personne(&rep[i]);
}
}

//Q1
void saisir_personne(pers *pp)
{
printf("nom\n");
scanf("%s", pp->nom);
printf("numero\n");
scanf("%s", pp->numero);
}

int main ()
{
pers monRep[5];
int choix;
char nom[20], *pnum;
saisir_repertoire(monRep,5);
do
{
do{
printf(" Menu:\n");
printf("a= 1-afficher le contenu du repertoire\n");
printf(" b=2-chercher le numero d'une personne\n");
printf(" c=3-quiter le programme:\n");
printf(" votre choix \n");
scanf("%d",&choix); }
while(choix <1 || choix >3);
switch(choix){
case 1 : afficher_repertoire(monRep,5);
break;
case 2 : printf("nom a rechercher :");
scanf("%s",nom);
pnum=chercher_personne(monRep,5,nom);
if(pnum==NULL){
printf("personne inexistante\n");}
else
{ printf("--> numero de %s: %s\n",nom, pnum); }
break;
default : break ;
}
}
while (choix!=3);
return 0;

L2 MIA CORRECTION SN 2017-2018

SDA
EXECICE 2

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//Q1
typedef struct{
int reference ;
char designation[56];
double prixUnitaire;
} Article;

//Q2
void lireArticle(Article articles[],int n){
int i;
for(i=0;i<n;i++){
printf(" entrez la reference , la designation et le prix unitaire de l'article %d\n",i+1);
scanf("%d",&articles[i].reference);
scanf("%s",articles[i].designation);
scanf("%lf",&articles[i].prixUnitaire); }
}
//Q3
void afficherArticle(Article articles[],int n){
int i;
for(i=0;i<n;i++){
printf("la reference est %d",articles[i].reference);
printf("la designation est %s",articles[i].designation);
printf("le prix unitaire est %lf",articles[i].prixUnitaire); }
}
//Q4
void supprimerArticle(Article articles[],int *n,int reference){
int i,j;
for(i=0;i<*n;i++){
if(articles[i].reference == reference){
for(j=i ; j<*n;j++){
articles[j]=articles[j+1]; }
(*n)--;
}
}
}

//Q5
void ajouterArticle(Article articles[],int *n){
printf("entrez la reference de l'article\n");
scanf("%d",&articles[*n].reference);
printf("entrez la designation de l'article\n");
scanf("%s",articles[*n].designation);
printf("entrez le prix unitaire de l'article\n");
scanf("%lf",&articles[*n].prixUnitaire);
(*n)++;
}

//Q6
void triByDesignation(Article articles[],int n){
int i,j;
Article a;
for(i=0;i<n;i++){
for(j=i;j<i;j++){
if(strcmp(articles[i].designation,articles[j].designation)==1){
a=articles[i];
articles[i]=articles[j];
articles[j]=a;
}
}
}
puts("liste des articles tries par designation :\n");
afficherArticle(articles,n);
}

//Q7
void triByPrix(Article articles[],int n){
int i,j;
Article a;
for(i=0;i<n;i++){
for(j=i;j<n;j++){
if(articles[i].prixUnitaire<articles[j].prixUnitaire){
a=articles[i];
articles[i]=articles[j];
articles[j]=a;
}
}
}
puts("liste des articles tries par prix unitaire :");
afficherArticle(articles,n);
}

//Q8
void saveArticles(Article articles[],int n){
FILE*f;
int i;
f=fopen("articles.txt","w");
if(!f){
printf("Erreur de creation du fichier!\n");
return;
}
for(i=0;i<n;i++){
fprintf(f,"%d ; %s ; %.2f\n",articles[i].reference , articles[i].designation , articles[i].prixUnitaire);
}
fclose(f);
}
//Q9
int main(){
char carac;
Article t[5],*a;
int n , choix , reference ;
do{
puts("★******menu******★\n");
puts("a: Lire les articles:\n");
puts("b: Afficher les articles classer par ordre alphabetique des designations");
puts("c: Afficher les articles du moins cher au plus cher.");
puts("d: Ajuter un nouvel article.");
puts("e: supprimer un article .");
puts("f: enregidtrer des articles.");
puts("g: Quitter le programme.");
puts("tapez votre choix .");
scanf("%s",&carac);
switch(carac){
case 'a' :
printf("donnez le nombre d'articles:");
scanf("%d",&n);
lireArticle(t,n);
break;
case 'b':
triByDesignation(t,n);
break;
case 'c':
triByPrix(t,n);
break;
case 'd':
ajouterArticle(t,&n);
break;
case 'e':
printf("entrez la reference de l'article a supprimer :");
scanf("%d",&reference);
supprimerArticle(t,&n,reference);
printf("liste des article apres suppression de l'article %d\n",reference);
afficherArticle(t,n);
break;
case 'f':
saveArticles(t,n);
printf("liste enregistree dans le fichier articles.txt\n");
break ;
case 'g':
printf("Fin du programme\n");
break;
default :
printf("choix invalide\n");
}
}
while (choix!='g');
return 0;
}

Vous aimerez peut-être aussi