Académique Documents
Professionnel Documents
Culture Documents
Exercice 1:
Écrire un algorithme qui transforme un tableau d'entiers d'une dimension, vers son miroir.
Exemple :
Tableau : 0, 1, 5, 12, 9 Miroir : 9, 12, 5, 1, 0
Algorithme Exo1;
Var i, N, fin, interm: entier;
T: tableau[1..50] de entier;
Début
Répeter //Demander à l'utilisateur le nombre d'éléments du tableau
Écrire ('Saisissez un nombre d'éléments du tableau, compris entre 1 et 50' ); Lire(N);
Jusqu'à (N≥1) et (N≤50);
Pour i allant de 1 à N faire //Saisie des éléments, en fonction du nombre d'éléments N saisi précédemment
Écrire ('Veuillez saisir l'élément n° :', i); Lire(T[i]);
Fpour;
//On parcourt le tableau jusqu'à sa moitié (N div 2), tout en permutant les premiers éléments du tableau avec les derniers
i1; finN div 2;
Tant que i≤ fin faire
interm T[i]; //On stock la valeur de T[i] dans une variable intermédiaire, pour permuter plus tard
T[i]T[N-i+1] ;
T[N-i+1]interm ;
ii+1 ; //Incrémentation de l'indice i, utilisé pour le parcours
FTQ;
Fin.
Exercice 2:
Écrire l’algorithme effectuant le décalage à gauche et à droite des éléments d’un tableau.
Votre algorithme demandera d'abord à l'utilisateur quel décalage il souhaite réaliser, puis il affichera le tableau initial, ainsi
que le tableau modifié.
Exemple: Tableau initial:
Tableau modifié (déclalage à gauche):
Algorithme Exo2;
Var i, N: entier;
dec, interm: char;
T: tableau[1..50] de char;
Début
Répeter //Demander à l'utilisateur le nombre d'éléments du tableau
Écrire ('Saisissez un nombre d'éléments du tableau, compris entre 1 et 50' ); Lire(N);
Jusqu'à (N≥1) et (N≤50);
Pour i allant de 1 à N faire //Saisie des éléments, en fonction du nombre d'éléments N saisi précédemment
Écrire ('Veuillez saisir l'élément n° :', i); Lire(T[i]);
Fpour;
1
CFPA Mixte Younes Lekhel Bejaia
Exercice 3:
Écrire un algorithme qui calcule le plus grand écart dans un tableau d’entiers. L’écart entre deux entiers x et y est la valeur
absolue de leur différence |x − y|.
Si le tableau est rempli exclusivement de valeurs négatives, l'écart sera 0.
Algorithme Exo3;
Var i, N: entier;
T: tableau[1..50] de entier;
max, min, ecart : entier;
Début
Répeter //Demander à l'utilisateur le nombre d'éléments du tableau
Écrire ('Saisissez un nombre d'éléments du tableau, compris entre 1 et 50' ); Lire(N);
Jusqu'à (N≥1) et (N≤50);
Pour i allant de 1 à N faire //Saisie des éléments, en fonction du nombre d'éléments N saisi précédemment
Écrire ('Veuillez saisir l'élément n°:', i); Lire(T[i]);
Fpour;
//Chercher le min et le max du tableau d'abord, l'écart sera la différence entre le min et le max
minT[1]; maxT[1];
Pour i allant de 2 à N faire //Parcours de tout le tableau
Si T[i]<min alors //A chaque fois qu'on trouve un élément inferieur à min, cet élément devient le nouveau min
minT[i];
Fsi;
Si T[i]>max alors //A chaque fois qu'on trouve un élément supérieur à max, cet élément devient le nouveau max
maxT[i];
Fsi;
Fpour;
Si (max≤ 0) et (min≤0) alors //Cas ou le tableau ne contient que des valeurs négatives ou nulles
ecart0;
Sinon
ecartmax-min;
Fsi;
Écrire (' L'écart est : ', ecart);
Fin.
2
CFPA Mixte Younes Lekhel Bejaia
Exercice 4:
𝑖=𝑛
Écrire un algorithme qui calcul du produit scalaire de deux vecteurs réels U et V de dimension N. U*V = 𝑖=1 𝑈 𝑖 ∗ 𝑉[𝑖]
Exemple:
U : 1, 5, 0
V : 7, 9, 8,
produit scalaire U*V = 1*7+5*9+0*8=52
Algorithme Exo4;
Var i, N: entier;
U, V: tableau[1..50] de réel;
PS: réel;
Début
Répeter //Demander à l'utilisateur le nombre d'éléments des vecteurs U et V
Écrire ('Saisissez le nombre d'éléments d'un des deux vecteurs, compris entre 1 et 50' ); Lire(N);
Jusqu'à (N≥1) et (N≤50);
Exercice 5:
Écrire un algorithme qui concatène deux tableaux T1 et T2 (pas forcement de même taille), dans un 3eme tableau T3.
Exemple:
Tableau 1 : 1, 5, 0, 0, 0, 1
Tableau 2 : 7, 9, 8, 0, 15, 10,13
Tableau 3 : 1, 5, 0, 0, 0, 1, 7, 9, 8, 0, 15, 10,13
Algorithme Exo5;
Var i, N1, N2, N3: entier;
T1, T2: tableau[1..50] d'entiers;
T3: tableau[1..50] d'entiers;;
Début
Répeter //Demander à l'utilisateur le nombre d'éléments du tableau T1
Écrire ('Saisissez le nombre d'éléments du tableau T1, compris entre 1 et 50' ); Lire(N1);
Jusqu'à (N1≥1) et (N1≤50);
Exercice 6:
Fibonacci dispose d’un couple de lapins capables de se reproduire à une vitesse phénoménale.
Le couple de lapins met deux mois pour grandir. A partir du troisième mois, le couple de lapins engendre une paire de
nouveaux lapins (qui mettront deux mois pour grandir et donc trois mois pour engendrer une nouvelle paire, etc.).
D’après cet exercice le nombre de couples de lapins Fn à chaque mois n obéit à la loi :
F1 =1 F2 =1
Fn =Fn−1 +F n−2
Écrire un algorithme permettant de construire le tableau des couples depuis le premier jusqu’au 20ème mois.
Algorithme Exo6;
Var i: entier;
F: tableau[1..20] d'entier;
Début
F[1]1; F[2]1; //1er et 2eme mois
Pour i allant de 3 à 20 faire //du 3eme au 20eme mois
F[i] F[i-1] +F[i-2]);
Fpour;
Fin.
Exercice 7:
Soit T un tableau de N nombres.
Trouver la sous-séquence dont la somme des éléments est maximale.
Remarques :
Une sous-séquence est une suite d'élément contigus (voisins, non éparpillés).
Le nombre d'éléments de la sous-séquence va de 1 élément au moins, à N éléments au plus.
Si tous les nombres sont négatifs ou nuls on considère que la sous-séquence de somme maximale est vide et la somme
maximale est 0.
Exemple :
T = [31, -41, 59, 26, -53, 58, 97, -93, -23, 84].
La sous-séquence de somme maximale est [59, 26, -53, 58, 97] et cette somme est égale à 187.
4
CFPA Mixte Younes Lekhel Bejaia
Algorithme Exo7;
Var i, j, N, seqmax, seqtemp, deb, fin: entier;
T: tableau[1..50] de entier;
neg: booléen;
Début
Répeter //Demander à l'utilisateur le nombre d'éléments du tableau
Écrire ('Saisissez un nombre d'éléments du tableau, compris entre 1 et 50' ); Lire(N);
Jusqu'à (N≥1) et (N≤50);
Pour i allant de 1 à N faire //Saisie des éléments, en fonction du nombre d'éléments N saisi précédemment
Écrire ('Veuillez saisir l'élément n°:', i); Lire(T[i]);
Fpour;
Si neg=vrai alors //Cas ou le tableau ne contient que des valeurs négatives ou nulles
Écrire (' Tous les nombres sont négatifs ou nuls, la sous-séquence maximale est 0 ');
Sinon
//Calcul de la sous-séquence maximale
//On suppose que la sous-séquence maximale est composée du premier élément du tableau
seqmax T[1]; deb1; fin1;
Si seqtemp> seqmax alors //Si la sous-séquence actuelle est plus grande, on met à jour Seqmax
seqmax seqtemp;
debi;
finj;
Fsi;
Fpour;
Fpour;
Fsi;
Fin.
5