Upload
ines-ouaz
View
375
Download
6
Embed Size (px)
DESCRIPTION
Support de cours algorithme & structures de données I Chapitre 1: Introduction à la programmation & les instructions simples
Citation preview
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’application1
I. Notion de programme
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
Le mot programmation recouvre l’ensemble des activités quifont passer d’un problème à un programme.
Un programme est un texte constitué d’un ensemble dedirectives, 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’unprogramme de calcul de la moyenne des étudiants. Pours’exécuter, ce programme nécessite qu’on lui fournisse pourchaque étudiant, les notes de contrôle continu, de T.P et del’examen final : ce sont les données. En retour, le programmeva 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 desinformations données : noms des employés, grades, numérosde sécurité sociale, situations familiales, nombre d’heuressupplémentaires, etc. Les résultats seront imprimés sur lesdifférents bulletins de paie : identification de l’employé, salairebrut, 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 enbinaire (langage machine). Obligatoirement, les premiers programmesétaient écrits en binaire. C’était une tâche difficile et exposée aux erreurscar 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 endésignant les opérations par des codes mnémoniques faciles à retenir. Pourpouvoir utiliser effectivement tous ces symboles, il fallait trouver le moyende les convertir en langage machine ; ce fut réalisé par un programmeappelé assembleur. Le langage d’assemblage est toujours utilisé, car c’estle seul langage qui permet d’exploiter au maximum les ressources de lamachine.
4
II. Interprétation & compilation
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
L’écriture de programmes en langage d’assemblage reste unetâche fastidieuse. De plus, ces programmes présentent unproblème de portabilité étant donné qu’ils restent dépendantsde la machine sur laquelle ils ont été développés. L’apparitiondes langages évolués, tels que Fortran et Pascal, a apportéune solution à ces problèmes. Les programmes écrits enlangage évolué doivent également être convertis en langagemachine pour être exécutés. Cette conversion peut s’effectuerde deux façons : par compilation ou par interprétation.
La compilation consiste à traduire dans un premier tempsl’ensemble du programme en langage machine. Dans undeuxième temps, le programme est exécuté.
L’interprétation consiste à traduire chaque instruction duprogramme 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 duproblème, les résultats recherchés et par quel moyen onpeut obtenir ces résultats à partir des données. C’est l’étaped’analyse du problème qui aboutit à un procédé derésolution appelé algorithme. Une approche modulaireconsiste à décomposer le problème initial en sous-problèmes plus simples à résoudre appelés modules. Parexemple, un programme de gestion de scolarité comporteraun module inscription, un module examen, un modulediplôme, etc.
7
2) Dans un deuxième temps, on traduit dans le langage deprogrammation choisi le résultat de la phase précédente. Sil’analyse a été menée convenablement, cette opération seréduit à une simple transcription systématique del’algorithme selon la grammaire du langage.
Lors de l’exécution, soit des erreurs syntaxiques sontsignalées, ce qui entraîne des retours au programme et descorrections en général simples à effectuer, soit des erreurssémantiques plus difficiles à déceler. Dans ce dernier cas, leprogramme produit des résultats qui ne correspondent pas àceux escomptés : les retours vers l’analyse (l’algorithme) sontalors 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 desdonnées dont la valeur reste fixe durant l’exécution duprogramme.
Exemples : Pi = 3.14 g = 9.80 etc.
10
VI.Notion de type
A chaque variable utilisée dans le programme, il fautassocier 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 dansZ (ensemble des entiers relatifs) et qu’elle peut supporterles opérations suivantes :
Exemples :
13 div 5 = 2
13 mod 5 = 312
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 unensemble particulier de valeurs prises dans R (ensemble desnombres réels). Ici encore, cette distinction se justifie par lemode de stockage des informations dans le langage deprogrammation.
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èresspéciaux (”*”, ”/”, ”{”, ”$”, ”#”, ”%” …). Un caractère seratoujours 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 codesASCII. 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 typelogique sont : la négation (NON), l’intersection (ET) et l’union(OU).
L’application de ces opérateurs se fait conformément à la tablede 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 calculest important.
Afin d’éviter les ambiguïtés dans l’écriture, on se sert desparenthèses et des relations de priorité entre lesopérateurs arithmétiques :
16
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
Ce sont des combinaisons entre des variables et desconstantes à l’aide d’opérateurs relationnels (=, <, <=, >, >=, #)et/ou des combinaisons entre des variables et des constanteslogiques à 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 deconflits.
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 dansune variable. Sa syntaxe générale est de la forme :
Variable Expression
Ainsi, l’instruction : A 6 signifie « mettre la valeur 6 dans lacase mémoire identifiée par A ».
Alors que l’instruction : B (A + 4) Mod 3 range dans B lavaleur 1 (A toujours égale à 6).
Remarque
La valeur ou le résultat de l’expression à droite du signed’affectation doit être de même type ou de type compatibleavec 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èsl’exécution des instructions suivantes :
A5
B 3
C A + B
A2
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écutiondes 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 X2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I
20
Exercice
Soient 3 variables A, B et C. Ecrire une séquenced’instructions permettant de faire une permutationcirculaire de sorte que la valeur de A passe dans B, cellede B dans C et celle de C dans A. On utilisera une seulevariable 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 devrapouvoir nous communiquer un certain nombre d’informations(résultats) par l’intermédiaire d’un périphérique de sortie commel’é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 instructionssuivantes :
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 à transmettredes informations (données) à notre programme parl’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, quiest le clavier par défaut, et la ranger dans la variable identifiéepar 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ésdans la partie «Types».
Toute variable utilisée dans l’algorithmedoit être préalablement déclarée.
Les instructions placées entre «Début» et«Fin» forment le corps principal del’algorithme.
Seules les parties « Entête » et «Corps »de l’algorithme sont obligatoires.
L’indentation qui consiste à insérer destabulations avant les objets déclarés etles instructions offre une meilleurelisibilité de l’algorithme et le rend, parconsé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 Incorrectx, y : Entierz : Réel
Débutz x + 2y zx*2 3 + zy 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 quiaffiche ensuite leur somme et leur produit.
Exercice 3:
Ecrire un algorithme qui lit le rayon d’un cercle et quiaffiche ensuite son périmètre et sa surface.
Exercice 4:
Ecrire un algorithme qui calcule et affiche la résistanced’un composant électrique en utilisant la loi d’Ohm :
26
2014/2015 ALGORITHME & STRUCTURES DE DONNÉES I