La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Éléments de Programmation 8PRO107 Comment peut-on maîtriser le fonctionnement de tous les ordinateurs et apprendre tous les langages de programmation?

Présentations similaires


Présentation au sujet: "Éléments de Programmation 8PRO107 Comment peut-on maîtriser le fonctionnement de tous les ordinateurs et apprendre tous les langages de programmation?"— Transcription de la présentation:

1 Éléments de Programmation 8PRO107 Comment peut-on maîtriser le fonctionnement de tous les ordinateurs et apprendre tous les langages de programmation?

2 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

3 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

4 Structure d'un ordinateur PROCESSEUR Mémoire Périphérique d'entrée Périphérique de sortie

5 Le 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

6 UAL Seulement 4 opérations: + addition - soustraction multiplication (ou *) division (ou /) Quelles sont les opérations arithmétiques qui peuvent être réalisées par l'UAL du processeur?

7 UAL UC Un processeur ressemble à une calculatrice de poche.

8 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) Cest long mais cela fonctionne!

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

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

11 Les 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: = (3 + 4) = (3 - 4) = 3 (2 - 3) - 4 = -5 (2 + 3) * 4 = (3 * 4) = * 4 = ? = ? Question: Comment le processeur évalue-il les 2 dernières expressions?

12 Priorité des opérateurs

13 Exemples de priorité des opérateurs * 4 / 2 * ( 3 * 5 ) - 7 On évalue d'abord les parenthèses * 4 / 2 * * et / ont une priorité supérieure à + et - On les évalue de gauche à droite / 2 * * et - ont la même priorité et sont évalués de gauche à droite

14 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

15 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 et la case y contient la valeur 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.

16 total x2 y Les variables et les expressions Le processeur est capable d'évaluer des expressions contenant des variables en remplaçant celles-ci par leur valeur respective. Exemple: x2 + 2 * total *

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

18 total x2 y entier réel Les 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.

19 Remarques 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.

20 Linstruction dassignation Pour mettre une valeur dans une variable, on utilise une instruction dassignation. Cette instruction est aussi appelée « affectation ». 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

21 Exemple dassignation total x2 y entier réel Après la déclaration entiers: total réels: x2,y la mémoire ressemble à la figure suivante:

22 Exemple dassignation total x2 y entier réel Après la déclaration entiers: total réels: x2,y la mémoire ressemble à la figure suivante: total x2 y entier réel Si par la suite le processeur exécute les instructions suivantes: total 45 x y 55.5 La mémoire devient:

23 moyenne note1 note2 réel entier Exemple: calcul de la moyenne note3 note4 entier Après les déclarations suivantes, Réels: moyenne Entiers: note1, note2, note3, note4 la mémoire ressemble à la figure ci-contre

24 95 moyenne note1 note2 réel entier Calcul de la moyenne (suite) Après les instructions dassignation suivantes note1 75 note2 100 note3 88 note4 95 La mémoire devient: note3 note4 entier Remarque: la variable moyenne est toujours indéfinie puisquaucune valeur ny a été assignée.

25 95 moyenne note1 note2 réel entier Calcul de la moyenne (suite) moyenne ( note1 + note2 + note3 + note4 ) / 4 note3 note4 entier Pour calculer la moyenne de ces 4 valeurs et mettre le résultat dans la variable moyenne le processeur doit exécuter linstruction suivante:

26 95 moyenne note1 note2 réel entier Calcul de la moyenne (suite) ( note1 + note2 + note3 + note4 ) / 4 ( ) / 4 ( ) / 4 ( ) / / ) Le résultat est ensuite déposé dans la case mémoire associée à la variable moyenne. moyenne 89.5 note3 note4 entier ) Le processeur évalue d'abord la partie droite de linstruction: 89.5

27 95 moyenne note1 note2 réel entier Calcul de la moyenne (suite) moyenne note1 + note2 + note3 + note4 / 4 moyenne / 4 moyenne moyenne moyenne moyenne Le mauvais résultat serait ensuite déposé dans la case mémoire associée à la variable moyenne. note3 note4 entier Que se passerait-il si on omettait les parenthèses dans l'expression précédente?

