Vous êtes sur la page 1sur 20

TD4- Algorithmique I

Module informatique SMIA-S2


2021-2022

Pr. Er-rajy Latifa


Exercice 1 :
Soit T un tableau à une dimension (vecteur) contenant N nombres entiers
(N≤100). Ecrire les algorithmes pour :
1.Déterminer le minimum, le maximum et la moyenne des éléments d’un
tableau T.
2. Calculer le produit de tous les éléments de T ainsi que le nombre de valeurs
strictement positives.
3. Calculer la somme et le produit scalaire de deux tableaux (T1 et T2).
4. Déterminer les positions de l’apparition d’une valeur dans T.
5. Inverser le contenu de T.
6. Supprimer toutes les valeurs nulles de T.
7. Mettre les valeurs négatives au début et les valeurs positives à la fin en
utilisant un seul tableau.

Pr. Er-rajy Latifa


Exercice 1 :
Soit T un tableau à une dimension (vecteur) contenant N nombres entiers
(N≤100). Ecrire les algorithmes pour :
1.Déterminer le minimum, le maximum et la moyenne des éléments d’un
tableau T.

1- Demander à l’utilisateur de saisir N (N≤100)


2- Récupérer les éléments du tableau.
Pour I de 0 à N-1 Faire
Lire(T[I]) ;
FinPour
3. Déterminer le minimum, le maximum et la moyenne des éléments
d’un tableau T.

Pr. Er-rajy Latifa


Algorithme MinMax ;
Variables Tableau T[100] : entier;
I, N, Max, Min, S : entier;
Moy : réel ;
Début
//lecture de la taille exacte
Répéter
Ecrire(“Donner la taille du tableau N≤100”);
Lire(N) ;
Jusqu’à N>0 et N <= 100 ;
//Lecture des éléments de T
Pour I de 0 à N-1 Faire
Lire(T[I]) ;
FinPour
//Initialisation
Min←T[0];
Max←T[0];
S←0 ;
Pour I de 0 à N-1 Faire
Si Max < T[I] Alors
Max←T[I]
Finsi ;
Si Min > T[I] Alors
Min←T[I] ;
Finsi;
S←S+ T[I] ;
FinPour;
Moy←S/N ;
Ecrire(“Maximum =”,Max,“ Minimum =”,Min,“
Moyenne =”,Moy);
Fin. Pr. Er-rajy Latifa
Exercice 1 :
Soit T un tableau à une dimension (vecteur) contenant N nombres entiers
(N≤100). Ecrire les algorithmes pour :
2. Calculer le produit de tous les éléments de T ainsi que le nombre de valeurs
strictement positives.

1- Demander à l’utilisateur de saisir N (N≤100)


2- Récupérer les éléments du tableau.
3. Calculer le produit de tous les éléments de T et le nombre de valeurs
strictement positives.

Pr. Er-rajy Latifa


