Upload
everard-potier
View
106
Download
0
Embed Size (px)
Citation preview
Jean-Philippe PERNIN
Université StendhalDépartement Informatique Pédagogique
Bureau I113
Mél. : [email protected]
Algorithmique : Programmes et données
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 2
L'approche algorithmique(Approche procédurale, programmation structurée)
• Origine du terme : – Al Kwarismi : mathématicien arabe (Xème siècle)
• Algorithme = Ensemble de règles opératoires définissant une suite finie d'opérations à effectuer, en vue d'obtenir la solution d'un problème donné.
• Deux activités distinctes :– 1. Conception d'un algorithme produisant le résultat
cherché
– 2. Rédaction de l'algorithme dans un langage de programmation donné (par exemple JavaScript)
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 3
Deux étapes : conception et programmation
AFFICHER "Donne ton age"
LIRE age de l'utilisateur
SELON LE CAS
| SI l'age est inférieur ou égal à 18
| AFFICHER "Tu es jeune"
| SI l'age est entre 19 et 29
| AFFICHER "Tu es vieux"
| SINON
| AFFICHER "Tu es très vieux"
1. CONCEVOIR L'ALGORITHME
var age
age = prompt ("Quel est ton age ?", "")
if (age <= 18)
{
alert ("tu es jeune");
}
else
{
if ( (age >= 19) &&( age <=29))
{
alert ("tu es vieux" ) ;
}
else
{
alert (" tu es tres vieux") ;
}
}
2. TRADUIRE L'ALGORITHME EN
JAVASCRIPT
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 4
Deux étapes : conception et programmation
AFFICHER "Donne ton age"
LIRE age de l'utilisateur
SELON LE CAS
| SI l'age est inférieur à 18
| AFFICHER "Tu es jeune"
| SI l'age est entre 19 et 29
| AFFICHER "Tu es vieux"
| SINON
| AFFICHER "Tu es très vieux"
var age
age = prompt ("Quel est ton age ?", "")
if (age < 18)
{
alert ("tu es jeune");
}
else
{
if ( (age >= 19) &&( age <=29))
{
alert ("tu es vieux" ) ;
}
else
{
alert (" tu es tres vieux") ;
}
}
ERREUR DE CONCEPTION
La conception d'un algorithme juste est une activité plus
complexe que la maîtrise d'un langage de programmation
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 5
Algorithme : une première définition
• Combinaison d'actions qui agissent sur des données
– Qu'est ce qu'une action ? • Le concept d'action élémentaire
• Le concept d'action complexe : l'analyse descendante
– Comment combiner les actions ?• la composition séquentielle
• la composition conditionnelle
• la composition alternative
• la composition itérative
– Comment décrire les données ?• les types simples de données
• les types complexes de données
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 6
Ex: Recette de Gâteau glacé Forêt noire, sauce à la vanille et au kirsch
1. Dans une casserole, faire bouillir le lait, la crème et les gousses de vanille
2. Faire mousser les jaunes d'oeufs avec le sucre.
3. Ajouter le mélange bouillant tout en remuant.
4. Remettre la sauce dans la casserole
5. Remuer sans arrêt jusqu'au point d'ébullition (ne pas bouillir).
6. Laisser refroidir,
7. Enlever les gousses de vanille
8. Parfumer au kirsch.
Ingrédients:
2 dl de lait
2 dl de crème
2 gousses de vanille
4 jaunes d'oeufs
60 g de sucre
un peu de kirsch.
Description des données (ingrédients) à manipuler
Le résultat : transformation des données initiales
Traitement
Description de la marche à suivre pour obtenir le
résultat
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 7
Programme = séquence d'actions
• Le programme principal décrit la séquence d'actions qui vont être exécutées.
• Le programme est écrit uniquement avec les termes ou les conventions autorisées dans le langage.
Début Programme
Action1
Action2
....
Fin Programme
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 8
Action nommée ou procédure
• Afin de rendre le programme plus lisible on peut nommer une séquence d'actions (ou procédure)
• Cette procédure peut être appelée depuis le programme principal ou depuis d'autres procédures
Début Programme
appeler Action1
Action2
....
Fin Programme
procédure Action1
....
Fin Procédure
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 9
Structure d'un programme
• Programme = DONNEES + TRAITEMENTS
• Un programme doit toujours modifier des données sinon il ne fait rien
Programme
Description des données:
Description des traitementsdébut
......
......
......
......fin
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 10
Comment décrire les données ?
• Une donnée est désignée par un nom – EX: lait, oeuf, farine, roue, nombre de roues, age,
taille, ...
• Une donnée est caractérisée par une valeur :– Ex: Taille : 170 cm– DateNaissance : 21 Janvier 1975– Age : 22 ans– Prénom : Nestor
• Une donnée peut être constante ou variable.
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 11
Données constantes ou variables ?
• CONSTANTES : DateNaissance, Prénom– Donnée dont la valeur ne varie jamais pendant le
déroulement des traitements
• VARIABLES : Age, Taille– Donnée dont la valeur peut varier pendant le
déroulement des traitements
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 12
Déclaration de constantes en Javascript
// Déclaration des constantes
Pi = 3.14; // valeur de la constante Pi
NbDeRoues = 4; // nombre de roues
Nom de la constanteNi blanc, ni caractères spéciaux (é,è,à,...)Sensible au majuscules (case-sensitive)
Valeur de la constante
Pi = 3.14 ;
Symbole =Symbole ;
termine chaque déclaration
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 13
Traduction des données en informations machine
Programme Source
Description des données:
Description des traitementsdébut
......
......
......
......fin
Programme Exécutable
00110011100111000101001111010111
Les données doivent pouvoir être traduites en informations manipulables par la machine
0011100111000101001111010111001100111001110001010011110101110011
Les traitements doivent pouvoir être traduits en instructions de la machine
Programmation
Programmeur
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 14
Format des données élémentaires
L'unité d'information pour la machine est l'octet.
Comment traduire une donnée en une suite d'octets ?
1. Adopter un code de représentation
2. Choisir un format (nombre d'octets)
un nombre Entier
Code binaire
24 0000000000011000
Deux octets
un caractère
Une chaine de caractères
Une valeur logique
ABA
01001010010010110100101011111111
Dépend de la longueur de la chaine
Code ASCII, UNICODE
true 11111111 Un octetConvention
VRAI = 11111111FAUX = 00000000
A 01001010
Code ASCII, UNICODE
Un octet
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 15
Nécessité de décrire le type des données variables
Pour pouvoir être traduite en informations manipulable par la machine, il est nécessaire de typer les données variables :
Description des variables
Age : un entier
EstPlein : un logique (vrai ou faux)
Nom : une chaine
00000000
00000000
11111111
11111111
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
A chaque variable déclarée, on réserve une zone de la mémoire correspondant à la
taille nécessaire au codage de l'information
mémoire
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 16
56
Notion de Variable
Emplacement "virtuel" dans lequel est stocké provisoirement une valeur
A
Valeur
Emplacement
Nom de la variable
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 17
Chaque variable ne peut contenirque des valeurs d'un certain type
A
Enveloppe type Logique
true
B
Enveloppe type Entier
356
C
Enveloppe type Chaîne
Il était une fois, il y a très très longtemps
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 18
Caractéristiques d'une variable
Une variable est caractérisée par :• un nom
– exemple : Hauteur• un type . exemples de types de base :
– entier (en Pascal : integer)(en Javascript : Number)– réel (en Pascal : real)(en Javascript : Number)– logique (en Pascal : boolean)(en Javascript : Boolean)– texte (en Pascal : string)(en JavaScript : String)
• une valeur qui peut varier selon le déroulement du programme– exemple : 123
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 19
Etapes à suivre
1. Créer ( =déclarer) la variable– var ENTIER minimum
2. Mettre une valeur (=Affecter) dans la variable
(La valeur doit être de même type que la variable) – minimum 955 ;
1. Utiliser la valeur contenue dans la variable– circonference minimum ;
minimum type entier
minimum type entier
356
minimum type entier
356
circonference
type entier
356
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 20
Déclaration des variables
// Déclaration des variables
var Diametre ; // Diametre est un entier
var Nom , Prenom ; // Nom et Prenom sont des chaînes
Lexique
Diamètre : un entier
Nom , Prénom : des chaines
en notation algorithmique
en Javascript (langage faiblement typé)
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 21
Affectation de variables
Diametre = 4
Diametre 4 {mettre 4 dans diametre}
Diametre Diametre + 1 {ajouter 1 à diametre}
Circonference Pi * Diametre {calculer la circonference}
en notation algorithmique
en JavascriptPartie Gauche
Toujours le nom d'une variable
Partie DroiteUne expression dont le résultat est
compatible avec le type de la variable
Symbole =affectation
ATTENTION : RISQUE DE CONFUSION AVEC L'EGALITE
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 22
Lecture d'une variable
diametre = prompt ("Quel diamètre ?", 0) ;
lire (Diamètre) {mettre dans diamètre la valeur saisie}
en notation algorithmique
en Javascript
Partie GaucheNom de la variable à lire
(dans laquelle sera mis le résultat)
Instruction de lecture
Message à afficher
Valeur proposée
Copyright - Jean-Philippe Pernin - DIP - Université Stendhal - Grenoble 3 23
Ecriture d'une variable
alert (diametre) ;
ecrire (Diamètre) {Afficher à l’écran la valeur contenue dans diamètre}
en notation algorithmique
en Javascript
Instruction d'écriturealert
Nom de la variable à écrire