définition informatique de base

25
1 INFORMATIQUE DE BASE Année universitaire 2011-2012 Yassine El Ghoumari 1ère année ENCG Informatique = Information + Automatique Définition Yassine El Ghoumari traitement automatique de l’information par des machines Histoire de l’informatique Yassine El Ghoumari Utilisations de systèmes primitifs à base 5, 10, 60 Utilisation des chiffres romains : I V X L C Les systèmes numériques L’invention du calcul Yassine El Ghoumari Utilisation des chiffres romains : I, V , X, L, C calculer n’est pas trivial ! véritable savoir et maîtrise de ces systèmes pour réaliser des opérations de base apparition du 0 au XIIe siècle en Europe et mise en place de la numérotation décimale La mécanisation du calcul Les abaques : boulier Yassine El Ghoumari 1614 L’écossais John Neper (Napier, 1550-1617) invente les logarithmes simplifier les calculs trigonométriques en astronomie consiste à remplacer une multiplication par une addition + lecture d’une valeur dans une table La mécanisation du calcul Yassine El Ghoumari

Upload: others

Post on 16-Jun-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Définition INFORMATIQUE DE BASE

1

INFORMATIQUE DE BASE

Année universitaire 2011-2012

Yassine El Ghoumari

1ère année ENCG

Informatique = Information + Automatique

Définition

Yassine El Ghoumari

traitement automatique de l’information par des machines

Histoire de l’informatique

Yassine El Ghoumari

Utilisations de systèmes primitifs à base 5, 10, 60

Utilisation des chiffres romains : I V X L C

Les systèmes numériques

L’invention du calcul

Yassine El Ghoumari

Utilisation des chiffres romains : I, V, X, L, C

calculer n’est pas trivial !

véritable savoir et maîtrise de ces systèmes pour réaliser des opérations de base

apparition du 0 au XIIe siècle en Europe et mise en place de la numérotation décimale

La mécanisation du calcul

Les abaques : boulier

Yassine El Ghoumari

1614 L’écossais John Neper (Napier, 1550-1617) invente les logarithmes

simplifier les calculs trigonométriques en astronomie consiste à remplacer une multiplication par une addition + lecture d’une valeur dans une table

La mécanisation du calcul

Yassine El Ghoumari

Page 2: Définition INFORMATIQUE DE BASE

2

Exemple : on veut calculer :

2 5 x 2 4

Première méthode : poser le calcul

La mécanisation du calcul

Yassine El Ghoumari

192320

32 x 16

512

fastidieux

erreurs

Deuxième méthode (Neper) : utiliser une table

2 5 x 2 4 = 2 (5+4) = 2 9

La mécanisation du calcul

8

N 1 2 3 4 5 6 7 8 9

2N 2 4 8 16 32 64 128 256 512

1632 William Oughtred invente la règle à calcul basée sur le principe des logarithmes

utilisée pour les calculs scientifiques jusqu’en 1970

La mécanisation du calcul

9

Les premières machines à calculer

1623 Schikard

1642 Pascaline (Bl Pascal)

La mécanisation du calcul

10

1642 Pascaline (Bl. Pascal)

addition, soustraction

1670 Leibniz (Gottfried Leibniz)

pascaline + mult, div, racine carrée

1830 Colmar (Charles Xavier Thomas)

Arithmomètre

L’Aube de la révolution industrielle

La mécanisation du calcul

11

1728 Falcon construit un métier à tisser commandé par planchette de bois

1805 Jacquard perfectionne le modèle et utilise des cartes en carton perforées

1822 Machine différentielle (Ch Babbage)

2000 pièces de cuivre faites main, 2 tonnes

Calcul du mouvement des planètes

La mécanisation du calcul

12

Concept de registre

1830 Machine Analytique (Ch Babbage)

50.000 pièces

capable de prendre des décisions en fonction des résultats précédents (contrôle de séquence, branchements et boucles)

réalisée entre 1989 et 1991 bi-centenaire de la naissance de Babbage

Page 3: Définition INFORMATIQUE DE BASE

3

1843 Augusta Ada Comtesse de Lovelace

Description de la machine analytique

Premiers programmes (Algorithmes)

Boucles et branchements

La mécanisation du calcul

13

Ada (1979)

Langage de programmation (J. Ichbiach)

