Title: Programmation 8PRO100
1Programmation8PRO100
- Comment peut-on maîtriser le fonctionnement de
tous les ordinateurs et apprendre tous les
langages de programmation?
2Observation 1
- En ce qui concerne la programmation dans un
langage de haut niveau tous les ordinateurs sont
similaires!!!
Observation 2
Tous les langages procéduraux (Fortran,
Pascal,Ada, Cobol, Basic, etc.) sont similaires!
34 concepts fondamentaux pour maîtriser la
programmation
- Structure de l'ordinateur Concepts de base
communs à tous les ordinateurs
Conception d'algorithmes Formulation d'un
problème en termes d'instructions simples pouvant
être résolues par ordinateur
Implantation Exprimer l'algorithme dans un
langage de programmation
Exécution Compiler, lier les parties, charger en
mémoire puis faire fonctionner sur l'ordinateur
4Structure d'un ordinateur
PROCESSEUR
Périphérique d'entrée
Périphérique de sortie
Mémoire
5Le processeur
Unité arithmétique et logique (UAL)
Unité de contrôle (UC)
UAL Sert à effectuer les opérations
arithmétiques, les comparaisons et les
opérations logiques UC Contrôle les
communications entre l'UAL, la mémoire, et
les périphériques
6Quelles sont les opérations arithmétiques qui
peuvent être réalisées par l'UAL du processeur?
Seulement 4 opérations
addition - soustraction
multiplication /
division
UAL
7UAL
UC
Un processeur ressemble à une calculatrice de
poche.
8Comment calculer cos(x)?
En ouvrant n'importe quel livre de calcul on
peut trouver l'équation suivante cos(x) 1 -
(xx / 2) (xxxx / 24) -
(xxxxxx / 720)
(xxxxxxxx / 40320) Cest long mais
cela fonctionne!
9Comment calculer cos(x)?
cos(x) 1 - (xx / 2) (xxxx / 24)
- (xxxxxx / 720)
(xxxxxxxx / 40320) En fait il ne
s'agit que dune approximation mais suffisamment
précise pour une calculatrice de ce type. On
peut donc calculer cos(x) en utilisant seulement
les 4 opérations de base.
10Comment calculer cos(x)?
cos(x) 1 - (xx / 2) (xxxx / 24)
- (xxxxxx / 720)
(xxxxxxxx / 40320)
En suivant ces directives il vous est possible de
calculer le cosinus de n'importe quel nombre.
C'est ce que l'on appelle un algorithme. Écrire
un algorithme c'est comme ajouter une nouvelle
touche à la calculatrice.
11Les expressions
- À partir des 4 opérations de base il est possible
de construire différentes - expressions.
- Une expression est une formule arithmétique
pouvant être évaluée par - le processeur.
- Exemples
- 2 3 4 9
- 2 (3 4) 9
- 2 - (3 - 4) 3
- (2 - 3) - 4 -5
- (2 3) 4 20
- 2 (3 4) 14
- 2 3 4 ?
- 2 - 3 - 4 ?
- Question Comment le processeur évalue-il les 2
dernières expressions?
12Priorité des opérateurs
13Exemples de priorité des opérateurs
2 3 4 / 2 ( 3 5 ) - 7
On évalue d'abord les parenthèses 2 3 4
/ 2 15 - 7 et / ont
une priorité supérieure à et -
On les évalue
de gauche à droite 2 12 / 2 15
- 7 2 6 15
- 7 2 90 - 7
et - ont la même priorité et
sont
évalués de gauche à droite 92 - 7
85
14La mémoire
Le processeur tient sa puissance de la mémoire
avec laquelle il communique constamment. La
mémoire peut être vu comme une boîte dont chaque
case peut contenir une valeur numérique.
45
-35.33
55.5
. . .
. . .
15Les variables
Afin d'identifier clairement où se trouve une
valeur donnée, il est nécessaire de donner des
noms aux cases. Par exemple, la case total
contient la valeur 45, la case x2 contient la
valeur -35.33 et la case y contient la valeur
55.5. Ces noms sont appelés variables car
le contenu de la case mémoire associée
peut varier au cours de l'exécution d'un
programme.
45
total
-35.33
x2
55.5
y
. . .
. . .
16Les variables et les expressions
Le processeur est capable d'évaluer
des expressions contenant des variables en
remplaçant celles-ci par leur valeur respective.
45
total
-35.33
x2
55.5
y
Exemple x2 2 total -35.33 2
45 -35.33 90 54.67
. . .
. . .
17Les différents types de variables
On remarque que certaines cases contiennent des
valeurs entières alors que d'autres contiennent
des valeurs réelles. Il est important d'indiquer
au processeur quel type de valeurs contient
chaque case utilisée. Cela est nécessaire
puisque le processeur traite différemment les
entiers et les réels. Par exemple la valeur
réelle de 1/2 est 0.5 alors que sa valeur entière
est 0.
45
total
-35.33
x2
55.5
y
. . .
. . .
18Les déclarations de variables
Les déclarations servent à donner un nom à une
case mémoire et à indiquer le type de valeurs
qu'elle peut contenir. Une déclaration typique
ressemble à Entiers total Réels
x2,y Après une telle déclaration, le
processeur configure la mémoire comme dans
lillustration ci-contre.
total
entier
réel
x2
réel
y
. . .
. . .
19Remarques concernant les déclarations
Lorsque lon déclare une variable, on ne lui
donne pas de valeur. On ne fait quindiquer au
processeur le nom et le type des variables.
Le choix des noms de variables est arbitraire
mais devrait toujours refléter ce que représente
les valeurs quelles contiennent.
Le contenu dune case mémoire peut être modifié
au cours de lexécution dun programme mais pas
le type de valeur quelle contient.
Les déclaration sont faites à lintérieur dun
programme donné. Lorsque le programme se termine
le nom, le type et la valeur contenue dans les
cases mémoire disparaissent.
20Linstruction dassignation
Pour mettre une valeur dans une variable, on
utilise une instruction dassignation. Une
assignation a la forme suivante
variable expression L'expression est dabord
évaluée puis le résultat est mis dans la case
mémoire correspondant à la variable
21Exemple dassignation
Après la déclaration entiers total
réels x2,y la mémoire ressemble à la
figure suivante
total
entier
réel
x2
réel
y
. . .
. . .
22Exemple dassignation
Si par la suite le processeur exécute les
instructions suivantes total 45 x2
-35.33 y 55.5 La mémoire devient
Après la déclaration entiers total
réels x2,y la mémoire ressemble à la
figure suivante
total
entier
45
total
entier
réel
réel
x2
-35.33
x2
réel
réel
y
55.5
y
. . .
. . .
. . .
. . .
23Exemple calcul de la moyenne
Après les déclarations suivantes, Réels
moyenne Entiers note1, note2, note3, note4
la mémoire ressemble à la figure ci-contre
moyenne
réel
entier
note1
entier
note2
note3
entier
note4
entier
. . .
. . .
24Calcul de la moyenne (suite)
moyenne
réel
Après les instructions dassignation suivantes no
te1 75 note2 100 note3 88 note4 95 La
mémoire devient
entier
note1
75
entier
note2
100
note3
entier
88
note4
entier
95
. . .
. . .
Remarque la variable moyenne est toujours
indéfinie puisquaucune valeur ny
a été assignée.
25Calcul de la moyenne (suite)
Pour calculer la moyenne de ces 4 valeurs et
mettre le résultat dans la variable moyenne le
processeur doit exécuter linstruction suivante
moyenne ( note1 note2 note3 note4 ) /
4
moyenne
réel
entier
note1
75
entier
note2
100
note3
entier
88
note4
entier
95
. . .
. . .
26Calcul de la moyenne (suite)
1) Le processeur évalue d'abord la partie de
gauche
( note1 note2 note3 note4 ) / 4 ( 75
100 88 95 ) / 4 ( 175
88 95 ) / 4 ( 263 95 ) / 4 358 /
4 89.5 2) Le résultat est ensuite déposé dans
la case mémoire associée à la variable
moyenne. moyenne 89.5
moyenne
réel
89.5
entier
note1
75
entier
note2
100
note3
entier
88
note4
entier
95
. . .
. . .
27Calcul de la moyenne (suite)
Que se passerait-il si on omettait les
parenthèses dans l'expression précédente?
moyenne ? note1 note2 note3 note4 /
4 moyenne ? 75 100 88 95
/ 4 moyenne ? 75 100 88
23.75 moyenne ? 175 88 23.75 moyenne ?
263 23.75 moyenne ? 286.75 Le mauvais
résultat serait ensuite déposé dans la case
mémoire associée à la variable moyenne.
moyenne
réel
286.75
entier
note1
75
entier
note2
100
note3
entier
88
note4
entier
95
. . .
. . .
28Calcul de la moyenne (suite)
La séquence d'instructions nécessaires au calcul
de la moyenne est donc
Liste des variables Réels moyenne Entiers
note1, note2, note3, note4 Instructions note1
75 note2 100 note3 88 note4 95 moyenne
note1 note2 note3 note4 / 4
Remarque Les instructions sont toujours
exécutées de façon séquentielle par le processeur.
29 Les opérateurs de comparaison
Supposons qu'après avoir calcule la note moyenne,
on veuille déterminer si l'étudiant passe ou
échoue. Le processeur doit évaluer la relation
moyenne ? 65 Il existe 6 opérateurs
permettant au processeurs deffectuer de telles
comparaisons.
lt plus petit que ? plus petit ou égal à gt plus
grand que ? plus grand ou égal à ? égal
à ? diffèrent de
30Évaluation dune expression logique
Une expression logique est une expression ne
pouvant s'évaluer quà une des deux valeurs vrai
ou faux. Comme le processeur ne peut traiter
que des valeurs numériques, il est nécessaire de
représenter les valeurs logiques vrai et faux par
des nombres.
VRAI est représenté par le nombre 1 FAUX est
représenté par le nombre 0
31Exemple
moyenne
moyenne ? 65 89.5 ? 65 1 (c'est-à-dire
vrai)
réel
89.5
entier
note1
75
entier
note2
100
note3
entier
88
note4
entier
95
. . .
. . .
32Exemple
moyenne
moyenne ? 65 46.3 ? 65 0 (c'est-à-dire
faux)
réel
46.3
entier
note1
75
entier
note2
100
note3
entier
88
note4
entier
95
. . .
. . .
33Problème
On veut déterminer si la moyenne est entre 60 et
75
moyenne
réel
89.5
60 ? moyenne ? 75 60 ? 89.5 ? 75 vrai ?
75 1 ? 75 1 (erreur!!!)
entier
note1
75
entier
note2
100
note3
entier
88
note4
entier
95
. . .
. . .
34Solution
Ce que l'on veut, cest déterminer si moyenne
? 75 ET
moyenne ? 60 Le ET est appelé un opérateur
logique. Si la première expression est vrai et
que la seconde est vrai alors l'expression
(moyenne ? 75) ET (moyenne ? 60) est
aussi vrai.
35Exemple
(moyenne ? 75) ET (moyenne ? 60) (89.5 ? 75)
ET (89.5 ? 60) faux ET vrai faux
moyenne
réel
89.5
entier
note1
75
entier
note2
100
note3
entier
88
note4
entier
95
. . .
. . .
36Opérateur logique ET
vrai ET vrai vrai
vrai ET faux faux
faux ET faux faux
faux ET vrai faux
37Opérateur logique OU
vrai OU vrai vrai
vrai OU faux vrai
faux OU faux faux
faux OU vrai vrai
38Opérateur logique NON
NON vrai faux
NON faux vrai
39Exemple
Après la déclaration et l'instruction
suivantes entier age age 7. Comment le
processeur evalue-t-il l'expression NON( (age
5) OU (age 10) ) ?
40Exemple
NON( (age 5) OU (age 10) ) NON( ( 7 5) OU
( 7 10 ) ) NON( FAUX OU FAUX ) NON FAUX VRAI
41Priorité des opérateurs
42Priorité des opérateurs (suite)
Remarque Les opérateurs logiques causent le même
type dambiguïté que les opérateurs
arithmétiques. Pour cette raison, les opérateurs
logiques et les opérateurs de comparaison nont
pas tous la même priorité.
Exemple (VRAI OU FAUX) ET FAUX FAUX VRAI OU
(FAUX ET FAUX) VRAI En assignant à ET un
niveau de priorité plus élevé que OU on
obtient VRAI OU FAUX ET FAUX FAUX
43Priorité des opérateurs (suite)
Opérateurs Associativité
( ) de gauche à droite NON de droite à
gauche / de gauche à droite - de gauche
à droite lt ? gt ? de gauche à droite
? de gauche à droite ET de gauche à
droite OU de gauche à droite
44Priorité des opérateurs (suite)
Exemple Considérez la situation ou les
organisateurs dune conférence proposent deux
taux différents 500 si linscription se fait
avant une date limite et 600 dollars sinon. Util
isons la variable entière AVANT qui vaut 1 si une
certaine inscription a été faite avant la date
limite et 0 sinon. Le taux de linscription sera
donc AVANT 500 NON AVANT 600
45La communication avec le monde extérieur
PROCESSEUR
Périphérique d'entrée
Périphérique de sortie
Mémoire
46Entrée
Le processeur peut lire des valeurs en provenance
du périphérique dentrée (clavier, etc.) en
exécutant une instruction ayant la forme
suivante. lire variable1 variable2
L'exécution de cette instruction permet
détablir une communication entre le périphérique
dentrée et le processeur. Ce dernier lit autant
de valeurs qu'il y a de variables. Chaque
valeur lue est assignée à une variable.
47Sortie
Le processeur peut afficher des valeurs sur le
périphérique de sortie (écran, etc.) en
exécutant une instruction ayant la forme
suivante. afficher expression1 expression2
L'exécution de cette instruction permet
d'établir une communication entre le périphérique
de sortie et le processeur. Ce dernier évalue
chaque expression et affiche, dans l'ordre, les
résultat en sortie. Remarque Les expressions
peuvent être de simple valeurs, des variables ou
des expressions plus complexe utilisant les
opérateurs.
48Exemple
75 83 79 96
moyenne
réel
entier
note1
entier
note2
note3
entier
note4
entier
. . .
. . .
49 lire note1 note2 note3 note4
75 83 79 96
moyenne
réel
entier
75
note1
entier
83
note2
note3
entier
79
note4
entier
96
. . .
. . .
50 moyenne (note1 note2 note3 note4) / 4
75 83 79 96
moyenne
réel
83.25
entier
75
note1
entier
83
note2
note3
entier
79
note4
entier
96
. . .
. . .
51afficher moyenne
83.25
75 83 79 96
moyenne
réel
83.25
entier
75
note1
entier
83
note2
note3
entier
79
note4
entier
96
. . .
. . .
52Comparez
réels moyenne entiers note1, note2, note3,
note4 note1 75 note2 83 note3 79 note4
96 moyenne note1 note2 note3 note4 / 4
Ne calcule la moyenne que de ces 4 valeurs
particulières
réels moyenne entiers note1, note2, note3,
note4 lire note1 note2 note3 note4 moyenne
note1 note2 note3 note4 / 4 afficher
moyenne
Calcule la moyenne de n'importe quelle valeurs
53Résumé le processeur
UAL
UC
Opérateurs arithmétiques addition
- soustraction
multiplication / division Opérateurs
de comparaisons lt plus petit ?
plus petit ou égal gt plus grand
? plus grand ou égal égal
Opérateurs logiques OU vrai si au moins
une opérande est vraie faux sinon
ET vrai si toutes les opérandes sont
vraies faux sinon NON vrai
si l'opérande est fausse, faux
sinon
54Résumé la mémoire
Processeur
- Déclarations Pour utiliser une case
- mémoire on doit lui donner un nom
- et indiquer quel type de valeur (entier
- ou réel) elle contiendra.
- Assignations Pour mettre en mémoire
- une valeur, on utilise une instruction
- d'assignation variable expression
- Expressions Pour utiliser le contenu
- dune case mémoire, on incorpore
- des variables dans les expressions.
. . .
. . .
Mémoire
55Résumé les entrée-sorties
lire variable1 variable2 afficher expression1
expression2
PROCESSEUR
Périphérique d entrée
Périphérique de sortie
56Prochain cours Introduction au langage C