0% ont trouvé ce document utile (0 vote)
70 vues27 pages

Cours - Algorithmique II - Chap2

Transféré par

nabou
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
70 vues27 pages

Cours - Algorithmique II - Chap2

Transféré par

nabou
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exemples

27

• Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui


calcule et affiche le carré de ce nombre.

• Écrire un algorithme qui permet d’effectuer la saisie d’un nom, d’un prénom et
affiche ensuite le nom complet

• Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui


teste et affiche s'il est divisible par 7 ou non

• Le prix de disques compacts (CDs) dans espace de vente varie selon le nombre à
acheter: 5 DH l’unité si le nombre de CDs à acheter est inférieur à 10, 4 DH l’unité
si le nombre de CDS à acheter est compris entre 10 et 20 et 3 DH l’unité si le
nombre de CDs à acheter est au-delà de 20.

Écrivez un algorithme qui demande à l’utilisateur le nombre de CDs à acheter, qui


calcule et affiche le prix à payer

• Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou


nul
Exemples
27

Exemple 1: lecture et écriture

Écrire un algorithme qui demande un nombre entier à


l'utilisateur, puis qui calcule et affiche le carré de ce
nombre.

Algorithme Calcul_du_Carre Rôle : calcul du carre


Données : un entier
Résultats : le carre du nombre
variables A, B : entier
Début
écrire("entrer la valeur de A ");
lire(A);
B ← A*A;
écrire("le carré de ", A, " est :", B);
Fin
Exemples
27

Exemple 2: lecture et écriture

Écrire un algorithme qui permet d’effectuer la saisie d’un nom,


d’un prénom et affiche ensuite le nom complet
Algorithme AffichageNomComplet

variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez le nom");
lire(Nom);
écrire("entrez le prénom");
lire(Prenom);
Nom_Complet ← Nom & " " & Prenom;
écrire("Votre nom complet est : ", Nom_Complet);
Fin
7
Exemples
27

Exemple 3: tests

Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste
et affiche s'il est divisible par 7 ou non

Algorithme Divsible_par7
Variable n : entier
Début
Ecrire (" Entrez un entier : ");
Lire (n)
Si (n%7=0) alors
Ecrire (n," est divisible par 7");
Sinon
Ecrire (n," n'est pas divisible par 7");
Finsi
Fin
Exemples
27

Exemple 4: tests imbriqués

⚫ Le prix de disques compacts (CDs) Variables unites : entier


dans espace de vente varie selon le
nombre à acheter: prix : réel
5 DH l’unité si le nombre de CDs à Début
acheter est inférieur à 10,
4 DH l’unité si le nombre de CDS à Ecrire ("Nombre d’unités ");
acheter est compris entre 10 et 20 Lire (unites);
et 3 DH l’unité si le nombre de CDs à Si unites < 10 Alors
acheter est au-delà de 20. prix ← unites*5;
Sinon Si unites < 20 alors prix ← unites*4;
⚫ Écrivez un algorithme qui demande Sinon prix ← unites*3;
à l’utilisateur le nombre de CDs à Finsi
acheter, qui calcule et affiche le prix à Finsi
payer
Ecrire (“Le prix à payer est : ”, prix);
Fin
Exemples
27

Exemple 5: boucle Pour


Calcul de x à la puissance n où x est un réel non nul et n un entier positif
ou nul

Variables x, puiss : réel
n, i : entier
Debut
Ecrire (" Entrez respectivement les valeurs de x et n "); Lire (x, n);
puiss ← 1;
Pour i 1 à n faire
puiss← puiss*x;
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss);
Fin
18
TABLEAUX
28

⚫ Supposons que l'on veut calculer le nombre d’étudiants ayant une note
supérieure à 10 pour une classe de 20 étudiants.

⚫Jusqu’à présent, le seul moyen pour le faire, c’est de déclarer 20


variables désignant les notes N1, …, N20:

•La saisie de ces notes nécessite 20 instructions lire(Ni).


•Le calcul du nombre des notes>10 se fait par une suite de tests de 20
instructions Si :
nbre ← 0;
Si (N1 >10) alors nbre ←nbre+1
FinSi

Si (N20>10) alors nbre ←nbre+1
FinSi

cette façon n’est pas très pratique


TABLEAUX
29

⚫C’est pourquoi, les langages de programmation offrent la possibilité de


rassembler toutes ces variables dans une seule structure de donnée
appelée tableau qui est facile à manipuler.

⚫Un tableau est un ensemble d'éléments de même type désignés par un


identificateur unique;

⚫Une variable entière nommée indice permet d'indiquer la position d'un


élément donné au sein du tableau et de déterminer sa valeur.
TABLEAUX
30

