Vous êtes sur la page 1sur 27

Introduction

Algorithmique

les variables

Introduction aux languge C

Langage informatique & Algorithmique


Mourad Nachaoui

April 20, 2015

Introduction

Algorithmique

les variables

Plan

Introduction
Langage interprt

Algorithmique
introduction
Algorithmique et programmation

les variables

Introduction aux languge C


La compllation

Introduction aux languge C

Introduction

Algorithmique

les variables

Introduction aux languge C

Langage informatique

Langage informatique
On appelle langage informatique un langage destin
dcrire lensemble des actions conscutives quun ordinateur
doit excuter. Un langage informatique est ainsi une faon
pratique pour nous (Humains) de donner des instructions un
ordinateur.
Langage naturel
A contrario, le terme langage naturel reprsente les
possibilits dexpression partag par un groupe dindividus (par
exemple larabe langlais ou le franais).

Introduction

Algorithmique

les variables

Introduction aux languge C

Les langages servant aux ordinateurs communiquer


entre eux nont rien voir avec des langages
informatiques, on parle dans ce cas de protocoles de
communication, ce sont deux notions totalement
diffrentes.
Un langage informatique est rigoureux :
CHAQUE instruction correspond UNE action du
processeur.

Introduction

Algorithmique

les variables

Introduction aux languge C

Le langage utilis par le processeur est appel langage


machine. Il sagit des donnes telles quelles arrivent au
processeur, constitues dune suite de 0 et de 1 (donnes
binaire).
Le langage machine nest ainsi pas comprhensible par
ltre Humain, cest pourquoi des langages intermdiaires,
comprhensibles par lhomme, ont t mis au point. Le
code crit dans ce type de langage est transform en
langage 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 langage
machine ;
il permet une plus grande portabilit, cest--dire une plus
grande 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 classer


en deux catgories :
les langages interprts
les langages compils.

Introduction

Algorithmique

les variables

Introduction aux languge C

Langage interprt

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

Introduction

Algorithmique

les variables

Introduction aux languge C

Langage interprt

Langage compil

Un programme crit dans un langage dit compil va tre


traduit une fois pour toutes par un programme annexe, appel
compilateur, afin de gnrer un nouveau fichier qui sera
autonome, cest--dire qui naura plus besoin dun programme
autre que lui pour sexcuter; on dit dailleurs que ce fichier est
excutable.

Introduction

Algorithmique

les variables

Introduction aux languge C

Langage interprt

Avantages

Un programme crit dans un langage compil a comme


avantage de ne plus avoir besoin, une fois compil, de
programme annexe pour sexcuter.
De plus, la traduction tant faite une fois pour toute, il est
plus rapide lexcution.
Toutefois il est moins souple quun programme crit avec
un langage interprt car chaque modification du fichier
source (fichier intelligible par lhomme: celui qui va tre
compil) il faudra recompiler le programme pour que les
modifications prennent effet.

Introduction

Algorithmique

les variables

Introduction aux languge C

Langage interprt

Avantages langage compil

Dautre part, un programme compil a pour avantage de


garantir la scurit du code source.
En effet, un langage interprt, tant directement
intelligible (lisible), permet nimporte qui de connatre les
secrets de fabrication dun programme et donc de copier le
code voire de le modifier. Il y a donc risque de non-respect
des droits dauteur.
Dautre part, certaines applications scurises ncessitent
la confidentialit du code pour viter le piratage
(transaction bancaire, paiement en ligne, communications
scurises, ...).

Introduction

Algorithmique

les variables

Introduction aux languge C

Langage interprt

Quelques exemples de langages couramment utiliss


Langage

Domaine dapplication principal

Compil/interprt

ADA
BASIC
C
C++
Cobol
Fortran
Java
MATLAB
Mathematica
LISP
Pascal
PHP

Le temps rl
Programmation basique
Programmation systme
Programmation systme objet
Gestion
Calcul
Programmation oriente internet
Calcul mathmatique
Calcul mathmatique
Intelligence artificielle
Enseignement
Dveloppement de sites web

compil
interprt
compil
compil
compil
compil
intermdiaire
interprt
interprt
intermdiaire
compil
interprt

Introduction

Algorithmique

les variables

Introduction aux languge C

introduction

Un langage de programmation est une convention pour donner


des ordres un ordinateur. Ce nest pas cens tre obscur,
bizarre et plein de piges subtils. Ca, ce sont les
caractristiques de la magie.
Lalgorithmique est un terme dorigine arabe, comme
algbre, 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 traduit
directement du coren pour faire fonctionner un DVD ou
une tlvision ?
Si oui, sans le savoir, vous avez dj excut des
algorithmes.
Plus fort : avez-vous dj indiqu un chemin une
personne gar ?
Si oui, vous avez dj fabriqu - et fait excuter - des
algorithmes.
Comme quoi, lalgorithmique nest pas un savoir
sotrique rserv quelques rares initis touchs par la
grce divine, mais une aptitude partage par la totalit de
lhumanit.

Introduction

Algorithmique

les variables

Introduction aux languge C

introduction

Algorithme
Un algorithme, cest une suite dinstructions, qui une fois
excute correctement, conduit un rsultat donn. Si
lalgorithme est juste, le rsultat est le rsultat voulu, et "la
personne gare se retrouve l o il voulait aller". Si
lalgorithme est faux, le rsultat est, disons, alatoire.
Fonctionnement dun algorithme
Pour fonctionner, un algorithme doit donc contenir uniquement
des 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 correctement


