programmation 8pro100 comment peut-on maîtriser le fonctionnement de tous les ordinateurs et...

Post on 05-Apr-2015

105 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programmation8PRO100

Comment peut-on maîtriser le fonctionnement de tous les

ordinateurs et apprendre tous les langages de programmation?

En ce qui concerne la programmation dans un langage de haut niveau: tous les ordinateurs sont similaires!!!

Tous les langages procéduraux (Fortran, Pascal,Ada, Cobol, Basic, etc.) sont similaires!

Observation 1

Observation 2

4 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

Structure d'un ordinateur

PROCESSEUR

Mémoire

Périphériqued'entrée

Périphériquede sortie

Le processeur

Unité arithmétique et logique

(UAL)

Unité decontrô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

UAL

Seulement 4 opérations: + addition - soustraction * multiplication / division

Quelles sont les opérations arithmétiques qui peuvent être réalisées par l'UAL du processeur?

UAL UC

Un processeur ressembleà une calculatrice de poche.

Comment calculer cos(x)?

En ouvrant n'importe quel livre de calcul on peut trouver l'équation suivante:

cos(x) = 1 - (x*x / 2) + (x*x*x*x / 24) - (x*x*x*x*x*x / 720) + (x*x*x*x*x*x*x*x / 40320)

C’est long mais cela fonctionne!

Comment calculer cos(x)?

cos(x) = 1 - (x*x / 2) + (x*x*x*x / 24) - (x*x*x*x*x*x / 720) + (x*x*x*x*x*x*x*x / 40320)

En fait il ne s'agit que d’une approximation mais suffisamment précisepour une calculatrice de ce type.

On peut donc calculer cos(x) en utilisantseulement les 4 opérations de base.

Comment calculer cos(x)?

