Upload
encgccomputing
View
687
Download
3
Embed Size (px)
Citation preview
1
INFORMATIQUE DE BASE
Année universitaire 2012-2013
Yassine El Ghoumari
1ère année ENCG
Architecture des ordinateurs
Yassine El Ghoumari
Définition d’un ordinateur
Machine qui :
saisit (périphériques d’entrée)
3
saisit (périphériques d entrée),
stocke (mémoire),
traite (programmes)
restitue (périphériques de sortie) des informations
Schéma fonctionnel
UCUCDonnéesDonnéesInstructionsInstructions
RésultatsRésultats
SaisieSaisie RestitutionRestitutionTraitementTraitement
Mé iMé i
4
Périphériques de sortiePériphériques de sortie
EcranModem
ImprimanteHaut parleur
Périphériques d’entréePériphériques d’entrée
Modem
Micro
Clavier
Souris
CaméraCD-ROM
Joystick Scanner
Mémoires auxiliairesMémoires auxiliaires
Disquette
Disque dur
MémoireMémoire
Constituants
Composants matériels (Hardware)• Tout ce qui compose l’ordinateur et ses
accessoires
5
• Chaque composant possède une fonction particulière• calcul• stockage des données• affichage vidéo• gestion du clavier...
Logiciel (Software)• immatériel (non tangible)
• ensemble de programmes exécutables par l’ordinateur
Constituants
6
Différents types de logiciels• système d’exploitation (MS-DOS, Windows, Unix)
• logiciels standards comme Word, Excel...
• progiciels : logiciels spécifiques (paye, comptabilité, ...)
Le logiciel pilote le matériel
2
Codage binaire
Le langage des ordinateurs
Toutes communications à l'intérieur de
7
Toutes communications à l intérieur de l'ordinateur sont faites avec des signaux électriques• 0: éteint (absence de signal électrique)
• 1: allumé (présence de signal électrique)
Un même nombre peut être représenté dans plusieurs bases• 123 en base 10 (décimal)
Codage binaire
8
( )
• 1111011 en base 2 (binaire)
• 173 en base 8 (octale)
• 7B en base 16 (hexadécimale)
De la base 10 à la base 2• Il faut diviser le nombre par 2 puis réitérer
l'opération en considérant que le nouveau é t t l' i ti t j 'à
Codage binaire
9
numérateur est l'ancien quotient jusqu'à ce que ce dernier soit nul. La suite inverse des restes représente le nombre binaire
Exemple
10
Ecrire 10 en base 2
Codage binaire
Les opérations élémentaires en base 10 s’appliquent de la même façon en base 2• Exemple: Addition, soustraction, multiplication,
11
p , , p ,division
Schéma fonctionnel
12
3
L’unité Centrale
Fonctions• Sélectionner et exécuter les instructions du programme
en cours
13
L’unité CentralePartie de l’ordinateur qui contient les circuits de base
• la mémoire principale
• la mémoire vive (RAM)
• la mémoire morte (ROM)
14
( )
• la mémoire cache
• le microprocesseur
• les circuits de calcul (UAL-L’unité arithmétique et logique)
• l’unité de contrôle ou de commande UC
• l’horloge système
• l’unité d’entrée-sortie
• Elle contrôle et synchronise le microprocesseur et les composants associés
• Sa vitesse (fréquence) est exprimée généralement en mégahertz (MHz) c’est à dire en million de cycles par
L’horloge
15
mégahertz (MHz) c est-à-dire en million de cycles par seconde
• L’efficacité du microprocesseur est directement proportionnelle à la fréquence de l’horloge : une fréquence élevée est donc souhaitable
• Exemples: Intel i7, environ 3,4 GHz
L’unité d’entrée-sortie
• contrôle et gère le transfert d’informations entre l’UC et les périphériques
• Exemples
16
Exemples
• carte graphique (écran)• carte contrôleur (disque dur)• carte son (micro, haut-parleur)
Les PériphériquesDéfinition
•Tout ce qui gravite autour de l’UC c’est-à-dire l’écran, le clavier, la souris, les mémoires auxiliaires, l’imprimante, le scanner le micro les haut-parleurs
17
le scanner, le micro, les haut-parleurs....
3 Catégories de périphériques
•d’entrée (clavier, souris, scanner, joystick)
•de sortie (écran, imprimante, haut-parleur)
•les mémoires auxiliaires (disque dur, disquette, CD-ROM)
• Définition
• Recueillent les informations qui sont ensuite transformées (numérisées i.e. codées en binaires) pour être utilisables par la machine et transférées en mémoire principale (mémoire de l’UC)
Les Périphériques d’entrée
18
(mémoire de l UC)
• Exemples
• clavier
• souris : dispositif de pointage complémentaire du clavier et de l’écran
• scanner : permet de numériser un document
• autres : écran tactile, lecteur de codes barres, crayon optique, caméra, joystick...
4
Les Périphériques de sortie
• Définition
• Transmettent l’information binaire de l’UC vers l’extérieur sous une forme compréhensible par l’utilisateur
19
• Exemples
• écran• imprimante• haut-parleurs
Définition
Dispositif capable d’enregistrer, de stocker et de restituer des informations
Trois types
La Mémoire
20
RAM ou mémoire vive ROM ou mémoire morte Mémoire de masse ou secondaire
Unité de stockage: Un composant électronique capable de mémoriser des tensions: BIT (Binary DigiT) : unité de stockage élémentaire Les informations sont codées en binaires composés de 0 et de 1
Unités de mesure
1octet = 8 bits
La Mémoire
21
1Ko (Kilo octet) 1 000 octets
1Mo (Méga octet) 1 000 000 octets
1Go (Giga octet) 1 000 000 000 octets
1To (Téra octet) 1 000 000 000 000 octets
Unités de mesure
1octet = 8 bits
10
La Mémoire
22
1Ko (Kilo octet) =1 024 octets (210 octets)
1Mo (Méga octet) = 1 048 576 octets (220 octets)
1Go (Giga octet) = 1 073 741 824 octets (230 octets)
1To (Téra octet) = 1 099 511 627 776 octets (240 octets)
Structure La mémoire est organisée en cellules (octets ou mots) Chaque cellule est repérée par son adresse qui permet
à l’ordinateur de trouver les informations dont il a besoin2 Modes d’accès à la mémoire
La Mémoire
23
2 Modes d’accès à la mémoire En lecture : aucun effet sur le contenu En écriture : modifie son contenu
Caractéristiques Capacité : nombre d’octets Accès
direct : grâce à l’adresse, accès i édi t à l’i f ti ( l d
La Mémoire
24
immédiat à l’information (on parle de support adressable)
séquentiel : pour accéder à une information, il faut avoir lu toutes les précédentes (ex : cassette audio)
Temps d’accès : temps écoulé entre l’instant où l’information est demandée et celui où elle est disponible (en ms)
5
• Le contenu de la mémoire est composé• de données• et d’instructions
• code de l’opération élémentaire
La Mémoire
25
• donnée(s) ou adresse des données
• Programme• Ensemble d’instructions et de données
•Traduites en signaux électriques compréhensibles par le matériel
Différentes mémoires La mémoire vive ou RAM (Random Access Memory)
• mémoire à accès direct à taille limitée
• son contenu est volatile, i.e. il est perdu à chaque fois que l’ordinateur ne fonctionne pas : d’où le besoin d’utiliser de la
é i ili i é t
26
mémoire auxiliaire rémanente
• endroit où l’ordinateur stocke temporairement les données et instructions (programmes) qu’il est en train d’utiliser et d’exécuter
• contient tous les programmes en cours d’exécution
• Capacité de 1 Go à 4 Go
La mémoire morte(Read Only Memory)
• mémoire permanente et inaltérable
• contient des petits programmes écrits par le constructeur
27
contient des petits programmes écrits par le constructeur pour la mise en route de l’ordinateur BIOS (Basic Input/Output System)
• identifie les différents composants de la machine et vérifie leur bon fonctionnement
La mémoire cache• La transmission entre la RAM et le microprocesseur est
plus lente que le potentiel de vitesse du microprocesseur
• Mémoire cache (ni ea L1 o L2)
28
• Mémoire cache (niveau L1 ou L2)• zone de mémoire ultra-rapide où sont conservées les
données et instructions qui reviennent le plus souvent
• mémoire interne de petite taille (dizaines de Ko)
•Type non-volatile (Flash)
• Capacité : 3 Mo
Le microprocesseur• Le cœur de l’ordinateur : il traite et fait circuler les
instructions et les données• Composé des éléments suivants
• Unité Arithmétique et Logique (UAL)•Ensemble de circuits qui exécutent les
29
•Ensemble de circuits qui exécutent les opérations arithmétiques et logiques de base
• Différents Registres (CO, Etat, Instruction…)
Le microprocesseur
• Unité de contrôle (ou de commande)
• Son rôle est d’extraire une instruction
30
Son rôle est d extraire une instruction du programme en MC, de la faire exécuter par l’UAL ou un périphérique et de chercher l’instruction suivante
• Elle décode les instructions et trouve les données pour l’UAL
6
Le microprocesseur
31
Un processeur est composé de transistors permettant deréaliser des fonctions sur des signaux numériques.
Ces transistors, assemblés entre eux forment dest tt t d é li d f ti t è
Le microprocesseur
composants permettant de réaliser des fonctions trèssimples.
A partir de ces composants il est possible de créer descircuits réalisant des opérations très complexes.
L'algèbre de Boole (du nom du mathématicien anglaisGeorges Boole 1815 - 1864) est un moyen d'arriver àcréer de tels circuits.
L'algèbre de Boole est une algèbre se proposant detraduire des signaux en expressions mathématiques.
• Pour cela, on définit chaque signal élémentaire pardes variables logiques et leur traitement par desfonctions logiques
Le microprocesseur
fonctions logiques.
• Des méthodes (table de vérité) permettent dedéfinir les opérations que l'on désire réaliser, et àtranscrire le résultat en une expression algébrique.
• un circuit logique un circuit qui schématisel'agencement des composants de base (au niveaulogique) sans se préoccuper de la réalisation aumoyen de transistors (niveau physique).
Le microprocesseurVariables logiques
Un ordinateur ne manipule que des données binaires, on appelle donc variable logique une donnée binaire, g q ,c'est-à-dire une donnée ayant deux états possibles: 0 ou 1.
Le microprocesseurFonction logique
On appelle «fonction logique» une entitéacceptant plusieurs valeurs logiques enentrée et dont la sortie (il peut y en avoir( p yplusieurs) peut avoir deux états possibles : 0ou 1.
Les fonctions logiques de bases sont appeléesportes logiques. Il s'agit de fonctions ayant uneou deux entrées et une sortie:• La fonction OU (en anglais OR) positionne sa sortie à 1
Le microprocesseurFonction logique
si l'une ou l'autre de ses entrées est à 1• La fonction ET (en anglais AND) positionne sa sortie à
1 si ses deux entrées sont à 1• La fonction OU EXCLUSIF (en anglais XOR)
positionne sa sortie à 1 si l'une ou l'autre de sesentrées est à 1 mais pas les deux simultanément
• La fonction NON (appelée aussi inverseur) positionnesa sortie à 1 si son entrée est à 0, et vice-versa
7
L’unité d’entrée-sortie
• contrôle et gère le transfert d’informations entre l’UC et les périphériques
37
• Exemples
• carte graphique (écran)• carte contrôleur (disque dur)• carte son (micro, haut-parleur)
Exécution d’un programmeMCMCMicroprocesseurMicroprocesseur
HorlogeHorloge
Unité de ContrôleUnité de Contrôle
22
33
44
55
38
UALUAL
E/SE/S
11
4444
44
44
Exécution d’un programmeChargement des instructions et des
données en MC
À chaque top d’horloge l’unité de
39
À chaque top d horloge, l unité de contrôle ...récupère une instruction et les
données nécessaires et les analyse
déclenche le traitement adapté en envoyant un signal à l’UAL ou à l’unité des entrées-sorties
Exemple simplifié Pour calculer 12+5, il faut une suite d'instructions
• Transférer: • le nombre 12 saisi au clavier dans la mémoire
• le nombre 5 saisi au clavier dans la mémoire
• le nombre 12 de la mémoire vers un registre du microprocesseur
• le nombre 5 de la mémoire vers un registre du microprocesseur
• demander à l'unité de calcul de faire l'addition
• Transférer:• le contenu du résultat dans la mémoire
• le résultat (17) se trouvant en mémoire vers l'écran de la console (pour l'affichage)
Bus On appelle bus, en informatique, est un système
de communication entre les composants d'un ordinateur
A REVISER
Les bus ont pour but de réduire le nombre de « voies » nécessaires à la communication des différents composants, en mutualisant les communications sur une seule voie de données.
Principaux bus le bus système (appelé aussi bus interne). Le bus
système permet au processeur de communiquer avec la mémoire centrale du système
le bus d'extension (parfois appelé bus d'entrée/sortie)
A REVISER
le bus d extension (parfois appelé bus d entrée/sortie) permet aux divers composants de la carte-mère (USB, série, parallèle, cartes branchées sur les connecteurs PCI, disques durs, lecteur/graveur de CD-ROM…) de communiquer entre eux mais il permet surtout l'ajout de nouveaux périphériques grâce aux connecteurs d'extension (appelés slots) connectés sur le bus d'entrées-sorties.
8
Slots des prises qui sont présentes sur la carte
mère. Ces connecteurs sont prévus pourrecevoir des cartes supplémentaires
A REVISER
Ce qui différencie ces cartes c'est leurrapidité. Dans l'ordre, du plus lent au plusrapide :
• Les cartes au format ISA• Les cartes au format PCI• Les cartes au format AGP
Carte d’extension Permet d’ajouter des fonctionnalités
(souvent de communication) comme parexemple les cartes graphiques, son,
A REVISER
p g p qmodem, usb, etc.
Dans le PC et Mac, il existe aujourd’huideux grandes catégories de carte qui sedifférencient par le bus utilisé : PCI et AGP
Carte mère Carte électronique
qui permet aux différents composants de
A REVISER
composants de communiquer via différents bus de communication
On enfiche ces composants sur des connecteurs
Qu’est-ce qu’un programme d’ordinateur?
Pour faire marcher un ordinateur il faut lui fournir un
Le logiciel pilote le matériel
46
programmeOrdinateur = matériel + programme(s)
Un programme est une suite d’instructions d’ordinateur
Une instruction est un ordre compris par l’ordinateur et qui lui fait exécuté une action
Les catégories d’ordres les ordinateurs, quels qu’ils soient, ne sont
fondamentalement capables de comprendre quequatre catégories d'ordres (en programmation, onn'emploiera pas le terme d'ordre, mais plutôt celuid'i t ti ) C t f ill d'i t ti
47
d'instructions). Ces quatre familles d'instructionssont :• l’affectation de variables• la lecture / écriture• les tests• les boucles
Langages informatiques
Un langage informatique est un outil permettant dedonner des ordres (instructions) à la machine
• A chaque instruction correspond une action du processeur
48
Intérêt : écrire des programmes (suite consécutived’instructions) destinés à effectuer une tache donnée
• Exemple: un programme de gestion de comptes bancaires
Contrainte: être compréhensible par la machine
9
Langage machine Langage binaire: l’information est exprimée et manipulée sous
forme d’une suite de bits
Un bit (binary digit) = 0 ou 1 (2 états électriques)
49
Une combinaison de 8 bits= 1 Octet possibilités qui permettent de coder tous les caractères alphabétiques, numériques, et symboles tels que ?,*,&, …
• Le code ASCII (American Standard Code for Information Interchange) donne les correspondances entre les caractères alphanumériques et leurs représentation binaire, Ex. A= 01000001, ?=00111111
Les opérations logiques et arithmétiques de base (addition, multiplication, … ) sont effectuées en binaire
25628
L'assembleur Problème: le langage machine est difficile à comprendre par l'humain
Idée: trouver un langage compréhensible par l'homme qui sera ensuite converti en langage machine
•• AssembleurAssembleur (langage de bas niveau): exprimer les instructions élémentaires de façon symbolique
50
ç y q
• + : Un langage symbolique plus proche du langage machine• - : Pas assez efficace pour développer des applications complexes
Apparition des langages évolués
ADD A, 4
LOAD B
MOV A, OUT
…
traducteur langage machine
Langages haut niveau Intérêts multiples pour le haut niveau:
• proche du langage humain «anglais» (compréhensible)
• permet une plus grande portabilité (indépendant du matériel)
• Manipulation de données et d’expressions complexes (réels, bj t *b/ )
51
objets, a*b/c, …)
Nécessité d’un traducteur (compilateur/interpréteur),
exécution plus ou moins lente selon le traducteur
Code sourceCode source
en langage évoluéen langage évolué
Compilateur ouCompilateur ouLangage machineLangage machine
interpréteurinterpréteur
CODE SOURCE
Le code source est un texte qui représente lesinstructions qui doivent être exécutées par un
52
microprocesseur
Le code source est écrit dans un langage deprogrammation
Compilateur/interpréteur Compilateur: traduire le programme entier une fois pour toutes
• + plus rapide à l’exécution
exemple.cCompilateur Compilateur
fichier sourcefichier sourceexemple
fichier exécutablefichier exécutable
exécutionexécution
53
p p• + sécurité du code source• - il faut recompiler à chaque modification
Interpréteur: traduire au fur et à mesure les instructions du programme à chaque exécution
• + exécution instantanée appréciable pour les débutants• - exécution lente par rapport à la compilation
exemple.basfichier sourcefichier source
Interprétation+exécutionInterprétation+exécution
Principaux Langages de programmation:
PascalBlaise PASCAL, mathématicien et inventeur de la première machine à calculer 1971
Langage compilé et structuré, dérivé d'ALGOL. c'est un langage de développement standard pour les micro-ordinateurs.
CC'est une version améliorée du langage de programmation
Langage de programmation structuré et compilé, très
54
C B du Bell Laboratory, créé en 1972
largement employé car ses programmes peuvent facilement se transférer d'un type d'ordinateur à un autre.
Maple Nasa 1980 de SUN couvrir tous les domaines
D’application formel
Java Microsystems 1990 Ce langage connaît un succès qu'aucun autre langage n'avait encore connu.
10
Etapes de réalisation d’un programme
SpécificationSpécification
AnalyseAnalyse
Enoncé du problème Enoncé du problème
Cahier des chargesCahier des charges
AlgorithmeAlgorithme
55
Traduction en langageTraduction en langage
CompilationCompilation
Tests et modificationsTests et modifications
Programme sourceProgramme source
Programme exécutableProgramme exécutable
Version finale et résultatsVersion finale et résultats
La réalisation de programmes passe par l’écriture d’algorithmesD’où l’intérêt de l’Algorithmique
Pourquoi apprendre l’algorithmique pour apprendre à programmer ?
Un algorithme est une description complète et détaillée des actions àeffectuer et de leur séquencement pour arriver à un résultat donné
• Intérêt: séparation analyse/codage (pas de préoccupation de
56
p y g (p p psyntaxe) l’algorithmique exprime les instructions résolvant unproblème donné indépendamment des particularités de tel ou tellangage.
• Qualités: exact (fournit le résultat souhaité), efficace (tempsd’exécution, mémoire occupée), clair (compréhensible), général(traite le plus grand nombre de cas possibles), …
Pourquoi apprendre l’algorithmique pour apprendre à programmer ?
Pour prendre une image, si un programme était unedissertation, l’algorithmique serait le plan, une fois mis de
57
côté la rédaction et l’orthographe. Mieux faire d’abord le planet rédiger ensuite que l’inverse…
Représentation d’un algorithmeHistoriquement, deux façons pour représenter un algorithme:
•• L’Organigramme: L’Organigramme: représentation graphique avec des symboles
(carrés, losanges, etc.)
• offre une vue d’ensemble de l’algorithme
58
offre une vue d ensemble de l algorithme
• représentation quasiment abandonnée aujourd’hui
•• Le pseudoLe pseudo--code: code: représentation textuelle avec une série de conventions ressemblant à un langage de programmation (sansles problèmes de syntaxe)
• plus pratique pour écrire un algorithme
• représentation largement utilisée
Exemple d’ Organigramme
59
Exemple de pseudo code
Problème: addition
• Entrée: deux chiffres A et B
• Sortie: un chiffre C=A+B
60
Variables A, B, C : réel
Début
C ← A+B
Fin
11
Algorithmique
61
Notions et instructions de baseNotions et instructions de base
Les catégories d’ordres
Quatre familles d'instructions sont :
• Les variables et leurs AFFECTATION• La LECTURE / ÉCRITURE
62
La LECTURE / ÉCRITURE• Les TESTS• Les BOUCLES
Notions Fondamentales (1/2)
Karim possède 3 seaux : un seau en plastique d’une contenance de 10 litres, un seau en bois d’une contenance de 7 litres et un seau en fer d’une contenance de 9 litres.
• 10h00 : karim vide ses 3 seaux• 10h05 : karim va rendre visite a Nabil, celui-ci met 6 litres dans le seau en bois de
63
,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 déverse la moitié de son seau en plastique à l’égout• 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 quantités des trois seaux que Asmae a reçues?
Notions Fondamentales (2/2)
Notion d’algorithme : si les huis phrases sont bien exécutée parKarim, alors l’histoire est un algorithme
Notion d’instruction : chacune de huis phrases est une instruction (unordre)
64
ordre)
Notion de valeur : { 0, 3, 5, 6, 8, 10 }
Notion de mémoire : elle est matérialisée par les seaux qui« mémorisent » les quantités de liquide
Notions Fondamentales (2/2)
Notion de variable : une variable est un emplacement mémoire, ici ona trois variables (le seau en plastique, le seau en bois et le seau en fer)
Notion d’environnement : c’est l’ensemble des objet, informations,personnes qui on une existence hors de l’histoire mais qui interviennent
65
dans son déroulement.
Notion des valeurs d’entrée et de sortie : c’est les valeurs que leprocesseur reçoit de l’environnement et celles qu’il donne àl’environnement durant l’exécution. Valeurs en entrée :{6, 10}Valeurs en sortie = {0, 3, 8}
Notion de variable Dans les langages de programmation une variablevariable sert à stocker
la valeur d’une donnée
Une variable désigne en fait un emplacement mémoire dont lecontenu peut changer au cours d’un programme (d’où le nom
66
contenu peut changer au cours d un programme (d où le nomvariable)
Règle: Les variables doivent être déclaréesdéclarées avant d’être utilisées,elle doivent être caractérisées par :
• un nom (IdentificateurIdentificateur)• un typetype (entier, réel, caractère, chaîne de caractères, …)
12
Choix des identificateurs (1)Le choix des noms de variables est soumis à quelques règles qui
varient selon le langage, mais en général:
Un nom doit commencer par une lettre alphabétique exemple valide: Aexemple valide: A11 exemple invalide: exemple invalide: 11AA
67
doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les espaces) valides: ENCGvalides: ENCG20122012, ENCG_, ENCG_20122012 invalides: ENCG invalides: ENCG 20122012, ENCG, ENCG--20122012, ENCG;, ENCG;20122012
doit être différent des mots réservés du langage (par exemple en JavaJava: intint, , floatfloat, , elseelse, , switchswitch, case, default, for, main, return, case, default, for, main, return, …)
La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé
Choix des identificateurs (2)
Conseil: pour la lisibilité du code choisir des noms significatifsqui décrivent les données manipulées
exemples: TotalVentes2006, Prix_TTC, Prix_HT
68
Remarque: en pseudo-code algorithmique, on va respecterles règles citées.
Types des variables Le type d’une variable détermine l’ensemble des valeurs qu’elle peut
prendre, les types offerts par la plus part des langages sont:
Type numérique (entier ou réel)Type numérique (entier ou réel)•• ByteByte (codé sur 1octet), Entier courtEntier court , Entier long, Réel simple précision, Réel Entier long, Réel simple précision, Réel
double précisiondouble précision
69
Type logique ou booléenType logique ou booléen:: deux valeurs VRAI ou FAUXSi bouton enfoncéalors lumière allumée = vraisinon lumière allumée = faux
Type caractère:Type caractère: lettres majuscules, minuscules, symboles, …
exemples: ’A’, ’a’, ’?’, …exemples: ’A’, ’a’, ’?’, …
Type chaîne de Type chaîne de caractère: toute suite de caractères, exemples: " Nom, Prénom", "code postale: exemples: " Nom, Prénom", "code postale: 10001000", …", …
Déclaration des variables Rappel: toute variable utilisée dans un programme doit avoir
fait l’objet d’une déclaration préalable
En pseudo-code, on va adopter la forme suivante pour la déclaration de variables
Variables liste d'identificateurs : typeVariables liste d'identificateurs : type
70
Variables liste d identificateurs : typeVariables liste d identificateurs : type Exemple:
Variables i, j,k : entier
x, y : réel
OK: booléen
ch1, ch2 : chaîne de caractères
Remarque: pour le type numérique on va se limiter aux entiers et réels sans considérer les sous types
L’instruction d’affectation l’affectation
consiste à attribuer une valeur à une variable
ça consiste à remplir où à modifier le contenu d'une zone mémoire
En pseudo-code, l'affectation se note avec le signe ←
VV tt ib l l d à l i bl Vtt ib l l d à l i bl V
71
Var← e :Var← e : attribue la valeur de e à la variable Var attribue la valeur de e à la variable Var
- e peut être une valeur, une autre variable ou une expression
- Var et e doivent être de même type ou de types compatibles
- l’affectation ne modifie que ce qui est à gauche de la flèche
Ex valides: i 1 j i k i+j
x x 1010..3 3 OK OK FAUX FAUX chch1 1 ’ENCG’’ENCG’
chch2 2 chch1 1 x x 44 x x jj
(voir la déclaration des variables dans le transparent précédent)
non valides: i i 1010..3 3 OK OK ’ENCG’’ENCG’ j j xx
Quelques remarques L'affectation n'est pas commutative : A ← ← B est différente de B ← ← A
L'affectation est différente d'une équation mathématique :
• A=A+1 a un sens en langages de programmation
72
• A+1=2 n'est pas possible en langages de programmation et n'est pas équivalente à A=1
Certains langages donnent des valeurs par défaut aux variables déclarées. Pour éviter tout problème il est préférable d'initialiser les variables déclarées
13
Exercices simples sur l'affectation (1)
Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C: EntierDébut
73
DébutA ← 3B ← 7A ← B
B ← A+5
C ← A + BC ← B – AFin
Exercices simples sur l'affectation (2)Donnez les valeurs des variables A et B après exécution des
instructions suivantes ?
Variables A, B : EntierDébut
74
A ← 1B ← 2A ← BB ← AFin
Exercices simplesQuelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A B : Entier
75
Variables A, B : EntierDébutA ← 1B ← A + 3A ← 3Fin
A = 1 B = ?A = 1 B = 4A = 3 B = 4
Exercices simplesQuelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C : EntierDébut
76
DébutA ← 5B ← 3C ← A + BA ← 2C ← B – AFin
A = 5 B = ? C = ?A = 5 B = 3 C = ?A = 5 B = 3 C = 8A = 2 B = 3 C = 8A = 2 B = 3 C = 1
Exercices simplesQuelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B : EntierDébut
77
DébutA ← 5B ← A + 4A ← A + 1B ← A – 4Fin
A = 5 B = ?A = 5 B = 9A = 6 B = 9A = 6 B = 2
Exercices simplesQuelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C : EntierDébut
78
DébutA ← 3B ← 10C ← A + BB ← A + BA ← CFin
A = 3 B = ? C = ?A = 3 B = 10 C = ?A = 3 B = 10 C = 13A = 3 B = 13 C = 13A = 13 B = 13 C = 13
14
Exercices simplesQuelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B : Entier
79
DébutA ← 5B ← 2A ← BB ← AFin
A = 5 B = ?A = 5 B = 2A = 2 B = 2A = 2 B = 2
Exercices simples
Ecrire un algorithme permettant d’échanger les
valeurs de deux variables A et B
Début
A B A B
80
…C ← AA ← BB ← CFin
On est obligé de passer par une variable dite temporaire (la variable C).
A BC
A B
Exercices simples
Que produit l’algorithme suivant ?
Variables A, B, C en Caractères
CONCATENATION
81
Début
A ← "423"
B ← "12"
C ← A & B
Fin
"42312".
Exercices simples
Que produit l’algorithme suivant ?
Variables A, B, C en Caractères
Début
82
Début
A ← "423"
B ← "12"
C ← A + B
Fin
Expressions et opérateurs Une expression peut être une valeur, une variable ou une
opération constituée de variables reliées par des opérateursexemples: exemples: 11, b, a*, b, a*22, a+ , a+ 33*b*b--c, … c, …
L'évaluation de l'expression fournit une valeur unique qui est le résultat de l'opération
83
résultat de l opération
Les opérateurs dépendent du type de l'opération, ils peuvent être :
• des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance)
• des opérateurs logiques: NON, OU, ET
• des opérateurs relationnels: =, , <, >, <=, >=
• des opérateurs sur les chaînes: & (concaténation)
Une expression est évaluée de gauche à droite mais en tenant
compte de priorités
Priorité des opérateurs
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant (du plus prioritaire au moins prioritaire) :
• ^ : (élévation à la puissance)
• * / (multiplication division)
84
, / (multiplication, division)
• % (modulo)
• + , - (addition, soustraction)
exemple: exemple: 2 + 3 * 7 vaut 2323
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à effectuer en priorité
exemple: exemple: ((2 + 3) * 7 vaut 335
15
Les instructions d'entrées-sorties: lecture et écriture (1)
Les instructions de lecture et d'écriture permettent à la machine de communiquer avec l'utilisateur
La lecture permet d'entrer des donnés à partir du clavier
• En pseudo code on note: lire (var)lire (var)
85
• En pseudo-code, on note: lire (var)lire (var)
lla machine met la valeur entrée au clavier dans la zone mémoire nommée var
• Remarque: Le programme s'arrête lorsqu'il rencontre une instruction Lire et ne se poursuit qu'après la frappe d’une valeur au clavier et de la touche Entrée
Les instructions d'entrées-sorties: lecture et écriture (2)
L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un fichier)
• En pseudo-code, on note: écrire (var)écrire (var)
86
la machine affiche le contenu de la zone mémoire var
• Conseil: Avant de lire une variable, il est fortement conseillé d’écrire des messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit frapper
Exemple (lecture et écriture)Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis
qui calcule et affiche le double de ce nombre
Algorithme Calcul_double
i bl A B ti
87
variables A, B : entier
Début
é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 qui vous demande de saisir votre nom puis votre prénom et qui affiche ensuite votre nom complet
Algorithme AffichageNomComplet
variables Nom Prenom Nom Complet : chaîne de caractères
88
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez votre nom")
lire(Nom)
écrire("entrez votre prénom")
lire(Prenom)
Nom_Complet ← Nom & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin
Exercice (lecture et écriture)
Ecrire un algorithme en pseudo-code qui traduit les frases suivantes:
1. Choisir un nombre.
2. Lui ajouter 1.
Algorithme calcul_mathématiquevariables x : reel
Début
89
j
3. Multiplier le résultat par 2.
4. Soustraire 3 au résultat.
5. Afficher le résultat.
écrire(" introduire un nombre")lire(x)x ← x+1x ← x * 2x ← x -3écrire(x)
Fin
Exercice (lecture et écriture)
Ecrire un algorithme qui demande à l’utilisateur d’entrer la largeur et la longueur et afficher la surface d’un rectangle :.
Algorithme surface_rectangle
90
Variables largeur, longueur, surface : réelDébut
Ecrire (" entrer la largeur : " )Lire (largeur)Ecrire (" entrer la longueur : " )Lire (longueur)Surface ← largeur*longueurEcrire (" la surface d’un rectangle est : ", surface)
Fin
16
Exercice (respect des règles)Chacun de ces quatre algorithmes contient une erreur. Laquelle?
Algorithme1
VariablesQuantité : entier
Prix_unit : réel
DébutLire (Quantité, Prix unit)
Algorithme2
VariablesX, Y, Z : réel
DébutLire (X, Y, Z)
Z ← ← X-Y
91
( , _ )
Prix_total ←← Quantité * Prix_unit
Écrire (Prix_total)
Fin
Écrire (Z)
Fin
Algorithme3
VariablesA1, A2: entier
A3 : réel
DébutLire (A1, A2)
A2 ←← A1 * A3
Écrire (A2)
Fin
Algorithme4
VariablesX : réel
DébutLire (X)
X ←← X-1
X ← ← Pi * X
Écrire (X)
Fin
Méthode de construction d’un algorithme simple (1/4)
Exemple :
É i l ith i i t à l l l’ i S
92
Écrire un algorithme qui consiste à calculer l’air S d’un cercle selon la formule S = Pi * R2
Rappel : Pi = 3.14159 et R le rayon du cercle
Méthode de construction d’un algorithme simple (2/4)
Méthodologie a suivre :
constantes : Pi = 3.14159
Variables : Rayon, Surface
93
Types : Rayon, Surface : réel
Expressions et affectation : Surface := Pi * (Rayon)2
Opérations d’entrée-sortie : Lire (Rayon),
Écrire (Surface)
Méthode de construction d’un algorithme simple (3/4)
Algorithme
Calcul_Aire
Constantes
Pi = 3,14159
94
,
Variables
Rayon, Surface : réels
Début
lire (Rayon)
Surface := Pi * (Rayon)2
écrire (Surface)
Fin
Exercice
Ecrire un programme qui lit le prix HT d’un article, la quantitéd’articles et le taux de TVA, et qui fournit le prix total TTCcorrespondant.
Variables Qte, Prix_HT, TVA, Prix_TTC : reelsDébut
95
DébutEcrire ("Entrez le prix hors taxes :")Lire (Prix_HT)Ecrire ("Entrez le nombre d’articles :")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
Algorithmique
96
Les structures Conditionnelles et les
boucles
17
Les structures conditionnelles et les boucles
Les tests simples :
• SI … Alors
Les instructions conditionnelles :
97
Les instructions conditionnelles :
• SI … Alors … SINON
Les itérations :
• Tant que …
Tests: instructions conditionnelles (1) Les instructions conditionnelles servent à n'exécuter une instruction
ou une séquence d'instructions que si une condition est vérifiée
On utilisera la forme suivante: Si Si condition alorsalors
instruction ou suite d'instructions1
SinonSinon
98
SinonSinon
instruction ou suite d'instructions2
FinsiFinsi
• la condition ne peut être que vraie ou fausse
• si la condition est vraie, se sont les instructions1 qui seront exécutées
• si la condition est fausse, se sont les instructions2 qui seront exécutées
• la condition peut être une condition simple ou une condition composée de plusieurs conditions
Tests: instructions conditionnelles (2) La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que
la condition est fausse, aucun traitement n'est réalisé
• On utilisera dans ce cas la forme simplifiée suivante:
SiSi diti ll
99
Si Si condition alorsalors
instruction ou suite d'instructions1
FinsiFinsi
Exemple (Si…Alors…Sinon)Algorithme AffichageValeurAbsolue (version1)
Variable x : réel
DébutEcrire " Entrez un réel : "
100
Lire (x)
Si x < 0 alorsEcrire ("la valeur absolue de ", x, "est:",-x)
SinonEcrire ("la valeur absolue de ", x, "est:",x)
FinsiFin
Exemple (Si…Alors)Algorithme AffichageValeurAbsolue (version2)
Variable x,y : réel
DébutEcrire " Entrez un réel : "
101
Lire (x)
y← x
Si x < 0 alorsy ← -x
FinsiEcrire ("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
Déb t
102
DébutEcrire " Entrez un entier : "
Lire (n)
Si (n%3=0) alorsEcrire (n," est divisible par 3")
SinonEcrire (n," n'est pas divisible par 3")
FinsiFin
18
Conditions composées Une condition composée est une condition formée de plusieurs
conditions simples reliées par des opérateurs logiques:
ET, OU, OU exclusif (XOR) et NON
Exemples :
103
• x compris entre 2 et 6 : (x > 2) ET (x < 6)
• 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 composée se fait selon des règles présentées généralement dans ce qu'on appelle tables de vérité
Tables de véritéC1 C2 C1 ET C2
VRAI VRAI VRAI
VRAI FAUX FAUX
FAUX VRAI FAUX
C1 C2 C1 OU C2
VRAI VRAI VRAI
VRAI FAUX VRAI
FAUX VRAI VRAI
104
FAUX FAUX FAUX FAUX FAUX FAUX
C1 C2 C1 XOR C2
VRAI VRAI FAUX
VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX
C1 NON C1
VRAI FAUX
FAUX VRAI
Tests imbriqués Les tests peuvent avoir un degré quelconque d'imbrications
Si Si condition1 alorsalors
Si Si condition2 alorsalors
instructionsA
SinonSinon
105
SinonSinon
instructionsB
FinsiFinsi
Sinon Sinon
Si Si condition3 alorsalors
instructionsC
FinsiFinsi
FinsiFinsi
Tests imbriqués: exemple (version 1)
Variable n : entierDébut
Ecrire ("entrez un nombre : ")
Ecrire un algorithme pour détecter si un entier est négatif, nul ou positif
106
Ecrire ( entrez un nombre : )Lire (n)Si n < 0 alors
Ecrire ("Ce nombre est négatif")Sinon
Si n = 0 alorsEcrire ("Ce nombre est nul")
SinonEcrire ("Ce nombre est positif")
FinsiFinsi
Fin
Tests imbriqués: exemple (version 2)Variable n : entierDébut
Ecrire ("entrez un nombre : ")Lire (n)
Si n < 0 alors Ecrire ("Ce nombre est négatif")Finsi
107
Si n = 0 alors Ecrire ("Ce nombre est nul")
FinsiSi n > 0 alors Ecrire ("Ce nombre est positif")
Finsi
Fin
Remarque : dans la version 2 on fait trois tests systématiquement alors que dans la version 1, si le nombre est négatif on ne fait qu'un seul test
Conseil : utiliser les tests imbriqués pour limiter le nombre de tests et placer d'abord les conditions les plus probables (minimiser la complexité)
Tests imbriqués: Exercice Ecrire un algorithme qui demande deux nombres à l’utilisateur
et l’informe ensuite si leur produit est négatif ou positif (onlaisse de côté le cas où le produit est nul). Attention toutefois :on ne doit pas calculer le produit des deux nombres.
Début
108
DébutEcrire "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 négatif"Finsi
Fin
19
Tests imbriqués: exerciceLe prix de photocopies dans une reprographie varie selon le nombre demandé: 0,5 DH la copie pour un nombre de copies inférieur à 10, 0,4DH pour un nombre compris entre 10 et 20 et 0,3DH au-delà.
109
Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées, qui calcule et affiche le prix à payer
Tests imbriqués: corrigé de l'exerciceVariables copies : entier
prix : réelDébut
Ecrire ("Nombre de photocopies : ")
Lire (copies)Si copies < 10 Alors
110
Si copies < 10 Alors prix ← copies*0.5
Sinon Si copies < 20prix ← copies*0.4
Sinonprix ← copies*0.3
Finsi
FinsiEcrire (“Le prix à payer est : ”, prix)
Fin
PASCAL
111
Présentation générale et Présentation générale et syntaxe des instructions de syntaxe des instructions de
basebase
Pascal: Les types de variables
Entier: VAR variable1, variable2, ..., variableN : INTEGER;
Opérations sur entiers :
112
+ (addition) - (soustraction) * (multiplication) / (division) mod (reste de la division)
Réels: VAR variable1, variable2, ..., variableN : REAL;
Opérations sur réels :
Pascal: Les types de variables
113
+ (addition) - (soustraction) * (multiplication) div (division)
Booléens: VAR variable1, variable2, ..., variableN : BOOLEAN;
Opérations sur Booléens : AND
Pascal: Les types de variables
114
OR NOT XOR (ou exclusif))
Ces opérations nécessitent des arguments booléens.Opérations à valeur booléenne : > (supérieur) < (inférieur) >= (supérieur ou égal) <= (inférieur ou égal) = (égal) <> (différent)
20
Caractères : VAR variable1, variable2, ..., variableN : CHAR;
Opérations sur Booléens : AND
Pascal: Les types de variables
115
OR NOT XOR (ou exclusif))
Pascal: Les fonctions standard
ABS : renvoie la valeur absolue SQR : renvoie le carré SQRT : racine carrée EX : exponentielle
116
EX : exponentielle LN : log népérien SIN : sinus COS : cosinus ARCTAN : arc tangente ROUND : arrondi à l'entier le plus proche
Pascal: affectation
Le symbole d'affectationaffectation ← se note en Pascal avec :=:=
exemple : i:= 1; j:= i+1;
117
Pascal: lecture / écriture
readln(Var)
writeln(‘message1’, var1, ’message2’,var2)
118
Pascal: Les Test
Instruction IF - THEN - ELSE (si - alors - sinon)
Structure :
119
IF condition THEN instruction1 (* CAS 1 *)
{ ou }
IF condition THEN instruction1 ELSEinstruction2 (* CAS 2 *)
Exemple
PROGRAM cercle (input,output); (* entête *)VAR
perimetre, diametre,test : REAL; (* déclarations *)
120
p , , ; ( )
CONSTpi = 3.141592;begin
readln(diametre); (* instruction *)perimetre := pi * diametre; (* instruction *)writeln(diametre,perimetre); (* instruction *)end.
21
Exemple 2Ecrire un programme en pascal qui effectue une division entre deux nombres
121