Vous êtes sur la page 1sur 11

Fiche TD N° 05 : Les tableaux et les chaînes de

caractères

1. Déclarer un tableau de 9 réels et l’initialiser avec la valeur 0.


Variable i :réel ;
Tableau T[9] :réel ;
Debut
Pour (i = 0 à 8 pas 1 )faire
T[i] ← 0 ;
Fin pour ;
Fin
2. Écrire l’algorithme qui remplit un tableau de 9 notes (réelles) avec des valeurs
demandées { l’utilisateur. Puis afficher les 9 valeurs contenues dans le tableau.
Variable i :réel ;
Tableau T[9] :réel ;
Debut
Pour (i = 0 à 8 pas 1)faire
Ecrire (‘’ entrer une valeur ‘’) ;
Lire ( T[i] ) ;
Fin pour ;
Pour (i = 0 à 9 pas 1) faire
Ecrire (‘’la note T [‘’,i,’’] = ‘’, T[i]) ;
Finpour ;
Fin.

3. Écrire l’algorithme qui calcule la somme des valeurs d’un tableau.


Variable S ,i ,N : réel ;
Tableau valeur[50] : réel ;
Debut
s ← 0
Ecrire (‘’entrer la longueur de la table’’) ;
Lire (N) ;
Si (n <= 50) alors Chapitre 5 : Les tableaux et les chaînes de caractères
Pour (i = 0 à N-1 pas 1 )faire
Ecrire ("Entrez la valeur n° ", i ) ;
Lire (valeur[i]);
s ← s + valeur[i];
fin pour ;
finsi ;
Ecrire ("la somme est :", s) ;
Fin
4. Écrire l’algorithme qui permet de vérifier que deux tableaux sont identiques (les
éléments des deux tableaux seront saisis par l’utilisateur).

Variable i : entier ;
Tableau T1[50] : réel ;
Tableau T2 [50] : réel ;

Debut
Pour (i=0 à 49 pas 1 ) faire
1
Lire (T1[i]) ;
Finpour ;
Pour (i=0 à 49 pas 1 ) faire
Lire (T2[i]) ;
Fin pour ;
Rep ← True ;
I ← 0;
Tanque (rep = true et I <= n) faire

Si T1[i] = T2[i] alors


Rep ← true ;
Sinon
Rep ← false ;
Finsi ;
I ← i+1;

fin tanque ;
ecrire (‘’ la comparaison est ‘’, rep) ;

Fin

5. Écrire l’algorithme qui permet d’afficher le nombre des occurrences d’un nombre
donné X dans un tableau T de N éléments.

Variable i, occ : entier ;


Tableau T1[500],x : réel ;

Debut
Pour (i=0 à 499 pas 1 ) faire
Lire (T1[i]) ;
Finpour ;
Occ ← 0 ;
Ecrire (‘’ donner la valeur de nombre à chercher’’) ;
Lire (x) ;
Pour (i=0 à 499 pas 1 ) faire
Si (T1[i]= x) alors
Occ ← occ+1 ;
Fin pour ;
Ecrire (‘’ le nombre des occurrences de la valeur ‘’,x ,
‘’est’’ , occ) ;
Fin.
Chapitre 5 : Les tableaux et les chaînes de caractères
6. Écrire un algorithme qui calcule le schtroumpf de deux tableaux. Pour calculer le
schtroumpf, il faut multiplier chaque élément du tableau 1 par chaque élément du
tableau 2, et additionner le tout. Par exemple si l'on a :
Tableau 1 : 4 8 7 12

Tableau 2 : 3 6

Le Schtroumpf sera : (3*4)+(3*8)+(3*7)+(3*12)+(6*4)+(6*8)+(6*7)+(6*12) = 279


Algo schtroumpf
Var s, i, j : entier ;
Tableau T1[500] : reel ,
Tableau T2[800] : reel;
Debut
Ecrire (‘’ donner le nombre des éléments de la première table ‘’) ;
2
Lire (n1) ;
Redim t1[n1] ;
Ecrire (‘’ donner le nombre des éléments de la deuxième table ‘’) ;
Lire (n2) ;
Redim t2[n2] ;
Pour (i=0 à n1-1 pas 1 ) faire
Lire (T1[i]) ;
Finpour ;
Pour (i=0 à n2-1 pas 1 ) faire
Lire (T2[i]) ;
Fin pour ;
S ← 0 ;
pour (i = 0 à n1-1 pas 1 ) faire
pour (j = 0 à n2-1 pas 1 ) faire
s ← s + t1[i] * t2 [j] ;
Fin pour ;
Fin pour ;
Ecrire ( ‘’ la valeur schtroumpf est ‘’ , S) ;
Fin.

7. Ecrire un algorithme qui permet de constituer un tableau, à partir de deux tableaux


de même longueur préalablement saisis. Le nouveau tableau sera la somme des
éléments des deux tableaux de départ.
Tableau 1 : 4 8 7 9 1 5 4 6

Tableau 2 : 7 6 5 2 1 3 7 4

Tableau à constituer : 11 14 12 11 2 8 11 10
Variable i : entier ;
Tableau T1[100] : réel ;
Tableau T2 [100] : réel ;
Tableau T3 [100] : réel ;
Debut
Pour (i=0 à 99 pas 1 ) faire
Lire (T1[i]) ;
Finpour ;
Pour (i=0 à 99 pas 1 ) faire
Lire (T2[i]) ;
Chapitre 5 : Les tableaux et les chaînes de caractères
Fin pour ;
Pour (i = 0 à 99 pas 1 )faire

T3[i] ← T1[i]+ T2 [i];


Ecrire (T3[i]);
fin pour ;

Fin

8. Soit M une matrice carrée de taille 5x5 contenant des entiers. Écrire la déclaration et
l’initialisation à 0 d’une telle structure de données.
Algo matrice
Var i , j : entier ;
Tableau M [5 , 5] : entier ;
Debut
Pour ( i = 0 à 4 pas 1 ) faire
Pour ( j = 0 à 4 pas 1 ) faire
3
M[i , j ] ← 0 ;
Fin pour ;
Fin pour ;
Fin

9. Écrire un algorithme qui propose { l’utilisateur de remplir une matrice M de taille


5x5.

Algo matrice
Var i , j : entier ;
Tableau M [5 , 5] : entier ;
Debut
Pour ( i = 0 à 4 pas 1 ) faire
Pour ( j = 0 à 4 pas 1 ) faire
Ecrire (‘’ entrer la valeur ‘’,i , ’’ , ’’ , j ) ;
Lire (M[i, j]) ;
Fin pour ;
Fin pour ;
Fin.
10. Écrire un algorithme qui réalise :
 La multiplication d'une matrice A par un nombre réel X.
Algo matrice
Var i , j , L, c : entier ;
Tableau A [ 500 , 500 ] : entier ;
Tableau R [500,500] : entier ;
Debut
Ecrire ( ‘’ donner une valeur x’’ ) ;
Lire (x) ;
Pour ( i = 0 à 499 pas 1 ) faire
Pour ( j = 0 à 499 pas 1 ) faire
R [i , j] ← A [i , j] * x ;
Ecrire (R [i , j]);
Fin pour ;
Fin pour ;
Fin.
Chapitre 5 : Les tableaux et les chaînes de caractères
 L’addition de deux matrices A et B de même dimension.

Variable i ,j : entier ;
Tableau A[100 , 100] : réel ;
Tableau B [100 , 100] : réel ;
Tableau C [100 , 100] : réel ;
Debut
Pour (i=0 à 99 pas 1 ) faire
Pour (j=0 à 99 pas 1 ) faire

Lire (A[i ,j]) ;


Lire (B[i ,j]) ;
Finpour ;
Fin pour ;
Pour (i=0 à 99 pas 1 ) faire
Pour (j=0 à 99 pas 1 ) faire

C[i ,j ] ← A[i ,j]+ B [i, j];


4
Ecrire (C[i , j]);
fin pour ;
fin pour ;

Fin

 La multiplication de deux matrices A et B.

Variable i ,j ,K : entier ;
Tableau A[100 , 50] : réel ; //[n,m]
Tableau B [50 , 200] : réel ; // [m,p]
Tableau C [100 , 200] : réel ; // [n,p]
Debut
Pour (i=0 à 99 pas 1 ) faire // ( i 0 à n-1)
Pour (j=0 à 199 pas 1 ) faire // ( j 0 à p -1)
C[i,j] ← 0 ;
Pour (k = 0 à 49 pas 1 faire // (k 0 à m-1)
C [i, j ] ← C [ i, j] + A [i, k] * B[k,j] ;
Fin pour ;
Fin pour ;
Fin pour ;
Pour (i=0 à 99 pas 1 ) faire
Pour (j=0 à 99 pas 1 ) faire
Ecrire (C [i, j]) ;

fin pour ;
fin pour ;
Fin

11. Écrire les algorithmes qui permettent sur une matrice 2D de taille 5*5:
 De calculer la somme des éléments d’une ligne (le numéro de la ligne étant
passé en paramètre).
Algo somme lignes
Var
Tableau A [100 ,100] : réel ;
I, j , n,m : entiers ;
Tableau S [100] : réel ;
Debut
Chapitre 5 : Les tableaux et les chaînes de caractères
Ecrire (‘’donner le nombre des lignes et des colonnes ‘’) ;
Lire (n,m) ;
pour ( i = 0 à n-1 pas 1) faire
pour ( j = 0 à m-1 pas 1 ) faire
lire (A [i, j]) ;
fin pour ;
fin pour ;
pour (i = 0 à n-1 pas 1 ) faire
s[i] ← 0 ;
pour ( j = 0 à m-1 pas 1 ) faire
s [i] ← s[i ] + A [i,j] ;
fin pour ;
Ecrire ( S [i]);
Fin pour ;
fin
 De calculer la somme des éléments d’une colonne (le numéro de la colonne
étant passé en paramètre).
5
Algo somme lignes
Var
Tableau A [100 ,100] : réel ;
I, j , n,m : entiers ;
Tableau S [100] : réel ;
Debut
Ecrire (‘’donner le nombre des lignes et des colonnes ‘’) ;
Lire (n,m) ;
pour ( i = 0 à n-1 pas 1) faire
pour ( j = 0 à m-1 pas 1 ) faire
lire (A [i, j]) ;
fin pour ;
fin pour ;
pour (i = 0 à m-1 pas 1 ) faire
s[i] ← 0 ;
pour ( j = 0 à n-1 pas 1 ) faire
s [i] ← s[i ] + A [j,i] ;
fin pour ;
Ecrire ( S [i]);
Fin pour ;
fin

 De calculer la somme des éléments de la diagonale (dans la mesure où la


matrice est bien carrée).
Algo sommeDiagonalePrincipale
Var T : tableau [100][100] de reel ;
i : entier
sommed : reel ;
debut
lire (n) ;
sommed ← 0 ;
pour i de 0 à N-1 pas 1 faire
sommed ← sommed + t[i][i] ;
fin pour ;
Ecrire (sommed) ;
fin

Chapitre 5 : Les tableaux et les chaînes de caractères

6
12. Ecrivez un algorithme qui demande une phrase { l’utilisateur et qui affiche { l’écran le
nombre de voyelles contenues dans cette phrase.
Algo voyelles
Var
Tableau chaine [500] : caractère ; // ou bien on déclare chaine : chaine de caractères ;
nbv ,i : entier
Debut
Ecrire (« donner une phrase’’) ;
Lire (chaine) ;
Nbv ← 0 ;
i ← 0
Tanque (chaine [i] <> ‘\0’) faire
Si (chaine [i] = ‘a’ ou chaine [i] = ‘e’ ou chaine [i] = ‘i’ ou chaine [i] = ‘o’ ou chaine [i] = ‘u’
ou chaine [i] = ‘y’ ) alors
Nbv ← nbv +1 ;
Finsi ;
Finpour ;
Ecrire (« la nombre des voyelles est : ‘’ , nbv) ;
Fin.

13. Écrivez un algorithme qui renvoie le nombre de voyelles contenues dans une chaîne
de caractères passée en argument.
14. Ecrivez un algorithme qui demande un mot { l’utilisateur et qui affiche { l’écran le
nombre de lettres de ce mot.
Algo nbr lettre ;
Var mot[100] : chaine de caractère,
I, nbl : entiers ;
Debut
Ecrire (‘’ donner un mot’’) ;
Lire (mot) ;
Nbl ← 0 ; i ←0 ;
Tanque (mot [i] <> ‘\0’ ) faire
Nbl ← nbl+1 ;
I ← i+1 ;
Fintq Chapitre 5 : Les tableaux et les chaînes de caractères
Ecrire (‘’le nombre des lettres est ‘’, nbl) ;
Fin.

15. Ecrivez un algorithme qui demande une phrase { l’utilisateur et qui affiche { l’écran le
nombre de mots de cette phrase. On suppose que les mots ne sont séparés que par
des espaces.

7
Algo nbr mots ; Algo
Var phrase[500] : chaine de caractère ; Var phrase [500] : chaine ;
I, nbm : entiers ; I, nbm : entiers ;
Debut Debut
Ecrire (‘’ donner une phrase) ; Ecrire (‘’ donner une phrase’’) ; lire (phrase) ;
Lire (phrase) ; Nbm ← 0 ;
Nbm ← 0 ; i ←0 ; Pour (i=0 à lenght phrase ) faire
Tanque (phrase [i] <> ‘\0’ ) faire Si phrase *i+ = ‘’ ‘’ alors
Si (phrase [i] = ‘’ ‘’) alors Nbm ← nbm+1 ;
Nbm ← nbm+1 ; I ← i+1 ;
Finsi ; Fonpour ;
I ← i+1 ; Ecrire (nbm);
Fintq Fin.
Ecrire (‘’le nombre des mots est ‘’, nbm) ;
Fin.

Exercice 14
Ecrivez un algorithme qui affiche la transposition d’une
matrice A(m,n) en At(n,m)

Algorithmique Matrice_Transposee;

Var
i, j: entier;
M1[1..1000][1..1000], M2[1..1000][1..10000]: entier;

Debut
Ecrire (‘’ donner le nombre des lignes et de colonnes inférieur
a1000’’) ;
Lire (n, m) ;
Ecrire (‘’ entrer les valeurs de la matrice ’’) ;
Pour (i de 1 a n ) faire
Pour (j de 1 a m )faire
Chapitre 5 : Les tableaux et les chaînes de caractères
Lire M1([i,j]) ;
Finpourj
Finpouri
Pour i de 1 à n Faire
Pour j de 1 à m Faire

M2([i][j]) <--- M1([j][i]);


Ecrire ( M2[i][j] ) ;

FinPouri
finpourj
Fin.
Exercice 16 jeux de dames
Variables i, j , posi, posj, i2, j2 en Entier
Variables Correct, MoveOK en Booléen
Tableau Damier(7, 7) en Booléen
Tableau Mouv(4, 2) en Entier
Debut
8
//Choix 0 : pion en haut à droite
Mouv(0, 0) ← -1
Mouv(0, 1) ← -1
//Choix 1 : pion en haut à droite
Mouv(1, 0) ← -1
Mouv(1, 1) ← 1
//Choix 2 : pion en bas à gauche
Mouv(2, 0) ← 1
Mouv(2, 1) ← -1
//Choix 3 : pion en bas à droite
Mouv(3, 0) ← 1
Mouv(3, 1) ← 1
//Initialisation du damier; le pion n’est pour le moment
nulle part
Pour i ← 0 à 6 pas1 faire
Pour j ← 0 à 6 pas 1 faire
Damier(i, j) ← Faux
finpj
finpi
//Saisie de la coordonnée en i ("posi") avec contrôle de
saisie
Correct ← Faux
TantQue Non Correct
Ecrire ("Entrez la ligne de votre pion: ") ;
Lire (posi)
Si (posi >= 0 et posi <= 6) Alors
Correct ← vrai
Finsi
Fintantque

//Saisie de la coordonnée en j ("posj") avec contrôle de


saisie
Correct ← Faux ;
TantQue Non Correct
Ecrire ("Entrez la colonne de votre pion: ") Chapitre 5 : Les tableaux et les chaînes de caractères
Lire (posj)
Si posj >= 0 et posj <= 7 Alors
Correct ← Vrai
Finsi
Fintantque

//Positionnement du pion sur le damier virtuel.


Damier(posi, posj) ← Vrai
//Saisie du déplacement, avec contrôle
Ecrire ("Quel déplacement ?") ;
Ecrire (" 0: en haut à gauche") ;
Ecrire (" 1: en haut à droite") ;
Ecrire (" 2: en bas à gauche") ;
Ecrire (" 3: en bas à droite") ;
Correct ← Faux
TantQue Non Correct
9
Lire Dep
Si (Dep >= 0 et Dep <= 3) Alors
Correct ← Vrai
FinSi
FinTantQue

//i2 et j2 sont les futures coordonnées du pion. La variable


booléenne MoveOK vérifie la validité de ce futur emplacement
i2 ← posi + Mouv(Dep, 0)
j2 ← posj + Mouv(Dep, 1)
MoveOK ← (i2 >= 0 et i2 < 7) et (j2 >= 0 et j2 < 7)
Cas où le déplacement est valide
Si MoveOK Alors
Damier(posi, posj) ← Faux
Damier(i2, j2) ← Vrai
Affichage du nouveau damier
Pour i ← 0 à 7
Pour j ← 0 à 7
Si Damier(i, j) Alors
Ecrire " O ";
Sinon
Ecrire " X ";
FinSi
j suivant
Ecrire ""
i suivant
Sinon

Cas où le déplacement n’est pas valide


Ecrire "Mouvement impossible"
FinSi
Fin.

Exercice 18 (remplissage d’un tableau de six voyelles de


l’alphabet

Var T : tableau [6] : char ; Chapitre 5 : Les tableaux et les chaînes de caractères
I : entier
Debut
T[1] ‘a’ ;

Fin.
Exercice 19 (nombre de voyelles dans une chaine de
caractères)
var ch : chaine de caractére ;
voy : tableau de [6] char ;
nb, i ,j : entier ;
debut
// initialisation de voy
Voy { ‘a’ , ‘e’, ‘i’, ‘o’, ‘u’, ‘y’} ;
Ecrire (‘’ donner une phrase’’) ;
Lire (ch) ; 1
Nb <----- 0 ;
0
Pour i de 1 a length(ch) faire
Pour j de 1 a 6 faire
Si ch [i] = voy [j] alors
Nb <------------ nb+1 ;
Finsi,
Finpj
Finpi
Ecrire (‘’ le nombre des voyelle est :’’ nb) ;
Fin.

---
Exercice 22 nombre des mots dans une phrase
var ch : chaine de caractére ;
nb, i ,j : entier ;
debut
Ecrire (‘’ donner une phrase’’) ;
Lire (ch) ;
Nb <------ 0 ;
Pour i de 1 a length(ch) faire
Si ch [i] = ‘ ‘ alors
Nb <------------ nb+1 ;
Finsi,

Finp
Ecrire (‘’ le nombre des mots est :’’ nb) ;
Fin.

Chapitre 5 : Les tableaux et les chaînes de caractères

1
1

Vous aimerez peut-être aussi