Vous êtes sur la page 1sur 21

INFORMATIQUE DE BASE

1re anne ENCG

Anne universitaire 2012-2013

Architecture des ordinateurs

Yassine El Ghoumari

Yassine El Ghoumari

Dfinition dun ordinateur


Machine qui : saisit (priphriques dentre) d entre), stocke (mmoire), traite (programmes) restitue (priphriques de sortie) des informations
3

Schma fonctionnel
Saisie Traitement Restitution

Donnes Instructions

UC M Mmoire i

Rsultats

Priphriques

dentre

Priphriques Mmoires

de sortie

auxiliaires

Joystick Scanner

Micro

Souris

Disquette

Ecran

Modem

CD-ROM

Modem

Camra Clavier

Disque

dur
Haut

4 parleur
Imprimante

Constituants
Composants matriels (Hardware)
accessoires particulire

Constituants
Logiciel (Software)

Tout ce qui compose lordinateur et ses Chaque composant possde une fonction
calcul stockage des donnes affichage vido gestion du clavier...

immatriel (non tangible) ensemble de programmes excutables par lordinateur systme dexploitation (MS-DOS, Windows, Unix) logiciels standards comme Word, Excel... progiciels : logiciels spcifiques (paye, comptabilit, ...)
6

Diffrents types de logiciels

Le logiciel pilote le matriel

Codage binaire

Codage binaire

Le langage des ordinateurs Toutes communications l'intrieur de l intrieur l'ordinateur sont faites avec des signaux lectriques

Un mme nombre peut tre reprsent dans plusieurs bases

0: teint (absence de signal lectrique) 1: allum (prsence de signal lectrique)

123 en base 10 (dcimal) ( ) 1111011 en base 2 (binaire) 173 en base 8 (octale) 7B en base 16 (hexadcimale)

Codage binaire

Exemple

De la base 10 la base 2

Il faut diviser le nombre par 2 puis ritrer

l'opration en considrant que le nouveau numrateur est l'ancien quotient jusqu' ce que ce t t l' i ti t j ' dernier soit nul. La suite inverse des restes reprsente le nombre binaire

Ecrire
9

10 en base 2
10

Codage binaire

Schma fonctionnel

Les oprations lmentaires en base 10 sappliquent de la mme faon en base 2


division

Exemple: Addition,, soustraction,, multiplication,, p p

11

12

Lunit Centrale
Fonctions

Lunit Centrale
Partie de lordinateur qui contient les circuits de base

Slectionner et excuter les instructions du programme en cours


13

la mmoire principale la mmoire vive (RAM) la mmoire morte (ROM) ( ) la mmoire cache le microprocesseur les circuits de calcul (UAL-Lunit arithmtique et logique) lunit de contrle ou de commande UC lhorloge systme lunit dentre-sortie
14

Lhorloge Elle contrle et synchronise le microprocesseur et les


composants associs

Lunit dentre-sortie
contrle et gre le transfert dinformations entre lUC et les priphriques Exemples

Sa vitesse (frquence) est exprime gnralement en mgahertz (MHz) c est--dire en million de cycles par cest dire seconde Lefficacit du microprocesseur est directement proportionnelle la frquence de lhorloge : une frquence leve est donc souhaitable Exemples: Intel i7, environ 3,4 GHz
15

carte graphique (cran) carte contrleur (disque dur) carte son (micro, haut-parleur)

16

Les Priphriques
Dfinition

Les Priphriques dentre

Dfinition Recueillent les informations qui sont ensuite transformes (numrises i.e. codes en binaires) pour tre utilisables par la machine et transfres en mmoire principale (mmoire de lUC) l UC) Exemples clavier souris : dispositif de pointage complmentaire du clavier et de lcran scanner : permet de numriser un document autres : cran tactile, lecteur de codes barres, crayon optique, camra, joystick...
18

Tout ce qui gravite autour de lUC cest--dire lcran, le clavier, la souris, les mmoires auxiliaires, limprimante, le scanner, le micro les haut-parleurs scanner micro, haut-parleurs....

3 Catgories de priphriques

dentre (clavier, souris, scanner, joystick) de sortie (cran, imprimante, haut-parleur) les mmoires auxiliaires (disque dur, disquette, CDROM)
17

Les Priphriques de sortie


Dfinition

La Mmoire
Dfinition

Transmettent linformation binaire de lUC vers lextrieur sous une forme comprhensible par lutilisateur

Exemples

cran imprimante haut-parleurs

Dispositif capable denregistrer, de stocker et de restituer des informations Trois types RAM ou mmoire vive ROM ou mmoire morte Mmoire de masse ou secondaire Unit de stockage: Un composant lectronique capable de mmoriser des tensions: BIT (Binary DigiT) : unit de stockage lmentaire Les informations sont codes en binaires composs de 0 et de 1

19

20

La Mmoire
Units

La Mmoire
Units

de mesure

de mesure

1octet = 8 bits 1Ko (Kilo octet) 1 000 octets 1Mo (Mga octet) 1 000 000 octets 1Go (Giga octet) 1 000 000 000 octets 1To (Tra octet) 1 000 000 000 000 octets

