Vous êtes sur la page 1sur 27

Cours d’Algorithmique

2ème année de licence SMP


2023-2024
Plan du cours

• Chapitre 1: Introduction à l’algorithmique

• Chapitre 2: Tableaux et Fonctions

• Chapitre 3: Algorithmes de tri et de recherche

07/10/2023 2
Chapitre 2
Tableaux et Fonctions
1) Les Tableaux
i. Pourquoi les tableaux ?

ii. Les tableaux à une dimension

iii. Les tableaux à deux dimensions

2) Les chaînes de caractères

3) Les fonctions

07/10/2023 3
1. Les Tableaux
Pourquoi les tableaux ?
• Imaginons que l’on veut saisir les notes de N étudiants, quel
algorithme allons nous utiliser ?
• Pour l’instant on pourrait avoir l’algorithme suivant :

Variables Note1, Note2, Note3, …..NoteN : Réel


Début
Ecrire ("Entrer la valeur de la 1er note")
Lire (Note1)
Ecrire ("Entrer la valeur de la 2ème note")
Lire (Note2)
Ecrire ("Entrer la valeur de la 3ème note")
Lire (Note3)
……..
Ecrire ("Entrer la valeur de la Nième note")
Lire (NoteN)
Fin

07/10/2023 Chapitre 1 4
1. Les Tableaux
• Un tableau est une variable qui peut contenir plusieurs valeurs de même
type à la fois.
• Il utilise plusieurs cases mémoire à l’aide d’un seul nom. Comme toutes
les cases portent le même nom, elles se différencient par un numéro ou
un indice.

• le premier indice d’un tableau de N éléments est 0 (ou 1) et le dernier


index est N −1 (ou N) .

• Nous pouvons représenter schématiquement un tableau nommé Note


composé de cinq cases, dans la mémoire comme suit :
Il est possible
Note[0] Note[1] Note[2] Note[3] Note[4] d’accéder à chaque
12 14 11.5 9 11 élément du tableau
par son indice
07/10/2023 Chapitre 1 5
1. Les Tableaux
Tableau à une dimension
 Déclaration
La déclaration d’un tableau permet d’associer à un nom une zone mémoire
composée d’un certain nombres de cases mémoires de même type.
Syntaxe : Tableau Nom-tableau[taille] : type
Exemple : Tableau Note[100] : Réel
Tableau Note[0…99] : Réel
Tableau Note[1…100] : Réel

 Parcours complet d'un tableau


Le fait que les éléments d’un tableau soient indicés permet de parcourir tous ces
éléments avec une boucle, on utilisant une variable qui sert d'indice et
s'incrémente à chaque tour de boucle.

07/10/2023 Chapitre 1 6
1. Les Tableaux
Remplissage du tableau -Note
Pour i  1 à N pas 1 faire
Début
Ecrire ("Entrer la valeur de la note ", i) # R-T
Lire ( Note[i] )
Fin

Affichage d’un tableau -Note


Pour i 1 à N pas 1 faire
Début
Ecrire ( Note[i] ) # AFF-T
Fin

07/10/2023 Chapitre 1 7
1. Les Tableaux
Exercice 1 :

Ecrire un algorithme qui déclare un tableau de 10 notes, dont on fait


ensuite saisir les valeurs par l’utilisateur. Calculer la moyenne M des
notes et afficher le résultat.
Tableau Notes [10] : Réel
S0
Variable M, S : Réel
Pour i 1 à 10 pas 1 faire
Variable i : Entier
Début
Début
SS + Notes[i];
Pour i 1 à 10 pas 1 faire
Fin
Début
MS/10
Ecrire ("Entrer la note ", i)
Ecrire ("M= ", M)
Lire (Note[i])
Fin
Fin

07/10/2023 Chapitre 1 8
1. Les Tableaux
Tableau à 2 dimensions
Reprenons l'exemple des notes en considérant cette fois qu'un étudiant a plusieurs notes
(une note pour chaque matière). Pour quatre étudiants, nous aurions le tableau de relevés
des notes suivant : Etudiant 1 Etudiant 2 Etudiant 3 Etudiant 4
Informatique 12 12.5 9 13
Physique 13 16 14 10
Maths 10 11 17 11