⚫La déclaration d'un tableau s'effectue en précisant le type de ses


éléments et sa dimension (le nombre de ses éléments)
⚫Syntaxe :
Variable tableau identificateur [dimension] : <TypeTab>

⚫Exemple :
variable tableau notes[20] : réel

⚫On peut définir des tableaux de tous types : tableaux d'entiers, de


réels, de caractères, de booléens, de chaînes de caractères, …
TABLEAUX
31

Les tableaux à une dimension (vecteurs)

variable tableau tab[10] : entier

0 1 2 3 4 5 6 7 8 9
45 54 1 -56 22 134 49 12 90 -26
▪Ce tableau est de longueur 10. Chacun des dix nombres du tableau est repéré par
son rang, appelé indice
▪Pour accéder à un élément du tableau, il suffit de préciser entre crochets
l'indice de la case contenant cet élément.
▪Pour accéder au 5ème élément (22), on écrit : Tab[4]
▪Les instructions de lecture, écriture et affectation s'appliquent aux tableaux
comme aux variables.
x ← Tab[0] (x=45)
Tab[6] ← 43
TABLEAUX
32

⚫Pour accéder au ièm e élément, on écrit tab[i-1] (avec 0<=i<10)

⚫Selonles langages, le premier indice du tableau est soit 0, soit 1. Le plus


Souvent c'est 0 (c'est ce qu'on va utiliser en pseudo-code).

⚫Dans ce cas, tab[i] désigne l'élément i+1 du tableau tab.

⚫Ungrand avantage des tableaux est qu'on peut traiter les données qui y
sont stockées de façon simple en utilisant des boucles.

⚫Les éléments d’un tableau s’utilisent comme des variables.


TABLEAUX
33

Tableaux : accès et modification

⚫Lesinstructions de lecture, écriture et affectation s'appliquent aux tableaux


comme aux variables.

⚫Exemples :

x ← tab[0];
La variable x prend la valeur du premier élément du tableau (45 selon le
tableau précédent).

tab[6] ← 43;
Cette instruction a modifié le contenu du 7ème élément du tableau (43 au
lieu de 49).
TABLEAUX
34

Relation entre tableaux et boucles

⚫Les boucles sont extrêmement utiles pour les algorithmes associés aux
tableaux.
⚫Pourparcourir les éléments du tableau selon l’ordre croissant (ou
décroissant) des indices, on utilise des boucles.
⚫Le traitement de chacun des éléments étant souvent le même, seule la
valeur de l’indice est amenée à changer.

⚫Une boucle est donc parfaitement adaptée à ce genre de traitements.


TABLEAUX
35

Pour le calcul du nombre d'étudiants ayant une note supérieure à 12


avec les tableaux, on peut écrire :

Constante N=20 : entier


Variables i, nbre : entier
tableau notes[N] : réel
Début
nbre ← 0;
Pour i ← 0 à N-1 faire
Si (notes[i] >12) alors
nbre ←nbre+1;
FinSi
FinPour

écrire ("le nombre de notes supérieures à 12 est : ", nbre);


Fin
TABLEAUX
36

Tableaux : saisie et affichage


Constante Max=200 : entier
Variables i, n : entier
tableau Notes[max] : réel
ecrire("entrer la taille du tableau :") ;
lire(n);
Debut
/* saisie */
Pour i  0 à n-1 [par 1] faire
écrire ("Saisie de l'élément ", i + 1);
lire (T[i] );
FinPour
/* affichage */
Pour i  0 à n-1 [par 1] faire
écrire ("T[",i, "] =", T[i]);
FinPour
Fin
TABLEAUX
37

Tableaux : Exercice

• Ecrire un programme qui déclare un tableau de 100 entiers


et qui l’initialise par les nombres entiers de 1 à 100.

• Ecrire un programme qui permet de saisir 20 nombres réels


en simple précision et les stocker dans un tableau
TABLEAUX
31

Tableaux : Exercice

Algorithme : tableau test


Variable tableau a [100], i: entiers
début
pour i <- 0 à 99 [par 1] faire
a[i]<- i+1
Fin Pour
Fin
TABLEAUX
31

Tableaux : Exercice corrigé


Algorithme : saisie_tab
Variable tableau a [20]: réels en simple précision
i : entier
début
pour i <- 0 à 19 [par 1] faire
écrire ("Saisie de l'élément ", i + 1);
lire(a[i])
Fin Pour
Fin
TABLEAUX
31

Tableaux à deux dimensions

⚫Les langages de programmation permettent de déclarer des tableaux


dans lesquels les valeurs sont repérées par deux indices.

⚫Ceci est utile par exemple pour représenter des matrices.