cos(x) = 1 - (x*x / 2) + (x*x*x*x / 24) - (x*x*x*x*x*x / 720) + (x*x*x*x*x*x*x*x / 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.

Les expressions

À partir des 4 opérations de base il est possible de construire différentesexpressions.

Une expression est une formule arithmétique pouvant être évaluée parle 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?

Priorité des opérateurs

Priorité maximale

( ) Les expressions entre parenthèses sont évaluées en premier.

Priorité moyenne

* / La multiplication et la division ont la même priorité et sont évaluées de gauche à droite.

Priorité minimale

+ - L’addition et la soustraction ont la même priorité et sont évaluées de gauche à droite.

Exemples 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 à droite2 + 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

La 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

55.5

-35.33

.

.

.

.

.

.

45

55.5

-35.33

total

x2

y

.

.

.

.

.

.

Les 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 lecontenu de la case mémoire associée peutvarier au cours de l'exécution d'un programme.

45

55.5

-35.33

total

x2

y

.

.

.

.

.

.

Les variables et les expressions

Le processeur est capable d'évaluer desexpressions contenant des variables en remplaçant celles-ci par leur valeur respective.

Exemple:

x2 + 2 * total

-35.33 + 2 * 45

-35.33 + 90

54.67

45

55.5

-35.33

total

x2

y

.

.

.

.

.

.

Les 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.

total

x2

y

entier

réelréel

.

.

.

.

.

.

Les déclarations de variables

Les déclarations servent à donner unnom à une case mémoire et à indiquerle type de valeurs qu'elle peut contenir.

Une déclaration typique ressemble à:

Entiers: totalRéels: x2,y

Après une telle déclaration, le processeurconfigure la mémoire comme dans l’illustration ci-contre.

Remarques concernant les déclarations

Lorsque l’on déclare une variable, on ne lui donne pas de valeur. On ne fait qu’indiquer 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 qu’elles contiennent.

Le contenu d’une case mémoire peut être modifié au cours de l’exécution d’un programme mais pas le type de valeur qu’elle contient.

Les déclaration sont faites à l’intérieur d’un programme donné.Lorsque le programme se termine le nom, le type et la valeur contenue dans les cases mémoire disparaissent.

L’instruction d’assignation

Pour mettre une valeur dans une variable, on utilise une instruction d’assignation.

Une assignation a la forme suivante:

variable = expression

L'expression est d’abord évaluée puis le résultat est mis dans la case mémoire correspondant à la variable

Exemple d’assignation

total

x2

y

entier

réelréel

.

.

.

.

.

.

Après la déclaration entiers: total réels: x2,yla mémoire ressemble à la figuresuivante:

Exemple d’assignation

total

x2

y

entier

réelréel

.

.

.

.

.

.

Après la déclaration entiers: total réels: x2,yla mémoire ressemble à la figuresuivante:

45

55.5

-35.33

total

x2

y

entier

réelréel

.

.

.

.

.

.

Si par la suite le processeur exécuteles instructions suivantes: total = 45 x2 = -35.33 y = 55.5 La mémoire devient:

moyenne

note1

note2

réel

entier entier

.

.

.

.

.

.

Exemple: calcul de la moyenne

note3

note4

entier

entier

Après les déclarations suivantes,

Réels: moyenneEntiers: note1, note2, note3, note4

la mémoire ressemble à la figure ci-contre

95

moyenne

note1

note2

réel

entier entier

.

.

.

.

.

.

Calcul de la moyenne (suite)

Après les instructions d’assignationsuivantes

note1 = 75note2 = 100note3 = 88note4 = 95

La mémoire devient:

note3

note4

entier

entier

88

75

100

Remarque: la variable moyenne est toujours indéfinie puisqu’aucune valeur n’y a été assignée.

95

moyenne

note1

note2

réel

entier entier

.

.

.

.

.

.

Calcul de la moyenne (suite)

moyenne = ( note1 + note2 + note3 + note4 ) / 4

note3

note4

entier

entier

88

75

100

Pour calculer la moyenne de ces 4 valeurs et mettre le résultat dans la variable moyennele processeur doit exécuter l’instruction suivante:

95

moyenne

note1

note2

réel

entier entier

.

.

.

.

.

.

Calcul de la moyenne (suite)

( 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

note3

note4

entier

entier

88

75

100

1) Le processeur évalue d'abord la partie de gauche:

89.5

95

moyenne

note1

note2

réel

entier entier

.

.

.

.

.

.

Calcul de la moyenne (suite)

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.

note3

note4

entier

entier

88

75

100

Que se passerait-il si on omettait les parenthèses dans l'expression précédente?

286.75

Calcul de la moyenne (suite)

Liste des variables:Réels: moyenneEntiers: note1, note2, note3, note4

Instructions:note1 = 75note2 = 100note3 = 88note4 = 95moyenne = note1 + note2 + note3 + note4 / 4

La séquence d'instructions nécessaires au calcul de la moyenne est donc:

Remarque: Les instructions sont toujours exécutées de façon séquentielle par le processeur.

Les opérateurs de comparaison

Supposons qu'après avoir calcule la note moyenne, on veuille déterminersi l'étudiant passe ou échoue.

Le processeur doit évaluer la relation: moyenne 65

Il existe 6 opérateurs permettant au processeurs d’effectuer de telles comparaisons.

< plus petit que

plus petit ou égal à

> plus grand que

plus grand ou égal à égal à diffèrent de

Évaluation d’une 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 1FAUX est représenté par le nombre 0

Exemple

95

moyenne

note1

note2

entier entier

.

.

.

.

.

.

note3

note4

entier

entier

88

75

100

89.5 réelmoyenne 65

89.5 65

1 (c'est-à-dire vrai)

Exemple

95

moyenne

note1

note2

entier entier

.

.

.

.

.

.

note3

note4

entier

entier

88

75

100

46.3 réelmoyenne 65

46.3 65

0 (c'est-à-dire faux)

Problème

95

moyenne

note1

note2

entier entier

.

.

.

.

.

.

note3

note4

entier

entier

88

75

100

89.5 réel60 moyenne 75

60 89.5 75

vrai 75

1 75

1 (erreur!!!)

On veut déterminer si la moyenne est entre 60 et 75

SolutionCe que l'on veut, c’est 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.

Exemple

(moyenne 75) ET (moyenne 60)

(89.5 75) ET (89.5 60)

faux ET vrai

faux

95

moyenne

note1

note2

entier entier

.

.

.

.

.

.

note3

note4

entier

entier

88

75

100

89.5 réel

Opérateur logique: ET

vrai ET vrai

vrai

vrai ET faux

faux

faux ET faux

faux

faux ET vrai

faux

Opérateur logique: OU

vrai OU vrai

vrai

vrai OU faux

vrai

faux OU faux

faux

faux OU vrai

vrai

Opérateur logique: NON

NON vrai

faux

NON faux

vrai

Exemple

Après la déclaration et l'instruction suivantes:

entier: ageage = 7.

Comment le processeur evalue-t-il l'expression

NON( (age = 5) OU (age = 10) ) ?

Exemple

NON( (age = 5) OU (age = 10) )

NON( ( 7 = 5) OU ( 7 = 10 ) )

NON( FAUX OU FAUX )

NON FAUX

VRAI

Priorité des opérateurs

1. ( ) Les expressions entre parenthèses sont évaluées en premier.

2. * / La multiplication et la division ont la même priorité (gauche à droite)

3. + - L’addition et la soustraction ont la même priorité (gauche à droite)

4. = < > NON OU ET

Les opérateurs logiques et de comparaison ont la priorité la plus faible.

Priorité des opérateurs (suite)Remarque: Les opérateurs logiques causent le même typed’ambiguïté que les opérateurs arithmétiques.Pour cette raison, les opérateurs logiques et les opérateurs de comparaison n’ont 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

Priorité des opérateurs (suite)

Opérateurs Associativité

( ) de gauche à droiteNON de droite à gauche* / de gauche à droite+ - de gauche à droite < > de gauche à droite= de gauche à droiteET de gauche à droiteOU de gauche à droite

Priorité des opérateurs (suite)

Exemple:Considérez la situation ou les organisateurs d’une conférence proposent deux taux différents: $500 si l’inscription se fait avant une date limite et $600 dollarssinon.

Utilisons 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 l’inscription sera donc:

AVANT * 500 + NON AVANT * 600

La communication avec le monde extérieur

PROCESSEUR

Mémoire

Périphériqued'entrée

Périphériquede sortie

Entrée

Le processeur peut lire des valeurs en provenance du périphérique d’entrée (clavier, etc.) en exécutant une instruction ayant la forme suivante.

lire variable1 variable2 …

L'exécution de cette instruction permet d’établir unecommunication entre le périphérique d’entrée et leprocesseur. Ce dernier lit autant de valeurs qu'il y ade variables.

Chaque valeur lue est assignée à une variable.

Sortie

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 unecommunication 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.

moyenne

note1

note2

entier entier

.

.

.

.

.

.

note3

note4

entier

entier

réel

75 8379 96

Exemple

lire note1 note2 note3 note4

83

75

96

moyenne

note1

note2

entier entier

.

.

.

.

.

.

note3

note4

entier

entier

79

réel

75 8379 96

moyenne= (note1 + note2 + note3 + note4) / 4

83.25

83

75

96

moyenne

note1

note2

entier entier

.

.

.

.

.

.

note3

note4

entier

entier

79

réel

75 8379 96

afficher moyenne 83.25

83.25

83

75

96

moyenne

note1

note2

entier entier

.

.

.

.

.

.

note3

note4

entier

entier

79

réel

75 83 79 96

Comparez

réels: moyenneentiers: note1, note2, note3, note4

note1 = 75note2 = 83note3 = 79note4 = 96moyenne = note1 + note2 + note3 + note4 / 4

réels: moyenneentiers: note1, note2, note3, note4

lire note1 note2 note3 note4moyenne = note1 + note2 + note3 + note4 / 4afficher moyenne

Ne calcule la moyenne que de ces 4 valeurs particulières

Calcule la moyenne de n'importe quelle valeurs

Opérateurs arithmétiques: + addition - soustraction * multiplication / division

Opérateurs de comparaisons: < plus petit plus petit ou égal > plus grand plus grand ou égal = égal

Résumé:le processeur UAL UC

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

Résumé:la mémoire

ProcesseurProcesseur

.

.

.

.

.

.

•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émoireune valeur, on utilise une instructiond'assignation: variable = expression

•Expressions: Pour utiliser le contenu d’une case mémoire, on incorpore des variables dans les expressions. Mémoire

Résumé:les entrée-sorties

PROCESSEURPROCESSEURPériphériqued ’entrée

Périphériqued ’entrée

Périphériquede sortie

Périphériquede sortie

lire variable1 variable2 …

afficher expression1 expression2 …

Prochain cours:

Introduction au langage C

top related