Les tableaux à deux dimensions se représentent comme une matrice ayant un certain
nombre de lignes (première dimension) et un certain nombre de colonnes (seconde
dimension).
Nous pouvons représenter schématiquement un tableau de 3 lignes et de 4 colonnes
comme suit :
1 2 3 4
1 12 12.5 9 13
2 13 16 14 10
3 10 11 17 11
07/10/2023 Chapitre 1 9
1. Les Tableaux
Tableau à 2 dimensions
 Déclaration
Syntaxe : Tableau Nom-tableau[nb_lignes] [nb_colonnes] : type
Exemple : Tableau Note[100] [100] : Réel
Tableau Note[0…99] [0…99] : Réel
Tableau Note[1…100] [1…100] : Réel

 Utilisation
Pour accéder à un élément de la matrice (tableau à deux dimensions), il
suffit de préciser, entre crochets, les indices de la case contenant cet
élément.

Note[2] [2] c’est la note de physique de l’étudiant 2.

07/10/2023 Chapitre 1 10
1. Les Tableaux
Parcours complet d'un tableau à 2 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
est conçue pour parcourir les lignes tandis que la deuxième est utilisée pour
parcourir les colonnes.

// Remplissage du tableau (Matrice) note--- N lignes et M colonnes


Pour i 1 à N pas 1 Faire
Début
Pour j 1 à M pas 1 Faire
Début # R-M
Ecrire ("Entrer la note de l’étudiant", i, "dans la matière", j)
Lire ( note[i] [j] )
Fin
Fin

07/10/2023 Chapitre 1 11
1. Les Tableaux
Parcours complet d'un tableau à 2 dimensions:

// Affichage du tableau (Matrice) note--- N lignes et M colonnes


Pour i 1 à N pas 1 Faire
Début
Pour j 1 à M pas 1 Faire # AFF-M
Début
Ecrire ( note[i] [j] )
Fin
Fin

07/10/2023 Chapitre 1 12
2. Les chaînes de caractères
Le type caractère
Définition
Ce type s’applique à tous les caractères du code ASCII (Americain Standard
Code for Information Interchange). La liste comprend :
 Les lettres : "A"…"Z", "a"…"z"
 Les chiffres : "0"…"9"
 Les caractères spéciaux : "/" ; "*" ; " ?" ; "&" etc.

Chaque caractère est défini par son numéro d’ordre unique compris entre 0 et
255 et ordonné selon leur code ASCII.
"0" < "1" … "9" < …….< "A" < "B" < … < "Z" < …. < "a" < "b" < … <
"z"
Code ASCII de "A" = 65
Code ASCII de "a" = 97
Code ASCII de "0" = 48
Déclaration
Variable C : caractère

07/10/2023 Chapitre 1 13
2. Les chaînes de caractères
Il est possible d’effectuer une comparaison entre deux caractères, le résultat est
de type booléen.
Exemple :
"w" > "W" vrai
code ASCII de "w" = 119 et code ASCII de "W" = 87

Exercice 2
Ecrire un algorithme qui lit une lettre Majuscule au clavier puis affiche
s’il s’agit d’une consonne ou d’une voyelle.
2. Les chaînes de caractères

Variable C : caractère
DÉBUT
Écrire ("Donner un caractère :")
Lire (C)
Si ( ( C == "A" ) ou (C = ="E") ou (= = "I") ou (C== "O") ou (C= = "U") ou (C=
="Y") )
alors
Écrire ( C, "est une voyelle ")
Sinon
Écrire ( C, "est une consonne ")
Finsi
FIN
2. Les chaînes de caractères
Le type chaîne de caractères
Définition
Une chaîne de caractères est une succession de n caractères avec n compris
entre 0 et 255.
Exemples :
 La chaîne de caractères "Bonjour" est constituée des caractères "B",
