21
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 dentré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 UC UC Données Données Instructions Instructions Résultats Résultats Saisie Saisie Restitution Restitution Traitement Traitement i i 4 Périphériques de sortie Périphériques de sortie Ecran Modem Imprimante Haut parleur Périphériques d’entrée Périphériques d’entrée Modem Micro Clavier Souris Caméra CD-ROM Joystick Scanner Mémoires auxiliaires Mémoires auxiliaires Disquette Disque dur moire 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

Informatique de Base 2

Embed Size (px)

Citation preview

Page 1: Informatique de Base 2

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

Page 2: Informatique de Base 2

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

Page 3: Informatique de Base 2

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

Page 4: Informatique de Base 2

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)

Page 5: Informatique de Base 2

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

Page 6: Informatique de Base 2

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

Page 7: Informatique de Base 2

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.

Page 8: Informatique de Base 2

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

Page 9: Informatique de Base 2

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.

Page 10: Informatique de Base 2

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

Page 11: Informatique de Base 2

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, …)

Page 12: Informatique de Base 2

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

Page 13: Informatique de Base 2

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

Page 14: Informatique de Base 2

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

Page 15: Informatique de Base 2

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

Page 16: Informatique de Base 2

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

Page 17: Informatique de Base 2

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

Page 18: Informatique de Base 2

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

Page 19: Informatique de Base 2

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)

Page 20: Informatique de Base 2

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.

Page 21: Informatique de Base 2

21

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

121