• Aucun résultat trouvé

Introduction `a l’algorithmique et `a Java Licence 1 MASS, parcours SEMS et ESD Introduction `a Java et `a l’algorithmique

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction `a l’algorithmique et `a Java Licence 1 MASS, parcours SEMS et ESD Introduction `a Java et `a l’algorithmique"

Copied!
63
0
0

Texte intégral

(1)

Introduction ` a l’algorithmique et ` a Java

Licence 1 MASS, parcours SEMS et ESD Introduction `a Java et `a l’algorithmique

S´ebastien Verel [email protected] www.i3s.unice.fr/∼verel

´Equipe ScoBi - Universit´e Nice Sophia Antipolis

1er f´evrier 2013

(2)

Bonjour !

Maˆıtre de conf´erences depuis septembre 2006.

Recherche : Conception et ´etude d’algorithmes d’optimisation inspir´es de la biologie, ...

algorithmes : voir plus loin

optimisation : trouver les meilleures solutions possibles `a un probl`eme (transport, emploi du temps, design, r´eglage de proth`eses, conception de th´eorie cognitive,...)

bio-inspir´e :”extraire les principes actifs de syst`eme

biologique”th´eorie de l’´evolution, fouragement des fourmis, eplacement d’oiseaux,....

conception : cr´eer et tester de nouveaux algorithmes

´

etude : comprendre et pr´edire pourquoi cela marche, ou mieux, pourquoi ¸ca rate !

Au laboratoire I3S (universit´e/CNRS) `a Sophia-Antipolis, equipe DOLPHIN, INRIA Lille Nord Europe.

(3)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Bonjour !

Enseignement : vous,

prj. scient. info, L2 ; intro Syst. complexes, L3 info ; r´eseaux, L3 ; syst. art. complexes, M1 info ; mod´elisation, M2 psy.

Contact : pour tout ce qui concerne l’enseignement

(corrections, absences, demande d’explication, compl´ements, orientation, ...)

[email protected] www.i3s.unice.fr/verel

bureau 426, Petit Valrose tel. 04.94.92.07.69.83

(4)

Bonjour !

Motivation pour cet enseignement :

enseigner les bases de la r´esolution de certains probl`emes par ethode algorithmique

enseigner la science informatique en tant que langue capable d’exprimer le traitement d’information

enseigner `a des ´etudiants dont le coeur de l’enseignement n’est pas seulement l’informatique

(5)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Information sur l’enseignement

but, objectifs, etc.

cf :www.i3s.unice.fr/verel

(6)

D´ eroulement d’un cours

1 Pr´esentation d’une r´ealisation en processing :

Apr`es l’envoi d’une de vos r´ealisations par email (publication sur page web)

Courte pr´esentation orale en CM (1 slide) x ´etudiants

2 Le coeur du cours

3 Synth`eseorale et ´ecrite :

A la fin du cours synth`ese orale des points importants Ecriture de cette synth`ese dans le forum jalon de l’enseignement

3 ´etudiants

(7)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Objectifs de la s´ eance 1

1 Connaˆıtre des algorithmes “historiques”

2 Connaˆıtre une d´efinition d’algorithme

3 Connaitre l’environnement Processing

4 Editer et commenter un code java avec processing

5 Savoir afficher un texte

6 Savoir afficher des formes graphiques simples Question principale du jour :

Qu’est-ce qu’un algorithme ?

(8)

Plan

1 Exemples d’algorithmes de l’histoire et du quotidien

2 Une tr`es courte histoire de l’algorithmique

3 Une courte histoire de l’informatique et des ordinateurs

4 D´efinitions d’Algorithme

5 Le langage Java

(9)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Algorithme d’Euclide (´ el´ ements, VII, -325/-265 av. JC)

Probl`eme

Trouver une ”unit´e de mesure” commune pour deux longueurs de segmentsi.e.trouver le pgcd deux nombres entiers.

Algorithme PGCD(a,b : entier) : entier d´ebut

sib = 0 alors PGCD = a sinon

c ← reste de la division de apar b PGCD = PGCD(b,c)

fin si

(10)

Ex´ ecution de l’algorithme PGCD(72, 34)

Poura= 72 etb = 34 1. PGCD(72, 34) 4. b 6= 0

7. c = 4

8. PGCD(34, 4) 4. b 6= 0

7. c = 2 8. PGCD(4, 2) 4. b 6= 0 7. c = 0 8. PGCD(2, 0) 4. b = 0 5. PGCD = 2

(11)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Crible d’Erastoth` ene (III

e

avant J.-C.)

Probl`eme

D´eterminer tous les nombres premiers inf´erieurs `a un nombre donn´e.

Algorithme Erastothene(N : entier) : tableau d’entiers ebut

Ecrire sous forme de tableau les nombres entiers compris entre 2 etN.

tant que carr´e du plus petit nombre non ray´e et non marqu´e est plus petit queN faire

Marquer le plus petit nombre du tableau non ray´e et non marqu´e Rayer du tableau tous les multiples de ce nombre

fin tant que

(12)

Crible d’Erastoth` ene (III

e

avant J.-C.)

Remarques

Possibilit´e d’am´elioration de l’algorithme :

−→ne pas ´ecrire les multiples de 2 et les multiples de 5.

Avantage :

plus rapide `a ´ecrire au d´ebut parce que moins de place utilis´e sur une feuille Inconv´enient :

plus long `a rayer : il faut r´efl´echir plus longtemps pour rayer les nombres ad´equates !

Version moderne de l’algorithme : Crible d’Atkin (1999)

R´ef´erence : A.O.L. Atkin, D.J. Bernstein, Prime sieves using binary quadratic forms, Math. Comp. 73 (1999), 1023-1030.

(13)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Multiplication ´ egyptienne

Probl`eme

Calculer le produit de 2 entiers

Algorithme MultiplicationEgyptienne(a,b: entier) : entier ebut

Ecrire la table des puissances de 2 inf´erieures ou ´egales au nombrea Ecrire la table des doubles du nombre b

tant que le nombrean’est pas nulfaire Cocher la plus grande puissance de 2 a Soutraire cette puissance de 2 du nombre a fin tant que

additionner les doubles du nombrebcorrespond aux puissances de 2 coch´es pr´ec´edemment

(14)

Tour de magie !

Choisissez un nombre entre 1 et 15.

(15)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Tour de magie !

9 14 10

15 8 13

12 11

(16)

Tour de magie !

15 3 11

13 9 5

7 1

(17)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Tour de magie !

6 14 13

12 4 5

15 7

(18)

Tour de magie !

2 3 6

7 10 11

14 15

(19)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Tour de magie !

Quelle est la couleur de votre nombre ?

...

(20)

Recherche d’un mot dans un dictionnaire

It´erativement

Algorithme rechercheIter(cible : mot) : liste de mots d´ebut

Lire premier mot du dictionnaire

tant quemot lu n’est pas le mot cible faire Lire le mot suivant

fin tant que

liste de mots : d´efinition du mot lu fin

On trouve le mot correct mais l’algorihme n’est pas tr`es efficace...

en moyenne, N/2 mots lus avec N la taille du dictionnnaire Il faut utiliser l’ordre lexicographique du dictionnaire et la m´ethode dichotomique (diviser pour r´egner)

(21)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Recherche d’un mot dans un dictionnaire

par dichotomie

Algorithme rechercheDicho(cible : mot) : liste de mots ebut

premierpremier mot du dictionnaire dernierdernier mot du dictionnaire Lire le mot m´edian entre premier et dernier tant quemot lu n’est pas le mot ciblefaire

simot cible est avant le mot lualors derniermot lu

sinon

premiermot lu fin si

Lire le mot m´edian entre premier et dernier fin tant que

liste de mots : d´efinition du mot lu

(22)

Indice de masse corporelle

Probl`eme

Donner un degr´e de corpulence bas´e sur l’indice de masse corporelle

Algorithme degreMasseCorporelle(T : nombre r´eel, M : nombre r´eel) : ebut

iM/T2 sii<20alors

ecrire( ”poids inf´erieur `a la normale”) sinon

si i<25alors ecrire( ”poids normal”) sinon

si i<30 alors

ecrire( ”surcharge pond´erale”) sinon

si i<40 alors ecrire( ”adiposit´e”) sinon

ecrire( ”ob´esit´e””) fin si

fin si fin si fin si fin

(23)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Bouilloire

Probl`eme

Concevoir une bouilloire pour faire bouillir de l’eau Je suppose qu’une bouilloire (´electrique) peut :

connaitre la temp´erature de l’eau T

connaitre et modifier la position de son interrupteur chauffer

Algorithme bouilloire( ) : ebut

tant quela prise est branch´eefaire

tant queinterrupteur est ON et T <100faire Chauffer

fin tant que

(24)

Recettes de cuisine

Probl`eme

Convevoir un (bon) gˆateau

Ingr´edients (pour 6 personnes) :

- 1 pˆate bris´ee - 150 g de sucre - 100 g de beurre fondu - 3 oeufs

- le jus de deux citrons

Pr´eparation :

. Pr´echauffer le four `a 200˚C.

. Abaisser la pˆate bris´ee.

. Battre les oeufs avec le sucre en poudre jusqu’`a l’obtention d’un m´elange mousseux.

. Ajouter le jus de citron.

. Ajouter le beurre fondu.

. Enfourner et laisser cuire environ 30 mn.

. La pr´eparation doit dorer.

(25)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Vos algorithmes quotidiens

En connaissez-vous d’autres ?

(26)

Vieille histoire

Descriptions exhaustives d’algorithmes :

d`es l’´epoque des Babyloniens (de -2000 av JC `a -300 av JC), Pour des calculs concernant le commerce et les impˆots.

(27)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Al-Khwarizmi (n´ e vers 780 - mort vers 850)

algorithme: vient du nom du math´ematicien perse du IXi`eme si`ecle Abu Djafar Muhammad ibn Musa al-Khwarizmi

mot algorisme : `a l’origine uniquement aux r`egles d’arithm´etique utilisant les chiffres indo-arabes num´erals Traduction en latin europ´een du nom Al-Khwarizmi’s en

“algorithme” au XVIIIi`eme si`ecle.

Evolution pour inclure toutes les proc´edures d´efinies pour r´esoudre un probl`eme ou accomplir une tˆache.

(28)

Quelques dates jusqu’en 1946

principale source : http ://histoire.info.online.fr/prehistoire.html

-3000 : P´eriode de l’empereur Chinois Fou-Hi dont le symbole magique, l’octogone `a trigramme contient les 8 premiers nombres repr´esent´es sous forme binaire par des traits interrompus ou non : 000 001 010 011 etc...

-500 : Apparition au Moyen Orient du premier ”outil” de calcul : l’abaque et le boulier.

1580 : John NAPIER invente les logarithmes.

1623 : Wilhelm Schickard invente ce qu’il appelle une horloge calculante. Elle calculait m´ecaniquement gr`ace `a des roues dent´ees et pouvait r´ealiser additions, soustractions,

multiplications et m´emorisation des r´esultats interm´ediaires.

La machine a rapidement sombr´e dans l’oubli car son inventeur habitait en Allemagne du Sud dans une r´egion ravag´ee par la guerre de 30 ans.

(29)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Quelques dates

1632 : L’Anglais Oughtred invente la R`egle `a calcul.

1642 : Pascal met au point, pour aider son p`ere collecteur des impˆots `a Rouen, la Pascaline qui pouvait traiter les additions et les soustractions.

1679 : Leibnitz d´ecouvre et met au point une arithm´etique binaire (et analyse les octogrammes de Fou-Hi). Il invente aussi en 1694 une machine `a calculer d´eriv´ee de la Pascaline mais capable de traiter les multiplications et divisions.

(30)

Quelques dates

1833 : Babbage : machine `a diff´erences puis une machine analytique qui contient les concepts de ce que sera

l’ordinateur moderne : unit´e de calcul, m´emoire, registre et entr´ee des donn´ees par carte perfor´ee.

1836 - 1838 : Les Anglais Edward Davy, William Looke et Charles Wheastone vont inventer et mettre au point le t´el´egraphe. Le peintre Am´ericain Samuel Morse invente le code qui porte son nom

1840 : Collaboratrice de Babbage, Ada Lovelace,

math´ematicienne, d´efinit le principe des it´erations successives dans l’ex´ecution d’une op´eration.

Cr´eatrice du mot algorithme.

(31)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Quelques dates

1876 : L’Am´ericain Graham Bell invente le t´el´ephone et fonde la compagnie Bell Telephone Company.

1884 : Herman Hollerith cr´ee une tabulatrice `a cartes perfor´ees (inspir´ee des m´etiers `a tisser de Jacquard) pour r´ealiser le recensement Am´ericain de 1890.

premi`ere machine `a traiter l’information.

1924 : La firme cr´ee par Herman Hollerith en 1896, Tabulating Machine Corporation, est renomm´ee en International Business Machine ou IBM.

1935 : IBM commercialise l’IBM 601, un calculateur `a relais utilisant des cartes perfor´ees capable de r´ealiser une

multiplication en une seconde.

(32)

Quelques dates

1937 :Alan Turing publie un document sur les nombres calculables. Il r´esolvait des probl`emes math´ematiques en utilisant une sorte d’ordinateur logique tr`es simple appel´e depuis Machine de Turing.

1938 : Th`ese de Shannon qui le premier fait le parall`ele entre les circuits ´electriques et l’alg`ebre Bool´eenne. d´efinition du chiffre binaire : bit (BInary digiT).

1938 : Cr´eation du Versuchmodell 1 ou Z1 par Konrad Zuse.

Il le met au point dans le salon de ses parents `a Berlin ! Il s’agit d’un ordinateur binaire programmable mais m´ecanique.

Il ne fonctionna jamais vraiment correctement.

(33)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Quelques dates

1939 : Konrad Zuse et un de ses amis Helmut Schreyer : deuxi`eme ordinateur, le Z2

remplacement partie des pi`eces m´ecaniques du Z1 par relais

´

electrom´ecaniques de t´el´ephone rachet´es d’occasion.

1940 : Pour d´ecrypter les messages de l’arm´ee Allemande, les Anglais mettent au point sur le site de Bletchley Park les calculateurs Robinson et Colossus sous la direction du math´ematicien Alan Turing.

1941 : Cr´eation du calculateur binaire ABC par John Atanasoff et Clifford Berry. La machine utilise des lampes et comporte une m´emoire et des circuits logiques.

m´emoire : 60 mots de 50 bits, fr´equence 60 Hz, 1 addition / s.

(34)

Quelques dates

1941 : Konrad Zuse, mobilis´e dans les usines d’aviation Henschel : Z3 (programme enregistr´e).

premier v´eritable ordinateur.

2600 relais, console pour l’op´erateur et d’un lecteur de bandes contenant les instructions `a ex´ecuter. stockage : 64 nombres de 22 bits.

4 additions par seconde et 1 multiplication en 4 secondes.

1943 : Cr´eation du ASCC Mark I (Automatic

Sequence-Controlled Calculator Mark I) `a Harvard par Howard Aiken et son ´equipe (avec le soutien d’IBM).

3000 relais, 800 km de cables

3 op´erations sur 23 chiffres par seconde.

Pas de sous programme, pas de branchement.

(35)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Quelques dates

1945 : Un insecte coinc´e dans les circuits bloque le

fonctionnement du calculateur Mark I. La math´ematicienne Grace Murray Hopper invente le mot BUG...

1945 :John Von Neuman : description d’ordinateur `a programme enregistr´e

EDVAC (Electronic Discrete Variable Automatic Computer).

1946 : Cr´eation de l’ENIAC (Electronic Numerical Integrator and Computer) par P. Eckert et J. Mauchly. La

programmation de ce calculateur s’effectue en recablant entre eux, ses diff´erents ´el´ements.

19000 tubes, 30 tonnes, 72m2 et consomme 140 kilowatts.

Horloge : 100 KHz. Vitesse : environ 330 multiplications par

(36)

G´ en´ erations d’ordinateur

D´ecembre 1947 : Invention du transistor par William Bradford Shockley, Walter H. Brattain et John Bardeen dans les laboratoires de Bell Telephone.

−→ Deuxi`eme g´en´eration d’ordinateur

1958 : D´emonstration du premier circuit int´egr´e cr´ee par Texas Instruments.

−→ troisi`eme g´en´eration d’ordinateur

1965 : Gordon Moore ´ecrit que la complexit´e des circuits int´egr´es doublera tous les ans : ”Loi de Moore”.

1971 : l’`ere du microprocesseur (INTEL)

−→ Quatri`eme g´en´eration

(37)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

D´ efinition d’Ordinateur

En 1955, ”ordinateur” : traduction J. Perret de ” electronic data processing machine ” ( machine ´electronique de traitement des donn´ees ).

−→ce que beaucoups de langues nomme “calculateur” (computer)

D´efinition Acad´emie fran¸caise de 1967

Une machine automatique qui permet d’effectuer, dans le cadre de programmes de structure pr´e-´etablis, des ensembles d’op´erations arithm´etiques et logiques `a des fins scientifiques, administratives ou comptables.

(38)

D´ efinition informatique

En 1962, Philippe Dreyfus employa le mot informatique pour d´efinir letraitement automatique de l’information.

Maintenant ce mot est employ´e dans beaucoup de langues (hors anglaise)

−→Informatique : compos´e des 2 motsinformation et automatique.

D´efinition Acad´emie francaise de 1967 (officialisation)

Science du traitement rationnel, notamment `a l’aide de machines automatiques, de l’information, consid´er´ee comme le support de connaissances dans les domaines scientifique, ´economique et social.

(39)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Retour sur les exemples

Quels sont les points communs entre tous ces “algorithmes” ? algorithme d’Euclide

algorithme d’Erastoth`ene multiplication ´egyptienne degr´e de masse corporelle recette de cuisine

(40)

Caract´ eristiques d’algorithme

esolution d’un probl`eme

algorithme d’Euclide :

Trouver une unit´e commune `a deux longueurs algorithme d’Erastoth`ene :

Trouver les nombres premiers plus petit que N Multiplication ´egyptienne :

Calculer le produit de deux nombres degr´e de masse corporelle :

Donner le degr´e de corpulence bas´e sur l’IMC recette de cuisine :

Confectionner le gˆateaux de vos rˆeves

(41)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Caract´ eristiques d’algorithme

esolution de mani`ere op´eratoire

algorithme d’Euclide :

“Calculer le quotient de a par b”

algorithme d’Erastoth`ene :

“rayer les multiples de ...”

Multiplication ´egyptienne :

“a←E[a/2]”

degr´e de masse corporelle :

“Si i ¡ 25 alors ...”

recette de cuisine :

“M´elanger les oeufs avec ...”

(42)

Caract´ eristiques d’algorithme

Enonc´e dans un langage pr´ecis

Langage le plus formelle : s´emantique op´erationel, axiomatique, ...

algorithme d’Euclide :

“quotient”

algorithme d’Erastoth`ene :

“rayer les multiples de ...”

Multiplication ´egyptienne :

“a←E[a/2]”

degr´e de masse corporelle :

“Si i ¡ 25 alors ...”

recette de cuisine :

“M´elanger les oeufs avec ...”

(43)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Caract´ eristiques d’algorithme

Donn´ees / informations en entr´ee

algorithme d’Euclide : les deux nombres a et b algorithme d’Erastoth`ene : les nombres entiers

Multiplication ´egyptienne : les deux op´erandes

degr´e de masse corporelle : le poids et la taille

recette de cuisine : Les ingr´edients

(44)

Caract´ eristiques d’algorithme

Donn´ees / informations en sortie

algorithme d’Euclide : le PGCD

algorithme d’Erastoth`ene :

les nombres premiers plus petits que N Multiplication ´egyptienne :

le produit des nombres degr´e de masse corporelle : un classement

recette de cuisine : un gˆateau au citron !

(45)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Caract´ eristiques d’algorithme

S’arrˆete en temps fini

algorithme d’Euclide : au plus max(a,b) ? algorithme d’Erastoth`ene : au plus √

NN?

Multiplication ´egyptienne : au plus log(a) ?

degr´e de masse corporelle : 5 ou 6 op´erations

recette de cuisine : 2h...

(46)

Tentatives de d´ efinitions

d´efinition un peu courte

Un algorithme ´enonce une r´esolution sous la forme d’une s´erie d’op´erations `a effectuer.

d´efinition (dictionnaire canadien)

Formule ou ensemble d’´etapes qu’on applique pour r´esoudre un probl`eme en particulier. Un algorithme doit avoir un ensemble de r`egles sans ambigu¨ıt´e et un point limite bien d´efini

(47)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Tentatives de d´ efinitions

d´efinition (Wikipedia 2010)

Un algorithme est un moyen pour un humain de pr´esenter la r´esolution par calcul d’un probl`eme `a une autre personne physique (un autre humain) ou virtuelle (un calculateur). En effet, un algorithme est un ´enonc´e dans un langage bien d´efini d’une suite d’op´erations permettant de r´esoudre par calcul un probl`eme.

d´efinition satisfaisante

Un algorithme est un ensemble fini d’instructions correctement d´efinis qui a pour but la r´esolution d’une tˆache `a partir d’un ´etat initial et se terminant sur un ´etat final bien d´efini.

(48)

Tentatives de d´ efinitions, une derni` ere

D´efinition (”complexit´e et algorithmique avanc´ee”, Ivan Lavall´e) Un algorithme y est vu comme une suite finie de r´egles `a appliquer dans un ordre d´etermin´e `a un nombre fini de donnn´ees pour arriver, en un nombre fini d’´etapes, `a un certain r´esultat, et cela ind´ependamment des donn´ees.

(49)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Vers une d´ efinition formelle

−→Il n’existe pas une d´efinition formelle admise par tous.

Premi`eres formalisations :

Alan Turing (1936) : un algorithme est ce qui ex´ecutable `a partir d’une machine de Turing.

Alonzo Church (lambda calculus) : tout calcul est r´ealisable `a l’aide d’un algorithme ex´ecuter par un ordinateur (avec suffisamment de temps et d’espace)

(50)

ApplicationSSSS

Cryptographie (paiement s´ecuris´e, t´el´ephone portable, connections internet, etc)

Compression d’images (dvd, mpeg4, etc), de sons (mp3, etc) internet (moteur de recherche,...)

gps (tracer de route, ...)

organiser son temps, son travail jeux

probl`emes industriels (conception automatis´e ou assister...) la cuisine facile !

r´esolution d’´equations (communications num´eriques, ...) intelligence artificielle (optimisation, apprentissage automatique, ...)

(51)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Grands domaines d’applications

Impˆots, l’administration public, etc.

Commerce, la finance, l’administration priv´ee, etc.

Calcul scientifique

Loisirs : musique, vid´eo, jeux, etc.

Communication : r´eseaux internet, mobile, communication satellite, etc.

(52)

Langages de programmation

Un algorithme est un ´enonc´e g´en´erale qui peut s’exprimer dans un grand nombre de langages de programmation

Lorsqu’un algorithme est exprim´e dans un certain langage particulier,

on dit que l’onimpl´emente

ou que l’on codeun algorithme dans ce langage.

(53)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Classification des langages de programmation

On distingue plusieurs type de langage de programmation selon leurs propri´et´es :

langages imp´eratifs :

fortran, basic, pascal, bash, C, maple, php, javascript langage fonctionnel :

lisp, scheme, caml langage orient´e objets : eiffel, C++, java, php5 ....

Les langages actuels tendent `a combiner toutes les approches de

(54)

Langage Java et syst` eme Processing

Langage Java : langage orient´e Objet Syst`eme Processing :

simplification de Java,

interface entre utilisateur et java, Environnement de programmation

(55)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Syst` eme Processing

Cr´e´e au MIT (Boston, USA) pour introduire les concepts de base de la programmation dans le contexte des arts visuels (artistes, Web).

Id´ee : immersion rapide dans les programmes graphiques, l’Art Num´erique et la simulation d’exp´eriences physiques !...

Environnement graphique mis en avant

(56)

Installation, configuration

Un cours assez complet orient´e ”non informaticien” : http://www.ecole-art-aix.fr/rubrique81.html Le cours 02 concernent l’installation

(57)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Affichage de texte

Sans retour `a la ligne : print("You know what ?");

Avec retour `a la ligne : println("I’m happy.");

Attention !les instructions se terminent par un point virgule ;

(58)

Ecrire un commentaire

Les commentaires sont des lignes non interpr´et´ees par l’ordinateur

Importance capitale pour la lisibilit´e de votre programme Importance capitale pour communiquer comment fonctionne votre programme

Je Veuxet j’Exige des commentaires !

// dessin principal // fin de la boucle

(59)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Graphisme : couleur de fond

background(r, v, b) ;

o`u r, v et b sont des entiers entre 0 et 255 donnant le niveau de rouge, vert et bleu.

(60)

Graphisme : Dimension de la fenˆ etre

pixel (picture element) : petit rectangle ´el´ementaire assimil´e `a un ”point”

un ´ecran 1024x768 : signifie qu’il y a 1024 pixels en largeur et 768 pixels en hauteur

R´eglage de la taille de la fenˆetre graphique : size(largeur, hauteur) ;

(61)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Graphisme en vrac

point(x, y) ;

line(x1, y1, x2, y2) ;

rect(x, y, largeur, hauteur) ; ellipse(x, y, largeur, hauteur) ;

(62)

Synth` ese du jour

Aujourd’hui nous ´ecoutons...

...

(63)

Exemples d’algorithmes de l’histoire et du quotidien Une tr`es courte histoire de l’algorithmique Une courte histoire de l’informatique et des ordinateurs efinitions d’Algorithme Le langage Java

Travail pour la semaine prochaine

Lire et apprendre le cours Pr´eparer le TP

Combien d’´etag`eres sont consacr´ees `a la programmation en JAVA `a la BU ?

Choisir un (des) livre(s) qui vous semble en rapport avec cet enseignement

Trouver au moins un site web en rapport avec l’enseignement Installer Processing sur votre ordinateur si vous en avez un

Références

Documents relatifs

On peut créer des tableaux contenant des variables de tous types : tableaux de numériques, bien sûr, mais aussi tableaux de caractères, tableaux de booléens, tableaux de tout ce

valeurs initiales des variables en param` etre : celles donn´ ees effectivement en ex´ ecutant l’algorithme (passage par valeur) impossible de modifier la valeur d’une variable

les [] : indique que la variable est de type tableau Toutes les valeurs des cases du tableau sont donn´ ees en

M´ ethodes principales de g´ en´ erateurs de nombres al´ eatoires : A l’aide d’un syst` eme physique dont l’´ etat est al´ eatoire : Valeur pr´ ecise d’une r´

On voudrait dessiner une s´ erie de cercle dont les abscisses et les ordonn´ ees sont contenus dans des tableaux.

Savoir utiliser un h´ eritage simple entre classes en Processing Savoir utiliser la classe ArrayList?. Comment h´ eriter sans

Recherche dichotomique d’un ´ el´ ement dans un tableau Question principale du jour :.. Comment ´ ecrire ce que l’on ne connait pas

Vous pouvez utiliser cette commande dans le corps de votre document pour ins´ erer le contenu d’un autre fichier source.. Remarquez que L A TEX va sauter une page pour traiter