Exercices Algorithme

Exercice 1 Les Tableaux et Chaines de caractères Corrigé

Soit un vecteur T (tableau à une dimension) contenant N nombres entiers (N≤100). Ecrire les algorithmes pour :

  1. Détermine le minimum, le maximum et la moyenne des éléments d’un tableau T
  2. Calcule le produit de tous les éléments de T ainsi que le nombre de valeurs strictement positives.
  3. Calcule la somme et le produit scalaire de deux vecteurs (T1 et T2).
  4. Détermine les positions de l’apparition d’une valeur dans un vecteur T.
  5. Inverse le contenu d’un vecteur T.
  6. Supprime toutes les valeurs nulles d'un vecteur T.
  7. Met les valeurs négatives au début et les valeurs positives à la fin en utilisant un seul tableau.
1-	Algorithme MinMax ;
Var	T :Tableau[1..100] de entier ;
I,N,Max,Min,S :entier ;
Moy :reel ;
 
Debut
 

/ lecture de la taille exacte
Ecrire(‘Donner la taille du tableau N≤100’) ;
Repeter Lire(N) Jusqu’à N>0 et N≤100 ;

/ Lecture des éléments de T
Pour I←1 à N Faire Lire(T[I]) ; Fait ;

/ Initialisation
Min←T[1] ; Max←T[1] ; S←0 ;
Pour I←1 à N Faire
 Si Max<T[I] Alors Max←T[I] Fsi ;
 Si Min>T[I] Alors Min←T[I] Fsi ;
 S←S+ T[I] ;
Fait ;
 Moy←S/N ;
Ecrire(‘Maximum=’,Max,’ Minimum=’,Min,’ Moyenne=’,Moy) ;
Fin.

2-	Algorithme Prod ;

Var	T :Tableau[1..100] de entier ; I,N,P,Nbp :entier ;
 
Debut
 
/ lecture de la taille exacte
Ecrire(‘Donner la taille du tableau N≤100’) ;
Repeter Lire(N) Jusqu’à N>0 et N≤100 ;
/ Initialisation P←1 ; Nbp←0 ;
/ Lecture des éléments de T et traitement en même temps
Pour I←1 à N Faire
Lire(T[I]) ;
Si T[I]>0 Alors Nbp←Nbp+1 Fsi ; P←P* T[I] ;
 
Fait ;
Ecrire(‘Produit=’,P,’ Nb val positives=’,Nbp) ;
Fin.

 
3-	Algorithme Prod ;
Var	T1,T2,T3 :Tableau[1..100] de entier ; I,N,PS :entier ;
 
Debut
 

/ lecture de la taille exacte
Ecrire(‘Donner la taille du tableau N≤100’) ;
Repeter Lire(N) Jusqu’à N>0 et N≤100 ;

/ Lecture des éléments de T1 ensuite T2 ne pas lire dans la même boucle
Pour I←1 à N Faire Lire(T1[I]) ; Fait ; Pour I←1 à N Faire Lire(T2[I]) ; Fait ; PS←0 ; / initialiser Produit scalaire à 0
/ La somme de T1 et T2 dans T3
Pour I←1 à N Faire
T3[I]←T1[I]+ T2[I]; PS←PS+ T1[I]* T2[I];
 
Fait ;
Ecrire(‘Produit Scalaire=’,PS) ; Ecrire(‘Somme des vecteurs’) ;
Pour I←1 à N Faire Ecrire (T3[I]) ; Fait ;
Fin.
 

4-	Algorithme Position ;
Var	T ,Pos:Tableau[1..100] de entier ; I,J,N,Val :entier ;
Debut

/ lecture de la taille exacte
Ecrire(‘Donner la taille du tableau N≤100’) ; Repeter Lire(N) Jusqu’à N>0 et N≤100 ; Pour I←1 à N Faire Lire(T[I]) ; Fait ; Ecrire(‘Donner Val’) ; Lire(Val) ;
/ Recherche de val et sa position
J←0 ;
Pour I←1 à N Faire
Si T[I]=Val Alors J←J+1 ;Pos[J]←I Fsi ;
 