⚫En pseudo-code, un tableau à deux dimensions se déclare ainsi :

variable tableau identificateur[dim1] [dim2] : type


⚫Exemple :
⚫une matrice A de 3 lignes et 4 colonnes dont les éléments sont réels :
variable tableau A[3][4] : réel

⚫A[i][j] permet d'accéder à l’élément de la matrice qui se trouve à


l’intersection de la ligne i+1 et de la colonne j+1

⚫Les tableaux peuvent avoir n dimensions.


TABLEAUX
32

⚫ La matrice A dans la déclaration suivante :


variable tableau A[3][5] : réel

peut être explicitée comme suit : les éléments sont rangées dans un tableau
à deux entrées.

0 1 2 3 4
0 12 28 44 2 76
1 23 36 51 11 38
2 43 21 55 67 83

▪Ce tableau a 3 lignes et 5 colonnes. Les éléments du tableau sont


repérés par leur numéro de ligne et leur numéro de colonne.

▪. Par exemple A[1][4] vaut 38


TABLEAUX
33

Exemples : lecture d'une matrice

⚫La saisie des éléments d'une matrice :

Constante N=100 :entier


Variable i, j, m, n : entier
tableau A[N][N] : réel
Début
ecrire("entrer le nombre de lignes et le nombre de colonnes :") ;
lire(m, n);
Pour i  0 à m-1 [par 1] faire
écrire ("saisie de la ligne ", i + 1);
Pour j  0 à n-1 [par 1] faire
écrire ("Entrez l'élément : ligne ", i+1, " et colonne ", j+1);
lire (A[i][j]);
FinPour
FinPour
Fin
TABLEAUX
33

⚫Affichages des éléments d'une matrice :

Constante N=100 : entier


Variable i, j, m, n : entier
tableau A[N][N]: réel

Début
ecrire("entrer le nombre de lignes et le nombre de colonnes :") ;
lire(m, n);
Pour i  0 à m-1 [par 1] faire
Pour j  0 à n-1 [par 1] faire
écrire ("A[",i, "] [",j,"]=", A[i][j]);
FinPour
FinPour
Fin
TABLEAUX
33

Initialisation de matrice

⚫Pour initialiser une matrice on peut utiliser par exemple les instructions
suivantes :

T1[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};


T2[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
T3[4][4] = {{1,2,3}, {4,5,6}, {7,8,9}};
T4[4][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
TABLEAUX
34

Traitements opérant sur des tableaux

▪Créer des tableaux


▪Ranger des valeurs dans un tableau
▪Récupérer, consulter des valeurs rangées dans un tableau
▪Rechercher si une valeur est dans un tableau
▪Mettre à jour des valeurs dans un tableau
▪Modifier la façon dont les valeurs sont rangées dans un tableau (par exemple : les
trier de différentes manières)
▪Effectuer des opérations entre tableaux : comparaison de tableaux,
multiplication,...
TABLEAUX
34

Exercices:

1. Ecrire un algorithme qui déclare et remplisse un tableau de 7


valeurs entiers en les mettant toutes à zéro.

2. Ecrire un algorithme qui déclare et remplisse un tableau contenant


les six voyelles de l’alphabet

3. Ecrire un algorithme permettant, à l’utilisateur de saisir les notes


d'une classe. Le programme, une fois la saisie terminée, renvoie le
nombre de ces notes supérieures à la moyenne de la classe.
TABLEAUX
34

Corrigés:
1.
Variable i , Tableau tab[6] : entiers
Debut
Pour i ← 0 à 6 faire
tab[i] ← 0
i Suivant
Finpour
Fin
2.
Variable Tableau tab[6] : caractère
Debut
Tab[0] ← "a"
Tab[1] ← "e"
Tab[2] ← "i"
Tab[3] ← "o"
Tab[4] ← "u"
Tab[5] ← "y"
Fin
TABLEAUX
34

Variables Nb, Som, Moy, Nbsup :réels Moy ← Som / Nb


Tableau T[30],i: entiers NbSup ← 0
Debut Pour i ← 0 à Nb – 1 faire
Ecrire ("Entrez le nombre de notes à saisir : ") Si T[i] > Moy Alors
Lire (Nb) NbSup ← NbSup + 1
Pour i ← 0 à Nb – 1 faire FinSi
Ecrire( "Entrez le nombre n° ", i + 1) i Suivant
Lire (T[i]) finpour
i Suivant Ecrire (NbSup, " élèves dépassent la moyenne de la classe")
finpour Fin
Som ← 0
Pour i ← 0 à Nb – 1 faire
Som ← Som + T[i]
i Suivant
finpour

Vous aimerez peut-être aussi