informatique de base mail2

Upload: hicham-elkadiri

Post on 17-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Informatique de Base Mail2

    1/22

    1

    INFORMATIQUE DE BASE

    Anne universitaire 2011-2012

    Yassine El Ghoumari

    1re anne ENCGC

    Informatique = Information + Automatique

    Dfinition

    Yassine El Ghoumari

    traitement automatique de linformationpar des machines

    Histoire delinformatique

    Yassine El Ghoumari

    Utilisations de systmes primitifs base 5, 10, 60

    Les systmes numriques

    Linvention du calcul

    Yassine El Ghoumari

    , , , ,

    calculer nest pas trivial !

    vritable savoir et matrise de ces systmes pour raliserdes oprations de base

    apparition du 0 au XIIe sicle en Europe et mise en place dela numrotation dcimale

    La mcanisation du calcul

    Les abaques : boulier

    Yassine El Ghoumari

    1614 Lcossais John Neper (Napier, 1550-1617) invente leslogarithmes

    simplifier les calculs trigonomtriques en astronomie consiste remplacer une multiplication par une addition +lecture dune valeur dans une table

    La mcanisation du calcul

    Yassine El Ghoumari

  • 7/23/2019 Informatique de Base Mail2

    2/222

    Exemple : on veut calculer :

    2 5 x 2 4

    Premire mthode : poser le calcul

    La mcanisation du calcul

    Yassine El Ghoumari

    192320

    32x 16

    512

    fastidieux

    erreurs

    Deuxime mthode (Neper) : utiliser une table

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

    La mcanisation 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 rgle calcul base surle principe des logarithmes

    utilise pour les calculs scientifiques jusquen 1970

    La mcanisation du calcul

    9

    Les premires machines calculer

    1623 Schikard

    1642 Pascaline Bl Pascal)

    La mcanisation du calcul

    10

    1642 Pascaline Bl. Pascal)

    addition, soustraction

    1670 LeibnizGottfried Leibniz)

    pascaline + mult, div, racine carre

    1830 Colmar (Charles XavierThomas)

    Arithmomtre

    LAube de la rvolution industrielle

    La mcanisation du calcul

    11

    1728 Falcon construit un mtier tisser command parplanchette de bois

    1805 Jacquard perfectionne le modle et utilise descartes en carton perfores

    1822 Machine diffrentielle Ch Babbage)

    2000 pices de cuivre faites main, 2 tonnes

    Calcul du mouvement des plantes

    La mcanisation du calcul

    12

    Concept de registre

    1830 Machine Analytique Ch Babbage)

    50.000 pices

    capable de prendre des dcisions en fonctiondes rsultats prcdents (contrle de squence,branchements et boucles)

    ralise entre 1989 et 1991 bi-centenaire de lanaissance de Babbage

  • 7/23/2019 Informatique de Base Mail2

    3/223

    1843 Augusta Ada Comtesse de Lovelace

    Description de la machine analytique

    Premiers programmes (Algorithmes)

    Boucles et branchements

    La mcanisation du calcul

    13

    Ada 1979)

    Langage de programmation J. Ichbiach)

    1890 Hermann Hollerith construit un calculateurstatistique lectromcanique

    plus performant que les calculateurs mcaniques

    Les calculateurs lectromcaniques

    Yassine El Ghoumari14

    utilisation de cartes perfores utilis pour le recensement amricain de 1890fonde la Tabulating Machine Company => IBM (InternationalBusiness Machines)

    Avances Technologiques

    Les calculateurs lectromcaniques

    15

    1904 Diode par John Fleming

    1907 Triode par L De Forest

    ENIAC Electronic Numerical Integrator And Calculator)

    construit par larme amricaine entre 1943 et 1945, Philadelphie

    5000 additions par secondes

    La premire gnration dordinateurs

    16

    500.000 dollars

    30 tonnes

    30 m de long x 2,50 haut 160 m2

    1.500 relais, 17.468 tubes vide

    problmes lis la chaleur et la consommation lectrique

    premier bug

    1948 Invention du Transistor bipolaire Jonction

    Walter H. Brattain, John Bardeenet William Shockley aux Bell Labs

    Avantages du Transistor

    La seconde gnration dordinateurs

    17

    1957 FORTRAN par John Backus dIBM

    1958 Invention du Circuit Intgr par

    Jack Kilby de Texas Instruments

    miniaturisation)

    La troisime gnration dordinateurs

    18

    )

    1961 FairChild Corp commercialise lapremire srie de circuits intgrs

    1968 Premier ordinateur avec Circuitsintgrs

  • 7/23/2019 Informatique de Base Mail2

    4/224

    1971 : le 4004 pour Busicom conu par Ted Hoff

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

    Le microprocesseur

    19

    La quatrime gnration

    20

    Galette wafer)

    Lre de la Micro-Informatique

    21

    Depuis 1980

    Dvelopp pour lINRA par Andr Truong et Franois Gernelle

    La micro-informatique

    22

    e cra 8500 F Intel 8008

    1974 + Ecran + Clavier 1975 + Disque dur

    Tout commena dans un garage 1976

    Steve Jobs et Steve Wozniak mettentau 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 / systmes

    La micro-informatique

    24

  • 7/23/2019 Informatique de Base Mail2

    5/225

    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,

    La micro-informatique

    26

    ,lecteur de disquettes 5"25systme d'exploitation PC-DOS 1.03000 $

    Uniformisation

    Lre du Numrique

    27

    Depuis 1990

    1981 Philips commercialise le Compact Disk

    1988 CD-R

    Lre du Numrique

    28

    1996 DVD

    1992 norme MPEG

    Les ordinateurs multi-cores : 2005

    Actuellement

    29

    Core 2 duo : i3, i5, i7: processeur avec carte graphique intgre

    Le futur

    30

  • 7/23/2019 Informatique de Base Mail2

    6/226

    Biologique (ADN)

    Les ordinateurs de demain

    Le futur

    31

    Optique (Photon)

    Quantique (Spin lectron)

    Neuronal (coupl aux neurones) Nanopuce Supraconducteur

    Rsolution dun problme mathmatique avec un chantillondADN

    Lordinateur Biologique

    32

    Capable de deffectuer de simples oprations comme identifierdes chiffres binaire

    1000 milliard de machines calculer dans une goute deau

    Consommation en nergie infinitsimale

    Fiabilit de 99,9%

    Repose sur des proprits quantiques de la matire

    L'lment de base de l'ordinateur quantique : le qubit

    Lordinateur Quantique

    33

    Un ordinateur de 100 qubits permettrait de simuler lefonctionnement de tout un cerveau humain

    Un de 300 qubits l'volution de l'univers entier depuis leBig Bang

    Les ordinateurs quantiques actuels n'ont pour le momentque 7 qubits

    Architecture desordinateurs

    Yassine El Ghoumari

    Dfinition dun ordinateur

    Machine qui :

    35

    ,

    stocke (mmoire),

    traite (programmes)

    restitue (priphriques de sortie) desinformations

    Schma fonctionnel

    UCUCDonnesDonnes

    InstructionsInstructionsRsultatsRsultats

    SaisieSaisie RestitutionRestitutionTraitementTraitement

    36

    Priphriques de sortiePriphriques de sortie

    EcranModem

    ImprimanteHaut arleur

    Priphriques dentrePriphriques dentre

    Modem

    Micro

    Clavier

    Souris

    CamraCD-ROM

    JoystickScanner

    Mmoires auxiliairesMmoires auxiliaires

    Disquette

    Disque dur

    moremore

  • 7/23/2019 Informatique de Base Mail2

    7/227

    Constituants

    Composants matriels (Hardware) Tout ce qui compose lordinateur et ses

    accessoires

    37

    Chaque composant possde une fonctionparticulire calcul stockage des donnes affichage vido gestion du clavier...

    Logiciel (Software)

    immatriel (non tangible) ensemble de programmes excutables par lordinateur

    Constituants

    38

    Diffrents types de logiciels systme dexploitation (MS-DOS, Windows, Unix) logiciels standards comme Word, Excel... progiciels : logiciels spcifiques (paye, comptabilit, ...)

    Le logiciel pilote le matriel

    Codage binaire

    Le langage des ordinateurs

    '

    39

    l'ordinateur sont faites avec des signaux

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

    Un mme nombre peut tre reprsentdans plusieurs bases 123 en base 10 dcimal

    Codage binaire

    40

    1111011 en base 2 (binaire)

    173 en base 8 (octale) 7B en base 16 (hexadcimale)

    De la base 10 la base 2 Il faut diviser le nombre par 2 puis ritrer

    l'opration en considrant que le nouveau' '

    Codage binaire

    41

    num ra eur es anc en quo en usqu ce que cedernier soit nul. La suite inverse des restesreprsente le nombre binaire

    Exemple

    42

    Ecrire 10 en base 2

  • 7/23/2019 Informatique de Base Mail2

    8/228

    Codage binaire

    Les oprations lmentaires en base 10sappliquent de la mme faon en base 2 Exem le: Addition soustraction multi lication

    43

    division

    Schma fonctionnel

    44

    Lunit Centrale

    Fonctions

    Slectionner et excuter les instructions du programmeen cours

    45

    Lunit Centrale

    Partie de lordinateur qui contient les circuits de base la mmoire principale

    la mmoire vive (RAM) la mmoire morte ROM

    46

    la mmoire cache le microprocesseur

    les circuits de calcul (UAL-Lunit arithmtique etlogique) lunit de contrle ou de commande UC

    lhorloge systme lunit dentre-sortie

    Elle contrle et synchronise le microprocesseur et lescomposants associs

    Sa vitesse (frquence) est exprime gnralement en

    Lhorloge

    47

    - -seconde

    Lefficacit du microprocesseur est directementproportionnelle la frquence de lhorloge : une frquenceleve est donc souhaitable

    Exemples: Intel i7, environ 3,4 GHz

    Lunit dentre-sortie

    contrle et gre le transfert dinformations entre lUC et lespriphriques

    48

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

  • 7/23/2019 Informatique de Base Mail2

    9/229

    Les Priphriques

    DfinitionTout ce qui gravite autour de lUC cest--dire lcran, leclavier, la souris, les mmoires auxiliaires, limprimante,

    -

    49

    , , ....

    3 Catgories de priphriques

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

    Dfinition

    Recueillent les informations qui sont ensuite transformes(numrises i.e. codes en binaires) pour tre utilisablespar la machine et t ransfres en mmoire principalemmoirede lUC

    Les Priphriques dentre

    50

    Exemples clavier souris : dispositif de pointage complmentaire du clavier et

    de lcran

    scanner : permet de numriser un document autres : cran tactile, lecteur de codes barres, crayon

    optique, camra, joystick...

    Les Priphriques de sortie

    Dfinition Transmettent linformation binaire de lUC vers

    lextrieur sous une forme comprhensible parlutilisateur

    51

    Exemples

    cran imprimante haut-parleurs

    Dfinition

    Dispositif capable denregistrer, de stocker et de restituer desinformations

    Trois types

    La Mmoire

    52

    RAM ou mmoire vive ROM ou mmoire morte Mmoire de masse ou secondaire

    Unit de stockage: Un composant lectronique capable demmoriser des tensions: BIT (Binary DigiT) : unit de stockage lmentaire Les informations sont codes en binaires composs de 0 et de 1

    Units de mesure

    1octet = 8 bits

    La Mmoire

    53

    1Ko (Kilo octet) 1 000 octets

    1Mo (Mga octet) 1 000 000 octets

    1Go (Giga octet) 1 000 000 000 octets

    1To (Tra octet) 1 000 000 000 000 octets

    Units de mesure

    1octet = 8 bits

    La Mmoire

    54

    1Ko (Kilo octet) =1 024 octets (210 octets)

    1Mo (Mga octet) = 1 048 576 octets (220 octets)

    1Go (Giga octet) = 1 073 741 824 octets (230 octets)

    1To (Tra octet) = 1 099 511 627 776 octets (240 octets)

  • 7/23/2019 Informatique de Base Mail2

    10/2210

    Structure La mmoire est organise en cellules (octets ou mots) Chaque cellule est repre par son adresse qui permet

    lordinateur de trouver les informations dont il a besoin

    La Mmoire

    55

    o es acc s a m mo re En lecture : aucun effet sur le contenu En criture : modifie son contenu

    Caractristiques Capacit : nombre doctets Accs

    direct : grce ladresse, accs

    La Mmoire

    56

    mm a n orma on on par e esupport adressable)

    squentiel : pour accder uneinformation, il faut avoir lu toutes lesprcdentes (ex : cassette audio)

    Temps daccs : temps coul entre linstanto linformation est demande et celui o elleest disponible (en ms)

    Le contenu de la mmoire est compos de donnes et dinstructions

    code de lopration lmentaire

    La Mmoire

    57

    donne(s) ou adresse des donnes

    Programme Ensemble dinstructions et de donnesTraduites en signaux lectriques

    comprhensibles par le matriel

    Diffrentes mmoires

    La mmoire vive ou RAM (Random Access Memory)

    mmoire accs direct taille limite son contenu est volatile, i.e. il est perdu chaque fois que

    lordinateur ne fonctionne pas : do le besoin dutiliser de la

    58

    mmoire auxiliaire rmanente

    endroit o lordinateur stocke temporairement les donnes etinstructions (programmes) quil est en train dutiliser etdexcuter

    contient tous les programmes en cours dexcution Capacit de 1 Go 4 Go

    La mmoire morte

    (Read Only Memory)

    mmoire permanente et inaltrable

    contientdes eti ts ro rammes cri ts ar le constructeur

    59

    pour la mise en route de lordinateur BIOS (BasicInput/Output System)

    identifie les diffrents composants de la machine et vrifieleur bon fonctionnement

    La mmoire cache

    La transmission entre la RAM et le microprocesseur estplus lente que le potentiel de vitesse du microprocesseur

    60

    mo re cac e n veau ou zone de mmoire ultra-rapide o sont conserves les

    donnes et instructions qui reviennent le plus souvent

    mmoire interne de petite taille (dizaines de Ko)Type non-volatile (Flash)

    Capacit : 3 Mo

  • 7/23/2019 Informatique de Base Mail2

    11/2211

    Le microprocesseur Le cur de lordinateur : il traite et fait circuler les

    instructions et les donnes Compos des lments suivants Unit Arithmtique et Logique (UAL)

    61

    oprations arithmtiques et logiques debase

    Diffrents Registres (CO, Etat, Instruction)

    Le microprocesseur

    Unit de contrle (ou de commande)

    62

    du programme en MC, de la faireexcuter par lUAL ou un priphriqueet de chercher linstruction suivante

    Elle dcode les instructions et trouveles donnes pour lUAL

    Le microprocesseur

    63

    Un processeur est compos de transistors permettant deraliser des fonctions sur des signaux numriques.

    Ces transistors, assembls entre eux forment des

    Le microprocesseur

    composan s perme an e r a ser es onc ons r ssimples.

    A partir de ces composants il est possible de crer descircuits ralisant des oprations trs complexes.

    L'algbre de Boole (du nom du mathmaticien anglaisGeorges Boole 1815 - 1864) est un moyen d'arriver crer de tels circuits.

    L'algbre de Boole est une algbre se proposant detraduire des signaux en expressions mathmatiques.

    Pour cela, on dfinit chaque signal lmentaire pardes variables logiques et leur traitement par des

    Le microprocesseur

    .

    Des mthodes (table de vrit) permettent dedfinir les oprations que l'on dsire raliser, et transcrire le rsultat en une expression algbrique.

    un circuit logique un circuit qui schmatisel 'agencement des composants de base (au niveaulogique) sans se proccuper de la ralisation aumoyen de transistors (niveau physique).

    Le microprocesseurVariables logiques

    Un ordinateur ne manipule que desdonnes binaires, on appelle doncvariable lo i ue une donne binaire,c'est--dire une donne ayant deux tatspossibles: 0 ou 1.

  • 7/23/2019 Informatique de Base Mail2

    12/2212

    Le microprocesseur

    Fonction logique

    On appelle fonction logique une entitacceptant plusieurs valeurs logiques enentre et dont la sortie il eut en avoir plusieurs) peut avoir deux tats possibles : 0ou 1.

    Les fonctions logiques de bases sont appelesportes logiques. Il s'agit de fonctions ayant uneou deux entres et une sortie: La fonction OU (en anglais OR) positionne sa sortie 1

    Le microprocesseur

    Fonction logique

    si l'une ou l'autre de ses entres est 1 La fonction ET (en anglaisAND) positionne sa sortie

    1 si ses deux entressont 1 La fonction OU EXCLUSIF (en anglais XOR)

    positionne sa sortie 1 si l'une ou l'autre de sesentres est 1 mais pas les deux simultanment

    La fonction NON (appele aussi inverseur) positionnesa sortie 1 si son entreest 0, et vice-versa

    Lunit dentre-sortie

    contrle et gre le transfert dinformations entre lUC et lespriphriques

    69

    Exemples carte graphique (cran)

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

    Excution dun programme

    MCMCMicroprocesseurMicroprocesseurHorlogeHorloge

    Unit de ContrleUnit de Contrle

    22

    33

    44

    55

    70

    UALUAL

    E/SE/S

    11

    4444

    44

    44

    Excution dun programme

    Chargement des instructions et desdonnes en MC

    71

    ,contrle ...rcupre une instruction et les

    donnes ncessaires et les analyse

    dclenche le traitement adapt enenvoyant un signal lUAL ou lunit

    des entres-sorties

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

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

    microprocesseur

    le nombre 5 de la mmoire vers un registre dumicroprocesseur

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

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

    console (pour l'affichage)

  • 7/23/2019 Informatique de Base Mail2

    13/2213

    Bus

    On appelle bus, en informatique, est un systmede communication entre les composants d'unordinateur

    Les bus ont pour but de rduire le nombre de voies ncessaires la communication desdiffrents composants, en mutualisant lescommunications sur une seule voie de donnes.

    Principaux bus le bus systme (appel aussi bus interne). Le bus

    systme permet au processeur de communiquer avec lammoire centrale du systme

    ' ' permet aux divers composants de la carte-mre (USB,srie, parallle, cartes branches sur les connecteursPCI, disques durs, lecteur/graveur de CD-ROM) decommuniquer entre eux mais il permet surtoutl'ajout de nouveaux priphriques grce auxconnecteurs d'extension (appels slots) connectssur le bus d'entres-sorties.

    Slots

    des prises qui sont prsentes sur la cartemre. Ces connecteurs sont prvus pourrecevoir des cartes supplmentaires

    Ce qui diffrencie ces cartes c'est leur rapidit. Dans l'ordre, du plus lent au plus

    rapide : Les cartes au format ISA Les cartes au format PCI Les cartes au format AGP

    Carte dextension

    Permet dajouter des fonctionnalits(souvent de communication) comme parexemple les cartes graphiques, son,modem, usb, etc.

    Dans le PC et Mac, il existe aujourdhuideux grandes catgories de carte qui sediffrencient par le bus utilis : PCI et AGP

    Carte mre

    Carte lectroniquequi permet auxdiffrents

    communiquer viadiffrents bus decommunication

    On enfiche cescomposants sur desconnecteurs

    Quest-ce quun programme

    dordinateur?

    Le logiciel pilote le matriel

    Pour faire marcher un ordinateur il faut lui fournir unprogramme

    78

    r na eur = ma r e + programme s

    Un programme est une suite dinstructions dordinateur

    Une instruction est un ordre compris par lordinateur etqui lui fait excut une action

  • 7/23/2019 Informatique de Base Mail2

    14/2214

    Les catgories dordres

    les ordinateurs, quels quils soient, ne sontfondamentalement capables de comprendre quequatre catgories d'ordres (en programmation, onn'emploiera pas le terme d'ordre, mais plutt celui

    79

    d'instructions). Ces quatre familles d'instructionssont : laffectation 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

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

    Exemple: un programme de gestion de comptes bancaires

    Contrainte: tre comprhensible par la machine

    Langage machine

    Langage binaire: linformation est exprime et manipule sousforme dune suite de bits

    Un bit (binary digit) = 0 ou 1 (2 tats lectriques)

    81

    Une combinaison de 8 bits= 1 Octet possibilits qui permettentde coder tous les caractres alphabtiques, numriques, et symboles tels que ?,*,&,

    Le code ASCII (American Standard Code for Information Interchange) donne lescorrespondances entre les caractres alphanumriques et leursreprsentation binaire, Ex. A= 01000001, ?=00111111

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

    25628

    L'assembleur Problme: le langage machine est difficile comprendre par l'humain

    Ide: trouver un langage comprhensible par l'homme qui seraensuite converti en langage machine

    AssembleurAssembleur(langage de bas niveau): exprimer les instructionslmentaires de fa on symbolique

    82

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

    Apparition des langages volus

    ADD A, 4

    LOAD B

    MOV A, OUT

    traducteur langage machine

    Langages haut niveau

    Intrts multiples pour le haut niveau: proche du langage humain anglais (comprhensible) permet une plus grande portabilit ( indpendant du matriel) Manipulation de donnes et dexpressions complexes (rels,

    83

    o e s, a c,

    Ncessit dun traducteur (compilateur/interprteur),

    excution plus ou moins lente selon le traducteur

    Code sourceCode source

    en langage voluen langage volu

    Compilateur ouCompilateur ouLangage machineLangage machine

    interprteurinterprteur

    Compilateur/interprteur

    Compilateur: traduire le programme entier une fois pour toutes

    + lus ra ide lexcution

    exemple.c CompilateurCompilateur

    fichier sourcefichier source

    exemplefichier excutablefichier excutable

    excutionexcution

    84

    + scurit du code source - il faut recompiler chaque modification

    Interprteur: traduire au fur et mesure les instructions duprogramme chaque excution

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

    exemple.basfichier sourcefichier source

    Interprtation+excutionInterprtation+excution

  • 7/23/2019 Informatique de Base Mail2

    15/2215

    Langages de programmation:

    Deux types de langages:

    Langages procduraux : sont base de procdures. Uneprocdure est une portion de programme crit en langage de hautniveau qui accomplit une tche spcifique ncessaire au

    85

    .

    Langages orients objets : sont des langages non procdurauxdans lesquels les lments du programme sont considrs commedes objets qui peuvent s'changer des messages.

    Choix dun langage?

    Principaux Langages de

    programmation:

    Pascal

    Blaise PASCAL,mathmaticien et inventeur de

    la premire machine calculer 1971

    Langage compil et structur,driv d'ALGOL. c'est un

    langage de dveloppementstandard pour les micro-ordinateurs.

    C'est une version amlioredu langage de programmation

    Langage de programmationstructur et compil, trs

    86

    C B du Bell Laboratory, cr en1972

    largement employ car sesprogrammes peuventfacilement se transfrer d'untype d'ordinateur un autre.

    Maple Nasa 1980 de SUN couvrir tous les domainesDapplication formel

    Java Microsystems 1990 Ce langage connat unsuccs qu'aucun autrelangage n'avait encore connu.

    Etapes de ralisation dun programme

    SpcificationSpcification

    AnalyseAnalyse

    Enonc du problmeEnonc du problme

    Cahier des chargesCahier des charges

    AlgorithmeAlgorithme

    87

    Traduction en langageTraduction en langage

    CompilationCompilation

    Tests et modificationsTests et modifications

    Programme sourceProgramme source

    Programme excutableProgramme excutable

    Version finale et rsultatsVersion finale et rsultats

    La ralisation de programmes passe par l criture dalgorithmesDo lintrt de lAlgorithmique

    Pourquoi apprendre lalgorithmique

    pour apprendre programmer ?

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

    Intrt: sparation analyse/codage (pas de proccupation de syntaxe)lalgorithmique exprime les instructions rsolvant un problme donn

    88

    n pen ammen es par cuar s e e ou e angage.

    Qualits: exact (fournit le rsultat souhait), efficace (temps dexcution,mmoire occupe), clair (comprhensible), gnral (traite le plus grand

    nombre de cas possibles),

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

    Reprsentation dun algorithme

    Historiquement, deux faons pour reprsenter un algorithme:

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

    offre une vue densemblede lal orithme

    89

    reprsentation quasiment abandonne aujourdhui

    Le pseudoLe pseudo--code:code: reprsentation textuelle avec une srie deconventions ressemblant un langage de programmation (sansles problmes de syntaxe)

    plus pratique pour crire un algorithme reprsentation largement utilise

    Exemple de pseudo code

    problme du tri

    Entre: une squence de nnombres (a1, : : : ,an)

    90

    : : : ;an) de la squencedentre: a1

  • 7/23/2019 Informatique de Base Mail2

    16/2216

    Algorithmique

    91

    Notions et instructions de baseNotions et instructions de base

    Les catgories dordres

    Quatre familles d'instructions sont :

    Les variables et leurs affectation

    92

    Les tests Les boucles

    Notions Fondamentales (1/2)

    Karim possde 3 seaux : un seau en plastique dune contenance de 10 litres,un seau en bois dune contenance de 7 litres et un seau en fer dunecontenance 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 dverse la moiti de son seau en plastique lgout 10h25 : karim transvase le contenu de son seau en plastique dans celui en bois 10h30 : karim transvase 2 litres de son seau en bois dans celui en fer 10h35 : karim informe Asmae du nombre de litres contenu dans ses seaux en

    plastique, en bois, en fer.

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

    Notions Fondamentales (2/2)

    Notion dalgorithme : si les huis phrases sont bien excute par Karim,alors lhistoire est un algorithme

    Notion dinstruction : chacune de huis phrases est une instruction (unordre)

    Notion de valeur : { 0, 3, 5, 6, 8, 10 }

    94

    les quantits de liquide

    Notion de variable : une variable est un emplacement mmoire, ici on atrois variables (le seau en plastique, le seau en bois et le seau en fer)

    Notion denvironnement : cest lensemble des objet, informations,personnes qui on une existence hors de lhistoire mais qui interviennent dansson droulement.

    Notion des valeurs dentre et de sortie : cest les valeurs que leprocesseur reoit de lenvironnement et celles quil donne lenvironnementdurant lexucution. Valeurs en entre :{6, 10} Valeurs en sortie = {0, 3, 8}

    Notion de variable

    Dans les langages de programmation une variablevariable sert stockerla valeur dune donne

    Une variable dsigne en fait un emplacement mmoire dont

    95

    variable)

    Rgle : Les variables doivent tre dclaresdclares avant dtreutilises, elle doivent tre caractrises par :

    un nom (IdentificateurIdentificateur) un typetype (entier, rel, caractre, chane de caractres, )

    Choix des identificateurs (1)

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

    Un nom doit commencer par une lett re alphabtiqueexemple valide:exemple valide: AA11 exemple invalide:exemple invalide: 11AA

    96

    doit tre constitu uniquement de lettres, de chiffres et dusoulignement _ (Eviter les caractres de ponctuation et les espaces)valides:valides: ENCGENCG20072007, ENCG, ENCG__20072007 invalides:invalides: ENCGENCG 20072007, ENCG, ENCG --

    20072007, ENCG, ENCG;;20072007

    doit tre diffrent des mots rservs du langage (par exemple enJavaJava: intint,, floatfloat,, elseelse,, switchswitch,, case,case, default, for, main, returndefault, for, main, return, )

    La longueur du nom doit tre infrieure la taille maximale spcifie

    par le langage utilis

  • 7/23/2019 Informatique de Base Mail2

    17/2217

    Choix des identificateurs (2)

    Conseil: pour la lisibilit du code choisir des noms significatifs

    qui dcrivent les donnes manipulesexemples: TotalVentes2006, Prix_TTC, Prix_HT

    97

    Remarque: en pseudo-code algorithmique, on va respecterles rgles cites, mme si on est libre dans lasyntaxe

    Types des variables

    Le type dune variable dtermine lensemble des valeurs quelle peut

    prendre, les types offerts par la plus part des langages sont: Type numrique (entier ou rel)Type numrique (entier ou rel)

    ByteByte (cod sur 1octet): de 0 255 Entier courtEntier court (cod sur 2 octets) : -32 768 32 767

    98

    Entier longEntier long (cod sur 4 ou 8 octets) Rel simple prcisionRel simple prcision (cod sur 4 octets) Rel double prcisionRel double prcision (cod sur 8 octets)

    Type logique ou boolenType logique ou boolen:: deux valeurs VRAI ou FAUX

    Type caractre:Type caractre: lettres majuscules, minuscules, chiffres, symboles,

    exemples: A, a, exemples: A, a, 11, ?, , ?,

    Type chane deType chane de caractre: toute suite de caractres,exemples: " Nom, Prnom", "code postale:exemples: " Nom, Prnom", "code postale: 10001000", ",

    Dclaration des variables

    Rappel: toute variable utilise dans un programme doit avoirfait lobjet dune dclaration pralable

    En pseudo-code, on va adopter la forme suivante pour ladclaration de variables

    ''

    99

    Exemple:

    Variables i, j,k : entier

    x, y : rel

    OK: boolen

    ch1, ch2 : chane de caractres

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

    Linstruction daffectation laffectation consiste attribuer une valeur une variable

    (a consiste en fait remplir o modifier le contenu d'une zone mmoire)

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

    Vare :Vare : attribue la valeur de e la variable Varattribue 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 mme type ou de types compatibles- laffectation ne modifie que ce qui est gauche de la flche

    Ex valides: i1 ji ki+j

    xx1010..33 OKFAUXOKFAUX chch11"SMI""SMI"

    chch22chch11 xx44 xjxj

    (voir la dclaration des variables dans le transparent prcdent)

    non valides: ii1010..33 OK"SMI"OK"SMI" jxjx

    Quelques remarques

    Beaucoup de langages de programmation (C/C++, Java, ) utilisentle signe gal = pour laffectation . Attention aux confusions:

    l'affectation n'est pas commutative : A=B es t diffrente de B=A l'affectation est diffrente d'une quation mathmatique :

    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 dfaut aux variablesdclares. Pour viter tout problme il est prfrable d'initialiser lesvariables dclares

    Exercices simples sur l'affectation (1)

    Donnez les valeurs des variables A, B et C aprs excutiondes instructions suivantes ?

    VariablesA, B, C: Entier

    102

    A3B7AB

    BA+5

    CA + BCB AFin

  • 7/23/2019 Informatique de Base Mail2

    18/2218

    Exercices simples sur l'affectation (2)

    Donnez les valeurs des variables A et B aprs excution des

    instructions suivantes ?

    VariablesA, B : EntierDbut

    103

    A1B2ABBAFin

    Exercices simples

    Quelles seront les valeurs des variables A et B aprs

    excution des instructions suivantes ?

    104

    ,DbutA1B A + 3A 3Fin

    A = 1 B = ?

    A = 1 B = 4

    A = 3 B = 4

    Exercices simples

    Quelles seront les valeurs des variables A, B et C aprsexcution des instructions suivantes ?

    Variables A, B, C en Entier

    105

    A5B3CA + BA2CB AFin

    A = 5 B = ? C = ?

    A = 5 B = 3 C = ?A = 5 B = 3 C = 8

    A = 2 B = 3 C = 8

    A = 2 B = 3 C = 1

    Exercices simples

    Quelles seront les valeurs des variables A et B aprsexcution des instructions suivantes ?

    Variables A, B en Entier

    106

    A5BA + 4AA + 1BA 4Fin

    A = 5 B = ?

    A = 5 B = 9A = 6 B = 9

    A = 6 B = 2

    Exercices simples

    Quelles seront les valeurs des variables A, B et C aprsexcution des instructions suivantes ?

    Variables A, B, C en Entier

    107

    A3B10CA + BBA + BACFin

    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 simples

    Quelles seront les valeurs des variables A et B aprsexcution des instructions suivantes ?

    Variables A, B en Entier

    108

    DbutA 5B 2A BB AFin

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

  • 7/23/2019 Informatique de Base Mail2

    19/2219

    Exercices simples

    Ecrire un algorithme permettant dchanger les

    valeurs de deux variables A et B

    Dbut

    109

    C AA BB CFin

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

    Exercices simples

    Que produit lalgorithme suivant ?

    Variables A, B, C en Caractres

    Dbut

    " "

    110

    B"12"

    CA & B

    Fin"42312".

    Exercices simples

    Que produit lalgorithme suivant ?

    Variables A, B, C en Caractres

    Dbut

    " "

    111

    B"12"

    CA + BFin

    Expressions et oprateurs Une expression peut tre une valeur, une variable ou une

    opration constitue de variables relies par des oprateursexemples: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'

    112

    Les oprateurs dpendent du type de l'opration, ils peuvent tre :

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

    Une expression est value de gauche droite mais en tenant

    compte de priorits

    Priorit des oprateurs

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

    ^ : (lvation la puissance) *

    113

    , ,

    % (modulo) + , - (addition, soustraction)

    exemple:exemple: 2 + 3 * 7 vaut 2323

    En cas de besoin (ou de doute), on utilise les parenthses pourindiquer les oprations effectuer en priorit

    exemple:exemple: ((2 + 3) * 7 vaut 335

    Les instructions d'entres-sorties:

    lecture et criture (1)

    Les instructions de lecture et d'criture permettent la machine decommuniquer avec l'utilisateur

    La lecture permet d'entrer des donns partir du clavier

    114

    - ,

    lla machine met la valeur entre au clavierdans la zone mmoire nomme var

    Remarque: Le programme s'arrte lorsqu'il rencontre uneinstruction Lire et ne se poursuit qu'aprs la frappe dune valeurau clavier et de la touche Entre

  • 7/23/2019 Informatique de Base Mail2

    20/2220

    Les instructions d'entres-sorties:

    lecture et criture (2)

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

    En pseudo-code, on note: crire (var)crire (var)

    115

    la machine affiche le contenu de lazone mmoire var

    Conseil: Avant de lire une variable, il est fortement conseilldcrire des messages lcran, afin de prvenir lutilisateur dece quil 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

    116

    var a es A, B : ent er

    Dbut

    crire("entrer la valeur de A ")

    lire(A)

    B2*A

    crire("le double de ", A, "est :", B)

    Fin

    Exercice (lecture et criture)

    Ecrire un algorithme qui vous demande de saisir votre nom puisvotre prnom et qui affiche ensuite votre nom complet

    Algorithme AffichageNomComplet

    117

    var a es om, renom, om_ omp e : c a ne e carac res

    Dbut

    crire("entrez votre nom")

    lire(Nom)

    crire("entrez votre prnom")

    lire(Prenom)

    Nom_CompletNom & Prenom

    crire("Votre nom complet est : ", Nom_Complet)

    Fin

    Exercice (respect des rgles) Chacun de ces quatre algorithmes contient une erreur. Laquelle?Algorithme1

    VariablesQuantit : entier

    Prix_unit: rel

    DbutLire (Quantit, Prix unit)

    Algorithme2

    VariablesX, Y, Z : rel

    DbutLire (X, Y, Z)

    Z :=X-Y

    118

    , _

    Prix_total:= Quantit * Prix_unit

    crire (Prix_total)

    Fin

    crire (Z)

    Fin

    Algorithme3Variables

    A1, A2: entier

    A3 : rel

    DbutLire (A1, A2)

    A2 := A1 * A3

    crire (A2)

    Fin

    Algorithme4Variables

    X : rel

    DbutLire (X)

    X := X-1

    X :=Pi * X

    crire (X)

    Fin

    Mthode de construction dun

    algorithme simple (1/4)

    Exemple :

    119

    cr re un a gor me qu cons s e a ca cu er a rdun cercle selon la formule S = Pi * R2

    Rappel : Pi = 3.14159 et R le rayon du cercle

    Mthode de construction dun

    algorithme simple (2/4)

    Mthodologie a suivre :

    constantes : Pi = 3.14159

    Variables : Rayon, Surface

    120

    Types : Rayon, Surface : rel

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

    Oprations dentre-sortie : Lire (Rayon),crire (Surface)

  • 7/23/2019 Informatique de Base Mail2

    21/2221

    Mthode de construction dun

    algorithme simple (3/4)

    Algorithme

    Calcul_Aire

    Constantes

    Pi = 3,14159

    121

    Variables

    Rayon, Surface : rels

    Dbut

    lire (Rayon)

    Surface := Pi * (Rayon)2

    crire (Surface)

    Fin

    Exercice

    Ecrire un programme qui lit le prix HT dun artic le, le nombredarticles et le taux de TVA, et qui fournit le prix total TTCcorrespondant.

    Variables nb, pht, ttva, pttc : reelsDbut

    122

    Ecrire ("Entrez le prix hors taxes :")Lire (pht)Ecrire ("Entrez le nombre darticles :")Lire (nb)Ecrire ("Entrez le taux de TVA :" )Lire (ttva)pttcnb * pht * (1 + ttva)Ecrire ("Le prix toutes taxes est : ", pttc)

    Fin

    Algorithmique

    123

    Les structures

    Conditionnelles et lesboucles

    Les structures conditionnelles et les

    boucles

    Les tests simples : permet de raliser un choix parmi deuxpossibilits (Ex :Boolenne : vrais ou faux)

    Les instructions conditionnelles : cest un conceptde tests multiples, permet de comparer un objet une srie devaleurs, et excuter si la condition est vrifier (Ex : recherche des

    124

    nombres premier dans une ensemble)

    Les itrations : consiste a excut un bloc dinstructions uncertain nombre de fois (Ex : calcul dune suite numrique)

    Les boucles conditionnelles : consiste a excut unbloc dinstructions un certain nombre de fois si la condition estvrifier (Ex : On veut afficher le 100 premiers nombres :. Tant que i est pluspetit que 100, afficher la valeur de i).

    Tests: instructions conditionnelles (1)

    Les instructions conditionnelles servent n'excuter une instructionou une squence d'instructions que si une condition est vrifie

    On utilisera la forme suivante: SiSi condition alorsalors

    instruction ou suite d'instructions1

    125

    nonnon

    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 excutes

    si la condition est fausse, se sont les instructions2 qui seront excutes la condition peut tre une condition simple ou une condition compose de

    plusieurs conditions

    Tests: instructions conditionnelles (2)

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

    On utilisera dans ce cas la forme simplifie suivante:

    126

    SiSi condition alorsalors

    instruction ou suite d'instructions1

    FinsiFinsi

  • 7/23/2019 Informatique de Base Mail2

    22/22

    Exemple (SiAlorsSinon)

    Algorithme AffichageValeurAbsolue (version1)

    Variable x : rel

    Dbut

    Ecrire " Entrez un rel : "

    127

    Lire (x)

    Si x < 0 alorsEcrire ("la valeur absolue de ", x, "est:",-x)

    Sinon

    Ecrire ("la valeur absolue de ", x, "est:",x)

    Finsi

    Fin

    Exemple (SiAlors)

    Algorithme AffichageValeurAbsolue (version2)

    Variable x,y : rel

    Dbut

    Ecrire " Entrez un rel : "

    128

    Lire (x)

    yx

    Si x < 0 alorsy-x

    Finsi

    Ecrire ("la valeur absolue de ", x, "est:",y)

    Fin

    Exercice (tests)

    Ecrire un algorithme qui demande un nombre entier l'utilisateur,puis qui teste et affiche s'il est divisible par 3

    Algorithme Divsible_par3

    Variable n : entier

    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