son chemin quelquun ? Je vous laisse juge.
La matrise de lalgorithmique requiert deux qualits, trs
complmentaires dailleurs :
il faut avoir une certaine intuition, car aucune recette ne
permet de savoir a priori quelles instructions permettront
dobtenir le rsultat voulu. Cest l, si lon y tient,
quintervient la forme dintelligence requise pour
lalgorithmique. Cependant, ce quon appelle lintuition nest
finalement que de lexprience tellement rpte que le
raisonnement, 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 fois


quon crit une srie dinstructions quon croit justes, il faut
systmatiquement se mettre mentalement la place de la
machine qui va les excuter, arm dun papier et dun
crayon, afin de vrifier si le rsultat obtenu est bien celui
que lon voulait.

Introduction

Algorithmique

les variables

Introduction aux languge C

introduction

les ordinateurs, quels quils soient, ne sont fondamentalement


capables de comprendre que quatre catgories dordres (en
programmation, on nemploiera pas le terme dordre, mais
plutt celui dinstructions). Ces quatre familles dinstructions
sont :
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 des
langages de programmation comprhensibles par les
ordinateurs ?
Parce que lalgorithmique exprime les instructions
rsolvant un problme donn indpendamment des
particularits de tel ou tel langage.

Introduction

Algorithmique

les variables

Introduction aux languge C

Algorithmique et programmation

Apprendre lalgorithmique, cest apprendre manier la


structure logique dun programme informatique.
Cette dimension est prsente quelle que soit le langage de
programmation ;
mais lorsquon programme dans un langage (en C, en
Visual Basic, etc.) on doit en plus se colleter les problmes
de syntaxe, ou de types dinstructions, propres ce
langage.
Apprendre lalgorithmique de manire spare, cest donc
srier les difficults pour mieux les vaincre.

Introduction

Algorithmique

les variables

Introduction aux languge C

Algorithmique et programmation

Historiquement, plusieurs types de notations ont


reprsent des algorithmes.
Il y a eu notamment une reprsentation graphique, avec
des carrs, des losanges, etc. quon appelait des
organigrammes. Aujourdhui, cette reprsentation est
quasiment abandonne, parce que ds que lalgorithme
commence grossir un peu, ce nest plus pratique du tout.
Cest pourquoi on utilise gnralement une srie de
conventions appele pseudo-code , qui ressemble un
langage de programmation authentique dont on aurait
vacu la plupart des problmes de syntaxe.

Introduction

Algorithmique

les variables

Introduction aux languge C

Dans un programme informatique, on va avoir en


permanence besoin de stocker provisoirement des valeurs.
La premire chose faire avant de pouvoir utiliser une
variable est de crer la bote et de lui coller une tiquette.
Ceci se fait tout au dbut de lalgorithme, avant mme les
instructions proprement dites. Cest ce quon appelle la
dclaration des variables.
Le nom de la variable (ltiquette de la bote) obit des
impratifs changeant selon les langages.
Lorsquon dclare une variable, il ne suffit pas de crer
une bote (rserver un emplacement mmoire) ; encore
doit-on prciser ce que lon voudra mettre dedans, car de
cela dpendent la taille de la bote (de lemplacement
mmoire) 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 Ken


Thompson, chercheurs aux Bell Labs, afin de dvelopper
un systme dexploitation UNIX sur un DEC PDP-11.
En 1978, Brian Kernighan et Dennis Richie publient la
dfinition classique du C dans le livre The C Programming
language [6]. Le C devenant de plus en plus populaire
dans les annes 80, plusieurs groupes mirent sur le
march des compilateurs comportant des extensions
particulires. dpendent la taille de la bote (de
lemplacement 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 en
1989 par la dfinition de la norme ANSI C.
Celle-ci fut reprise telle quelle par lISO (International
Standards Organization) en 1990.

Introduction

Algorithmique

les variables

Introduction aux languge C

La compllation

Le C est un langage compil (par opposition aux langages


interprts). Cela signifie quun programme C est dcrit
par un fichier texte, appel fichier source.
Ce fichier ntant videmment pas excutable par le
microprocesseur, il faut le traduire en langage machine.
Cette opration est effectue par un programme appel
compilateur.

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 est


analys par le prprocesseur qui effectue des
transformations purement textuelles (remplacement de
chanes de caractres, inclusion dautres fichiers source).

La compilation : la compilation proprement dite traduit le


fichier gnr par le prprocesseur en assembleur,
cest--dire en une suite dinstructions du microprocesseur
qui utilisent des mnmoniques rendant la lecture possible.

Introduction

Algorithmique

les variables

Introduction aux languge C

La compllation

Lassemblage : cette opration transforme le code


assembleur en un fichier binaire, cest--dire en
instructions directement comprhensibles par le
processeur. Gnralement, la compilation et lassemblage
se font dans la foule, sauf si lon spcifie explicitement
que lon veut le code assembleur. Le fichier produit par
lassemblage est appel fichier objet.

Ldition de liens : un programme est souvent spar en


plusieurs fichiers source, pour des raisons de clart mais
aussi parce quil fait gnralement appel des librairies de
fonctions standard dj crites. Une fois chaque code
source assembl, il faut donc lier entre eux les diffrents
fichiers objets. Ldition de liens produit alors un fichier dit
excutable.

Vous aimerez peut-être aussi