Facultés des sciences appliqués Département d’informatique Licence L1 : MI (202

Facultés des sciences appliqués Département d’informatique Licence L1 : MI (2021/2022) 1 Fiche de TP 1 ASD 1 Exercice 1 : 1- surface d’un cercle main() { float r,s; // Attention la déclaration du rayon et la surface est de type réel printf("entrez la valeur de r:"); scanf("%f", &r); // ne jamais oublier le caractère & (adresse) dans scanf s=3.14*r*r; printf("la surface du cercle avec rayon r et %f \n", s); } 2- Echange entre 2 réelles : main() { float temp,a,b; // temp est une variable temporaire printf("Entrez deux entiers: "); scanf("%f%f", &a, &b); printf("\nAvant échange:\n\ta = %f\n\b = %f\n", a, b); // \n retour en ligne. \t tabulation temp=a; a = b; b = temp; printf("\nAprès échange:\n\ta = %f\n\tb = %f\n", a, b); } Exercice 2 : 1- paire ou impaire main() { int nombre; printf("Entrez la valeur du nombre : "); scanf("%d",&nombre); if (nombre % 2==0) // si accepte la division sur 2 (si le reste de la division est 0) printf("Nombre paire"); else printf("Nombre impaire"); } Facultés des sciences appliqués Département d’informatique Licence L1 : MI (2021/2022) 2 2- Minimum de 3 valeurs réelles : main() { float x, y, z; printf("entrez la valeur de x:"); scanf("%f", &x); printf("entrez la valeur de y:"); scanf("%f", &y); printf("entrez la valeur de z:"); scanf("%f", &z); if (x<y) if (x<z) printf("x=%f est minimum", x); else printf ("z=%f est minimum", z); else if (y<z) printf ("y=%f est minimum", y); else printf("z=%f est minimum", z); } 3- convertir un nombre entier en date : main() { int s, m, h, rs; printf("\n Entrez la valeur de nombre de seconds : "); scanf("%d", &s); h=s/3600; // pour trouver le nombre d’heurs m= (s%3600)/60; // pour trouver le nombre de minutes rs=(s%3600)%60; // pour trouver le nombre seconds qui reste printf("\n%d équivalente à %d heurs et %d minutes et %d seconds :\n", s, h, m, rs); } Facultés des sciences appliqués Département d’informatique Licence L1 : MI (2021/2022) 3 Exercice 3 : 1- réduction de prix main() { int age ; // âge est toujours entier float prix ; // prix est toujours réel printf("entrez l'âge : "); scanf("%d", &age); printf("entrez le prix:"); scanf("%f", &prix); if (0<=age<=2) printf("le prix à payer :%f" , prix-prix/2); else if (age<100) printf("le prix à payer :%f", prix-prix*10/100); else printf("le prix à payer est gratuit"); } 2- voyelle ou consonne ou autre main() { int i; bool t; /* t est une variable logique */ char x, v[12]={'a','e','i','o','u','y','A','E','I','O','U','Y'}, /* table des voyelle */ c[34]={'b','c','d','f','g','h','j','k','l','m','n','p','q','v','w','x','z','B','C','D','F','G','H','J','K','L','M','N','P','Q',' V','W','X','Z'}; /* table des consonnes */ printf("choisis une lettre : "); scanf("%c", &x); for (i=0;i<12;i++) if (x == v[i]) { printf("\n c'est une voyelle "); t=true; break; // break pour sortir de la boucle dès qu’on trouve } for (i=0;i<34;i++) if (x == c[i]) { printf("\n c'est une consonne"); t=true; break; // break pour sortir de la boucle dès qu’on trouve } if (t==false) printf("\n c'est une autre lettre"); } Facultés des sciences appliqués Département d’informatique Licence L1 : MI (2021/2022) 4 Fiche de TP 2 ASD 1 Exercice 2 : 1. Lire une suite de 100 entiers, calcule et affiche leur somme puis affiche le nombre de valeurs paires ainsi que le nombre de valeurs impaires de cette suite. main() { int i, valeur, somm, nbrpaire, nbrimpaire; printf("Entrez la valeur du début : "); somm=0; nbrpaire=0; nbrimpaire=0; for (i=0;i<100;i++) { scanf("%d", &valeur); somm = somm + valeur; if (valeur % 2 ==0) nbrpaire=nbrpaire+1; else nbrimpaire=nbrimpaire+1; } printf("\n La somme des valeurs: %d, le nombre des paire: %d, le nombre des impaire: %d", somm, nbrpaire, nbrimpaire); } 2. Lire une suite de caractère se terminant par le caractère ‘#’ puis affiche le nombre de lectures faites. main() { int i; char c; printf("Commencez à faire entrer les caractères : "); i=0; do /* boucle do while est exécuté au moins une fois */ { scanf("%d", &c); if (c!= '#') i = i + 1; } While (c!= '#'); /* tant que le teste est 1 on refait */ printf("\n le nombre de caracteres saisis est %d. ", i); } Facultés des sciences appliqués Département d’informatique Licence L1 : MI (2021/2022) 5 3. Lit un nombre entier N. On refait la lecture tant que ce nombre N est négatif puis affiche les 10 premiers multiples de N. main() { int i, N; char c; printf("Entrer le nombre N: "); i=0; scanf("%d", &N); while (N>=0) { printf("Les 10 premiers muliples de %d sont ", N); for (i=1;i<10;i++) printf("\n %d x %d =%d ", N, i, N*i); printf("Entrer le nombre N: "); scanf("%d", &N); } } Exercice 3 : Ecrire un algorithme permettant de calculer le P.G.C.D. de deux entiers naturels entrés au clavier. main() { int a, b, r; // reste division printf("entrer le premier entier : "); scanf("%d", &a); printf("entrer le deuxième entier : "); scanf("%d", &b); do { r=a%b; if (r!=0) { a=b; b=r; } } while (r==0); printf("\nle pgcd = %d ",b); // la résultat du pgcd sera à la fin dans la variable b } Facultés des sciences appliqués Département d’informatique Licence L1 : MI (2021/2022) 6 Exercice 4 : Ecrire un algorithme qui affiche la table de multiplication de 2, puis affiche une table de multiplication d’un nombre n donné et enfin affiche toutes les tables de multiplication de 10 à 1 de n. main() { int i; printf("la table de multiplicaion de 2 "); for (i=1;i<10;i++) // on peut aller jusqu’à 1000 printf("\n%c x %d = %d ",'2',i,2*i); // exemple pour afficher 2 x 3 = 6 } En général: main() { int i, N; printf("Entrer le nombre N: "); scanf("%d", &N); printf("la table de multiplicaion de %d ", N); for (i=1;i<10;i++) // on peut aller jusqu’à 1000 printf("\n%d x %d = %d ", N, i, N*i); } Exercice 5 1. Ecrire un algorithme qui lit un nombre n supposé entier positif, cherche ses diviseurs (sauf lui- même) puis nous renvoie le message n est un nombre parfait ou n n’est pas un nombre parfait. main() { int i, N, s; printf("Entrer le nombre N: "); scanf("%d",&N); s=0; for (i=1;i<N/2;i++) // la limite des diviseur d’un nombre c’est la moitié if (n % i == 0) s = s + i; if (s == N) printf("Le nombre %d est parfait", N); else printf("Le nombre %d est non parfait", N); } Facultés des sciences appliqués Département d’informatique Licence L1 : MI (2021/2022) 7 2. Ecrire un algorithme qui lit une suite de nombres entiers, compte les nombres parfaits parmi ces nombres et s’arrête quand il obtient 20 nombres parfaits. Utiliser l’algorithme en 1. main() { int i, N, s, tab[20], j=0; do { printf("Entrer le nombre N: "); scanf("%d", &N); s=0; for (i=1;i<N/2;i++) // la limite des diviseur d’un nombre c’est la moitié if (n % i == 0) s = s + i; if (s == N) tab[j++]=N; } While (j!=20); for (i=0;i<19;i++) printf("\nle nombre parfait %d est %d", i+1, tab[i]); } uploads/Science et Technologie/ correction-tp-asd1.pdf

  • 30
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager