Vous êtes sur la page 1sur 26

Chapitre1 : les structures de

données
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Spécialités : Big Data et Analyse de Données , Génie Logiciel et Système d’information et Informatique et
Multimédia
Matière : Algorithmes et Structures de Données I
Enseignant responsable : Mr ben Rkaya Moez – Professeur Principal Emérite à l’enseignement supérieur
(université Tunis EL Manar- Institut supérieur d’Informatique Tunis)
Contact : moez.benrkaya@isi.utm.tn
Année universitaire: 2022/2023
Plan du chapitre
 Débuter en algorithme
 Structure d’un algorithme
 Les constantes
 Les variables
 Priorité des opérateurs
 Fonctions standards

Algorithmique Structures de données 2


Objectifs

 Définir les notions de constante et de variable


 Déclarer des variables de type simple, de type chaîne de
caractères et de type tableau
 Distinguer les types simples du type tableau
 Manipuler les Modules de calcul standards

Algorithmique Structures de données 3


Débuter en algorithmique…
Un algorithme est une suite finie d’opérations élémentaires, à appliquer dans un ordre déterminé, à des
données. Exp : les recettes de cuisine, un itinéraire de route pour aller d’un lieu à un autre…
Un algorithme comprend trois étapes :
 Une phase d'initialisation : C'est la préparation du traitement. On repère les données nécessaires à la
résolution.
 Une phase de traitement du problème : On détermine les étapes du traitement et donc les instructions
à donner pour une exécution automatique.
 Une phase de sortie des résultats : Les résultats obtenus peuvent être affichés à l'écran, imprimés ou
encore sauvegardés dans un fichier. Les sorties peuvent éventuellement être des graphiques, des
images...

Algorithmique Structures de données 4


Débuter en algorithmique…
Reprenons l’exemple de la recette de cuisine :
phase d'initialisation : c’est la liste des ingrédients nécessaires
phase de traitement du problème : ce sont les différentes étapes (mélanger, mettre au four…)
phase de sortie des résultats : servir le plat sur la table.
 Un peu d’historique : Le premier à avoir systématisé des algorithmes est le mathématicien
perse Al-Khwârizmî, entre 813 et 833.
• Un algorithme ne dépend pas:
 du langage dans lequel il est implanté,
 ni de la machine qui exécute le programme.

Algorithmique Structures de données 5


Structure d’un algorithme
Un algorithme est composé de trois parties principales (figure ci dessous) :

Algorithmique Structures de données 6


Les constantes
Une constante est une donnée dont on décide de garder la valeur inchangée tout le long
d’un algorithme
Exemple :
Pi = 3.14 , masse de l'électron (me) = 9,1094 10-31 kg
Syntaxe :
Const
<Nom const > = val

Algorithmique Structures de données 7


Les variables
Une variable est un objet pouvant prendre différentes valeurs lors de l’exécution d’un
algorithme. Une variable est caractérisée par :
 son identificateur (nom)
 son type
 son contenu
Syntaxe
Var
<identificateur> : <Type>

Algorithmique Structures de données 8


Les variables
les types de base (1)
Type entier (Voir la priorité des opérateurs ): Il représente l’ensemble des entiers relatifs tel

que : 8, -10, 3……

Opérations permises : +, -, *, div (division entière) et mod ( reste de la division entière)

Type réel : Il représente l’ensemble IR

Deux formes de représentation : La forme usuelle « a.b » exemple : -4.6, 13.9 ….. ou la

forme scientifique a E b exemple : 345 = 3.45 E2 = 0.345 E3

Opérations permises : +, -, *, /

Algorithmique Structures de données 9


Les variables
les types de base (2)
Type caractère - Il peut être une lettre, un chiffre ou caractère spécial exemple : ‘a’, ‘b’, ‘3’ ….,

Tous ces caractères sont ordonnés selon leurs codes ASCII variant de 0 à 255. (Voir tableau

des codes ASCII)

Opérations permises : =, ≠, <, <=, >, >=

Type booléen - Il représente les deux valeurs ‘Vrai’ et ‘Faux’

Opérations permises : NON, ET, OU

Algorithmique Structures de données 10


Les variables
les types de base (3)
Type chaine de caractère: Une chaîne de caractères est une entité composée d'une suite de
n caractères. n étant compris entre 0 et 255. Si n est nulle, on dit que la chaîne est vide.
Exemples : "La programmation est passionnante! " , " " : c'est la chaîne vide
Syntaxe Var <identificateur> : Chaine de caractère
La comparaison de deux ou de plusieurs chaînes de caractères est basée sur les codes ASCII. En
effet, la comparaison se fait caractère par caractère en partant des premiers. Exemple : Attribuons à CH1
la valeur “FAMILLE” et à CH2 la valeur “FAMILY” et évaluons l'expression CH1>CH2.
La machine comparera caractère par caractère. Jusqu'au 5ème caractère, il n'y a aucune différence. La
6ème comparaison sera concluante car savoir si CH1>CH2 revient à déterminer si “L” est supérieur à “Y”
et puisque ce n'est pas le cas alors CH1>CH2 est FAUSSE.

Algorithmique Structures de données 11


Les variables
les types de base (4)
Un vecteur (ou tableau) est une partie de mémoire contenant n zones variables référencées par le même

nom de variable pour accéder à un élément particulier de ce vecteur.

On indice le nom de variable MOY . L'indice peut être une constante MOY[5], une variable

MOY[i] ou une expression arithmétique MOY[i*2].

NB : Avant d'utiliser un tableau, il faut déclarer sa taille pour que le système réserve la place en

mémoire, nécessaire pour stocker tous les éléments de ce tableau.

Les éléments d'un même tableau doivent être de même type.

Syntaxe VAR Non_tableau : Tableau [bi..bs] de Type

Algorithmique Structures de données 12


Priorité des opérateurs
Opérateurs Rang
() 1
Not (!) ++ -- 2
* / (div) %(mod) 3
+ - 4
< <= > >= 5
== != 6
ET (&&) 7
OR(||) 8
= += -= *= /= %= 9

Algorithmique Structures de données 13


Activité1
Quel est l’ordre de priorité des différents opérateurs de l’expression suivante :
((3 * a) – x ^ 2) – (((c – d) / (a / b)) / d)
Evaluer l’expression suivante :
5 + 2 * 6 – 4 + (8 + 2 ^3) / (2 – 4 + 5 * 2)
Ecrire la formule suivante sous forme d’une expression arithmétique :

Sachant que a = 4, b = 5, c = -1 et d = 0
évaluer les expressions logiques suivantes :
(a < b) ET (c >= d)
NON (a < b) OU ( c # b )
NON ((a # b ^ 2) OU (a * c < d))
Algorithmique Structures de données 14
Solution Activité1

Algorithmique Structures de données 15


Fonctions standards
Type
Syntaxe Rôle Exemples
Paramètres d’entrée Résultat

Abs(x) Valeur absolue Entier/réel Type de x abs(-4) = 4

Racine Carré (x) racine carrée de x entier/réel entier Racine Carré(25) = 5.00 ;

Carré (x) entier/réel entier/réel Type de x Carré (2) = 4 ;

Tronc (x) partie entière de x entier/réel entier Tronc (3.15) = 3 TRUNC (-3.15) = -3

Ent (x) partie entière de x entier/réel réel Ent (3.15) = 3.00

Arrondi (9.49) = 9
Arrondi (x) entier le plus proche de x entier/réel entier
Arrondi (9.5) = 10

Frac (x) partie décimale de x réel réel FRAC (2.45) = 0.45

caractère dont le code ASCII est


Chr (x) octet caractère CHR (65) = ‘A’
x

Ord (x) rang de la valeur x scalaire entier ORD(‘A’)=65 ; ORD(18)=18 ; ORD(true)=1

Algorithmique Structures de données 16


Fonctions standards
Type
Syntaxe Rôle Exemples
Paramètres d’entrée Résultat
renvoie un réel aléatoire dans [ 0,
Aléa - réel 0.36
1[
renvoie un entier aléatoire dans [
Aléa (x) entier entier Aléa (7) renvoie un entier dans [0, 6]
0, x-1]
VRAI si x est impair FAUX si x est
Odd (x) entier booléen ODD (3) = True ODD (8) = False
pair
PRED (5) = 4 ; PRED (‘C’) = ‘B’ PRED (True)
Pred (x) prédécesseur de x, s’il existe scalaire type de x
= False
SUCC (5) = 6 ; SUCC (‘C’) = ‘D’ SUCC
Succ (x) successeur de x, s’il existe scalaire type de x
(False) = True

Majus (x) majuscule de x, s’il est possible caractère caractère Majus (‘b’) = ‘B’

Algorithmique Structures de données 17


Modules de calcul standards
Type
Syntaxe Rôle Exemples
Paramètres d’entrée Résultat
lg <- long("Turbo Pascal") lg = 12
Retourne un entier représentant la
Long (ch) Chaîne Entier lg <- long (''") lg = 0
longueur de ch.
lg <-long (" ") lg = 1
P <-Pos ('a', "Programmation") p = 6
Retourne la première position de
Pos (ch1, ch2) Chaînes Entier p <- Pos ("gra", "Program") p = 4
la chaîne ch1 dans la chaîne ch2.
P <- Pos ('R', "Program") p= 0
Retourne une sous chaîne de n
CH <-Sous_chaîne ("Langage", 4, 3)
Sous_chaîne (ch, p, n) caractères à partir de la position p Chaîne, Entier, Entier Chaîne
CH = 'gag'
de la chaîne ch.
Retourne la concaténation de CH1 <- "Janvier" ;
Concat (ch1, ch2, …) plusieurs chaînes en une seule. Chaînes Chaîne CH2 <- Concat ("14", "/", ch1, "/", "2011")
C'est l'équivalent de ch1+ch2+… CH2 = "14/Janvier/2011"

Algorithmique Structures de données 18


Modules de calcul standards
Type
Syntaxe Rôle Exemples
Paramètres d’entrée Résultat
Supprime N caractères de CH à CH <- "Esclave"
Efface (ch, p, n) Chaîne, Entier, Entier Chaîne
partir de la position P. Efface (CH, 1, 3) ; CH devient "lave"
CH1 <- "DA" CH2 <- "DIC"
Insère une chaîne CH1 dans une Chaîne/Caractère, Chaîne,
Insère (ch1, ch2, p) Chaîne Insère (CH1, CH2, 3)
autre CH2 à la position P Entier
CH2 devient "DIDAC"
Convch (2012, CH) // CH = "2012"
Convertit une valeur numérique N
Convch (n, ch) Numérique, Chaîne Chaîne Convch(14.52,CH)//CH="1.4520000000E+
en une chaîne CH.
01"
VAL ("1967", n, err)
Convertit une chaîne de n = 1967 et err = 0
caractères CH en une valeur VAL ("25H64", n, err)
numérique N. De plus, elle fournit Chaîne/Caractère, Numérique, n = 0 et err = 3
Valeur (ch, n, err)
un code d'erreur ERR qui indique Numérique, Entier Entier Si n de type entier, après Val ("5.26", n,
si l'opération s'est déroulée err), on obtient n = 0 et err = 2
correctement. • Si n de type réel, après Val ("5.26", n,
err), on obtient n = 5.26 et err = 0

Algorithmique Structures de données 19


Activité2
Copier le tableau sur votre feuille puis remplissez
la deuxième colonne par le résultat de l’évaluation
donnée en algorithmique.

Algorithmique Structures de données 20


Chapitre 2
« les structures simples »
Dans ce chapitre, vous allez commencer à écrire vos premiers algorithmes. Les problèmes
à résoudre traiteront les structures simples à savoir les opérations d’entrées/sorties et
l’affectation.
Algorithmique Structures de données 21
Plan du chapitre
 L’opération d’entrée
 L’opération de sortie
 Les affectations

Algorithmique Structures de données 22


L’opération d’entrée
1. L’opération d’entrée permet à l’utilisateur de saisir des valeurs au clavier pour qu’elles soient
utilisées par le programme. Cette opération est la lecture.
syntaxe : lire (n) , n: Type
1. Dès que le programme rencontre une instruction de lecture, l’exécution s’arrête en attendant la
saisie d’une valeur au clavier. Aussitôt que la touche Entrée a été frappée, l’exécution reprend
après validation de la saisie.
2. Quand on demande à la machine de lire une valeur, cela implique que l’utilisateur va devoir
écrire cette valeur.
3. Avant de lire le contenu d’un objet, il est très fortement conseillé d’écrire des libellés ou des
messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit saisir.

Algorithmique Structures de données 23


L’opération de sortie
 L’opération de sortie permet au programme de communiquer des valeurs à l’utilisateur en les
affichant à l’écran. Cette opération est l’écriture.
 syntaxe : Ecrire("la valeur de n est " , n) ,
 Quand on demande à la machine d’écrire une valeur, c’est pour que l’utilisateur puisse la lire.
 En langage C, il est possible d’utiliser l’instruction printf(n, "\n") qui permet d’afficher la valeur
de l’objet n puis de revenir à la ligne.

Algorithmique Structures de données 24


Les affectations
 L’action d’affectation est le fait d’attribuer une valeur à un objet donné. L'instruction d'affectation se note
avec le signe ← .
 Ainsi, l’instruction n ← 24 permet d’attribuer la valeur 24 à l’objet n.
 Il est possible d’attribuer à un objet la valeur d’un autre objet telle quelle ou modifiée mais de type
compatibles.

Exemple Commentaire

m← n La valeur de l’objet m devient égale à la


valeur de l’objet n.
x ← 2*y + 5 La valeur de l’objet x devient égale au double
de la valeur de l’objet y incrémentée de 5.
a ← carré (a)-3 La valeur de l’objet a devient égale au carré
de sa valeur actuelle décrémentée de 3.

Algorithmique Structures de données 25


Exercices d’applications
Ex n1 Ecrivez un algorithme qui permet d’afficher la surface d’un disque de rayon donné. Cette
surface est calculée en appliquant la formule suivante Surface = π* r2 sachant que r est le rayon du
disque.
Ex n2 Ecrire l'algorithme qui permet de saisir un entier de 3 chiffres puis affiche la somme de ces 3
chiffres. Exemple : pour 145 S=1+4+5=10 (sans / avec (convch et valeur))
Ex n3 Ecrivez un algorithme qui permet de saisir une durée en secondes puis d’afficher le nombre
d’heures, minutes et secondes . Sachant que : 1 minute=60 secondes 1 heure=3600 secondes
Exemple : durée=4000 : 1 heure(s) 6 minute(s) 40 seconde(s)
Ex n4 Ecrivez un algorithme qui permet de saisir une date de la forme jj/mm/aaaa puis d’extraire le
jour , le mois et l’année dans 3 variables J ,M,A enfin les afficher.
Exemple : donner une date : 20/03/1956
Jour=20 mois=03 Année=1956

Algorithmique Structures de données 26

Vous aimerez peut-être aussi