Fait ;
Si J=0	Alors Ecrire(Val,’non trouvée’)
Sinon Ecrire(Val,’trouvée aux positions :’) ;
Pour I←1 à J Faire Ecrire (Pos[I]) ; Fait ;
  
Fsi ;
/  Si on initialise J à 1, son incrémentation se fait après l’affectation et la
/ dimension de Pos devient J-1
Fin.

 
5-	Algorithme Inverse ;
Var	T :Tableau[1..100] de entier ; I,J,X,N:entier ;
 
Debut
 
/ lecture de la taille exacte
Ecrire(‘Donner la taille du tableau N≤100’) ;
Repeter Lire(N) Jusqu’à N>0 et N≤100 ;
/ Lecture des éléments de T
Pour I←1 à N Faire Lire(T[I]) ; Fait ;
/ Inverser
I←1 ; J←N ;
Tantque I<J
Faire
 
X←T[I] ; T[I]←T[J]; T[J]←X;
 

I←I+1 ; J←J-1;
Fait ;
 
 
/ Affichage du nouveau tableau T
Pour I←1 à N Faire Ecrire(T[I]) ; Fait ;
 

Fin.


6-	Algorithme SupprimeZero ;
Var	T :Tableau[1..100] de entier ; I,J,N:entier ;
 
Debut
 
/ lecture de la taille exacte
Ecrire(‘Donner la taille du tableau N≤100’) ;
Repeter Lire(N) Jusqu’à N>0 et N≤100 ;
/ Lecture des éléments de T
Pour I←1 à N Faire Lire(T[I]) ; Fait ;
/ la suppression des zéro revient à décaler les valeurs non nulles
I←1 ;
Tantque I≤N
Faire
 
Si T[I]=0
Alors	/ boucle de décalage
Pour J←I à N-1
Faire T[J]←T[J+1]; Fait ;
N←N-1 /*changer la taille du tableau


Fait ;
 
Fsi ; I←I+1 ;

/ Affichage du nouveau tableau T
Pour I←1 à N Faire Ecrire(T[I]) ; Fait ;
 
Fin.

Solution 2 :
Algorithme SupprimeZero2 ;
Var	T :Tableau[1..100] de entier ; I,J,NBN,N:entier ;

Debut
 
/ lecture de la taille exacte
Ecrire(‘Donner la taille du tableau N≤100’) ;
Repeter Lire(N) Jusqu’à N>0 et N≤100 ;
/ Lecture des éléments de T
Pour I←1 à N Faire Lire(T[I]) ; Fait ;
/ la suppression des zéro revient à déplacer les valeurs non nulles 1 après 1(sans boucle)
I←1 ; J←1 ; NBN←0 ;
Tantque J≤N
Faire
 
Si T[J]=0
Alors	NBN←NBN+1 / nombre de valeurs nulles
Sinon  / déplacer l’élément
T[I]← T[J] ; I←I+1
Fsi ; J←J+1;

Fait ;
N←N-NBN ; / changer la taille de T
/ Affichage du nouveau tableau T
Pour I←1 à N Faire Ecrire(T[I]) ; Fait ;

Fin.

7-	Algorithme NegPuisPos ;
Var	T :Tableau[1..100] de entier ; I,J,N,X:entier ;
 
Debut
 
/ lecture de la taille exacte
Ecrire(‘Donner la taille du tableau N≤100’) ;
Repeter Lire(N) Jusqu’à N>0 et N≤100 ;
/ Lecture des éléments de T
Pour I←1 à N Faire Lire(T[I]) ; Fait ;
/ passer les valeurs négatives au début
J←1 ;
Tantque J≤N et T[J]<0 Faire J←J+1 ; Fait ;
/ déplacer les valeurs négatives au début (trouver la première valeur positive I )
I←J ;
Tantque J≤N
Faire
 
Si T[J]<0
Alors	/ permuter
X← T[I] ; T[I]←T[J]; T[J]←X; I←I+1


Fait ;
 
Fsi ; J←J+1 ;
 
/ Affichage du nouveau tableau T
Pour I←1 à N Faire Ecrire(T[I]) ; Fait ;

Fin. 



 

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.