Algorithme Prod ;
Variables tableau T[100]:reel;
I, N, P, Nbp :entier ;
Debut
/*lecture de la taille exacte
Repeter
Ecrire(“Donner la taille du tableau N≤100”) ;
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 de 0 à N-1 Faire
Lire(T[I]) ;
Si T[I]>0 Alors
Nbp←Nbp+1 ;
Finsi ;
P←P* T[I] ;
FinPour;
Ecrire(“Produit=”, P,“ Nb val positives=”, Nbp) ;
Fin.
Pr. Er-rajy Latifa
Exercice 1 :
Soit T un tableau à une dimension (vecteur) contenant N nombres entiers (N≤100). Ecrire les algorithmes
pour :
3. Calculer la somme et le produit scalaire de deux tableaux (T1 et T2).

1- Demander à l’utilisateur de saisir N (N≤100)


2- Récupérer les éléments des deux tableaux.
3. Calculer la somme et le produit scalaire de deux tableaux (T1 et T2)

la somme - T3[0]←T1[0]+ T2[0];


- T3[1]←T1[1]+ T2[1];
- T3[2]←T1[2]+ T2[2];
……………..
- T3[N-1]←T1[N-1]+ T2[N-1];

le produit scalaire : T1[0]* T2[0] + T1[1]* T2[1] +….+ T1[N-1]* T2[N-1]

4- Afficher la somme (T3) et le produit scalaire.

Pr. Er-rajy Latifa


Algorithme Prod ;
Variables Tableau T1[100], T2[100], T3[100] : entier ;
I, N, PS :entier ;
Debut
/*lecture de la taille exacte
Repeter
Ecrire(“Donner la taille du tableau N≤100”) ;
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 de 0 à N-1 Faire
Lire(T1[I]);
FinPour
Pour I de 0 à N-1 Faire
Lire(T2[I]) ;
FinPour ;
/*initialiser Produit scalaire à 0
PS←0 ;
/*La somme de T1 et T2 dans T3
Pour I de 0 à N-1 Faire
T3[I]←T1[I]+ T2[I];
PS←PS+ T1[I]* T2[I];
FinPour;
Ecrire(“Produit Scalaire = ”,PS);
Ecrire(“Somme des vecteurs”);
Pour I de 0 à N-1 Faire
Ecrire (T3[I]) ;
FinPour ;
Fin. Pr. Er-rajy Latifa
Exercice 1 :
Soit T un tableau à une dimension (vecteur) contenant N nombres entiers
(N≤100). Ecrire les algorithmes pour :
4. Déterminer les positions de l’apparition d’une valeur dans T.

1- Demander à l’utilisateur de saisir N (N≤100)


2- Récupérer les éléments du tableau.
3. Demander à l’utilisateur de saisir une valeur.
4. Déterminer les positions de l’apparition de la valeur saisie

Pr. Er-rajy Latifa


 
Algorithme Position ;
Variables Tableau T[100], Pos[100] : entier ; Si J=0 Alors
I, J, N, Val :entier ; Ecrire(Val,’non trouvée’) ;
Debut Sinon
/*lecture de la taille exacte Ecrire(Val,’trouvée aux positions :’) ;
Repeter
Ecrire(“Donner la taille du tableau N≤100”) ; Pour I de 0 à J-1 Faire
Lire(N) Ecrire (Pos[I]) ;
Jusqu’à N>0 et N <= 100 ; FinPour ;

Pour I de 0 à N-1 Faire Finsi ;


Lire(T[I]); Fin.
FinPour ;

Ecrire(“Donner une valeur”) ;


Lire(Val) ;

/*Recherche de val et sa position


J←0 ;

Pour I de 0 à N-1 Faire


Si T[I]=Val Alors
Pos[J]←I
J←J+1 ;
Finsi ;
FinPour ;
Pr. Er-rajy Latifa
Exercice 1 :
Soit T un tableau à une dimension (vecteur) contenant N nombres entiers
(N≤100). Ecrire les algorithmes pour :
5. Inverser le contenu de T.

1- Demander à l’utilisateur de saisir N (N≤100)


2- Récupérer les éléments du tableau.
3. Inverser le contenu du tableau:
- T[0]←T[N-1];
- T[N-1]←T[0]
- T[1]←T[N-2]
- T[N-2]←T[1]
……….
4. Afficher le tableau

Pr. Er-rajy Latifa


 Algorithme Inverse ;
Variables Tableau T[100] : entier ;
I, J, X, N : entier ;
Debut
/*lecture de la taille exacte
Repeter
Ecrire(”Donner la taille du tableau N≤100”) ;
Lire(N) ;
Jusqu’à N>0 et N <= 100 ;
/*Lecture des éléments de T
Pour I de 0 à N-1 Faire
Lire(T[I]) ;
FinPour ;
/*Inverser
I←0 ;
J←N-1 ;
Tantque I<J Faire
X←T[I] ;
T[I]←T[J];
T[J]←X;
I←I+1 ;
J←J-1;
FinTantQue ;
/*Affichage du nouveau tableau T
Pour I de 0 à N-1 Faire
Ecrire(T[I]) ;
FinPour ;
Pr. Er-rajy Latifa
Fin.
Exercice 1 :
Soit T un tableau à une dimension (vecteur) contenant N nombres entiers (N≤100).
Ecrire les algorithmes pour :
6. Supprimer toutes les valeurs nulles de T. N-2
0 x
N-1

1 4 3 5 2 0 6 8 7 ... ... ... … ... 8

Tantque I < N Faire

Si T[I] = 0 Alors
/*boucle de décalage
Pour J de I à N-2 Faire
T[J]←T[J+1];
FinPour ;

N←N-1 /*changer la taille du tableau

Finsi ;

I←I+1 ;
FinTantQue;

Pr. Er-rajy Latifa


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

Lire(T[I]) ; Pour I de 0 à N-1 Faire


Ecrire(T[I]);
FinPour ; FinPour ;
Fin. Pr. Er-rajy Latifa
Exercice 1 :
Soit T un tableau à une dimension (vecteur) contenant N nombres entiers
(N≤100). Ecrire les algorithmes pour :
7. Mettre les valeurs négatives au début et les valeurs positives à la fin en
utilisant un seul tableau.
J=0 J=1 J=2
-1 -4 3 -2 2 1 -6 8 7
1- Rechercher la premier valeur positive.
• Tantque (condition) faire J < N et T[J] < 0
I=2 J=3
instruction(s) J←J+1 ;
finTantQue -1 -4 3 -2 2 1 -6 8 7
2- déplacer les valeurs négatives au début I=3 J=4
(trouver la première valeur positive I←J ) -1 -4 -2 3 2 1 -6 8 7
• Tantque (condition) faire J < N
instruction(s) I=3 J=5
Si T[J] < 0 Alors permuter -1 -4 -2 3 2 1 -6 8 7
I←I+1
I=3 J=6
Finsi ;
J←J+1 -1 -4 -2 3 2 1 -6 8 7
finTantQue I=4 J=7

3- Afficher le tableau -1 -4 -2 -6 2 1 3 8 7
Pr. Er-rajy Latifa
 Algorithme NegPuisPos ;
/*déplacer les valeurs négatives au début (trouver la
Variables Tableau T[100] : entier ;
première valeur positive I )
I, J, N, X : entier ;
I←J ;
Debut
J←J+1 ;
/*lecture de la taille exacte
Tantque J < N Faire
Ecrire(“Donner la taille du tableau N≤100”);
Si T[J] < 0 Alors /*permuter
Repeter
X← T[I] ;
Lire(N) ;
T[I]←T[J];
Jusqu’à N>0 et N <= 100 ;
T[J]←X;
/*Lecture des éléments de T
I←I+1
Pour I de 0 à N-1 Faire
Finsi ;
Lire(T[I]) ;
J←J+1 ;
FinPour ;
FinTantQue ;
/*passer les valeurs négatives au début
/*Affichage du nouveau tableau T
J←0 ;
Pour I de 0 à N-1 Faire
Tantque J < N et T[J] < 0 Faire
Ecrire(T[I]) ;
J←J+1 ;
FinPour;
FinTantQue ;
Fin. Pr. Er-rajy Latifa
Exercice 2 :
Ecrire un algorithme qui permet d’éclater un tableau T de N (N ≤ 100) entiers
supposés positifs en deux tableaux T1 et T2 contenant respectivement les nombres
pairs et impairs de T.

1- Demander à l’utilisateur de saisir N (N≤100)


2- Récupérer les éléments du tableau.
3- écarter le tableau en deux tableaux.
Si T[i]%2=0 alors
T1[J]← T[i]
sinon
T2[k]← T[i]

Pr. Er-rajy Latifa


Algorithme PairImpair ; Ecrire(“Tableau des nombres pairs”) ;
Variables Tableau T1[100], T2[100], T[100] : entier ; Pour I de 0 à J-1 Faire
I, J, K, N : entier ; Ecrire(T1[I]) ;
Debut FinPour ;
/*lecture de la taille exacte Ecrire(“Tableau des nombres impairs”) ;
Repeter Pour I de 0 à K-1 Faire
Ecrire(“Donner la taille du tableau N≤100”) ; Ecrire (T2[I]) ;
Lire(N) ; FinPour ;
Jusqu’à N>0 et N<= 100 ; /*taille de T1 et T2 sont respectivement J
K
Pour I de 0 à N-1 Faire Fin.
Lire(T[I]) ;  
FinPour ;
/*compteurs pour les tableaux pairs et impairs
J←0 ;
K←0 ;
Pour I de 0 à N-1 Faire
Si T[I]%2=0 Alors
T1[J]← T[I] ;
J←J+1 ;
Sinon
T2[K]←T[I] ;
K←K+1 ;
Finsi ;
FinPour ;
Pr. Er-rajy Latifa
Exercice 3 :
Soit T un tableau de N entiers (N≤100). Ecrire un algorithme qui détermine le
nombre de succession de deux valeurs (V1 et V2) particulières dans le vecteur.
1- Demander à l’utilisateur de saisir N (N≤100)
2- Récupérer les éléments du tableau.
3- Demander à l’utilisateur de saisir 2 valeurs
4- lire les deux valeurs
5- détermine le nombre de succession de deux valeurs
Si T[i]=V1 ET T[i+1]=V2 alors
Cpt← Cpt+1

Pr. Er-rajy Latifa


Algorithme Repetition ;
Variables Tableau T[100] : entier ;
I, N, V1, V2, NBrep :entier ;
Debut
/*lecture de la taille exacte
Repeter
Ecrire(“Donner la taille du tableau N≤100”) ;
Lire(N)
Jusqu’à N>0 et N <= 100 ;

Pour I de 0 à N-1 Faire


Lire(T[I]) ;
FinPour ;
Ecrire(“Donner deux valeurs V1 et V2”) ;
Lire(V1,V2)
I←0;
NBrep←0 ;
Tantque I < N-1
Faire
Si T[I]=V1 et T[I+1]=V2 Alors
NBrep← NBrep+1 ;
I←I+1 ;
Finsi ;
FinTantQue ;
Ecrire(“Nombre de successions des valeurs”,V1,V2,“ est :”,NBrep) ;
Fin.

Pr. Er-rajy Latifa

Vous aimerez peut-être aussi