"o", "n", "j", "o" "u" et "r".
 La chaîne de caractères "230" n'est constituée que de chiffres, mais en
aucun cas il ne faut la confondre avec la grandeur numérique 230.
Déclaration d’une chaîne
Tableau chaine [Taille]: Caractère (Variable chaine : Caractère)

Exemple : Tableaux chn[10] : Caractère, Variable ch : Caractère


La variable « ch » peut contenir jusqu’au 255 caractères alors que le Tableau « chn
» peut contenir au maximum 10 caractères.
07/10/2023 Chapitre 1 16
2. Les chaînes de caractères
Exercice 3
On considère un tableau T de taille n rempli totalement par des
caractères A et B. Ecrire un algorithme pour regrouper les
caractères A à gauche dans le tableau.
Tableau T[100] en Caractère Si ( T[i]==’A’) alors
Variables i ,j, n en Entier ii+1
Variable X en Caractère Sinon
Début XT[i]
Ecrire (‘’Entrez n <100 ’’) T[i] T[j]
Lire (n) T[j] X
Ecrire (‘’Saisie A ou B’’) j j-1
Pour i1 à n pas 1 faire Finsi
Début Fin
Lire (T[i]) Pour i1 à n faire
Fin
Début
i 1 ; j n Ecrire (T[i])
Tant que ( i< j ) faire Fin
Début Fin
3. Les fonctions
Définition
 Lorsque l'on développe un algorithme et que le problème à résoudre est
complexe, le nombre d'instruction devient important. Il est nécessaire
de l'organiser, la solution consiste alors à découper l’algorithme en
plusieurs parties plus petites. Ces parties sont appelées les fonctions et
les procédures.
 Les fonctions peuvent être appelées plusieurs fois à partir du
programme principal ou à partir d'autres fonctions.
Syntaxe d'une fonction
FONCTION <nom_fonction> ( <liste des paramètres> ) : <type de résultat>
< déclaration des objets locaux à la fonction>
DEBUT
Instructions
RETOURNER (résultat)
FIN

07/10/2023 Chapitre 1 18
3. Les fonctions
REMARQUES :
 Pour le choix d'un nom de fonction il faut respecter les mêmes règles
que celles pour les noms de variables
 Le type de fonction est le type du résultat retourné (Entier, réel,
booléen, etc.)
 L'instruction retourner sert à retourner la valeur du résultat (une seule
valeur)
 Une fonction peut avoir de 0 à N paramètres.

Exercice 4
Définir une fonction MAX qui renvoie le plus grand de deux
nombres différents. (voir diapo 21-solution)

07/10/2023 Chapitre 1 19
3. Les fonctions
L’appel d’une fonction
Pour exécuter une fonction, il suffit de faire appel à elle en
écrivant son nom suivie des paramètres effectifs.
nom_fonction ( liste des paramètres )

Le résultat d'une fonction étant une valeur, devra être affecté à


une variable où être utilisé dans une expression, calcul, affichage,
test, …etc.

Exercice 5
Ecrire un algorithme utilisant la fonction Max de l’exemple
précédent.

07/10/2023 Chapitre 1 20
3. Les fonctions