1890 Hermann Hollerith construit un calculateur statistique électromécanique

plus performant que les calculateurs mécaniques

Les calculateurs électromécaniques

Yassine El Ghoumari14

utilisation de cartes perforées utilisé pour le recensement américain de 1890 fonde la Tabulating Machine Company => IBM (International Business Machines)

Avancées Technologiques

Les calculateurs électromécaniques

15

1904 Diode par John Fleming

1907 Triode par L De Forest

ENIAC (Electronic Numerical Integrator And Calculator)

construit par l’armée américaine entre 1943 et 1945, Philadelphie

5000 additions par secondes

500 000 d ll

La première génération d’ordinateurs

16

500.000 dollars

30 tonnes

30 m de long x 2,50 haut

160 m2

1.500 relais, 17.468 tubes à vide

problèmes liés à la chaleur et à la consommation électrique

premier bug

1948 Invention du Transistor bipolaire à Jonction

Walter H. Brattain, John Bardeen et William Shockley aux Bell Labs

Avantages du Transistor

1956 TRADIC

La seconde génération d’ordinateurs

17

1956 TRADIC

1957 FORTRAN par John Backus d’IBM

1958 Invention du Circuit Intégré par Jack Kilby de Texas Instruments (miniaturisation)

La troisième génération d’ordinateurs

18

( )

1961 FairChild Corp commercialise la première série de circuits intégrés

1968 Premier ordinateur avec Circuits intégrés

Page 4: Définition INFORMATIQUE DE BASE

4

1971 : le 4004 pour Busicom conçu par Ted Hoff

1968 Intel (Gordon Moore, Robert Noyce, Andy Grove)

Le microprocesseur

19

La quatrième génération

20

Galette (wafer)

L’ère de la Micro-Informatique

21

Depuis 1980

Développé pour l’INRA par André Truong et François Gernelle

1973 L Mi l N

La micro-informatique

22

1973 Le Micral N 8500 F Intel 8008

1974 + Ecran + Clavier 1975 + Disque dur

Tout commença dans un garage… 1976

Steve Jobs et Steve Wozniak mettent au point le premier Apple

La micro-informatique

23

MOS 6502 à 1 Mhz8 ko RAM$666.66

Macintosh 1984Motorola 68000, 8 Mhz128 ko RAM$2500

Diversité des micro-ordinateurs / systèmes

La micro-informatique

24

Page 5: Définition INFORMATIQUE DE BASE

5

MOS 6502, 5 ko RAM, 2500 F

MOS 6502, 8 ko RAM, 8600 F

La micro-informatique

25

MOS 6510, 64 ko RAM, 4000 F

Lecteur disquette 4000 F

1981 IBM PC 5150 Personal ComputerIntel 8088 à 4.77 MHz64 Ko de Ram, 40 Ko de Rom

La micro-informatique

26

40 Ko de Rom, lecteur de disquettes 5"25 système d'exploitation PC-DOS 1.0 3000 $

Uniformisation

L’ère du Numérique

27

Depuis 1990

1981 Philips commercialise le Compact Disk

1988 CD-R

L’ère du Numérique

28

1996 DVD

1992 norme MPEG

Les ordinateurs multi-cores : 2005

Actuellement

29

Core 2 duo : i3, i5, i7: processeur avec carte graphique intégrée

Le futur

30

Page 6: Définition INFORMATIQUE DE BASE

6

Biologique (ADN)

Les ordinateurs de demain

Le futur

31

Optique (Photon)

Quantique (Spin électron)

Neuronal (couplé aux neurones) à Nanopuce à Supraconducteur

Résolution d’un problème mathématique avec un échantillon d’ADN

L’ordinateur Biologique

32

Capable de d’effectuer de simples opérations comme identifier des chiffres binaire

1000 milliard de « machines à calculer » dans une goute d’eau

Consommation en énergie infinitésimale

Fiabilité de 99,9%

Repose sur des propriétés quantiques de la matière

L'élément de base de l'ordinateur quantique : le qubit

L’ordinateur Quantique

33

Un ordinateur de 100 qubits permettrait de simuler le fonctionnement de tout un cerveau humain

Un de 300 qubits l'évolution de l'univers entier depuis le Big Bang

Les ordinateurs quantiques actuels n'ont pour le moment que 7 qubits

