Code Nom Prénom Exercice 1: Que vont afficher les programmes suivants : (répond
Code Nom Prénom Exercice 1: Que vont afficher les programmes suivants : (répondre en face des questions) (12 pts) main() (1pt) { char a=16; int m=6 ; printf ("%d\t%d", a/m , a%m); } ----------------------------------------------------------------------------------------------------------------------- main() (1pt) { int n = 12, i = 0; for ( i =5 ; i< n ; i++) { } printf ("%d\n" ,i);} ----------------------------------------------------------------------------------------------------------------------- main() (1pt) { int n = 11, i=3 ; for ( ; i<n ; i+=4 ) printf ("%d * " , ++i ) ; } ----------------------------------------------------------------------------------------------------------------------- main() (2pts) { float a=0, b=3; int c=8; printf (" %.3f ", !a?a*=c:++b/a);} ----------------------------------------------------------------------------------------------------------------------- #define T 5 (2pts) main() { int n=12, i =0 , encore = T; do { if ( !( n % 5)) encore = i ; else printf ("%d\t" , n++); }while ( encore); } ----------------------------------------------------------------------------------------------------------------------- void permute(double a, double b) (2pts) { double tmp; tmp=a; a=b; b=tmp;} main() { float x=3.41, y=7.22 ; permute(x,y); printf ("x = %.3f\ty = %.3f", x, y) ;} ----------------------------------------------------------------------------------------------------------------------- main() (3pts) { int t[] = {-1, 2, -3, 4, -5, 6, -7}; int *p = t,*q; p+=3 ; q=p+3; *(t+5) = t[1]; printf("%d\n%d * %d", *p, *q/2, q-t);} Université Mohammed V de Rabat Faculté des Sciences Contrôle final Langage C Juin 2019 SMP4 - A 12 2 4 0.000 4 * 9 * 12 13 14 x = 3.410 y = 7.220 4 -3 * 6 Exercice 2: En langage C on peut représenter le type complexe par la structure suivante: struct cpx { double reel; double imaginaire; }; Pour rappel : pour les nombres complexes x1= a1 + j*b1 et x2= a2 + j*b2 x1+x2= (a1 + a2) + j*(b1 + b2) et x1*x2 = (a1*a2 – b1*b2) + j*(a1*b2+a2*b1) 1. Ecrire une fonction appelée somme qui retourne la somme de deux nombres complexes passés en argument. (2pts) 2. Ecrire une fonction appelée produit qui retourne le produit de deux nombres complexes passés en argument. (2pts) 3. Ecrire la fonction main qui demande à l’utilisateur de saisir deux nombres complexes, les affiche sous le format "a+jb" puis affiche un menu avec l’instruction switch …. case qui demande à l’utilisateur des saisir 1 pour l’addition et 2 pour la multiplication et 9 pour sortir du menu et en fonction de son choix calcule et affiche leur somme et leur produit en utilisant les fonctions définies en 1 et 2. (4pts) Code Nom Prénom Exercice 1: Que vont afficher les programmes suivants : (répondre en face des questions) (12 pts) main() (1pt) { char a=22; int m=7 ; printf ("%d\t%d", a/m , a%m); } ----------------------------------------------------------------------------------------------------------------------- main() (1pt) { int n = 5, i; for ( i =12 ; i>= n ; i--) ; printf ("%d\n" ,i);} ----------------------------------------------------------------------------------------------------------------------- main() (1pt) { int n = 9, i=2 ; for ( ; i<n ; i*=2 ) printf ("%d + " , i++ ) ; } ----------------------------------------------------------------------------------------------------------------------- main() (2pts) { float a=-10, b=3; int c=8; printf (" %.2f ", !a?a*=c:++b/a);} ----------------------------------------------------------------------------------------------------------------------- #define T 5 (2pts) main() { int n=3, encore = T; do { if ( !(n % 4)) encore = !T ; else printf ("%d\t" , n+=3); }while ( encore); } ----------------------------------------------------------------------------------------------------------------------- void swap(float x, float y) (2pts) { double tmp; tmp=x; x=y; y=tmp;} main() { float a=1.31, b=5.11 ; swap(a , b); printf ("a = %.3f\tb = %.3f", a, b) ;} ----------------------------------------------------------------------------------------------------------------------- main() (3pts) { char A[] = {1, -2, 3, -4, 5, -6, 7}; char *p = A,*q; p+=2 ; q=p+2; *(A+5) = A[2]; printf("%d\n%d x %d", *p, -*q/2, q-A);} UNIVERSITE MOHAMMED V - Rabat Faculté des Sciences Contrôle final Langage C Juin 2019 SMP4 - B 3 1 -0.40 2 + 6 + 4 6 9 12 a = 1.310 b = 5.110 3 -2 x 4 Exercice 2: En langage C on peut représenter le type complexe par la structure suivante: struct compx {float re; float imag; }; Pour rappel : pour les nombres complexes x1= a1 + j*b1 et x2= a2 + j*b2 x1+x2= (a1 + a2) + j*(b1 + b2) et x1*x2 = (a1*a2 – b1*b2) + j*(a1*b2+a2*b1) 1. Ecrire une fonction appelée somme qui retourne la somme de deux nombres complexes passés en argument. (2pts) Première méthode #include<stdio.h> struct cplx { float re; float img; }; struct cplx somme(struct cplx a1, struct cplx a2) { struct cplx S; S.re= a1.re+a2.re; S.img=a1.img+a2.img; return (S); } Méthode simple: #include <stdio.h> #include <conio.h> void somme(float a1, float b1, float a2, float b2) { printf("\nLa somme des deux nombres complexes:\n"); printf("x1 = %5.2f + j.%5.2f\n",a1,b1); printf("x2 = %5.2f + j.%5.2f\n",a2,b2); printf(" --------------\n"); printf("X = %5.2f + j.%5.2f\n",a1+a2,b1+b2); system("pause"); } 2. Ecrire une fonction appelée produit qui retourne le produit de deux nombres complexes passés en argument. (2pts) Première méthode struct cplx produit(struct cplx a1, struct cplx a2) { struct cplx P; P.re= a1.re*a2.re-a1.img*a2.img; P.img=a1.re*a2.img+a1.img*a2.re; return (P); } Méthode simple void produit(float a1, float b1, float a2, float b2) { printf("\nLe produit des deux nombres complexes:\n"); printf("x1 = %5.2f + j.%5.2f\n",a1,b1); printf("x2 = %5.2f + j.%5.2f\n",a2,b2); printf(" --------------\n"); printf("X = %5.2f + j.%5.2f\n",a1*a2-b1*b2,a1*b2+a2*b1); system("pause"); } 3. Ecrire la fonction main qui demande à l’utilisateur de saisir deux nombres complexes, les affiche sous le format "a+ib" puis affiche un menu avec l’instruction switch …. case qui demande à l’utilisateur des saisir 1 pour le produit et 2 pour la somme et 0 pour quitter le menu et en fonction de son choix calcule et affiche leur somme et leur produit en utilisant les fonctions définies en 1 et 2. (4pts) Première méthode int menu() { int choix; do { printf("\n\t\t--Menu--\n"); printf("\n\tPour la somme : \t1"); printf("\n\tPour le produit : \t2"); printf("\n\n\tPour quitter:\t\t9"); printf("\n\n\t\tVotre choix : "); scanf("%d",&choix); }while(choix<0||choix>9); return (choix); } int main() { struct cplx x1,x2,S,P; int choix; do { //affichage menu // system("cls"); choix=menu(); //traitement switch (choix) { case 1: printf("\nSaisir a1 :"); scanf("%f",&x1.re); printf("\nSaisir b1 :"); scanf("%f",&x1.img); printf("\nSaisir a2 :"); scanf("%f",&x2.re); printf("\nSaisir b2 :"); scanf("%f",&x2.img); S=somme(x1,x2); printf("\nS= %5.2f + j.%5.2f",S.re,S.img); break; case 2: printf("\nSaisir a1 :"); scanf("%f",&x1.re); printf("\nSaisir b1 :"); scanf("%f",&x1.img); printf("\nSaisir a2 :"); scanf("%f",&x2.re); printf("\nSaisir b2 :"); scanf("%f",&x2.img); P=produit(x1,x2); printf("\nS= %5.2f + j.%5.2f",P.re,P.img); break; case 9: printf("\nAu revoir"); } }while(choix!=9); } Méthode simple int menu() { int choix; do { printf("\n\t--Menu--\n"); printf("\n\tPour la somme : \t1"); printf("\n\tPour le produit : \t2"); printf("\n\n\tPour quitter:\t\t9"); printf("\n\n\t\tVotre choix : "); scanf("%d",&choix); }while(choix<0||choix>9); return (choix); } main() { float a1,b1,a2,b2; int choix; do { //affichage menu system("cls"); choix=menu(); //traitement switch (choix) { case 1: printf("\nSaisir a1 :"); scanf("%f",&a1); printf("\nSaisir b1 :"); scanf("%f",&b1); printf("\nSaisir a2 :"); scanf("%f",&a2); printf("\nSaisir b2 :"); scanf("%f",&b2); somme(a1,b1,a2,b2); break; case 2: printf("\nSaisir a1 :"); scanf("%f",&a1); printf("\nSaisir b1 :"); scanf("%f",&b1); printf("\nSaisir a2 :"); scanf("%f",&a2); printf("\nSaisir b2 :"); scanf("%f",&b2); produit(a1,b1,a2,b2); break; case 9: printf("\nAu revoir"); } }while(choix!=9); } uploads/Industriel/ smp4-2019-controle-final.pdf
Tags
Industrielmain() printf("\nsaisir float printf -----------------------------------------------------------------------------------------------------------------------Documents similaires
-
11
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 15, 2022
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.1062MB