Exercice 4 Exercice 5
Variables A, B, M : réel
Fonction Max( X : réel, Y : réel) : réel
Début
Début
Ecrire ("Donnez les valeurs de A et B")
Si (X > Y) alors
Lire(A, B)
Retourner (X)
// Appel de la fonction Max
Sinon
M Max(A,B)
Retourner (Y)
Ecrire ("Le plus grand de ces deux
Finsi
nombres est : ", M)
Fin
Fin
3. Les fonctions
La récursivité
Une fonction est dite récursive si elle s’appelle elle même.
 Il est impératif qu'on prévoie une condition d'arrêt à la récursivité,
sinon le programme ne s'arrête jamais!
 On doit toujours tester en premier la condition d'arrêt, et ensuite, si
la condition n'est pas vérifiée, lancer un appel récursif.
L’algorithme récursif s’écrit :
Fonction Nom-Fonct (paramètres) : <type de résultat>
début
si (condition d’arrêt) alors
<instructions du point d’arrêt>
sinon <instructions>
Appel récursif (paramètres changés)
<Instructions>
Finsi
Fin
07/10/2023 Chapitre 1 22
3. Les fonctions
Les procédures
La procédure est une fonction qui ne renvoie pas de résultat.
Syntaxe d'une procédure
Procédure <nom_procédure> ( <liste des paramètres> )
< déclaration des objets locaux à la procédure>
DEBUT
Instructions
FIN
L’appel d’une procédure
nom_procédure ( liste des paramètres )

07/10/2023 Chapitre 1 24
3. Les fonctions
Les fonctions prédéfinies
Tout langage de programmation dispose d’un ensemble de fonctions
prédéfinies permettant de procéder à de calcul mathématiques, de
manipulation de chaînes de caractères et bien d’autres fonctions utiles.

Les fonctions mathématiques


Les fonctions mathématiques prédéfinies permettent la réalisation d’un
traitement mathématique sur des données numériques.
Fonction Description Exemple
Abs(n) Retourne la valeur absolue d'un nombre. XAbs(-12) x =12
Ent(n) Retourne la partie entière d'un nombre. XEnt(12.3) x =12
Cos(angle) Retourne une valeur spécifiant le cosinus d’un angle XCos(0) x =1
Sqrt(n) Retourne une valeur la racine carrée d'un nombre XSqrt(4) x=2
Alea() Retourne un nombre aléatoire 0 =< x < 1 Xalea()

07/10/2023 Chapitre 1 25
3. Les fonctions
Les fonctions de chaînes de caractères

Fonction Description Exemple


long (ch) Retourne un entier représentant la L ← Long ("Bonjour") donne 7
longueur de la chaîne « ch ».
concat (chl, ch2, ...) Retourne la concaténation CH1 ← "Juillet"
(l’enchainement) de plusieurs chaînes en CH2 ← Concat ('5', ‘ ', CH1)
une seule. 5 juillet
POS (ch1, ch2) Retourne la position de la première CH1 ← "Technicien"
occurrence de la chaîne ch1 dans la CH2 ← "cien"
chaîne ch2 sinon elle retourne 0 i ← POS(ch2, ch1) donne 7
j ← POS("tec ", ch1) donne 0
Compare (ch1, ch2) Retourne : ch1 ← "aa"
• Zéro : Si CH1 et CH2 sont égaux. ch2 ← "AB"
• Un nombre négatif : Si CH1 précède R← Compare (ch1, ch2)
CH2 dans l’ordre alphabétique. R contient un nombre positif
• Un nombre positif : Si CH2 précède
CH1 dans l’ordre alphabétique.
efface (ch, p, n) Supprime n caractères de la chaîne ch à CH← "Bon chance"
partir de la position p. efface (CH, 1, 4) ; // CH contient
chance
07/10/2023 Chapitre 1 26
3. Les fonctions
Les fonctions standards sur les caractères

Fonction Description Exemple


Retourne le code ASCII du i ASC("B")
ASC(i)
caractère « B» i contiendra 66
Retourne le caractère dont le code C CAR(68)
CAR(i)
ASCII est égal à « i » C contiendra D
Retourne le successeur du C SUCC("a")
SUCC(c)
caractère « c » C contiendra "b"
Retourne le prédécesseur du C PRED("f")
PRED(c)
caractère « c » C contiendra "e"
Retourne la majuscule du C MAJUS("f")
MAJUS(c)
caractère c C contiendra "F"

07/10/2023 Chapitre 1 27
3. Les fonctions
Exemple :
Ecrire un algorithme qui lit une chaîne de caractères Majuscule et vérifie
si cette chaîne est un palindrome. Un palindrome est un mot qui peut être
lu de droite à gauche ou de gauche à droite ( Exemples : « NON, RADAR,
ELLE")

07/10/2023 Chapitre 1 28

Vous aimerez peut-être aussi