Asma soldat
Nombre de messages : 19 Age : 36 Localisation : el attaf Loisirs : lecture Date d'inscription : 17/05/2007
| Sujet: la 2eme partie de la solution de la série 03 Lun 27 Aoû - 20:22 | |
| Exercice 9Calculez le P.G.C.D. de deux entiers naturels entrés au clavier en utilisant l'algorithme d'EUCLIDEla solution: - Code:
-
#include<stdio.h> main() { int A, B; /* données */ int X, Y, RESTE; /* var. d'aide pour l'algorithme d'Euclide */[/size]
[size=12] do { printf("Entrer l'entier A (non nul) : "); scanf("%d", &A); } while(!A); do { printf("Entrer l'entier B (non nul) : "); scanf("%d", &B); } while(!B);
for (RESTE=A, X=A, Y=B ; RESTE ; X=Y, Y=RESTE) RESTE = X%Y;
printf("Le PGCD de %d et de %d est %dn", A, B, X); return 0; }
Exercice 10 (serie tp systeme exploitation 3eme année sur 4 points de la note tp 2006/2007)
Calculez le N-ième terme UN de la suite de FIBONACCI qui est donnée par la relation de récurrence: U1=1 U2=1 UN=UN-1 + UN-2 (pour N>2)
Déterminez le rang N et la valeur UN du terme maximal que l'on peut calculer si on utilise pour UN :
- le type int
- le type long
- le type double
- le type long double
la solution:
- Code:
-
#include<stdio.h> main() { int U1, U2, UN; /* pour parcourir la suite */ int N; /* rang du terme demandé */ int I; /* compteur pour la boucle */ do { printf("Rang du terme demandé : "); scanf("%d", &N); } while(N<1);
U1=U2=1; /* Initialisation des deux premiers termes */ if (N==1) UN=U1; else if (N==2) UN=U2; else { for (I=3 ; I<=N ; I++) { UN = U1+U2; U1 = U2; U2 = UN; } } printf("Valeur du terme de rang %d : %dn", N, UN); return 0; } /*Rang et terme maximal calculable en utilisant les déclarations :
int U1, U2, UN;
(spéc. de format : %d) U23 = 28657
long U1, U2, UN; (spéc. de format : %ld) U46 = 1836311903
double U1, U2, UN; (spéc. de format : %e) U1476 = 1.306989e308
long double U1, U2, UN; (spéc. de format : %Le) U23601 = 9.285655e4931*/
Exercice 11
a) Calculez la racine carrée X d'un nombre réel positif A par approximations successives en utilisant la relation de récurrence suivante: XJ+1 = (XJ + A/XJ) / 2 X1 = A
La précision du calcul J est à entrer par l'utilisateur.
b) Assurez-vous lors de l'introduction des données que la valeur pour A est un réel positif et que J est un entier naturel positif, plus petit que 50.
c) Affichez lors du calcul toutes les approximations calculées :
La 1ère approximation de la racine carrée de ... est ...
La 2e approximation de la racine carrée de ... est ...
La 3e approximation de la racine carrée de ... est ...
la solution:
- Code:
-
#include<stdio.h> main() { double A; /* donnée */ double X; /* approximation de la racine carrée de A */ int N; /* degré/précision de l'approximation */ int J; /* degré de l'approximation courante */
do { printf("Entrer le réel positif A : "); scanf("%lf", &A); } while(A<0); do { printf("Entrer le degré de l'approximation : "); scanf("%d", &N); } while(N<=0 || N>=50);
for(X=A, J=1 ; J<=N ; J++) { X = (X + A/X) / 2; printf("La %2d%s approximation de la racine carrée" " de %.2f est %.2fn", J, (J==1)?"ère":"e", A, X); } return 0; }
[size=12]Exercice 12Affichez un triangle isocèle formé d'étoiles de N lignes (N est fourni au clavier): - Code:
-
#include <stdio.h> main() { int LIG; /* nombre de lignes */ int L; /* compteur des lignes */ int ESP; /* nombre d'espaces */ int I; /* compteur des caractères */ do { printf("Nombres de lignes : "); scanf("%d", &LIG); } while (LIG<1 || LIG>20); for (L=0 ; L<LIG ; L++) { ESP = LIG-L-1; for (I=0 ; I<ESP ; I++) putchar(' '); for (I=0 ; I<2*L+1 ; I++) putchar('*'); putchar('\n'); } return 0; } Exercice 13:Affiche la table des produits pour N variant de 1 à 10 : - Code:
-
#include <stdio.h> main() { const int MAX = 10; /* nombre de lignes et de colonnes */ int I; /* compteur des lignes */ int J; /* compteur des colonnes */ /* Affichage de l'en-tête */ printf(" X*Y I"); for (J=0 ; J<=MAX ; J++) printf("%4d", J); printf("\n"); printf("------"); for (J=0 ; J<=MAX ; J++) printf("----"); printf("\n"); /* Affichage du tableau */ for (I=0 ; I<=MAX ; I++) { printf("%3d I", I); for (J=0 ; J<=MAX ; J++) printf("%4d", I*J); printf("\n"); } return 0; }
| |
|