Institut Supérieur d'Informatique et de Multimédia de Sfax
Cours de
Auditoire : Première année Licence en Sciences Informatiques
Responsables du cours :
Mme Nada LOUATI
Contacts:
[Link]@[Link]
Année universitaire : 2021-2022
1
Plan du cours
Chapitre 1: Introduction à l'algorithmique
Chapitre 2: Les structures conditionnelles
Chapitre 3: Les structures itératives
Chapitre 4 : Les tableaux et les tris
Chapitre 5: Les chaînes de caractères
Chapitre 6: Les procédures et les fonctions
Chapitre 7 : La récursivité
2
Chapitre1 :
Introduction à l'algorithmique
Concepts en informatique
Algorithme : mot dérivé de «al_Khwarizmi », le nom du mathématicien
du 9ème siècle et membre de la Maison de la sagesse de Bagdad.
Algorithmique : le domaine qui étudie les algorithmes.
Un algorithme est un texte constitué d’un ensemble de directives,
appelées instructions, qui spécifient :
Les opérations élémentaires à exécuter
La façon dont elles s’enchaînent.
Un algorithme est une suite finie d’instructions dont l’application permet
de résoudre un certain problème et de produire un résultat.
4
Concepts en informatique…
Un algorithme est un pseudo-code qui ne dépend d’aucun langage :
Ni du langage dans lequel il est implanté,
Ni de la machine qui exécute le programme.
Un algorithme prend des données en entrée, exprime un traitement
particulier et fournit des données en sortie.
Programme : réalise ou implémente un algorithme en utilisant un
langage de programmation compréhensible par l’ordinateur, peut être
exécuté.
5
Structure générale d’un algorithme
Algorithme Nom_Algorithme
Constantes (données du problème; constantes)
C1 = Valeur1, C2 = Valeur2,…., Cn = Valeur n
Types
Type1 = définition
…
Variables (données du problème; variables et types)
V1 : Type1, V2 : Type2,…. Vn : Type n
Début (Traitement: instructions et résolution pas à pas)
Instruction1
Instruction2
………
Instruction n
Fin
6
Les variables et les constantes
Problème :
Ecrire un algorithme permettant de calculer le périmètre et la surface d’un cercle de rayon 5.
1ère solution :
Algorithme calcul
Début
Ecrire(” le périmètre = ”, 2*3.14 *5)
Ecrire(” la surface = ”, 3.14 *5*5)
Fin Inconvénients:
Pour calculer la surface d’un autre cercle de
rayon différent, il faut changer le code…
Analyse du problème:
• Lire les données en entrée (stocker la valeur du rayon dans une variable R),
• faire les traitements nécessaires (utiliser la variable R dans le traitement),
• fournir les données en sortie et afficher le résultat.
7
Les variables et les constantes…
2ème solution :
Algorithme calcul
Constantes
pi = 3.14
Variables
R, p, s : Réel
Début
Ecrire(”Entrer le rayon du cercle : ”)
Lire(R)
P 2 * pi *R
s pi *R^ 2
Ecrire (”Périmètre = ”, p)
Ecrire (”Surface = ”, s)
Fin.
8
Les variables et les constantes…
En programmation, une variable est un identificateur qui sert à
repérer un emplacement donné de la mémoire centrale. Cette notion
nous permet de manipuler des valeurs sans nous préoccuper de
l’emplacement qu’elles occupent effectivement en mémoire.
Contrairement aux variables, les constantes sont des données dont la
valeur reste fixe durant l’exécution du programme.
Exemple :
constante Pi = 3.14
9
Types de variables
A chaque variable utilisée dans le programme, il faut associer un type qui permet
de définir :
l’ensemble des valeurs que peut prendre la variable
l’ensemble des opérations qu’on peut appliquer sur la variable.
La syntaxe de la déclaration d’une variable est la suivante :
Variable 1, Variable 2, … : Type
Les principaux types utilisés en algorithmique sont :
le type entier
le type réel
le type caractère
le type chaîne de caractères
le type booléen.
10
Types de variables :Le type entier
Une variable est dite entière si:
1. Elle prend ses valeurs dans Z (ensemble des entiers relatifs)
2. Qu’elle peut supporter les opérations suivantes:
Opération Notation
Addition +
Soustraction -
Multiplication *
Division entière Div
Modulo(reste de la division) mod
11
Types de variables : Le type réel
Une variable est dite réelle si:
1. Elle prend ses valeurs dans R (ensemble des nombres réels)
2. Qu’elle peut supporter les opérations suivantes:
Opération Notation
Addition +
Soustraction -
Multiplication *
Division réelle /
12
Types de variables : Le type caractère
2.3 Types de variables
Dans une variable de type caractère, on stocke des :
Lettres (minuscules et majuscules)
caractères spéciaux (‘*’, ‘£’, ‘%’, ...)
Espaces: ‘ ‘
Chiffres: ‘0’... ‘9’
Les opérateurs définis sur les données de type caractère sont :
=, ≠, <, <=, >, >=.
La comparaison entre les caractères se fait selon leur code ASCII:
‘ ‘ < ‘0’ < ‘1’ < ‘A’ < ‘a’ < ‘{‘
13
Types de variables : Le type caractère
Le code ASCII
Les caractères sont généralement codés sur 8 bits (1 octet)
Chaque caractère possède son équivalent en code numérique : c’est le code ASCII
(American Standard Code for Information Interchange)
Le code ASCII de base représente les caractères sur 7 bits (c’est-à-dire 128
caractères possibles, de 0 à 127). Il a été mis au point pour la langue anglaise, il ne
contient donc pas de caractères accentués, ni de caractères spécifiques à une langue.
Pour coder ce type de caractère il faut recourir à un autre code : c’est le code ASCII
étendu à 8 bits (un octet)
Les codes de 48 à 57 représentent les chiffres ‘0’, ‘1’, …, ’9’
Les codes de 65 à 90 représentent les majuscules ‘A’, ‘B’, … ‘Z’
Les codes de 97 à 122 représentent les minuscules ‘a’, ‘b’, … ‘z’
14
Types de variables : Le type caractère
Le code ASCII…
Table code ASCII 0-127
15
Types de variables : Le type booléen
2.3 Types de variables
• Une variable logique ne peut prendre que les valeurs VRAI ou
FAUX
• Elle intervient dans l’évaluation d’une condition
• Les principales opérations définies sur les variables de type logique
sont :
la négation (NON),
l’intersection (ET)
l’union (OU).
16
Déclarer une constante
constante <identificateurs> = <expression>
Fonction
Instruction permettant de réserver de l’espace mémoire pour
stocker des données dont la valeur est fixée pour tout l’algorithme
Exemples
constante MAX = 100
DOUBLEMAX = MAX ×2
17
Déclarer une Variable
2.5 Déclarer une variable
Variable <identificateurs>: type
Fonction
Instruction permettant de réserver de l’espace mémoire pour stocker provisoirement
des données (dépend du type de ces données: entier, réels, caractères, chaîne de
caractères ou booléen)
Exemples
Variable val: entier
nom: chaîne de caractères
Remarques :
Le nom d’une variable doit être :
Unique pour chaque variable
Commence toujours par une lettre, les chiffres sont autorisés à condition de ne pas
les mettre au début du nom
Toute variable doit être déclarée avant son utilisation
La lisibilité d’un algorithme dépend étroitement du choix des noms des variables qui
doivent être simples et significatifs
18
Saisir une donnée
2.6 Saisir une donnée
Lire (<liste des variables>)
Fonction
Instruction permettant de placer en mémoire les informations fournies
par l’utilisateur
Exemples
Lire (val)
Lire (nom, prenom)
19
Afficher une donnée
2.7 Afficher une donnée
Ecrire (<liste des variables, de constantes ou d’expressions>)
Fonction
Instruction permettant de visualiser les informations placées en
mémoire.
Exemples
Ecrire (val, "est différent de 0")
20
Types d’opérateurs
Il existe plusieurs types d’opérateurs :
Les opérateurs arithmétiques
Les opérateurs de comparaison
Les opérateurs logiques
L’opérateur de concaténation de chaînes
L’opérateur d’affectation ()
21
Types d’opérateurs…
Les opérateurs arithmétiques
permettent d’effectuer des opérations arithmétiques entre des
opérandes numériques (entiers, réels)
Opérations élémentaires : +, -, *, div, mod, /
changement de signe : " - "
élévation à la puissance : " ^ "
Les opérateurs de comparaison =, , >, >=, <, <=
permettent de comparer deux opérandes, le résultat est une valeur
booléenne. Ils s’appuient sur des relations d’ordre : Ordre naturel
(entiers ou réels) et Ordre lexicographique ASCII ( caractères,
chaînes de caractères)
22
Types d’opérateurs…
Les opérateurs logiques : NON, ET, OU
combinent des opérandes booléennes pour former des expressions logiques
plus complexes
L’opérateur de concaténation de chaînes de caractères (+)
permet d’ajouter une chaîne à la fin d’une autre chaîne, le résultat est une
chaîne
L’opérateur d’affectation ()
c’est l’opérateur qui attribue une valeur à une variable
Exemple : A 6
signifie mettre la valeur 6 dans la case mémoire identifiée par A
Remarque : La valeur de l’expression à droite du signe d’affectation
doit être du même type ou de type compatible avec celui de la variable à
gauche.
23
Affecter une valeur à une variable
2.8 Affecter une valeur à une variable
<identificateur> ← < expression > ou
< constante > ou
< identificateur >
Fonction
Instruction permettant d’attribuer à la variable identifiée par
l’élément placé à gauche du symbole ← la valeur de l’élément
placé à droite de ce symbole.
Exemples
nom ← "maison "
val ← 30
val ← x -2
24
Affecter une valeur à une variable…
2.9 Affecter une valeur à une variable
Comparons maintenant les deux algorithmes suivants :
Exemple n°1
Début
X ← ‘R’
Y ← ‘X’
Fin
Exemple n°2
Début
X ← ‘R’
Y←X
Fin
25
Notion d’expression
Une expression est une combinaison de variables, constantes et opérateurs.
Une expression exprime un calcul (expression arithmétique) ou une relation
(expression logique)
Exemples : a+b ; 5*x-(y/z^2) ; NON a OU b ETc
Durant le déroulement de l’algorithme, toutes les expressions sont évaluées
Lors de l’évaluation d’une expression, la priorité de chaque opérateur permet de
définir l’ordre selon lequel les différentes opérations seront exécutées
Pour lever l’ambiguïté ou modifier cet ordre, on utilise des parenthèses
26
Notion d’expression…
Priorité des opérateurs dans l’évaluation d’une expression
Priorité Type Opérateur
1 Signe négatif (moins unaire) -
2 Parenthèses ()
3 Puissance ^
4 Négation NON
5 Multiplication / Division * / div mod
6 Addition / Soustraction + -
7 Op. relationnels > < >= <=
8 Égalité / Inégalité =
9 ET relationnel ET
10 OU relationnel OU
11 L’opérateur d’affectation
Remarque : Si une expression contient plusieurs opérateurs ayant la
même priorité, on commence par celui situé le plus à gauche
27
Expression arithmétique
2.10 Expressions et opérateurs
L’ordre selon lequel se déroule chaque opération de calcul est
important.
On se sert des parenthèses et des relations de priorité entre les
opérateurs pour éviter l’ambiguité dans l’écriture.
Exemple: x*5.3 / (2+pi)
L’ordre de priorité des opérateurs arithmétiques est le suivant:
Priorité Opérateurs
1 - Signe négatif (unaire)
2 ()
3 ^
4 *, /, div, mod
5 +, -
28
Expressions logiques
2.10 Expressions et opérateurs
Les opérations définies sur les variables logiques sont : la négation
(NON), l’intersection (ET) et l’union (OU)
L’application de ces opérateurs se fait selon la table de vérité
suivante:
A B NON (A) A ET B A OU B
Vrai Vrai Faux Vrai Vrai
Vrai faux Faux Faux Vrai
Faux Vrai Vrai Faux Vrai
Faux faux vrai faux faux
29
Expressions et opérateurs
Les expressions logiques sont des combinaisons entre des variables
et/ou des constantes à l’aide d’opérateurs relationnels (=, <, ...) et/ou
des combinaisons entre les variables et/ou des constantes logiques à
l’aide d’opérateurs logiques (NON, ET, OU).
L’ordre de priorité des ces opérateurs est le suivant :
Priorité Opérateurs
1 NON
2 ET
3 OU
30