28 Calcul de la moyenne (suite) 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 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.

29 Les opérateurs de comparaison Supposons qu'après avoir calculé 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. < plus petit que plus petit ou égal à > 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

31 Exemple 95 moyenne note1 note2 entier note3 note4 entier réel moyenne (c'est-à-dire vrai)

32 Exemple 95 moyenne note1 note2 entier note3 note4 entier réel moyenne (c'est-à-dire faux)

33 Problème 95 moyenne note1 note2 entier note3 note4 entier réel 60 moyenne vrai (erreur!!!) On veut déterminer si la moyenne est entre 60 et 75

34 Solution 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.

35 Exemple (moyenne 75) ET (moyenne 60) ( ) ET ( ) faux ET vrai faux 95 moyenne note1 note2 entier note3 note4 entier réel

36 Opérateur logique: ET vrai ET vrai vrai vrai ET faux faux faux ET faux faux faux ET vrai faux

37 Opérateur logique: OU vrai OU vrai vrai vrai OU faux vrai faux OU faux faux faux OU vrai vrai

38 Opérateur logique: NON NON vrai faux NON faux vrai

39 Exemple Après la déclaration et l'instruction suivantes: entier: age age 7. Comment le processeur évalue-t-il l'expression NON( (age = 5) OU (age = 10) ) ?

40 Exemple NON( (age = 5) OU (age = 10) ) NON( ( 7 = 5) OU ( 7 = 10 ) ) NON( FAUX OU FAUX ) NON FAUX VRAI

41 Priorité des opérateurs

42 Priorité 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 = VRAI

43 Priorité des opérateurs (suite) Opérateurs Associativité ( )de gauche à droite NONde droite à gauche * /de gauche à droite + -de gauche à droite de gauche à droite = de gauche à droite ETde gauche à droite OUde gauche à droite

44 Priorité 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. 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 linscription sera donc: AVANT * NON AVANT * 600

45 La communication avec le monde extérieur PROCESSEUR Mémoire Périphérique d'entrée Périphérique de sortie

46 Entré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.

47 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 une communication entre le périphérique de sortie et le processeur. Ce dernier évalue chaque expression et affiche, dans l'ordre, les résultats en sortie. Remarque : Les expressions peuvent être de simples valeurs, des variables ou des expressions plus complexes utilisant les opérateurs.

48 moyenne note1 note2 entier note3 note4 entier réel Exemple

49 LIRE note1, note2, note3, note moyenne note1 note2 entier note3 note4 entier 79 réel

50 moyenne (note1 + note2 + note3 + note4) / moyenne note1 note2 entier note3 note4 entier 79 réel

51 AFFICHER moyenne moyenne note1 note2 entier note3 note4 entier 79 réel

52 Comparez réels: moyenne entiers: note1, note2, note3, note4 note1 75 note2 83 note3 79 note4 96 moyenne (note1 + note2 + note3 + note4) / 4 réels: moyenne entiers: note1, note2, note3, note4 LIRE note1, note2, note3, note4 moyenne (note1 + note2 + note3 + note4) / 4 AFFICHER moyenne Ne calcule la moyenne que de ces 4 valeurs particulières Calcule la moyenne de n'importe quelles valeurs

53 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 différent Résumé: le processeur UAL UC Opérateurs logiques: OU vrai si au moins un opérande est vrai faux sinon ET vrai si tous les opérandes sont vrais faux sinon NON vrai si l'opérande est faux, faux sinon

54 Ré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

55 Résumé: les entrée-sorties PROCESSEUR Périphérique dentrée Périphérique dentrée Périphérique de sortie Périphérique de sortie LIRE variable1, variable2 … AFFICHER expression1, expression2 …

56 Prochain cours: Introduction au langage C


Télécharger ppt "Éléments de Programmation 8PRO107 Comment peut-on maîtriser le fonctionnement de tous les ordinateurs et apprendre tous les langages de programmation?"

Présentations similaires


Annonces Google