coursmipc4s22.pdf

27
Introduction Algorithmique les variables Introduction aux languge C Langage informatique & Algorithmique Mourad Nachaoui April 20, 2015

Upload: omar-faina

Post on 08-Nov-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

  • Introduction Algorithmique les variables Introduction aux languge C

    Langage informatique & Algorithmique

    Mourad Nachaoui

    April 20, 2015

  • Introduction Algorithmique les variables Introduction aux languge C

    Plan

    1 IntroductionLangage interprt

    2 AlgorithmiqueintroductionAlgorithmique et programmation

    3 les variables

    4 Introduction aux languge CLa compllation

  • Introduction Algorithmique les variables Introduction aux languge C

    Langage informatique

    Langage informatiqueOn appelle langage informatique un langage destin dcrire lensemble des actions conscutives quun ordinateurdoit excuter. Un langage informatique est ainsi une faonpratique pour nous (Humains) de donner des instructions unordinateur.

    Langage naturelA contrario, le terme langage naturel reprsente lespossibilits dexpression partag par un groupe dindividus (parexemple larabe langlais ou le franais).

  • Introduction Algorithmique les variables Introduction aux languge C

    Les langages servant aux ordinateurs communiquerentre eux nont rien voir avec des langagesinformatiques, on parle dans ce cas de protocoles decommunication, ce sont deux notions totalementdiffrentes.

    Un langage informatique est rigoureux :

    CHAQUE instruction correspond UNE action duprocesseur.

  • Introduction Algorithmique les variables Introduction aux languge C

    Le langage utilis par le processeur est appel langagemachine. Il sagit des donnes telles quelles arrivent auprocesseur, constitues dune suite de 0 et de 1 (donnesbinaire).

    Le langage machine nest ainsi pas comprhensible parltre Humain, cest pourquoi des langages intermdiaires,comprhensibles par lhomme, ont t mis au point. Lecode crit dans ce type de langage est transform enlangage machine pour tre exploitable par le processeur.

  • Introduction Algorithmique les variables Introduction aux languge C

    Un langage informatique a donc plusieurs avantages :

    il est plus facilement comprhensible que le langagemachine ;

    il permet une plus grande portabilit, cest--dire une plusgrande facilit

    dadaptation sur des machines de types diffrents ;

  • Introduction Algorithmique les variables Introduction aux languge C

    Interprtation et compilation

    Les langages informatiques peuvent grossirement se classeren deux catgories :

    les langages interprts

    les langages compils.

  • Introduction Algorithmique les variables Introduction aux languge C

    Langage interprt

    Langage interprtUn langage informatique est par dfinition diffrent du langagemachine. Il faut donc le traduire pour le rendre intelligible dupoint de vue du processeur. Un programme crit dans unlangage interprt a besoin dun programme auxiliaire(linterprteur) pour traduire au fur et mesure les instructionsdu programme.

  • Introduction Algorithmique les variables Introduction aux languge C

    Langage interprt

    Langage compil

    Un programme crit dans un langage dit compil va tretraduit une fois pour toutes par un programme annexe, appelcompilateur, afin de gnrer un nouveau fichier qui seraautonome, cest--dire qui naura plus besoin dun programmeautre que lui pour sexcuter; on dit dailleurs que ce fichier estexcutable.

  • Introduction Algorithmique les variables Introduction aux languge C

    Langage interprt

    Avantages

    Un programme crit dans un langage compil a commeavantage de ne plus avoir besoin, une fois compil, deprogramme annexe pour sexcuter.

    De plus, la traduction tant faite une fois pour toute, il estplus rapide lexcution.

    Toutefois il est moins souple quun programme crit avecun langage interprt car chaque modification du fichiersource (fichier intelligible par lhomme: celui qui va trecompil) il faudra recompiler le programme pour que lesmodifications prennent effet.

  • Introduction Algorithmique les variables Introduction aux languge C

    Langage interprt

    Avantages langage compil

    Dautre part, un programme compil a pour avantage degarantir la scurit du code source.

    En effet, un langage interprt, tant directementintelligible (lisible), permet nimporte qui de connatre lessecrets de fabrication dun programme et donc de copier lecode voire de le modifier. Il y a donc risque de non-respectdes droits dauteur.

    Dautre part, certaines applications scurises ncessitentla confidentialit du code pour viter le piratage(transaction bancaire, paiement en ligne, communicationsscurises, ...).

  • Introduction Algorithmique les variables Introduction aux languge C

    Langage interprt

    Quelques exemples de langages couramment utiliss

    Langage Domaine dapplication principal Compil/interprtADA Le temps rl compilBASIC Programmation basique interprtC Programmation systme compilC++ Programmation systme objet compilCobol Gestion compilFortran Calcul compilJava Programmation oriente internet intermdiaireMATLAB Calcul mathmatique interprtMathematica Calcul mathmatique interprtLISP Intelligence artificielle intermdiairePascal Enseignement compilPHP Dveloppement de sites web interprt

  • Introduction Algorithmique les variables Introduction aux languge C

    introduction

    Un langage de programmation est une convention pour donnerdes ordres un ordinateur. Ce nest pas cens tre obscur,bizarre et plein de piges subtils. Ca, ce sont lescaractristiques de la magie.

    Lalgorithmique est un terme dorigine arabe, commealgbre, amiral ou znith.

  • Introduction Algorithmique les variables Introduction aux languge C

    introduction

    Avez-vous dj ouvert un livre de recettes de cuisine ?

    Avez vous dj dchiffr un mode demploi traduitdirectement du coren pour faire fonctionner un DVD ouune tlvision ?

    Si oui, sans le savoir, vous avez dj excut desalgorithmes.

    Plus fort : avez-vous dj indiqu un chemin unepersonne gar ?

    Si oui, vous avez dj fabriqu - et fait excuter - desalgorithmes.

    Comme quoi, lalgorithmique nest pas un savoirsotrique rserv quelques rares initis touchs par lagrce divine, mais une aptitude partage par la totalit delhumanit.

  • Introduction Algorithmique les variables Introduction aux languge C

    introduction

    AlgorithmeUn algorithme, cest une suite dinstructions, qui une foisexcute correctement, conduit un rsultat donn. Silalgorithme est juste, le rsultat est le rsultat voulu, et "lapersonne gare se retrouve l o il voulait aller". Silalgorithme est faux, le rsultat est, disons, alatoire.

    Fonctionnement dun algorithmePour fonctionner, un algorithme doit donc contenir uniquementdes instructions comprhensibles par celui qui devra lexcuter.

  • Introduction Algorithmique les variables Introduction aux languge C

    introduction

    Faut-il tre matheux pour tre bon en algorithmique ?

    Faut-il tre bon en maths pour expliquer correctementson chemin quelquun ? Je vous laisse juge.

    La matrise de lalgorithmique requiert deux qualits, trscomplmentaires dailleurs :

    il faut avoir une certaine intuition, car aucune recette nepermet de savoir a priori quelles instructions permettrontdobtenir le rsultat voulu. Cest l, si lon y tient,quintervient la forme dintelligence requise pourlalgorithmique. Cependant, ce quon appelle lintuition nestfinalement que de lexprience tellement rpte que leraisonnement, au dpart laborieux, finit par devenir spontan .

  • Introduction Algorithmique les variables Introduction aux languge C

    introduction

    Faut-il tre matheux pour tre bon en algorithmique ?

    il faut tre mthodique et rigoureux. En effet, chaque foisquon crit une srie dinstructions quon croit justes, il fautsystmatiquement se mettre mentalement la place de lamachine qui va les excuter, arm dun papier et duncrayon, afin de vrifier si le rsultat obtenu est bien celuique lon voulait.

  • Introduction Algorithmique les variables Introduction aux languge C

    introduction

    les ordinateurs, quels quils soient, ne sont fondamentalementcapables de comprendre que quatre catgories dordres (enprogrammation, on nemploiera pas le terme dordre, maisplutt celui dinstructions). Ces quatre familles dinstructionssont :

    laffectation de variables

    la lecture / criture

    les tests

    les boucles

  • Introduction Algorithmique les variables Introduction aux languge C

    Algorithmique et programmation

    Algorithmique et programmation

    Pourquoi apprendre lalgorithmique pour apprendre programmer ?

    En quoi a-t-on besoin dun langage spcial, distinct deslangages de programmation comprhensibles par lesordinateurs ?

    Parce que lalgorithmique exprime les instructionsrsolvant un problme donn indpendamment desparticularits de tel ou tel langage.

  • Introduction Algorithmique les variables Introduction aux languge C

    Algorithmique et programmation

    Apprendre lalgorithmique, cest apprendre manier lastructure logique dun programme informatique.

    Cette dimension est prsente quelle que soit le langage deprogrammation ;

    mais lorsquon programme dans un langage (en C, enVisual Basic, etc.) on doit en plus se colleter les problmesde syntaxe, ou de types dinstructions, propres celangage.

    Apprendre lalgorithmique de manire spare, cest doncsrier les difficults pour mieux les vaincre.

  • Introduction Algorithmique les variables Introduction aux languge C

    Algorithmique et programmation

    Historiquement, plusieurs types de notations ontreprsent des algorithmes.

    Il y a eu notamment une reprsentation graphique, avecdes carrs, des losanges, etc. quon appelait desorganigrammes. Aujourdhui, cette reprsentation estquasiment abandonne, parce que ds que lalgorithmecommence grossir un peu, ce nest plus pratique du tout.

    Cest pourquoi on utilise gnralement une srie deconventions appele pseudo-code , qui ressemble unlangage de programmation authentique dont on auraitvacu la plupart des problmes de syntaxe.

  • Introduction Algorithmique les variables Introduction aux languge C

    Dans un programme informatique, on va avoir enpermanence besoin de stocker provisoirement des valeurs.

    La premire chose faire avant de pouvoir utiliser unevariable est de crer la bote et de lui coller une tiquette.Ceci se fait tout au dbut de lalgorithme, avant mme lesinstructions proprement dites. Cest ce quon appelle ladclaration des variables.

    Le nom de la variable (ltiquette de la bote) obit desimpratifs changeant selon les langages.

    Lorsquon dclare une variable, il ne suffit pas de crerune bote (rserver un emplacement mmoire) ; encoredoit-on prciser ce que lon voudra mettre dedans, car decela dpendent la taille de la bote (de lemplacementmmoire) et le type de codage utilis.

  • Introduction Algorithmique les variables Introduction aux languge C

    Le C a t conu en 1972 par Dennis Richie et KenThompson, chercheurs aux Bell Labs, afin de dvelopperun systme dexploitation UNIX sur un DEC PDP-11.

    En 1978, Brian Kernighan et Dennis Richie publient ladfinition classique du C dans le livre The C Programminglanguage [6]. Le C devenant de plus en plus populairedans les annes 80, plusieurs groupes mirent sur lemarch des compilateurs comportant des extensionsparticulires. dpendent la taille de la bote (delemplacement mmoire) et le type de codage utilis.

  • Introduction Algorithmique les variables Introduction aux languge C

    En 1983, lANSI (American National Standards Institute)dcida de normaliser le langage; ce travail sacheva en1989 par la dfinition de la norme ANSI C.

    Celle-ci fut reprise telle quelle par lISO (InternationalStandards Organization) en 1990.

  • Introduction Algorithmique les variables Introduction aux languge C

    La compllation

    Le C est un langage compil (par opposition aux langagesinterprts). Cela signifie quun programme C est dcritpar un fichier texte, appel fichier source.

    Ce fichier ntant videmment pas excutable par lemicroprocesseur, il faut le traduire en langage machine.

    Cette opration est effectue par un programme appelcompilateur.

  • Introduction Algorithmique les variables Introduction aux languge C

    La compllation

    La compilation se dcompose en fait en 4 phases successives :

    1 Le traitement par le prprocesseur : le fichier source estanalys par le prprocesseur qui effectue destransformations purement textuelles (remplacement dechanes de caractres, inclusion dautres fichiers source).

    2 La compilation : la compilation proprement dite traduit lefichier gnr par le prprocesseur en assembleur,cest--dire en une suite dinstructions du microprocesseurqui utilisent des mnmoniques rendant la lecture possible.

  • Introduction Algorithmique les variables Introduction aux languge C

    La compllation

    1 Lassemblage : cette opration transforme le codeassembleur en un fichier binaire, cest--dire eninstructions directement comprhensibles par leprocesseur. Gnralement, la compilation et lassemblagese font dans la foule, sauf si lon spcifie explicitementque lon veut le code assembleur. Le fichier produit parlassemblage est appel fichier objet.

    2 Ldition de liens : un programme est souvent spar enplusieurs fichiers source, pour des raisons de clart maisaussi parce quil fait gnralement appel des librairies defonctions standard dj crites. Une fois chaque codesource assembl, il faut donc lier entre eux les diffrentsfichiers objets. Ldition de liens produit alors un fichier ditexcutable.

    IntroductionLangage interprt

    AlgorithmiqueintroductionAlgorithmique et programmation

    les variablesIntroduction aux languge CLa compllation