Vous êtes sur la page 1sur 10

Algorithme et Programmation

Première Année

Carlos AGOSSOU
DOCTEUR EN INFORMATIQUE ET TELECOMS
Algorithme et Programmation

Cours d’Algorithme et Programmation


Objectif :
 Apprendre les concepts de base de l'algorithmique et de la programmation
 Être capable de mettre en œuvre ces concepts pour analyser des problèmes
simples et écrire les programmes correspondants
Points généraux :
 introduction à l’algorithmique et à la programmation
 Généralités sur l’algorithmique et les langages de programmation
 Notion de variable, affectation, lecture et écriture
 Instructions conditionnels et instructions itératives
 Les Tableaux, les fonctions et procédures, la récursivité
 Introduction à la complexité des algorithmes
 Données structurées
Initiation au Langage C (Travaux pratiques)

1
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms
Algorithme et Programmation

Table des matières


1. Les tableaux ........................................................................................................ 3
1.1. Tableau à une dimension ............................................................................. 3
1.2. Tableau à deux dimensions ......................................................................... 5
2. Application .......................................................................................................... 7

2
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms
Algorithme et Programmation

Chapitre 3 : Les Tableaux


1. Les tableaux
Imaginons que l’on veuille toujours calculer la moyenne des notes d’une promotion
mais en gardant en mémoire toutes les notes des étudiants (pour par exemple faire
d’autres calculs tels que l’écart type, la note minimale, la note maximale, etc.)
Il faudrait alors déclarer autant de variables qu’il y a d’étudiants, par exemple en
supposant qu’il y ait 3 étudiants, on aurait l’algorithme suivant :
Algorithme CalculMoyenne
Variables somme, note1, note2, note3 : Réels
Début
Afficher ("Les notes des trois étudiants :")
Saisir (note1)
Saisir (note2)
Saisir (note3)
somme ← note1+note2+note3
Afficher ("La moyenne est de : ", somme/3)
Fin

Le problème est que cet algorithme ne fonctionne que pour 3 étudiants


 Si on en a 10, il faut déclarer 10 variables
 Si on en a n, il faut déclarer n variables
Ce n’est pas réaliste. Il faudrait pouvoir par l’intermédiaire d’une seule variable
stocker plusieurs valeurs de même type : c’est le rôle des tableaux.

Définition
Un ensemble de valeurs portant le même nom de variable et repérées par un
nombre, s’appelle un tableau, ou encore une variable indicée.
Le nombre qui, au sein d’un tableau, sert à repérer chaque valeur s’appelle :
l’indice.
Chaque fois que l’on doit désigner un élément du tableau, on fait figurer le nom du
tableau, suivi de l’indice de l’élément, entre crochets.

1.1. Tableau à une dimension

Déclaration
nomTableau : Tableau[N] de type

3
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms
Algorithme et Programmation

N : est la taille du tableau


Exemple : Déclarons un tableau T de 7 composantes réelles
T : Tableau[7] de Réels

ATTENTION: Pour un tableau de taille N, les indices sont définis de 0 à N-1 (pour
certains langages de programmation) et de 1 à N (pour d’autres langages).
Dans la suite du cours, nous utiliserons les indices 0 à N-1
L'instruction suivante déclare un tableau de 30 éléments de type réel :
Variable note : Tableau[30] de Réels
note : c'est le nom du tableau (identificateur)
0 : est l'indice du premier élément du tableau.
29 : est l'indice du dernier élément du tableau.

Accéder aux éléments du tableau


En lecture ou en écriture:
nomTableau[indice]

Exemple :

nomTableau[0], nomTableau[1], nomTableau[i], nomTableau[i+k]

Remarque générale
L’indice qui sert à désigner les éléments d’un tableau peut être exprimé
directement comme un nombre en clair (exemple : note[3]), mais il peut être aussi
une variable (exemple : note[i]), ou une expression calculée (exemple : Note[i+1]).
Il ne faut pas confondre l'indice d'un élément d'un tableau avec son contenu. Par
exemple, la 4éme maison de la rue n'a pas forcément 4 habitants.
Dans un tableau, la valeur d’un indice doit toujours :
 être égale au moins à 0. Donc attention, T[6] est le septième élément du
tableau T !

4
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms
Algorithme et Programmation

 être un nombre entier, l’élément T[3,1416] n’existe jamais.


Exemple 1 :
L'instruction suivante affecte à la variable X la valeur du deuxième élément du
tableau note :
X ← note[1]
Exemple 2 :
L'instruction suivante affiche le contenu du cinquième élément du tableau note :
Afficher(note[4])
Exemple 3 :
L'instruction suivante affecte une valeur introduite par l'utilisateur à l'élément à
la position 3 du tableau note :
Saisir(note[3])
L’énorme avantage des tableaux, c’est qu’on va pouvoir les traiter en faisant des
boucles. Par exemple, pour effectuer notre calcul de moyenne, cela donnera par
exemple :
Algorithme CalculMoyenne
/* Cet algorithme permet de calculer la moyenne de 12 notes saisies */