Architecture des ordinateurs

Yassine El Ghoumari

Définition d’un ordinateur

Machine qui :

saisit (périphériques d’entrée)

35

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

36

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

Page 7: Définition INFORMATIQUE DE BASE

7

Constituants

Composants matériels (Hardware)• Tout ce qui compose l’ordinateur et ses

accessoires

37

• 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

38

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

Codage binaire

Le langage des ordinateurs

Toutes communications à l'intérieur de

39

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

40

( )

• 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

41

numérateur est l'ancien quotient jusqu'à ce que ce dernier soit nul. La suite inverse des restes représente le nombre binaire

Exemple

42

Ecrire 10 en base 2

Page 8: Définition INFORMATIQUE DE BASE

8

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,

43

p , , p ,division

Schéma fonctionnel

44

L’unité Centrale

Fonctions• Sélectionner et exécuter les instructions du programme

en cours

45

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)

46

( )

• 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

47

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

48

Exemples

• carte graphique (écran)• carte contrôleur (disque dur)• carte son (micro, haut-parleur)

Page 9: Définition INFORMATIQUE DE BASE

9

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

49

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

50

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

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

51

• Exemples

• écran• imprimante• haut-parleurs

Définition

Dispositif capable d’enregistrer, de stocker et de restituer des informations

Trois types

La Mémoire

52

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

53

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

54

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)

Page 10: Définition INFORMATIQUE DE BASE

10

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

55

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

56

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)

• Le contenu de la mémoire est composé• de données• et d’instructions

• code de l’opération élémentaire

La Mémoire

57

• 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

58

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

59

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)

60

• 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

Page 11: Définition INFORMATIQUE DE BASE

11

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

61

•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

62

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

Le microprocesseur

63

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.

Page 12: Définition INFORMATIQUE DE BASE

12

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

L’unité d’entrée-sortie

• contrôle et gère le transfert d’informations entre l’UC et les périphériques

69

• 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

70

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

71

À 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)

Page 13: Définition INFORMATIQUE DE BASE

13

Bus On appelle bus, en informatique, est un système

de communication entre les composants d'un ordinateur

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

Slots des prises qui sont présentes sur la carte

mère. Ces connecteurs sont prévus pourrecevoir des cartes supplémentaires

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,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 decomposants de communiquer via différents bus de communication

On enfiche ces composants sur des connecteurs

Qu’est-ce qu’un programme d’ordinateur?

Le logiciel pilote le matériel

Pour faire marcher un ordinateur il faut lui fournir un programme

O di t té i l ( )

78

Ordinateur = 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

Page 14: Définition INFORMATIQUE DE BASE

14

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

79

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

80

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

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)

81

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

82

ç 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/ )

83

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

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

84

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

Page 15: Définition INFORMATIQUE DE BASE

15

Langages de programmation:

Deux types de langages:• Langages procéduraux : sont à base de procédures. Une

procédure est une portion de programme écrit en langage de haut niveau qui accomplit une tâche spécifique nécessaire au programme

85

programme.

• Langages orientés objets : sont des langages non procéduraux dans lesquels les éléments du programme sont considérés comme des objets qui peuvent s'échanger des messages.

Choix d’un langage?

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

86

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.

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

87

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 syntaxe) l’algorithmique exprime les instructions résolvant un problème donné i dé d t d ti l ité d t l t l l

88

indépendamment des particularités de tel ou tel langage.

• Qualités: exact (fournit le résultat souhaité), efficace (temps d’exécution, mémoire occupée), clair (compréhensible), général (traite le plus grand nombre de cas possibles), …

Pour prendre une image, si un programme était une dissertation, l’algorithmique serait le plan, une fois mis de côté la rédaction et l’orthographe. Mieux faire d’abord le plan et 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

89

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 de pseudo code

problème du tri

• Entrée: une séquence de n nombres (a1, : : : ,an)

• Sortie: une permutation (a1’;

90

Sortie: une permutation (a1 ; : : : ;an’) de la séquence d’entrée: a1’<a2’<….<an’

• Exemple : (31;41;59;26;41;58) (26;31;41;41;58;59)

Page 16: Définition INFORMATIQUE DE BASE

16

Algorithmique

91

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

92

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

93

,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 par Karim, alors l’histoire est un algorithme

Notion d’instruction : chacune de huis phrases est une instruction (un 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 »

94

Notion de mémoire : elle est matérialisée par les seaux qui « mémorisent » les quantités de liquide

Notion de variable : une variable est un emplacement mémoire, ici on a 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 dans son déroulement.

Notion des valeurs d’entrée et de sortie : c’est les valeurs que le processeur reçoit de l’environnement et celles qu’il donne à l’environnement durant l’exucution. Valeurs en entrée :{6, 10} Valeurs en sortie = {0, 3, 8}

Notion de variable Dans les langages de programmation une variable variable sert à stocker

la valeur d’une donnée

Une variable désigne en fait un emplacement mémoire dont

le contenu peut changer au cours d’un programme (d’où le nom

95

le contenu peut changer au cours d un programme (d où le nom variable)

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

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

96

doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les espaces) valides: valides: ENCGENCG20072007, , ENCG_ENCG_20072007 invalides: invalides: ENCG ENCG 20072007, , ENCGENCG--20072007, , ENCG;ENCG;20072007

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é

Page 17: Définition INFORMATIQUE DE BASE

17

Choix des identificateurs (2)Conseil: pour la lisibilité du code choisir des noms significatifs

qui décrivent les données manipulées

exemples: TotalVentes2006, Prix_TTC, Prix_HT

97

Remarque: en pseudo-code algorithmique, on va respecter les règles citées, même si on est libre dans la syntaxe

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): de 0 à 255

•• Entier courtEntier court (codé sur 2 octets) : -32 768 à 32 767

98

•• Entier long Entier long (codé sur 4 ou 8 octets)

•• Réel simple précisionRéel simple précision (codé sur 4 octets)

•• Réel double précisionRéel double précision (codé sur 8 octets)

Type logique ou booléenType logique ou booléen:: deux valeurs VRAI ou FAUX

Type caractère:Type caractère: lettres majuscules, minuscules, chiffres, symboles, …

exemples: ’A’, ’a’, ’exemples: ’A’, ’a’, ’11’, ’?’, …’, ’?’, …

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

99

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 en fait à remplir où à modifier le contenu d'une zone mémoire)

En pseudo-code, l'affectation se note avec le signe ←

Var← e :Var← e : attribue la valeur de e à la variable Var attribue la valeur de e à la variable Var

100

- 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 ←FAUX OK ←FAUX chch1 1 ←«←« ENCG"ENCG"

chch2 2 ←ch←ch1 1 x ←x ←44 x ←jx ←j

(voir la déclaration des variables dans le transparent précédent)

non valides: i ←i ←1010..3 3 OK OK ←«←« ENCG"ENCG" j ←xj ←x

Quelques remarques Beaucoup de langages de programmation (C/C++, Java, …) utilisent

le signe égal = pour l’affectation ←. Attention aux confusions:

• l'affectation n'est pas commutative : A=B est différente de B=A

• l'affectation est différente d'une équation mathématique :

101

• 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

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

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

102

DébutA ← 3B ← 7A ← B

B ← A+5

C ← A + BC ← B – AFin

Page 18: Définition INFORMATIQUE DE BASE

18

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

103

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 en Entier

104

Variables A, B en 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 en EntierDébut

105

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 en EntierDébut

106

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 en EntierDébut

107

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

Exercices simplesQuelles seront les valeurs des variables A et B après exécution des instructions suivantes ?

Variables A, B en Entier

108

DébutA ← 5B ← 2A ← BB ← AFin

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

Page 19: Définition INFORMATIQUE DE BASE

19

Exercices simples

Ecrire un algorithme permettant d’échanger les

valeurs de deux variables A et B

Début

109

…C ← AA ← BB ← CFin

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

Exercices simples

Que produit l’algorithme suivant ?

Variables A, B, C en Caractères

Début

A "423"

110

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

A "423"

111

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

112

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)

113

, / (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

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)

114

• 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

Page 20: Définition INFORMATIQUE DE BASE

20

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)

115

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

116

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

117

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

118

( , _ )

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

119

Écrire un algorithme qui consiste a 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

120

Types : Rayon, Surface : réel

Expressions et affectation : Surface := Pi * (Rayon)2

Opérations d’entrée-sortie : Lire (Rayon),

Écrire (Surface)

Page 21: Définition INFORMATIQUE DE BASE

