• Aucun résultat trouvé

Qu’est-ce que la programmation ?

N/A
N/A
Protected

Academic year: 2022

Partager "Qu’est-ce que la programmation ?"

Copied!
4
0
0

Texte intégral

(1)

Introduction `a la Programmation Objet :

Algorithmes

Rachid Guerraoui1, Maxime Monod1 & Jamila Sam2

1Laboratoire de Programmation Distribu´ee (LPD)

2Laboratoire d’Intelligence Artificielle (LIA) Facult´e Informatique & Communications Ecole Polytechnique F´ed´erale de Lausanne

LPD & LIA (EPFL) IPO – Introduction 1 / 14

Qu’est-ce que la programmation ?

Objectif : permettre l’automatisation d’un certain nombre de tˆaches

`a l’aide d’un automate programmable.

Nous tenterons de remplacer l’orgue de barbarie par un ordinateur

LPD & LIA (EPFL) IPO – Introduction 2 / 14

Objectifs

Apprendre `a programmer

Formalisation des traitements : algorithmes

Formalisation des donn´ees :structures de donn´ees

. . . en Java

Vocabulaireet Syntaxe Sp´ecificit´es dulangage

☞mais parlons d’abord un peu d’algorithmes . . .

LPD & LIA (EPFL) IPO – Introduction 3 / 14

Algorithme ?

☞solution calculatoire/m´ecanique/it´erative/... `a un probl`eme

”Sp´ecification d’un sch´ema de calcul sous forme d’une suite d’op´erations ´el´ementaires ob´eissant `a un enchaˆınement d´etermin´e”

[Encyclopedia Universalis]

Algorithme

suite finie de r`egles `a appliquer, dans un ordre d´etermin´e,

`a un nombre fini de donn´ees,

se terminant (i.e., arriver, en un nombre fini d’´etapes, `a un r´esultat, et ce quelque soit les donn´ees trait´ees).

LPD & LIA (EPFL) IPO – Introduction 4 / 14

(2)

Algorithme

Un algorithme est un moyen pour un humain de repr´esenter la r´esolution par calcul d’un probl`eme `a une autre personne physique (humain) ou virtuelle (calculateur) ; un algorithme est :

s´equentiel si ses op´erations s’ex´ecutent en s´equence,

parall`ele si certaines de ses op´erations s’ex´ecutent en parall`ele, r´eparti si certaines de ses op´erations s’ex´ecutent sur plusieurs machines.

LPD & LIA (EPFL) IPO – Introduction 5 / 14

Algorithme

Al Khuwarizmi : math´ematicien perse arabophone

9`eme si`ecle, premier ouvrage d’alg`ebre (Al-jabr wa’l-muqˆabalah) Solution des ´equations lin´eaires et quadratiques

☞L’algorithmique est une branche des math´ematiques

Son nom, Al Khuwarizmi, latinis´e en Algoritmi, puis transform´e plus tard en Algorisme est `a l’origine du mot algorithme.

LPD & LIA (EPFL) IPO – Introduction 6 / 14

Algorithmes c´el`ebres

Babyloniens (-20`eme si`ecle) : calculs des impˆots Euclide (-3`eme si`ecle) : PGDC

Al Khawarizmi (9`eme si`ecle) : ´equations Averro`es (11`eme si`ecle) : notion d’it´eration

Descartes (17`eme si`ecle) : Discours de la m´ethode

☞”Diviser chacune des difficult´es que j’examinerois, en autant de parcelles qu’il se pourroit, et qu’il soit requis pour les mieux r´esoudre” (Descartes)

LPD & LIA (EPFL) IPO – Introduction 7 / 14

Plus proche de nous

Tours de Hanoi : illustration de la programmation r´ecursive Tri : Comment trier des ´el´ements le plus rapidement possible Huit dames : placer huit dames sans qu’elles puissent se prendre Voyageur de commerce : minimiser les nombre total de kms

LPD & LIA (EPFL) IPO – Introduction 8 / 14

(3)

Toute une th´eorie

Formalisation : dans les ann´ees (19)30 par des math´ematiciens : G¨odel, Turing, Church, Post, ...

☞fonctions ”calculables” et machines de Turing : abstraction math´ematique des notions detraitement (suite d’op´erations

´el´ementaires), de probl`emeet d’algorithme.

☞de nombreux probl`emes ouverts qui vous attendent

LPD & LIA (EPFL) IPO – Introduction 9 / 14

Java Dance (1)

Do you want to dance with me ?

☞1er algorithme . . .

LPD & LIA (EPFL) IPO – Introduction 10 / 14

Java Dance (2)

Voulez−vous danser?

Choisir une personne

oui Success story

non

☞Il n’est pas garanti que l’algorithme puisse se terminer !

LPD & LIA (EPFL) IPO – Introduction 11 / 14

Java Dance (2)

Choisir la personne i

Voulez−vous danser?

i = i+1

i > N i=1

Hopeless non

oui

non oui

Success story

l’algorithme se termine n´ecessairement, au pireN essais successifs,

. . . mais il n’est pas sˆur qu’il soit tr`es efficace !

LPD & LIA (EPFL) IPO – Introduction 12 / 14

(4)

Algorithme

Un algorithme est :

unesuite finiede r`egles `a appliquer, dans un ordre d´etermin´e,

`a un nombre fini de donn´ees.

☞arriver, en un nombre fini d’´etapes, `a un r´esultat quelles que soient les donn´ees trait´ees.

On attend d’un algorithme qu’il : se termine,

produise un r´esultat correct, soit le plus efficace possible.

☞ Il n’y a (mal)heureusementaucune recette pour produire un algorithme !

LPD & LIA (EPFL) IPO – Introduction 13 / 14

Algorithme 6= Programme

Un algorithme est ind´ependant du langage de programmation dans lequel on va l’exprimer et de l’ordinateur utilis´e pour le faire tourner.

C’est une description abstraite des ´etapes conduisant `a la solution d’un probl`eme.

Algorithme = partie conceptuelle d’un programme (ind´ependante du langage)

Programme = impl´ementation (i.e., r´ealisation) de l’algorithme, dans un langage de programmation et sur un syst`eme particulier.

LPD & LIA (EPFL) IPO – Introduction 14 / 14

Références

Documents relatifs

Une exp´ erience par coloration a montr´ e qu’une rivi` ere souterraine alimente une r´ esurgence dans la vall´ ee. La rivi` ere souterraine a un d´ ebit tr` es sensible aux

Statistique descriptive mono-vari´ e Bases de R Donn´ ees bi-vari´ ees Tests statistiques.. Objectifs

b - Le fichier ruban-3 initial final.csv contient la longueur de la trajectoire suivie par la pro- cession au d´ ebut (lorsque la tˆ ete atteint le point d’arriv´ e) et ` a la fin de

Ecrire en Java la gestion d’un tas, repr´esent´e par un tableau : cr´eer, ins´erer, minimum, supprimer (le minimum), modifier une valeur.. Vous programmerez ceci en TP, et

Pour trouver les coordonn´ ees d’un point dans un rep` ere, on ´ ecrit l’´ equation (vectorielle) caract´ eristique on convertit cette ´ equation en syst` eme num´ erique on

Perdre ses photos de vacances : ¸ca n’a pas de

Programme des enseignements – Syst` emes d’information et conception d’entrepˆ ots de donn´ ees – Les principes et la d´ emarche du Data Mining (fouille de donn´ ees)

Objectifs : Maˆıtriser les structures de base de l’informatique (tableaux, listes, files, piles) et les op´ erations ´ el´ ementaires sur ces structures et introduction au