EVALUATION EN ALGORITHMIQUE TEST  10/ XX  

 

Exercice 1  6pts :

 

Kenfack Paul étudiants du GROUPE GENIUS cherche à localiser le maximum et le minimum des valeurs stockées dans un vecteur V de dimension N . Pour cela, il vous demande d’écrire un algorithme qui permet de :

  • Lire la dimension n du vecteur tel n ≤ N=50que ;
  • Lire le vecteur  à éléments réels ;
  • Chercher   MAX   et  MIN       ;
  • Afficher MAX   et  MIN   ainsi que leurs positions respectives (ou première apparition) dans V . 

Problème 16 pts:
Les étudiants du GROUPE GENIUS souhaitent écrire un algorithme pour résoudre chacun des problèmes suivants :
1- Calcul de la somme des N premiers nombres entiers.
2- Recherche du minimum et du maximum dans un ensemble de N nombres.
3- Calcul du quotient et reste de la division de deux entiers A et B sans utiliser l’opération de division.
4- Le calcul du produit de deux entiers en utilisant uniquement l'opération d'addition '+’.
5- Détermination si A est divisible par B. Avec A et B des entiers positifs.
6- Déterminer tous les diviseurs d’un entier X donné.
7- Déterminer si un nombre entier X est premier ou non.
8- Calcule la somme des chiffres qui composent un entier naturel N.

 

                                                                                                                                                                                                                                                                                                                                                  Par Joel_Yk | Contact :+237658395978

Correction :

Exercice 01 :

Algorithme Max_Min ; co www.PandaCodeur.com fco

Const 

     Nmax=50

Var 

     V : tableau [1..Nmax] de réels  ;   n, Imax, Imin : entier 

     max, min : réel

Début 

     Répéter 

       Ecrire (‘Donner la dimension du vecteur ≤ 50’) ;

       Lire (n)

Jusqu’à n>=1 ET n<=50

Pour i de 1 à n faire 

                     Lire (V[i]) co www.PandaCodeur.com fco

Fin pour

max<—V[1]

min<—V[1]

Imax<—1

Imin<—1

Pour i de 2 à n faire   

Si max<V[i] alors 

                          max<—V[i]

                          Imax<— i

                     Sinon Si min>V[i] alors 

                               min<—V[i]

                               Imin<—i

                           Fin Si

                     Fin Si

Fin pour

Écrire (‘la valeur maximale est’,max,’d’’indice’,Imax)

     Écrire (‘la valeur minimale est’,min,’d’’indice’,Imin)

                             co www.PandaCodeur.com fco

Fin.

Probleme :

1-
Algorithme Somme ;
Var I,N,S :entier ;
Début
Ecrire(‘Donner un entier N’) ; Lire(N) ;
S ←0 ;
Pour I ←1 à N-1
Faire
S ←S+I;
Fait ;
Ecrire(‘La somme des’, N,’ premiers nombres est: ’,S) ;
Fin.
2-
Algorithme MaxMin;
Var I,N,Max,Min,X :entier ;
Début
Ecrire(‘Donner un entier N>0’) ;
Répéter Lire(N) ; Jusqu’à N>0 ;
/* Lire le premier élément, puis initialiser le Min et le Max à cette valeur
Lire(X) ; Max←X ; Min←X ;
Pour I ←2 à N
Faire
/* lire la suite des éléments et mettre à jour le Min et le Max
Lire(X) ;

Si Max<X Alors Max←X

Sinon Si Min>X Alors Min←X Fsi

Fsi ;
Fait ;
Ecrire(‘Le Minimun des valeurs est: ’,Min,’ le Maximum est : ‘,Max) ;
Fin.
3-
Algorithme QuotReste ;
Var A,B,Q,R :entier ;
Début
Ecrire(‘Donner deux entiers A et B’) ;
Lire(A,B) ;
Q ←0 ; R ←A ;
Tantque R>B
Faire
Q ←Q+1;
R ←R-B;
Fait ;
Ecrire(‘Le Quotient de A/B est : ’,Q, ‘ Le reste de A/Best : ‘,R) ;
Fin.
4-
Algorithme Produit ;
Var A,B,P,I :entier ;
Début
Ecrire(‘Donner deux entiers A et B’) ;
Lire(A,B) ;
Si A=0 ou B=0
Alors P←0
Sinon P←0 ; /*initialiser le produit à 0
Pour I ←1 à B
Faire
P←P+A ;
Fait
Fsi ;
Ecrire(‘Le produit A*B est : ’,P) ;
Fin.
On peut optimiser la solution en choisissant la boucle ayant le moins d’itérations :
Algorithme Produit ;
Var A,B,P,I :entier ;
Début
Ecrire(‘Donner deux entiers A et B’) ;

Lire(A,B) ;
Si A=0 ou B=0
Alors P←0
Sinon Si A>B
Alors P←A ; /*On peut initialiser le produit à A et commencer la boucle à 2
Pour I ←2 à B
Faire
P←P+A ;
Fait
Sinon P←B ;
Pour I ←2 à A
Faire
P←P+B ;
Fait

Fsi ;
Ecrire(‘Le produit A*B est : ’,P) ;
Fin.
5-
Algorithme AdivB;
Var A,B,R :entier ;
Début
Ecrire(‘Donner deux entiers positifs A,B’) ;
Répéter Lire(A,B) ; Jusqu’à A>0 et B>0 ;
R←A ;
Tantque R≥0 Faire R ←R-B; Fait ;
Si R=0Alors Ecrire(A,’ est divisible par ‘,B)
Sinon Ecrire(A,’ est n’’est pas divisible par ‘,B)
Fsi ;
Fin.
6-
Algorithme Diviseurs ;
Var X,M,I :entier ;
Début
Ecrire(‘Donner un entier X’) ;
Lire(X) ;
Ecrire(‘Les diviseurs de ‘,X,’ sont :’) ;
/*On boucle de 1 à la moitié de X, car après la moitié il n’y a plus de diviseur sauf X
/*On peut utiliser la fonction division entière DIV et la fonction reste de cette division MOD
M←X DIV 2 ;
Pour I ←1 à M
Faire
Si X MOD I=0 Alors Ecrire(I) Fsi;
Fait ;

Ecrire(X) ;
Fin.
7-
Algorithme Premier;
Var X,M,I :entier ;
Pr :booléen ;
Début
Ecrire(‘Donner un entier X’) ;
Lire(X) ;
/*X est premier s’il a deux diviseurs distincts 1 et lui-même, attention 1 n’est pas premier.
Pr←Vrai ;
Si X=1
Alors Pr←Faux
Sinon M←X DIV 2 ;
I ←2 ;
Tantque I ≤ M et Pr
Faire /*si on trouve un diviseur on arrête la boucle
Si X MOD I=0 Alors Pr←Faux Fsi;
I ←I+1 ;
Fait
Fsi ;
Si Pr Alors Ecrire(X,’ est premier’) Sinon Ecrire(X,’ n’’est pas premier’) Fsi;
Fin.
8-
Algorithme SommeChiff;
Var N,S,R :entier ;
Début
Ecrire(‘Donner un entier naturel N’) ;
Répéter Lire(N) ; Jusqu’à N≥0 ;
S←0 ; R←0 ;
Tantque R>0
Faire S←S+R MOD 10;
R← R DIV 10;
Fait ;
Ecrire(‘La somme des chiffres qui composent ’,N,’ est :’,S) ;
Fin.

Télécharger L'exercice Sous Forme de PDF

 
  • 1 vote. Moyenne 2 sur 5.

Ajouter un commentaire

Anti-spam