21

Méthode de construction d’un algorithme simple (3/4)

Algorithme

Calcul_Aire

Constantes

Pi = 3,14159

121

,

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, le nombred’articles et le taux de TVA, et qui fournit le prix total TTCcorrespondant.

Variables nb, pht, ttva, pttc : reelsDébut

122

DébutEcrire ("Entrez le prix hors taxes :")Lire (pht)Ecrire ("Entrez le nombre d’articles :")Lire (nb)Ecrire ("Entrez le taux de TVA :" )Lire (ttva)pttc ← nb * pht * (1 + ttva)Ecrire ("Le prix toutes taxes est : ", pttc)

Fin

Algorithmique

123

Les structures Conditionnelles et les

boucles

Les structures conditionnelles et les boucles

Les tests simples : permet de réaliser un choix parmi deux possibilités (Ex :Booléenne : vrais ou faux)

Les instructions conditionnelles : c’est un concept de tests multiples, permet de comparer un objet à une série de valeurs, et exécuter si la condition est vérifier (Ex : recherche des

124

, (nombres premier dans une ensemble)

Les itérations : consiste a exécuté un bloc d’instructions un certain nombre de fois (Ex : calcul d’une suite numérique)

Les boucles conditionnelles : consiste a exécuté un bloc d’instructions un certain nombre de fois si la condition est vérifier (Ex : On veut afficher le 100 premiers nombres :. Tant que i est plus

petit que 100, afficher la valeur de i).

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

125

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

126

Si Si condition alorsalors

instruction ou suite d'instructions1

FinsiFinsi

Page 22: Définition INFORMATIQUE DE BASE

22

Exemple (Si…Alors…Sinon)Algorithme AffichageValeurAbsolue (version1)

Variable x : réel

DébutEcrire " Entrez un réel : "

127

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 : "

128

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

129

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

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 :

130

• 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

131

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

132

SinonSinon

instructionsB

FinsiFinsi

Sinon Sinon

Si Si condition3 alorsalors

instructionsC

FinsiFinsi

FinsiFinsi

Page 23: Définition INFORMATIQUE DE BASE

23

Tests imbriqués: exemple (version 1)Variable n : entierDébut

Ecrire ("entrez un nombre : ")Lire (n)Si n < 0 alors

Ecrire ("Ce nombre est négatif")

133

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

134

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

135

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

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

136

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

137

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

138

Présentation générale et Présentation générale et syntaxe des instructions de syntaxe des instructions de

basebase

Page 24: Définition INFORMATIQUE DE BASE

24

Pascal: Les types de variables

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

Opérations sur entiers :

139

+ (addition) - (soustraction) * (multiplication) / (division) mod (reste de la division)

Titre

Réels: VAR variable1, variable2, ..., variableN : REAL;

Opérations sur réels :

140

+ (addition) - (soustraction) * (multiplication) div (division)

Titre

Booléens: VAR variable1, variable2, ..., variableN : BOOLEAN;

Opérations sur Booléens : AND

141

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)

Titre

Caractères : VAR variable1, variable2, ..., variableN : CHAR;

Opérations sur Booléens : AND

142

OR NOT XOR (ou exclusif))

Pascal: Les fonctions standard

ABS : renvoie la valeur absolue SQR : renvoie le carré SQRT : racine carrée EX : exponentielle LN : log népérien

143

LN : log népérien SIN : sinus COS : cosinus ARCTAN : arc tangente SUCC : variable énumérée suivante PRED : précédent ROUND : arrondi à l'entier le plus proche TRUNC : partie entière (permet de mettre un réel dans un entier : trunc(4.5) = 4)

Pascal: affectation

Le symbole d'affectationaffectation ← se note en Pascal avec :=:=

exemple : i:= 1; j:= i+1;

144

Page 25: Définition INFORMATIQUE DE BASE

25

Pascal: lecture / écriture

readln(Var)

writeln(‘message1’, var1, ’message2’,var2)

145

Pascal: Les Test

Instruction IF - THEN - ELSE (si - alors - sinon)

Structure :

146

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 *)

147

p , , ; ( )

CONSTpi = 3.141592;begin

readln(diametre); (* instruction *)perimetre := pi * diametre; (* instruction *)writeln(diametre,perimetre); (* instruction *)end.

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

148