une Base Solide en Programmation

C++/Java/Delphi/Assembleur
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 la 2eme partie de la solution de la série 03

Aller en bas 
AuteurMessage
Asma
soldat
soldat


Féminin
Nombre de messages : 19
Age : 31
Localisation : el attaf
Loisirs : lecture
Date d'inscription : 17/05/2007

MessageSujet: la 2eme partie de la solution de la série 03   Lun 27 Aoû - 20:22

Exercice 9

Calculez le P.G.C.D. de deux entiers naturels entrés au clavier en utilisant l'algorithme d'EUCLIDE

la 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 12

Affichez 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;
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
la 2eme partie de la solution de la série 03
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» 2eme tele
» Avis : Solutions Antivirus et Sécurité 2eme parti
» Solution qui bloque les virus avant qu’ils ne se propagent
» livraison des LS150 impossible, solution de remplacement ?
» définir une résolution d'écran pour chaque compte utilisateur

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
une Base Solide en Programmation :: HBPCCLUB ACADEMY :: C :: EXERCICES-
Sauter vers: