SlideShare uma empresa Scribd logo
1 de 27
COURS D’ALGORITHME &
STRUCTURES DE DONNÉES (ASD I)
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
INSTITUT DES HAUTES ETUDES DE SOUSSE
CHAPITRE I: INTRODUCTION À LA
PROGRAMMATION & LES
INSTRUCTIONS SIMPLES
Plan du Cours
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
I. Notion de programme
II. Interprétation et compilation
III. Démarche de programmation
IV. Notion de variable
V. Notion de constante
VI. Notion de type
VII. Les expressions
VIII. L’instruction d’affectation
IX. L’instruction d’écriture
X. L’instruction de lecture
XI. Structure générale d’un algorithme
 Exercices d’application
1
I. Notion de programme
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
 Le mot programmation recouvre l’ensemble des activités qui
font passer d’un problème à un programme.
 Un programme 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.
 Supposons qu’un enseignant dispose d’un ordinateur et d’un
programme de calcul de la moyenne des étudiants. Pour
s’exécuter, ce programme nécessite qu’on lui fournisse pour
chaque étudiant, les notes de contrôle continu, de T.P et de
l’examen final : ce sont les données. En retour, le programme
va fournir la moyenne cherchée : c’est le résultat.
2
I. Notion de programme
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
 De la même manière, un programme de paie nécessite des
informations données : noms des employés, grades, numéros
de sécurité sociale, situations familiales, nombre d’heures
supplémentaires, etc. Les résultats seront imprimés sur les
différents bulletins de paie : identification de l’employé, salaire
brut, retenue sécurité sociale, etc.
3
II. Interprétation & compilation
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
 L’ordinateur ne sait exécuter qu’un nombre limité d’opérations
élémentaires dictées par des instructions de programme et codées en
binaire (langage machine). Obligatoirement, les premiers programmes
étaient écrits en binaire. C’était une tâche difficile et exposée aux erreurs
car il fallait aligner des séquences de bits dont la signification n’est pas
évidente.
 Par la suite, pour faciliter le travail, les programmes ont été écrits en
désignant les opérations par des codes mnémoniques faciles à retenir. Pour
pouvoir utiliser effectivement tous ces symboles, il fallait trouver le moyen
de les convertir en langage machine ; ce fut réalisé par un programme
appelé assembleur. Le langage d’assemblage est toujours utilisé, car c’est
le seul langage qui permet d’exploiter au maximum les ressources de la
machine.
4
II. Interprétation & compilation
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
 L’écriture de programmes en langage d’assemblage reste une
tâche fastidieuse. De plus, ces programmes présentent un
problème de portabilité étant donné qu’ils restent dépendants
de la machine sur laquelle ils ont été développés. L’apparition
des langages évolués, tels que Fortran et Pascal, a apporté
une solution à ces problèmes. Les programmes écrits en
langage évolué doivent également être convertis en langage
machine pour être exécutés. Cette conversion peut s’effectuer
de deux façons : par compilation ou par interprétation.
 La compilation consiste à traduire dans un premier temps
l’ensemble du programme en langage machine. Dans un
deuxième temps, le programme est exécuté.
 L’interprétation consiste à traduire chaque instruction du
programme en langage machine avant de l’exécuter . 5
II. Interprétation & compilation
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
6
III.Démarche de programmation
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
 La démarche de programmation se déroule en deux phases :
1) Dans un premier temps, on identifie les données du
problème, les résultats recherchés et par quel moyen on
peut obtenir ces résultats à partir des données. C’est l’étape
d’analyse du problème qui aboutit à un procédé de
résolution appelé algorithme. Une approche modulaire
consiste à décomposer le problème initial en sous-
problèmes plus simples à résoudre appelés modules. Par
exemple, un programme de gestion de scolarité comportera
un module inscription, un module examen, un module
diplôme, etc.
7
2) Dans un deuxième temps, on traduit dans le langage de
programmation choisi le résultat de la phase précédente. Si
l’analyse a été menée convenablement, cette opération se
réduit à une simple transcription systématique de
l’algorithme selon la grammaire du langage.
 Lors de l’exécution, soit des erreurs syntaxiques sont
signalées, ce qui entraîne des retours au programme et des
corrections en général simples à effectuer, soit des erreurs
sémantiques plus difficiles à déceler. Dans ce dernier cas, le
programme produit des résultats qui ne correspondent pas à
ceux escomptés : les retours vers l’analyse (l’algorithme) sont
alors inévitables.
8
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
III.Démarche de programmation
IV.Notion de variables
 Malgré une apparente diversité, la plupart des langages
sont basés sur la même technique fondamentale à savoir
la « manipulation de valeurs contenues dans des variables
».
 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.
 Notons enfin que certains langages comme C, C++ et Java
font la différence entre lettres minuscules et majuscules
alors que d’autres comme Turbo Pascal n’en font aucune
distinction. 9
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
V. Notion de constante
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
 Contrairement aux variables, les constantes sont des
données dont la valeur reste fixe durant l’exécution du
programme.
 Exemples : Pi = 3.14 g = 9.80 etc.
10
VI.Notion de type
 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 l’action de déclaration 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 logique ou booléen.
11
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
1. Le type entier
 Une variable est dite entière si elle prend ses valeurs dans
Z (ensemble des entiers relatifs) et qu’elle peut supporter
les opérations suivantes :
 Exemples :
13 div 5 = 2
13 mod 5 = 3
12
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
2. Le type réel ou décimal
 Il existe plusieurs types de réels représentant chacun un
ensemble particulier de valeurs prises dans R (ensemble des
nombres réels). Ici encore, cette distinction se justifie par le
mode de stockage des informations dans le langage de
programmation.
 Il existe deux formes de représentation des réels :
 la forme usuelle avec le point comme symbole décimal.
Exemples : -3.2467 2 12.7 +36.49
 la notation scientifique selon le format aEb
13
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
3. Le type caractère
 Un caractère peut appartenir au domaine des chiffres de ”0” à
”9”, des lettres (minuscules et majuscules) et des caractères
spéciaux (”*”, ”/”, ”{”, ”$”, ”#”, ”%” …). Un caractère sera
toujours noté entre des guillemets. Le caractère espace (blanc)
sera noté ” ”.
 Les opérateurs définis sur les données de type caractère sont :
 La comparaison entre les caractères se fait selon leur codes
ASCII. 14
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
4. Le type logique ou booléen
 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) et l’union
(OU).
 L’application de ces opérateurs se fait conformément à la table
de vérité suivante :
15
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
VII.Expressions arithmétiques
 Exemple : x * 53.4 / (2 + pi)
 L’ordre selon lequel se déroule chaque opération de calcul
est important.
 Afin d’éviter les ambiguïtés dans l’écriture, on se sert des
parenthèses et des relations de priorité entre les
opérateurs arithmétiques :
16
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
 Ce sont des combinaisons entre des variables et des
constantes à l’aide d’opérateurs relationnels (=, <, <=, >, >=, #)
et/ou des combinaisons entre des variables et des constantes
logiques à l’aide d’opérateurs logiques (NON , ET, OU, …).
 Ici encore, on utilise les parenthèses et l’ordre de priorité
entre les différents opérateurs pour résoudre les problèmes de
conflits.
17
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
VII.Expressions logiques
VIII.L’instruction d’affectation
 Le rôle de cette instruction consiste à placer une valeur dans
une variable. Sa syntaxe générale est de la forme :
Variable Expression
 Ainsi, l’instruction : A  6 signifie « mettre la valeur 6 dans la
case mémoire identifiée par A ».
 Alors que l’instruction : B  (A + 4) Mod 3 range dans B la
valeur 1 (A toujours égale à 6).
 Remarque
 La valeur ou le résultat de l’expression à droite du signe
d’affectation doit être de même type ou de type compatible
avec celui de la variable à gauche.
18
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
Exemple 1:
 Quelles seront les valeurs des variables A, B et C après
l’exécution des instructions suivantes :
A5
B  3
C  A + B
A2
C  B – A
 Trace d’exécution:
19
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
Exemple 2:
 Quelles seront les valeurs des variables A et B après l’exécution
des instructions suivantes :
A 5 ; B  7
A A + B
B  A - B
A A – B
 Trace d’exécution:
 Cette séquence d’instructions permet de permuter les valeurs
de A et B. Une deuxième façon de permuter A et B consiste à
utiliser une variable intermédiaire X :
X  A
A B
B  X
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
20
Exercice
 Soient 3 variables A, B et C. Ecrire une séquence
d’instructions permettant de faire une permutation
circulaire de sorte que la valeur de A passe dans B, celle
de B dans C et celle de C dans A. On utilisera une seule
variable supplémentaire.
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
21
IX.L’instruction de lecture
 Pour qu’un programme présente un intérêt pratique, il devra
pouvoir nous communiquer un certain nombre d’informations
(résultats) par l’intermédiaire d’un périphérique de sortie comme
l’écran ou l’imprimante. C’est le rôle de l’instruction d’écriture.
 La forme générale de cette instruction est :
Ecrire(expression1, expression2, ...)
 Exemple: Qu’obtient-on à l’écran après l’exécution des instructions
suivantes :
x 4
Ville ”Tunis”
Ecrire(x)
Ecrire(x*x)
Ecrire(”Ville”)
Ecrire(”Ville = ”,Ville) 22
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
X. L’instruction d’écriture
 Dans certains cas, nous pourrons être amenés à transmettre
des informations (données) à notre programme par
l’intermédiaire d’un périphérique d’entrée comme le clavier.
Cela sera réalisé par l’instruction de lecture.
 La forme générale de cette instruction est :
Lire(Variable1, Variable2, ...)
 Ainsi, l’instruction : Lire(A)
signifie « lire une valeur à partir du périphérique d’entrée, qui
est le clavier par défaut, et la ranger dans la variable identifiée
par A » 23
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
XI.Structure général d’un algorithme
 Les nouveaux types doivent être déclarés
dans la partie «Types».
 Toute variable utilisée dans l’algorithme
doit être préalablement déclarée.
 Les instructions placées entre «Début» et
«Fin» forment le corps principal de
l’algorithme.
 Seules les parties « Entête » et «Corps »
de l’algorithme sont obligatoires.
 L’indentation qui consiste à insérer des
tabulations avant les objets déclarés et
les instructions offre une meilleure
lisibilité de l’algorithme et le rend, par
conséquent, plus facile à comprendre et
à corriger. 24
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
Exercices d’applications
Exercice 1:
 Donner toutes les raisons pour lesquelles l’algorithme suivant
est incorrect :
Algoritme Incorrect
x, y : Entier
z : Réel
Début
z  x + 2
y z
x*2  3 + z
y 5y + 3
Fin.
25
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
Exercices d’applications
Exercice 2:
 Ecrire un algorithme qui lit deux entiers au clavier et qui
affiche ensuite leur somme et leur produit.
Exercice 3:
 Ecrire un algorithme qui lit le rayon d’un cercle et qui
affiche ensuite son périmètre et sa surface.
Exercice 4:
 Ecrire un algorithme qui calcule et affiche la résistance
d’un composant électrique en utilisant la loi d’Ohm :
26
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I

Mais conteúdo relacionado

Mais procurados

Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Aziz Darouichi
 
Algebre relationelle
Algebre relationelleAlgebre relationelle
Algebre relationellehnsfr
 
Les règles de passage
Les règles de passageLes règles de passage
Les règles de passagemarwa baich
 
Cours de programmation en c
Cours de programmation en cCours de programmation en c
Cours de programmation en cbenouini rachid
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage CAbdoulaye Dieng
 

Mais procurados (20)

Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Serie2
Serie2Serie2
Serie2
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
 
Algebre relationelle
Algebre relationelleAlgebre relationelle
Algebre relationelle
 
Les règles de passage
Les règles de passageLes règles de passage
Les règles de passage
 
Cours de programmation en c
Cours de programmation en cCours de programmation en c
Cours de programmation en c
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Cours java
Cours javaCours java
Cours java
 
Ch1-Généralités.pdf
Ch1-Généralités.pdfCh1-Généralités.pdf
Ch1-Généralités.pdf
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage C
 

Semelhante a Algorithme chap 1

cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptxMED B
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfHailisara
 
0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsx0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsxBenacerLeila
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Amina HAMEURLAINE
 
Programmation événementielle avec VB (ISIG)
Programmation événementielle avec VB (ISIG)Programmation événementielle avec VB (ISIG)
Programmation événementielle avec VB (ISIG)ISIG
 
Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdfAboubacarDiarra10
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeInforMatica34
 
Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)mahbouba
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA Asmaa BENGUEDDACH
 

Semelhante a Algorithme chap 1 (20)

Asd
AsdAsd
Asd
 
Ktab asd
Ktab asdKtab asd
Ktab asd
 
cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptx
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
Langage C
Langage CLangage C
Langage C
 
0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsx0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsx
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Programmation événementielle avec VB (ISIG)
Programmation événementielle avec VB (ISIG)Programmation événementielle avec VB (ISIG)
Programmation événementielle avec VB (ISIG)
 
langage C++
langage C++langage C++
langage C++
 
compilation1-2020.pdf
compilation1-2020.pdfcompilation1-2020.pdf
compilation1-2020.pdf
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdf
 
coursalgorithmique9-10.ppt
coursalgorithmique9-10.pptcoursalgorithmique9-10.ppt
coursalgorithmique9-10.ppt
 
Apprentissage du java
Apprentissage du javaApprentissage du java
Apprentissage du java
 
Metrique
MetriqueMetrique
Metrique
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’Algorithme
 
Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 

Mais de NAWEL_DERBEL

Mais de NAWEL_DERBEL (7)

Chap3
Chap3Chap3
Chap3
 
Code ascci
Code ascciCode ascci
Code ascci
 
Resume algorithme
Resume algorithmeResume algorithme
Resume algorithme
 
Algorithme chap 3
Algorithme chap 3Algorithme chap 3
Algorithme chap 3
 
Algorithme chap 2
Algorithme chap 2Algorithme chap 2
Algorithme chap 2
 
Exercices algo
Exercices algoExercices algo
Exercices algo
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 

Último

Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 

Último (16)

Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 

Algorithme chap 1

  • 1. COURS D’ALGORITHME & STRUCTURES DE DONNÉES (ASD I) 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I INSTITUT DES HAUTES ETUDES DE SOUSSE CHAPITRE I: INTRODUCTION À LA PROGRAMMATION & LES INSTRUCTIONS SIMPLES
  • 2. Plan du Cours 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I I. Notion de programme II. Interprétation et compilation III. Démarche de programmation IV. Notion de variable V. Notion de constante VI. Notion de type VII. Les expressions VIII. L’instruction d’affectation IX. L’instruction d’écriture X. L’instruction de lecture XI. Structure générale d’un algorithme  Exercices d’application 1
  • 3. I. Notion de programme 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I  Le mot programmation recouvre l’ensemble des activités qui font passer d’un problème à un programme.  Un programme 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.  Supposons qu’un enseignant dispose d’un ordinateur et d’un programme de calcul de la moyenne des étudiants. Pour s’exécuter, ce programme nécessite qu’on lui fournisse pour chaque étudiant, les notes de contrôle continu, de T.P et de l’examen final : ce sont les données. En retour, le programme va fournir la moyenne cherchée : c’est le résultat. 2
  • 4. I. Notion de programme 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I  De la même manière, un programme de paie nécessite des informations données : noms des employés, grades, numéros de sécurité sociale, situations familiales, nombre d’heures supplémentaires, etc. Les résultats seront imprimés sur les différents bulletins de paie : identification de l’employé, salaire brut, retenue sécurité sociale, etc. 3
  • 5. II. Interprétation & compilation 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I  L’ordinateur ne sait exécuter qu’un nombre limité d’opérations élémentaires dictées par des instructions de programme et codées en binaire (langage machine). Obligatoirement, les premiers programmes étaient écrits en binaire. C’était une tâche difficile et exposée aux erreurs car il fallait aligner des séquences de bits dont la signification n’est pas évidente.  Par la suite, pour faciliter le travail, les programmes ont été écrits en désignant les opérations par des codes mnémoniques faciles à retenir. Pour pouvoir utiliser effectivement tous ces symboles, il fallait trouver le moyen de les convertir en langage machine ; ce fut réalisé par un programme appelé assembleur. Le langage d’assemblage est toujours utilisé, car c’est le seul langage qui permet d’exploiter au maximum les ressources de la machine. 4
  • 6. II. Interprétation & compilation 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I  L’écriture de programmes en langage d’assemblage reste une tâche fastidieuse. De plus, ces programmes présentent un problème de portabilité étant donné qu’ils restent dépendants de la machine sur laquelle ils ont été développés. L’apparition des langages évolués, tels que Fortran et Pascal, a apporté une solution à ces problèmes. Les programmes écrits en langage évolué doivent également être convertis en langage machine pour être exécutés. Cette conversion peut s’effectuer de deux façons : par compilation ou par interprétation.  La compilation consiste à traduire dans un premier temps l’ensemble du programme en langage machine. Dans un deuxième temps, le programme est exécuté.  L’interprétation consiste à traduire chaque instruction du programme en langage machine avant de l’exécuter . 5
  • 7. II. Interprétation & compilation 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I 6
  • 8. III.Démarche de programmation 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I  La démarche de programmation se déroule en deux phases : 1) Dans un premier temps, on identifie les données du problème, les résultats recherchés et par quel moyen on peut obtenir ces résultats à partir des données. C’est l’étape d’analyse du problème qui aboutit à un procédé de résolution appelé algorithme. Une approche modulaire consiste à décomposer le problème initial en sous- problèmes plus simples à résoudre appelés modules. Par exemple, un programme de gestion de scolarité comportera un module inscription, un module examen, un module diplôme, etc. 7
  • 9. 2) Dans un deuxième temps, on traduit dans le langage de programmation choisi le résultat de la phase précédente. Si l’analyse a été menée convenablement, cette opération se réduit à une simple transcription systématique de l’algorithme selon la grammaire du langage.  Lors de l’exécution, soit des erreurs syntaxiques sont signalées, ce qui entraîne des retours au programme et des corrections en général simples à effectuer, soit des erreurs sémantiques plus difficiles à déceler. Dans ce dernier cas, le programme produit des résultats qui ne correspondent pas à ceux escomptés : les retours vers l’analyse (l’algorithme) sont alors inévitables. 8 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I III.Démarche de programmation
  • 10. IV.Notion de variables  Malgré une apparente diversité, la plupart des langages sont basés sur la même technique fondamentale à savoir la « manipulation de valeurs contenues dans des variables ».  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.  Notons enfin que certains langages comme C, C++ et Java font la différence entre lettres minuscules et majuscules alors que d’autres comme Turbo Pascal n’en font aucune distinction. 9 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 11. V. Notion de constante 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I  Contrairement aux variables, les constantes sont des données dont la valeur reste fixe durant l’exécution du programme.  Exemples : Pi = 3.14 g = 9.80 etc. 10
  • 12. VI.Notion de type  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 l’action de déclaration 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 logique ou booléen. 11 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 13. 1. Le type entier  Une variable est dite entière si elle prend ses valeurs dans Z (ensemble des entiers relatifs) et qu’elle peut supporter les opérations suivantes :  Exemples : 13 div 5 = 2 13 mod 5 = 3 12 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 14. 2. Le type réel ou décimal  Il existe plusieurs types de réels représentant chacun un ensemble particulier de valeurs prises dans R (ensemble des nombres réels). Ici encore, cette distinction se justifie par le mode de stockage des informations dans le langage de programmation.  Il existe deux formes de représentation des réels :  la forme usuelle avec le point comme symbole décimal. Exemples : -3.2467 2 12.7 +36.49  la notation scientifique selon le format aEb 13 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 15. 3. Le type caractère  Un caractère peut appartenir au domaine des chiffres de ”0” à ”9”, des lettres (minuscules et majuscules) et des caractères spéciaux (”*”, ”/”, ”{”, ”$”, ”#”, ”%” …). Un caractère sera toujours noté entre des guillemets. Le caractère espace (blanc) sera noté ” ”.  Les opérateurs définis sur les données de type caractère sont :  La comparaison entre les caractères se fait selon leur codes ASCII. 14 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 16. 4. Le type logique ou booléen  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) et l’union (OU).  L’application de ces opérateurs se fait conformément à la table de vérité suivante : 15 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 17. VII.Expressions arithmétiques  Exemple : x * 53.4 / (2 + pi)  L’ordre selon lequel se déroule chaque opération de calcul est important.  Afin d’éviter les ambiguïtés dans l’écriture, on se sert des parenthèses et des relations de priorité entre les opérateurs arithmétiques : 16 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 18.  Ce sont des combinaisons entre des variables et des constantes à l’aide d’opérateurs relationnels (=, <, <=, >, >=, #) et/ou des combinaisons entre des variables et des constantes logiques à l’aide d’opérateurs logiques (NON , ET, OU, …).  Ici encore, on utilise les parenthèses et l’ordre de priorité entre les différents opérateurs pour résoudre les problèmes de conflits. 17 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I VII.Expressions logiques
  • 19. VIII.L’instruction d’affectation  Le rôle de cette instruction consiste à placer une valeur dans une variable. Sa syntaxe générale est de la forme : Variable Expression  Ainsi, l’instruction : A  6 signifie « mettre la valeur 6 dans la case mémoire identifiée par A ».  Alors que l’instruction : B  (A + 4) Mod 3 range dans B la valeur 1 (A toujours égale à 6).  Remarque  La valeur ou le résultat de l’expression à droite du signe d’affectation doit être de même type ou de type compatible avec celui de la variable à gauche. 18 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 20. Exemple 1:  Quelles seront les valeurs des variables A, B et C après l’exécution des instructions suivantes : A5 B  3 C  A + B A2 C  B – A  Trace d’exécution: 19 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 21. Exemple 2:  Quelles seront les valeurs des variables A et B après l’exécution des instructions suivantes : A 5 ; B  7 A A + B B  A - B A A – B  Trace d’exécution:  Cette séquence d’instructions permet de permuter les valeurs de A et B. Une deuxième façon de permuter A et B consiste à utiliser une variable intermédiaire X : X  A A B B  X 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I 20
  • 22. Exercice  Soient 3 variables A, B et C. Ecrire une séquence d’instructions permettant de faire une permutation circulaire de sorte que la valeur de A passe dans B, celle de B dans C et celle de C dans A. On utilisera une seule variable supplémentaire. 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I 21
  • 23. IX.L’instruction de lecture  Pour qu’un programme présente un intérêt pratique, il devra pouvoir nous communiquer un certain nombre d’informations (résultats) par l’intermédiaire d’un périphérique de sortie comme l’écran ou l’imprimante. C’est le rôle de l’instruction d’écriture.  La forme générale de cette instruction est : Ecrire(expression1, expression2, ...)  Exemple: Qu’obtient-on à l’écran après l’exécution des instructions suivantes : x 4 Ville ”Tunis” Ecrire(x) Ecrire(x*x) Ecrire(”Ville”) Ecrire(”Ville = ”,Ville) 22 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 24. X. L’instruction d’écriture  Dans certains cas, nous pourrons être amenés à transmettre des informations (données) à notre programme par l’intermédiaire d’un périphérique d’entrée comme le clavier. Cela sera réalisé par l’instruction de lecture.  La forme générale de cette instruction est : Lire(Variable1, Variable2, ...)  Ainsi, l’instruction : Lire(A) signifie « lire une valeur à partir du périphérique d’entrée, qui est le clavier par défaut, et la ranger dans la variable identifiée par A » 23 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 25. XI.Structure général d’un algorithme  Les nouveaux types doivent être déclarés dans la partie «Types».  Toute variable utilisée dans l’algorithme doit être préalablement déclarée.  Les instructions placées entre «Début» et «Fin» forment le corps principal de l’algorithme.  Seules les parties « Entête » et «Corps » de l’algorithme sont obligatoires.  L’indentation qui consiste à insérer des tabulations avant les objets déclarés et les instructions offre une meilleure lisibilité de l’algorithme et le rend, par conséquent, plus facile à comprendre et à corriger. 24 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 26. Exercices d’applications Exercice 1:  Donner toutes les raisons pour lesquelles l’algorithme suivant est incorrect : Algoritme Incorrect x, y : Entier z : Réel Début z  x + 2 y z x*2  3 + z y 5y + 3 Fin. 25 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
  • 27. Exercices d’applications Exercice 2:  Ecrire un algorithme qui lit deux entiers au clavier et qui affiche ensuite leur somme et leur produit. Exercice 3:  Ecrire un algorithme qui lit le rayon d’un cercle et qui affiche ensuite son périmètre et sa surface. Exercice 4:  Ecrire un algorithme qui calcule et affiche la résistance d’un composant électrique en utilisant la loi d’Ohm : 26 2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I