Variables moy, somme : Réels


note : Tableau[12] de Réels

Début
Pour i allant de 0 à 11 faire
Afficher("Entrez la note n°", i)
Saisir(note[i])
Fin Pour

somme ← 0
Pour i allant de 0 à 11 faire
somme ← somme + note[i]
Fin Pour
moy ← somme / 12
Fin

1.2. Tableau à deux dimensions

Déclaration
nomTableau : Tableau[N, M] de type
N et M: Constantes entières définissant les tailles (selon chacune des 2 dimensions)

5
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms
Algorithme et Programmation

Exemple : Déclaration d’un tableau d’entiers à deux dimensions, avec 3 lignes et


5 colonnes.
Variable tab : Tableau[3, 5] d’Entiers

Accéder aux éléments du tableau


En lecture ou en écriture:
nomTableau[indice1, indice2]
indice1 et indice2 : Constantes entières, variables entières ou expressions à
résultat entier
Exemple :
 tab[1, 2] ← 7
o met la valeur 7 dans la case d’indice 1, 2 du tableau tab
Parcours complet d'un tableau à deux dimensions
Pour parcourir une matrice nous avons besoin de deux boucles, l'une au sein de
l'autre, c'est ce qu'on appelle les boucles imbriquées. La première boucle par
exemple est conçue pour parcourir les lignes tandis que la deuxième est utilisée
pour parcourir les éléments de la ligne précisée par la boucle principale (la
première boucle).
Exemple :
Écrire un algorithme permettant la saisie des notes d'une classe de 30 étudiants
en 5 matières.
Algorithme Notes
Constante N : Entier ← 30
M : Entier ← 5
Variable note : tableau [N, M] de Réels
i, j : entier
Début
//Remplissage du tableau note
Pour i Allant de 0 à N-1 Faire
Pour j Allant de 0 à M-1 Faire
Afficher("Entrer la note de l'étudiant", i, " dans la matière ", j)
Saisir(note[i, j])
FinPour
FinPour
Fin

6
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms
Algorithme et Programmation

2. Application
Exercice 1
Ecrire un algorithme qui :
 Demande la taille d’un tableau (Taille doit être inférieure ou égale à 45)
 Permet la saisie d'une liste de réelles suivant cette taille
 Afficher le nombre de valeurs supérieures ou égales à un seuil saisi par
l’utilisateur

Exercice 2
Ecrivez un algorithme calculant la somme des valeurs d’un tableau (on suppose
que le tableau a été préalablement saisi).

Exercice 3
Ecrivez un algorithme constituant 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.

Exercice 4
Toujours à partir de deux tableaux précédemment saisis, écrivez un algorithme qui
calcule le schtroumpf des 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 :

7
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms
Algorithme et Programmation

Exercice 5
Ecrivez un algorithme permettant à l’utilisateur de saisir un nombre déterminé de
valeurs. Le programme, une fois la saisie terminée, renvoie la plus grande valeur
en précisant quelle position elle occupe dans le tableau. On prendra soin d’effectuer
la saisie dans un premier temps, et la recherche de la plus grande valeur du
tableau dans un second temps.

Exercice 6
Ecrire un algorithme qui
 Demande la taille d’un tableau (Taille doit être inférieure ou égale à 15)
 Permet la saisie d'une liste de réelles suivant cette taille
 Permute les éléments du tableau en plaçant le premier élément en dernier
et ainsi de suite.

Avant
12 15 5 2
Permutation
Après
2 5 15 12
Permutation

Exercice 7
Ecrire un algorithme qui :
 Demande le nombre d’étudiant d’une classe (Taille doit être inférieure ou
égale à 25)
 Permet la saisie d'une liste des moyennes suivant le nombre d’étudiant
 Recherche et affiche la plus grande moyenne.

Exercice 8
Ecrire un algorithme qui :
 Demande la taille d’un tableau (Taille doit être inférieure ou égale à 30)
 Permet la saisie d'une liste de réelles suivant cette taille
 Classe selon l'ordre décroissant

Avant
12 15 5 2
classement
Après
15 12 5 2
classement

8
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms
Algorithme et Programmation

Exercice 9
Dans une formation de 5 disciplines, écrire un algorithme qui :
 Demande la note de 6 étudiants dans chaque discipline
 Calcul et affiche la moyenne de chaque étudiant

9
Enseignant : Ing Carlos AGOSSOU, Docteur en Informatique et Télécoms

Vous aimerez peut-être aussi