1octet = 8 bits 1Ko (Kilo octet) =1 024 octets (210 octets) 1Mo (Mga octet) = 1 048 576 octets (220 octets) 1Go (Giga octet) = 1 073 741 824 octets (230 octets) 1To (Tra octet) = 1 099 511 627 776 octets (240 octets)

21

22

La Mmoire

La Mmoire

Structure La mmoire est organise en cellules (octets ou mots) Chaque cellule est repre par son adresse qui permet lordinateur de trouver les informations dont il a besoin 2 Modes daccs la mmoire En lecture : aucun effet sur le contenu En criture : modifie son contenu

Caractristiques Capacit : nombre doctets Accs direct : grce ladresse, accs immdiat li f i di t linformation ( parle d ti (on l de support adressable) squentiel : pour accder une information, il faut avoir lu toutes les prcdentes (ex : cassette audio) Temps daccs : temps coul entre linstant o linformation est demande et celui o elle est disponible (en ms)

23

24

La Mmoire
Le contenu de la mmoire est compos

Diffrentes mmoires

de donnes et dinstructions code de lopration lmentaire donne(s) ou adresse des donnes

Programme

Ensemble dinstructions et de donnes Traduites en signaux lectriques comprhensibles par le matriel

La mmoire vive ou RAM (Random Access Memory) mmoire accs direct taille limite son contenu est volatile, i.e. il est perdu chaque fois que lordinateur ne fonctionne pas : do le besoin dutiliser de la mmoire auxiliaire rmanente i ili i t endroit o lordinateur stocke temporairement les donnes et instructions (programmes) quil est en train dutiliser et dexcuter contient tous les programmes en cours dexcution Capacit de 1 Go 4 Go

25

26

La mmoire morte (Read Only Memory)


mmoire permanente et inaltrable contient des petits programmes crits par le constructeur pour la mise en route de lordinateur BIOS (Basic Input/Output System)

La mmoire cache

La transmission entre la RAM et le microprocesseur est plus lente que le potentiel de vitesse du microprocesseur Mmoire cache (niveau L1 o L2) (ni ea ou

identifie les diffrents composants de la machine et vrifie leur bon fonctionnement

zone de mmoire ultra-rapide o sont conserves les donnes et instructions qui reviennent le plus souvent mmoire interne de petite taille (dizaines de Ko) Type non-volatile (Flash)

27

Capacit : 3 Mo
28

Le microprocesseur

Le cur de lordinateur : il traite et fait circuler les instructions et les donnes Compos des lments suivants

Le microprocesseur

Unit de contrle (ou de commande)

Unit Arithmtique et Logique (UAL) Ensemble de circuits qui excutent les oprations arithmtiques et logiques de base Diffrents Registres (CO, Etat, Instruction)

Son rle est d extraire une instruction dextraire Elle dcode les instructions et trouve
les donnes pour lUAL

du programme en MC, de la faire excuter par lUAL ou un priphrique et de chercher linstruction suivante

29

30

Le microprocesseur

Le microprocesseur
Un processeur est compos de transistors permettant de raliser des fonctions sur des signaux numriques. Ces transistors, assembls entre eux forment des composants permettant d raliser d t tt t de li des f fonctions t ti trs simples. A partir de ces composants il est possible de crer des circuits ralisant des oprations trs complexes. L'algbre de Boole (du nom du mathmaticien anglais Georges Boole 1815 - 1864) est un moyen d'arriver crer de tels circuits.

31

Le microprocesseur

L'algbre de Boole est une algbre se proposant de traduire des signaux en expressions mathmatiques. Pour cela, on dfinit chaque signal lmentaire par des variables logiques et leur traitement par des fonctions logiques logiques. Des mthodes (table de vrit) permettent de dfinir les oprations que l'on dsire raliser, et transcrire le rsultat en une expression algbrique. un circuit logique un circuit qui schmatise l'agencement des composants de base (au niveau logique) sans se proccuper de la ralisation au moyen de transistors (niveau physique).

Le microprocesseur Variables logiques

Un ordinateur ne manipule que des donnes binaires, on appelle donc variable logique une donne binaire, gq , c'est--dire une donne ayant deux tats possibles: 0 ou 1.

Le microprocesseur Fonction logique

Le microprocesseur Fonction logique

On appelle fonction logique une entit acceptant plusieurs valeurs logiques en entre et dont la sortie (il peut y en avoir ( p plusieurs) peut avoir deux tats possibles : 0 ou 1.

Les fonctions logiques de bases sont appeles portes logiques. Il s'agit de fonctions ayant une ou deux entres et une sortie:

La fonction OU (en anglais OR) positionne sa sortie 1


si l'une ou l'autre de ses entres est 1

La fonction ET (en anglais AND) positionne sa sortie La


1 si ses deux entres sont 1 fonction OU EXCLUSIF (en anglais XOR) positionne sa sortie 1 si l'une ou l'autre de ses entres est 1 mais pas les deux simultanment La fonction NON (appele aussi inverseur) positionne sa sortie 1 si son entre est 0, et vice-versa

Excution dun programme Lunit dentre-sortie



contrle et gre le transfert dinformations entre lUC et les priphriques Exemples
Horloge Microprocesseur 2 Unit 5 MC 3

de Contrle

carte graphique (cran) carte contrleur (disque dur) carte son (micro, haut-parleur)

4 4 UAL

4 E/S 1
37

38

Excution dun programme

Exemple simplifi

Chargement des instructions et des


donnes en MC chaque top dhorloge lunit de d horloge, l unit contrle ...

Pour calculer 12+5, il faut une suite d'instructions

Transfrer:

le nombre 12 saisi au clavier dans la mmoire le nombre 5 saisi au clavier dans la mmoire le nombre 12 de la mmoire vers un registre du le nombre 5 de la mmoire vers un registre du
microprocesseur microprocesseur

rcupre une instruction et les


donnes ncessaires et les analyse dclenche le traitement adapt en envoyant un signal lUAL ou lunit des entres-sorties
39

demander l'unit de calcul de faire l'addition Transfrer:


console (pour l'affichage)

le contenu du rsultat dans la mmoire le rsultat (17) se trouvant en mmoire vers l'cran de la

A REVISER

A REVISER

Bus

Principaux bus

On appelle bus, en informatique, est un systme de communication entre les composants d'un ordinateur Les bus ont pour but de rduire le nombre de voies ncessaires la communication des diffrents composants, en mutualisant les communications sur une seule voie de donnes.

le bus systme (appel aussi bus interne). Le bus systme permet au processeur de communiquer avec la mmoire centrale du systme le bus d extension (parfois appel bus d'entre/sortie) d'extension d entre/sortie) permet aux divers composants de la carte-mre (USB, srie, parallle, cartes branches sur les connecteurs PCI, disques durs, lecteur/graveur de CD-ROM) de

communiquer entre eux mais il permet surtout l'ajout de nouveaux priphriques grce aux connecteurs d'extension (appels slots) connects
sur le bus d'entres-sorties.

A REVISER

A REVISER

Slots

Carte dextension

des prises qui sont prsentes sur la carte mre. Ces connecteurs sont prvus pour recevoir des cartes supplmentaires Ce qui diffrencie ces cartes c'est leur rapidit. Dans l'ordre, du plus lent au plus rapide :

Les cartes au format ISA Les cartes au format PCI Les cartes au format AGP

Permet dajouter des fonctionnalits (souvent de communication) comme par exemple les cartes graphiques, son, p g p q modem, usb, etc. Dans le PC et Mac, il existe aujourdhui deux grandes catgories de carte qui se diffrencient par le bus utilis : PCI et AGP

A REVISER

Carte mre

Quest-ce quun programme dordinateur? Carte lectronique qui permet aux diffrents composants de communiquer via diffrents bus de communication On enfiche ces composants sur des connecteurs

Le logiciel pilote le matriel

Pour faire marcher un ordinateur il faut lui fournir un programme


Ordinateur = matriel + programme(s)

Un programme est une suite dinstructions dordinateur Une instruction est un ordre compris par lordinateur et qui lui fait excut une action
46

Les catgories dordres

Langages informatiques

les ordinateurs, quels quils soient, ne sont fondamentalement capables de comprendre que quatre catgories d'ordres (en programmation, on n'emploiera pas le terme d'ordre, mais plutt celui d'instructions). C d'i t ti ) Ces quatre f ill t familles d'i t ti d'instructions sont :

Un langage informatique est un outil permettant de donner des ordres (instructions) la machine

A chaque instruction correspond une action du processeur

laffectation de variables la lecture / criture les tests les boucles

Intrt : crire des programmes (suite conscutive dinstructions) destins effectuer une tache donne

Exemple: un programme de gestion de comptes bancaires

Contrainte: tre comprhensible par la machine

47

48

Langage machine

L'assembleur

Langage binaire: linformation est exprime et manipule sous forme dune suite de bits Un bit (binary digit) = 0 ou 1 (2 tats lectriques) Une combinaison de 8 bits= 1 Octet 28 256 possibilits qui permettent
de coder tous les caractres alphabtiques, numriques, et symboles tels que ?,*,&,

Problme: le langage machine est difficile comprendre par l'humain Ide: trouver un langage comprhensible par l'homme qui sera ensuite converti en langage machine Assembleur (langage de bas niveau): exprimer les instructions y q lmentaires de faon symbolique
ADD A, 4 LOAD B MOV A, OUT

traducteur

langage machine

correspondances entre les caractres alphanumriques et leurs reprsentation binaire, Ex. A= 01000001, ?=00111111

Le code ASCII (American Standard Code for Information Interchange) donne les

Les oprations logiques et arithmtiques de base (addition, multiplication, ) sont effectues en binaire
49

+ : Un langage symbolique plus proche du langage machine - : Pas assez efficace pour dvelopper des applications complexes

Apparition des langages volus


50

Langages haut niveau

CODE SOURCE

Intrts multiples pour le haut niveau:

proche du langage humain anglais (comprhensible) permet une plus grande portabilit (indpendant du matriel) Manipulation de donnes et dexpressions complexes (rels, objets, a*b/c, ) bj t *b/ )

Ncessit dun traducteur (compilateur/interprteur), excution plus ou moins lente selon le traducteur
Code source Compilateur ou interprteur Langage machine

Le code source est un texte qui reprsente les instructions qui doivent tre excutes par un microprocesseur Le code source est crit dans un langage de programmation

en langage volu

51

52

Compilateur/interprteur

Principaux Langages de programmation:


excution

Compilateur: traduire le programme entier une fois pour toutes


exemple.c
fichier source Compilateur

exemple

Pascal

Blaise PASCAL, mathmaticien et inventeur de la premire machine calculer 1971 C'est une version amliore du langage de programmation B du Bell Laboratory, cr en 1972

fichier excutable

Langage compil et structur, driv d'ALGOL. c'est un langage de dveloppement standard pour les microordinateurs. Langage de programmation structur et compil, trs largement employ car ses programmes peuvent facilement se transfrer d'un type d'ordinateur un autre. couvrir tous les domaines Dapplication formel Ce langage connat un succs qu'aucun autre langage n'avait encore connu.

+ plus rapide lexcution p p + scurit du code source - il faut recompiler chaque modification

Interprteur: traduire au fur et mesure les instructions du programme chaque excution


exemple.bas fichier source Interprtation+excution

Maple Java

Nasa 1980 de SUN

Microsystems 1990

+ excution instantane apprciable pour les dbutants - excution lente par rapport la compilation
53 54

Etapes de ralisation dun programme


Enonc du problme Spcification Cahier des charges Analyse Algorithme Traduction en langage Programme source Compilation Programme excutable Tests et modifications Version finale et rsultats

Pourquoi apprendre lalgorithmique pour apprendre programmer ?


Un algorithme est une description complte et dtaille des actions effectuer et de leur squencement pour arriver un rsultat donn

Intrt: sparation analyse/codage (pas de proccupation de p y g (p p p syntaxe) lalgorithmique exprime les instructions rsolvant un problme donn indpendamment des particularits de tel ou tel langage. Qualits: exact (fournit le rsultat souhait), efficace (temps dexcution, mmoire occupe), clair (comprhensible), gnral (traite le plus grand nombre de cas possibles),

La ralisation de programmes passe par lcriture dalgorithmes Do lintrt de lAlgorithmique


55 56

Pourquoi apprendre lalgorithmique pour apprendre programmer ?

Reprsentation dun algorithme


Historiquement, deux faons pour reprsenter un algorithme:

Pour prendre une image, si un programme tait une dissertation, lalgorithmique serait le plan, une fois mis de ct la rdaction et lorthographe. Mieux faire dabord le plan et rdiger ensuite que linverse

LOrganigramme: reprsentation graphique avec des symboles (carrs, losanges, etc.)

offre une vue densemble de lalgorithme d ensemble l algorithme reprsentation quasiment abandonne aujourdhui

Le pseudo-code: reprsentation textuelle avec une srie de pseudoconventions ressemblant un langage de programmation (sans
les problmes de syntaxe)

plus pratique pour crire un algorithme reprsentation largement utilise

57

58

Exemple d Organigramme

Exemple de pseudo code


Problme: addition Entre: deux chiffres A et B Sortie: un chiffre C=A+B

Variables A, B, C : rel Dbut C A+B Fin


59 60

10

Algorithmique

Les catgories dordres

Quatre familles d'instructions sont :

Notions et instructions de base

Les variables et leurs AFFECTATION La LECTURE / CRITURE Les TESTS Les BOUCLES

61

62

Notions Fondamentales (1/2)

Notions Fondamentales (2/2)

Karim possde 3 seaux : un seau en plastique dune contenance de 10 litres, un seau en bois dune contenance de 7 litres et un seau en fer dune contenance de 9 litres.

Notion dalgorithme : si les huis phrases sont bien excute par Karim, alors lhistoire est un algorithme Notion dinstruction : chacune de huis phrases est une instruction (un ordre) Notion de valeur : { 0, 3, 5, 6, 8, 10 } Notion de mmoire : elle est matrialise par les seaux qui mmorisent les quantits de liquide

10h00 : karim vide ses 3 seaux 10h05 : karim va rendre visite a Nabil, celui-ci met 6 litres dans le seau en bois de , Karim 10h10 : karim transverse le contenu de son seau en bois dans le seau en fer 10h15 : karim revient vers nabil remplir ras bord son seau en plastique 10h20 : karim dverse la moiti de son seau en plastique lgout 10h25 : karim transvase le contenu de son seau en plastique dans celui en bois 10h30 : karim transvase 2 litres de son seau en bois dans celui en fer 10h35 : karim informe Asmae du nombre de litres contenu dans ses seaux en plastique, en bois, en fer.

Quelles sont les quantits des trois seaux que Asmae a reues?
63 64

Notions Fondamentales (2/2)

Notion de variable

Notion de variable : une variable est un emplacement mmoire, ici on a trois variables (le seau en plastique, le seau en bois et le seau en fer) Notion denvironnement : cest lensemble des objet, informations, personnes qui on une existence hors de lhistoire mais qui interviennent dans son droulement. Notion des valeurs dentre et de sortie : cest les valeurs que le processeur reoit de lenvironnement et celles quil donne lenvironnement durant lexcution. Valeurs en entre :{6, 10} Valeurs en sortie = {0, 3, 8}

Dans les langages de programmation une variable sert stocker la valeur dune donne Une variable dsigne en fait un emplacement mmoire dont le contenu peut changer au cours dun programme (do le nom d un (d o variable) Rgle: Les variables doivent tre dclares avant dtre utilises, elle doivent tre caractrises par :

un nom (Identificateur Identificateur) un type (entier, rel, caractre, chane de caractres, )

65

66

11

Choix des identificateurs (1)


Le choix des noms de variables est soumis quelques rgles qui varient selon le langage, mais en gnral:

Choix des identificateurs (2)


Conseil: pour la lisibilit du code choisir des noms significatifs qui dcrivent les donnes manipules
exemples: TotalVentes2006, Prix_TTC, Prix_HT

Un nom doit commencer par une lettre alphabtique


exemple valide: A1 A1 exemple invalide: 1A

doit tre constitu uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractres de ponctuation et les espaces)
valides: ENCG2012, ENCG_2012 ENCG2012, ENCG_2012 2012, ENCG;2012 2012, ENCG;2012 invalides: ENCG 2012, ENCG2012, ENCG-

Remarque: en pseudo-code algorithmique, on va respecter les rgles cites.

doit tre diffrent des mots rservs du langage (par exemple en Java: int, float, else, switch, Java int, float, else, switch, case, default, for, main, return, ) La longueur du nom doit tre infrieure la taille maximale spcifie par le langage utilis
67 68

Types des variables


Le type dune variable dtermine lensemble des valeurs quelle peut prendre, les types offerts par la plus part des langages sont: Type numrique (entier ou rel)

Dclaration des variables


Byte (cod sur 1octet), Entier court , Entier long, Rel simple prcision, Rel double prcision

Rappel: toute variable utilise dans un programme doit avoir fait lobjet dune dclaration pralable En pseudo-code, on va adopter la forme suivante pour la dclaration de variables

Type logique ou boolen: deux valeurs VRAI ou FAUX boolen: Si bouton enfonc alors lumire allume = vrai sinon lumire allume = faux Type caractre: lettres majuscules, minuscules, symboles,
exemples: A, a, ?,

Variables
Exemple:

liste d identificateurs : type d'identificateurs


i, j,k : entier x, y : rel OK: boolen ch1, ch2 : chane de caractres

Variables

Type chane de caractre: toute suite de caractres,


exemples: " Nom, Prnom", "code postale: 1000", 1000",
69

Remarque: pour le type numrique on va se limiter aux entiers et rels sans considrer les sous types
70

Linstruction daffectation

Quelques remarques

laffectation consiste attribuer une valeur une variable a consiste remplir o modifier le contenu d'une zone mmoire En pseudo-code, l'affectation se note avec le signe Var e : attribue la valeur de e la variable V V tt ib l l d l i bl Var

L'affectation n'est pas commutative : A B est diffrente de B A L'affectation est diffrente d'une quation mathmatique :

A=A+1 a un sens en langages de programmation A+1=2 n'est pas possible en langages de programmation et
n'est pas quivalente A=1

e peut tre une valeur, une autre variable ou une expression Var et e doivent tre de mme type ou de types compatibles laffectation ne modifie que ce qui est gauche de la flche

Ex valides:

i 1 x 10.3 10. ch2 ch2 ch1 ch1

ji OK FAUX x 4 OK ENCG

k i+j ch1 ENCG ch1 xj jx


71

Certains langages donnent des valeurs par dfaut aux variables dclares. Pour viter tout problme il est prfrable d'initialiser les variables dclares

(voir la dclaration des variables dans le transparent prcdent)

non valides: i 10.3 10.

72

12

Exercices simples sur l'affectation (1)


Donnez les valeurs des variables A, B et C aprs excution des instructions suivantes ?
Variables A, B, C: Entier Dbut A3 B7 AB B A+5 CA+B CBA Fin

Exercices simples sur l'affectation (2)


Donnez les valeurs des variables A et B aprs excution des instructions suivantes ? Variables A, B : Entier Dbut A1 B2 AB BA Fin

73

74

Exercices simples
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?

Exercices simples
seront les valeurs des variables A, B et C aprs excution des instructions suivantes ? Variables A, B, C : Entier Dbut A5 A=5 B3 A=5 CA+B A=5 A2 A=2 CBA A=2 Fin
75

Quelles

Variables A B : Entier A, Dbut A1 B A+3 A 3 Fin

A=1 A=1 A=3

B=? B=4 B=4

B=? B=3 B=3 B=3 B=3

C=? C=? C=8 C=8 C=1

76

Exercices simples
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?

Exercices simples
Quelles seront les valeurs des variables A, B et C aprs excution des instructions suivantes ?

Variables A, B : Entier Dbut A5 A=5 BA+4 A=5 AA+ 1 A=6 BA4 A=6 Fin

B=? B=9 B=9 B=2

Variables A, B, C : Entier Dbut A3 A=3 B 10 A=3 CA+B A=3 BA+B A=3 AC A = 13 Fin
77

B=? B = 10 B = 10 B = 13 B = 13

C=? C=? C = 13 C = 13 C = 13

78

13

Exercices simples
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?

Exercices simples
Ecrire un algorithme permettant dchanger les valeurs de deux variables A et B
Dbut C A A B B C Fin

Variables A, B : Entier Dbut A 5 B 2 A B B A Fin


A=5 A=5 A=2 A=2 B=? B=2 B=2 B=2

A C

A B

On est oblig de passer par une variable dite temporaire (la variable C).

79

80

Exercices simples
CONCATENATION Que produit lalgorithme suivant ? Variables A, B, C en Caractres Dbut A "423" "42312". B "12" CA&B Fin

Exercices simples
Que produit lalgorithme suivant ? Variables A, B, C en Caractres Dbut A "423" B "12" CA+B Fin

81

82

Expressions et oprateurs

Priorit des oprateurs

Une expression peut tre une valeur, une variable ou une opration constitue de variables relies par des oprateurs exemples: 1, b, a*2, a+ 3*b-c, a*2 *bL'valuation de l'expression fournit une valeur unique qui est le rsultat de l opration l'opration Les oprateurs dpendent du type de l'opration, ils peuvent tre :

Pour les oprateurs arithmtiques donns ci-dessus, l'ordre de priorit est le suivant (du plus prioritaire au moins prioritaire) :

^ : (lvation la puissance) * , / (multiplication, division) (multiplication % (modulo) + , - (addition, soustraction)

des oprateurs arithmtiques: +, -, *, /, % (modulo), ^ (puissance) des oprateurs logiques: NON, OU, ET des oprateurs relationnels: =, , <, >, <=, >= des oprateurs sur les chanes: & (concatnation)

exemple:

2+3*7

vaut 23

En cas de besoin (ou de doute), on utilise les parenthses pour indiquer les oprations effectuer en priorit exemple: (2 + 3) * 7 vaut 35
84

Une expression est value de gauche droite mais en tenant compte de priorits
83

14

Les instructions d'entres-sorties: lecture et criture (1)

Les instructions d'entres-sorties: lecture et criture (2)

Les instructions de lecture et d'criture permettent la machine de communiquer avec l'utilisateur La lecture permet d'entrer des donns partir du clavier

L'criture permet d'afficher des rsultats l'cran (ou de les crire dans un fichier)

En pseudo code on note: lire (var) pseudo-code, la machine met la valeur entre au clavier dans la zone mmoire nomme var Remarque: Le programme s'arrte lorsqu'il rencontre une instruction Lire et ne se poursuit qu'aprs la frappe dune valeur au clavier et de la touche Entre

En pseudo-code, on note: crire (var) la machine affiche le contenu de la zone mmoire var Conseil: Avant de lire une variable, il est fortement conseill dcrire des messages lcran, afin de prvenir lutilisateur de ce quil doit frapper

85

86

Exemple (lecture et criture)


Ecrire un algorithme qui demande un nombre entier l'utilisateur, puis qui calcule et affiche le double de ce nombre

Exercice (lecture et criture)


Ecrire un algorithme qui vous demande de saisir votre nom puis votre prnom et qui affiche ensuite votre nom complet
Algorithme AffichageNomComplet variables Nom Prenom, Nom_Complet : chane de caractres Nom, Prenom Nom Complet Dbut crire("entrez votre nom") lire(Nom) crire("entrez votre prnom") lire(Prenom) Nom_Complet Nom & Prenom crire("Votre nom complet est : ", Nom_Complet) Fin
87 88

Algorithme Calcul_double variables A B : entier i bl A, ti Dbut crire("entrer la valeur de A ") lire(A) B 2*A crire("le double de ", A, "est :", B) Fin

Exercice (lecture et criture)


Ecrire un algorithme en pseudo-code qui traduit les frases suivantes:
1. 2. 3. 4. 5.

Exercice (lecture et criture)


Ecrire un algorithme qui demande lutilisateur dentrer la largeur et la longueur et afficher la surface dun rectangle :.
Algorithme surface_rectangle Variables largeur, longueur, surface : rel Dbut Ecrire (" entrer la largeur : " ) Lire (largeur) Ecrire (" entrer la longueur : " ) Lire (longueur) Surface largeur*longueur Ecrire (" la surface dun rectangle est : ", surface) Fin

Choisir un nombre. Lui ajouter 1. j Multiplier le rsultat par 2. Soustraire 3 au rsultat. Afficher le rsultat.

Algorithme calcul_mathmatique variables x : reel Dbut crire(" introduire un nombre") lire(x) x x+1 xx*2 x x -3 crire(x) Fin

89

90

15

Exercice (respect des rgles)


Chacun de ces quatre algorithmes contient une erreur. Laquelle?
Algorithme1 Variables
Quantit : entier Prix_unit : rel

Mthode de construction dun algorithme simple (1/4)

Algorithme2 Variables
X, Y, Z : rel

Exemple : crire i un algorithme qui consiste calculer l i S l ith i i t l l lair dun cercle selon la formule S = Pi * R2
Rappel : Pi = 3.14159 et R le rayon du cercle

Dbut
Lire (X, Y, Z) Z X-Y crire (Z)

Dbut
Lire (Quantit, Prix_unit) ( , ) Prix_total Quantit * Prix_unit crire (Prix_total)

Fin Algorithme4 Variables


X : rel

Fin Algorithme3 Variables


A1, A2: entier A3 : rel

Dbut
Lire (X) X X-1 X Pi * X crire (X)

Dbut
Lire (A1, A2) A2 A1 * A3 crire (A2)

Fin

Fin 91 92

Mthode de construction dun algorithme simple (2/4)

Mthode de construction dun algorithme simple (3/4)


Algorithme
Calcul_Aire Constantes Pi = 3,14159 , Variables Rayon, Surface : rels Dbut lire (Rayon) Surface := Pi * (Rayon)2 crire (Surface) Fin

Mthodologie a suivre : constantes : Pi = 3.14159 Variables : Rayon, Surface Types : Rayon, Surface : rel Expressions et affectation : Surface := Pi * (Rayon)2 Oprations dentre-sortie : Lire (Rayon),
crire (Surface)

93

94

Exercice
Ecrire un programme qui lit le prix HT dun article, la quantit darticles et le taux de TVA, et qui fournit le prix total TTC correspondant.
Variables Qte, Prix_HT, TVA, Prix_TTC : reels Dbut Ecrire ("Entrez le prix hors taxes :") Lire (Prix_HT) Ecrire ("Entrez le nombre darticles :") Lire (Qte) Ecrire ("Entrez le taux de TVA :" ) Lire (TVA) Prix_TTC Qte * Prix_HT * (1 + TVA) Ecrire ("Le prix toutes taxes est : ", Prix_TTC) Fin
95

Algorithmique
Les structures Conditionnelles et les boucles

96

16

Les structures conditionnelles et les boucles

Tests: instructions conditionnelles (1)

Les tests simples :


SI Alors

Les instructions conditionnelles servent n'excuter une instruction ou une squence d'instructions que si une condition est vrifie
On utilisera la forme suivante: Si condition alors

instruction ou suite d'instructions1 Sinon instruction ou suite d'instructions2 Finsi

Les instructions conditionnelles :


SI Alors SINON

Les itrations :
Tant que
97

la condition ne peut tre que vraie ou fausse si la condition est vraie, se sont les instructions1 qui seront excutes si la condition est fausse, se sont les instructions2 qui seront excutes la condition peut tre une condition simple ou une condition compose de plusieurs conditions
98

Tests: instructions conditionnelles (2)

Exemple (SiAlorsSinon)
Algorithme AffichageValeurAbsolue (version1) Variable x : rel Dbut Ecrire " Entrez un rel : " Lire (x) Si x < 0 alors Ecrire ("la valeur absolue de ", x, "est:",-x) Sinon Ecrire ("la valeur absolue de ", x, "est:",x) Finsi Fin

La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la condition est fausse, aucun traitement n'est ralis

On utilisera dans ce cas la forme simplifie suivante: Si condition alors diti l instruction ou suite d'instructions1 Finsi

99

100

Exemple (SiAlors)
Algorithme AffichageValeurAbsolue (version2) Variable x,y : rel Dbut Ecrire " Entrez un rel : " Lire (x) y x Si x < 0 alors y -x Finsi Ecrire ("la valeur absolue de ", x, "est:",y) Fin

Exercice (tests)
Ecrire un algorithme qui demande un nombre entier l'utilisateur, puis qui teste et affiche s'il est divisible par 3 Algorithme Divsible_par3 Variable n : entier Dbut Db t Ecrire " Entrez un entier : " Lire (n) Si (n%3=0) alors Ecrire (n," est divisible par 3") Sinon Ecrire (n," n'est pas divisible par 3") Finsi Fin
101 102

17

Conditions composes

Tables de vrit
C1 VRAI VRAI FAUX FAUX C1 VRAI VRAI FAUX FAUX
103

Une condition compose est une condition forme de plusieurs conditions simples relies par des oprateurs logiques: ET, OU, OU exclusif (XOR) et NON Exemples : x compris entre 2 et 6 : (x > 2) ET (x < 6)

C2 VRAI FAUX VRAI FAUX C2 VRAI FAUX VRAI FAUX

C1 ET C2 VRAI FAUX FAUX FAUX C1 XOR C2 FAUX VRAI VRAI FAUX

C1 VRAI VRAI FAUX FAUX C1 VRAI FAUX

C2 VRAI FAUX VRAI FAUX NON C1 FAUX VRAI

C1 OU C2 VRAI VRAI VRAI FAUX

n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0) deux valeurs et deux seulement sont identiques parmi a, b et c : (a=b) XOR (a=c) XOR (b=c)

L'valuation d'une condition compose se fait selon des rgles prsentes gnralement dans ce qu'on appelle tables de vrit

104

Tests imbriqus

Tests imbriqus: exemple (version 1)


Ecrire un algorithme pour dtecter si un entier est ngatif, nul ou positif
Variable n : entier Dbut Ecrire ("entrez un nombre : ") ( entrez ) Lire (n) Si n < 0 alors Ecrire ("Ce nombre est ngatif") Sinon Si n = 0 alors Ecrire ("Ce nombre est nul") Sinon Ecrire ("Ce nombre est positif") Finsi Finsi Fin
105 106

Les tests peuvent avoir un degr quelconque d'imbrications Si condition1 alors Si condition2 alors instructionsA Sinon instructionsB Finsi Sinon Si condition3 alors instructionsC Finsi Finsi

Tests imbriqus: exemple (version 2)


Variable n : entier Dbut Ecrire ("entrez un nombre : ") Lire (n) Si n < 0 alors Ecrire ("Ce nombre est ngatif") Finsi Si n = 0 alors Ecrire ("Ce nombre est nul") Finsi Si n > 0 alors Ecrire ("Ce nombre est positif") Finsi Fin Remarque : dans la version 2 on fait trois tests systmatiquement alors que dans la version 1, si le nombre est ngatif on ne fait qu'un seul test Conseil : utiliser les tests imbriqus pour limiter le nombre de tests et placer d'abord les conditions les plus probables (minimiser la complexit)
107

Tests imbriqus: Exercice

Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si leur produit est ngatif ou positif (on laisse de ct le cas o le produit est nul). Attention toutefois : on ne doit pas calculer le produit des deux nombres. Dbut Ecrire "Entrez le 1er nombre: " Lire (m) Ecrire "Entrez le 2eme nombre: " Lire (n) Si (m > 0 ET n > 0) OU (m < 0 ET n < 0) Alors Ecrire "Leur produit est positif" Sinon Ecrire "Leur produit est ngatif" Finsi 108 Fin

18

Tests imbriqus: exercice


Le prix de photocopies dans une reprographie varie selon le nombre demand: 0,5 DH la copie pour un nombre de copies infrieur 10, 0,4DH pour un nombre compris entre 10 et 20 et 0,3DH au-del. Ecrivez un algorithme qui demande lutilisateur le nombre de photocopies effectues, qui calcule et affiche le prix payer

Tests imbriqus: corrig de l'exercice


Variables copies : entier prix : rel Dbut Ecrire ("Nombre de photocopies : ") Lire (copies) Si copies < 10 Alors prix copies*0.5 Sinon Si copies < 20 prix copies*0.4 Sinon prix copies*0.3 Finsi Finsi Ecrire (Le prix payer est : , prix) Fin
109 110

PASCAL

Pascal: Les types de variables

Entier: VAR variable1, variable2, ..., variableN : INTEGER;

Prsentation gnrale et syntaxe des instructions de base

Oprations sur entiers : + (addition) - (soustraction) * (multiplication) / (division) mod (reste de la division)

111

112

Pascal: Les types de variables

Pascal: Les types de variables

Rels: VAR variable1, variable2, ..., variableN : REAL;

Oprations sur rels : + (addition) - (soustraction) * (multiplication) div (division)

Boolens: VAR variable1, variable2, ..., variableN : BOOLEAN; Oprations sur Boolens : AND OR NOT XOR (ou exclusif))

Ces oprations ncessitent des arguments boolens. Oprations valeur boolenne : > (suprieur) < (infrieur) >= (suprieur ou gal) <= (infrieur ou gal) = (gal) <> (diffrent)
113 114

19

Pascal: Les types de variables

Pascal: Les fonctions standard


ABS : renvoie la valeur absolue SQR : renvoie le carr SQRT : racine carre EX : exponentielle LN : log nprien SIN : sinus COS : cosinus ARCTAN : arc tangente ROUND : arrondi l'entier le plus proche

Caractres : VAR variable1, variable2, ..., variableN : CHAR; Oprations sur Boolens : AND OR NOT XOR (ou exclusif))

115

116

Pascal: affectation
Le symbole d'affectation se note en Pascal avec := affectation i:= 1; j:= i+1; exemple :

Pascal: lecture / criture


readln(Var) writeln(message1, var1, message2,var2)

117

118

Pascal: Les Test


Instruction IF - THEN - ELSE (si - alors - sinon) Structure : IF condition THEN instruction1 (* CAS 1 *) { ou } IF condition THEN instruction1 ELSE instruction2 (* CAS 2 *)

Exemple
PROGRAM cercle (input,output); (* entte *) VAR p perimetre, diametre,test : REAL; (* dclarations *) , , ;( ) CONST pi = 3.141592; begin readln(diametre); (* instruction *) perimetre := pi * diametre; (* instruction *) writeln(diametre,perimetre); (* instruction *) end.
119 120

20

Exemple 2
Ecrire un programme en pascal qui effectue une division entre deux nombres

121

21

Vous aimerez peut-être aussi