Cours 1 : Qu est-ce que la programmation?



Documents pareils
Cours 1 : La compilation

Programmation C. Apprendre à développer des programmes simples dans le langage C

ACTIVITÉ DE PROGRAMMATION

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Machines virtuelles Cours 1 : Introduction

IV- Comment fonctionne un ordinateur?

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Architecture des ordinateurs

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application


1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Représentation d un entier en base b

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Introduction à l algorithmique et à la programmation (Info 2)

LES TOUT PREMIERS PAS

L informatique en BCPST

Quelques éléments de compilation en C et makefiles

Conventions d écriture et outils de mise au point

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

La mémoire. Un ordinateur. L'octet. Le bit

Prise en main rapide

Permis de conduire info

Guide des fonctions avancées de mywishtv

Cours Informatique 1. Monsieur SADOUNI Salheddine

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Évaluation et implémentation des langages

TP1. Outils Java Eléments de correction

Algorithme. Table des matières

Algorithmique et Programmation, IMA

Introduction à l informatique en BCPST

Programmation C++ (débutant)/instructions for, while et do...while

ASR1 TD7 : Un microprocesseur RISC 16 bits

Dragon Naturally Speaking 13

UE Programmation Impérative Licence 2ème Année

Logiciel Libre Cours 3 Fondements: Génie Logiciel

V- Manipulations de nombres en binaire

Chapitre I Notions de base et outils de travail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Entraînement au concours ACM-ICPC

Utiliser le site learningapps.org pour créer des activités interactives

Créer le schéma relationnel d une base de données ACCESS

TD : Codage des images

Environnements et Outils de Développement Cours 1 Introduction

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Exercices de dénombrement

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

TP, première séquence d exercices.

Eclipse atelier Java

Manuel Utilisateur Chariot odys.sante-lorraine.fr

Représentation des Nombres

TP1 - Prise en main de l environnement Unix.

ALGORITHMIQUE ET PROGRAMMATION En C

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Outils numériques collaboratifs

TP 1. Prise en main du langage Python

Notice de fonctionnement DVR H Méthode de Visionnage ESEENET

Traitement de données

Guide à destination des Conseillers pédagogiques pour accompagner la séance Groupe TICE 34

Éléments de programmation et introduction à Java

Chapitre 1 I:\ Soyez courageux!

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Rappels sur les suites - Algorithme

Programmes des classes préparatoires aux Grandes Ecoles

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

TP1 : Initiation à Java et Eclipse

Plan du cours. Historique du langage Nouveautés de Java 7

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Éléments d'architecture des ordinateurs

NAVIGATION SUR INTERNET EXPLORER

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

I00 Éléments d architecture

Généralités sur le Langage Java et éléments syntaxiques.

PG208, Projet n 3 : Serveur HTTP évolué

Qu est-ce qu une probabilité?

Windows 7 Système d exploitation. INF Outils bureautiques, logiciels et Internet

VidZone, qu est-ce que c est? INSTALLATION DE VidZone

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Poker. A rendre pour le 25 avril

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Dropbox : démarrage rapide

Bases de programmation. Cours 5. Structurer les données

Annexe : La Programmation Informatique

Itium XP. Guide Utilisateur

GPA770 Microélectronique appliquée Exercices série A

v Sygic, a.s. All rights reserverd. Manuel utilisateur

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

TP1 : Initiation à Java et Eclipse

CHAPITRE 3 : INTERNET

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Utilisation d un Tableau Numérique Interactif en Mathématiques

Boîte électronique. Découverte des principales fonctions d une messagerie électronique. (et les pièces jointes)

Préparation à l examen EFA en Macro

Transcription:

1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7

2/65 1. Sortez un appareil qui peut se rendre sur l internet (smartphone, ordinateur, tablette,...) ; 2. Si il n est pas connecté à internet, alors connectez-le ; 3. Ouvrez un navigateur à l adresse suivante : http://www.ip101.fr/quiz/1 4. Tant que le prof ne parle pas, ne faites rien. 5. Ecoutez. (Exécutez les instructions ci-dessus avec application, s il vous plaît.) (Pour vous connectez à Internet, utiliser le wifi up7d et votre compte ENT.)

3/65 Quiz 1 : Avez-vous déjà programmé?

4/65 Quiz 2 : Avez-vous déjà été programmé?

5/65 1. Sortez un appareil qui peut se rendre sur l internet (smartphone, ordinateur, tablette,...) ; 2. Si il n est pas connecté à internet, alors connectez-le ; 3. Ouvrez un navigateur à l adresse suivante : http://www.ip101.fr/quiz/1 4. Tant que le prof ne parle pas, ne faites rien. 5. Ecoutez. (Vous avez exécuté votre premier programme d IP1.)

/65 Qu est-ce qu un programme?

/65 Qu est-ce qu un programme? Définition : Programme Un programme est la représentation d une suite d instructions.

6/65 Qu est-ce qu un programme? Définition : Programme Un programme est la représentation d une suite d instructions. Cette définition pose question... Quelles instructions sont disponibles? Dans quel langage écrire le programme pour qu il n existe qu une seule façon de l interpréter?

7/65 La machine programmable Définition : Machine Une machine est un dispositif capable d interagir avec son environnement. À chaque machine, on associe l ensemble des actions qu elle peut effectuer. Cet ensemble est appelé jeu d instructions de la machine. Définition : Interprétation d un programme Interpréter un programme, c est (i) décoder la séquence d instructions représentée par ce programme et ; (ii) exécuter ces instructions. Définition : Machine programmable Une machine est programmable quand elle est capable d interpréter tout programme qui est une représentation bien formée d une séquence d instructions appartenant à son jeu d instructions.

Exemples d instructions 1. Calcule 6 7. 2. Modifie le secteur 0x00CAFE00 1 du disque dur. 3. Affiche la couleur #FF00FF sur le pixel (0, 1). 4. Calcule la somme des 10000 premiers nombres premiers. 5. Cherche Charlie sur la photo. 6. Apprends à parler en anglais. 8/65 1. Ceci est un nombre écrit en hexadécimal.

9/65 Quiz : Quelles sont les machines programmables?

10/65 L humain est-il une bonne machine programmable? Points faibles Lent dans l analyse et la communication de grosses quantités de données. Lent en calcul. S ennuie vite. N apprécie guère qu on l appelle une machine ou qu on le programme.... Points forts Efficace en prise de décision en présence d information partielle. Efficace en reconnaissance de motifs. Efficace en apprentissage. Efficace pour synthétiser des règles générales à partir d exemples....

11/65 Qu est-ce qu un ordinateur?

11/65 Qu est-ce qu un ordinateur?...1101010011110 001110101110... Entrées Processeur

11/65 Qu est-ce qu un ordinateur?...1101010011110 001110101110... Processeur Sorties

12/65 Quiz : A quelle vitesse calcule le processeur de votre smartphone?

3/65 Le jeu d instructions des ordinateurs Observons l intérieur de la machine... Regardons à l intérieur de la machine. Regardons à l intérieur d un programme. (Allons au cours PF1.)

13/65 Le jeu d instructions des ordinateurs Observons l intérieur de la machine... Regardons à l intérieur de la machine. Regardons à l intérieur d un programme. (Allons au cours PF1.)... et donc? L ordinateur est fait de circuits électroniques. L information numérique y est représentée de façon analogique : 1 si il y a du courant, 0 sinon. On dit que la représentation est binaire. Le programme est lui-même représenté en binaire dans la machine. Les instructions travaillent sur des informations codées en binaire. Les instructions sont essentiellement des opérations de calcul en arithmétique binaire et des commandes pour les périphériques de l ordinateur (clavier, mémoire, carte vidéo,... ).

14/65 Quiz : Qu est-ce qui est facile ou difficile pour un ordinateur?

15/65 Quiz : Savoir utiliser un ordinateur, est-ce savoir programmer?

16/65 Non Avec la souris, en cliquant par exemple sur les menus des interfaces utilisateurs des différents logiciels, on commande l ordinateur en lui donnant des instructions à exécuter les unes après les autres. Programmer suppose la description d un processus d automatisation, reproductible par une simple invocation un grand nombre de fois.

17/65 Quiz : Pour programmer, faut-il être un geek?

18/65

19/65 Savoir programmer est une compétence essentielle du scientifique (et même du non-scientifique).

19/65 Savoir programmer est une compétence essentielle du scientifique (et même du non-scientifique). Savoir programmer est une façon de penser. (et non pas un savoir-faire technologique)

19/65 Savoir programmer est une compétence essentielle du scientifique (et même du non-scientifique). Savoir programmer est une façon de penser. (et non pas un savoir-faire technologique) Savoir programmer, vous verrez, c est facile! (en commençant progressivement)

0/65 Objectifs du cours Savoir écrire un programme simple formé de séquence d instructions, d instructions conditionnelles, de boucles, de fonctions et de procédures.

0/65 Objectifs du cours Savoir écrire un programme simple formé de séquence d instructions, d instructions conditionnelles, de boucles, de fonctions et de procédures. Manipuler des données de nature diverse comme les entiers, les chaînes de caractères, les tableaux, les images,...

0/65 Objectifs du cours Savoir écrire un programme simple formé de séquence d instructions, d instructions conditionnelles, de boucles, de fonctions et de procédures. Manipuler des données de nature diverse comme les entiers, les chaînes de caractères, les tableaux, les images,... Comprendre ce que produit l exécution d un programme (simple).

0/65 Objectifs du cours Savoir écrire un programme simple formé de séquence d instructions, d instructions conditionnelles, de boucles, de fonctions et de procédures. Manipuler des données de nature diverse comme les entiers, les chaînes de caractères, les tableaux, les images,... Comprendre ce que produit l exécution d un programme (simple). Savoir trouver une erreur dans un programme (simple), et la corriger.

21/65 Une équipe pédagogique et il en manque beaucoup...

22/65 Fonctionnement d IP1 http://www.ip101.fr Séances d interaction pédagogique Un cours d amphi toutes les deux semaines. Un cours/travaux-dirigés par semaine. Deux séances de travaux pratiques par semaine. Une séance de soutien par semaine. Une semaine pour une seconde chance pendant la pause de la Toussaint. Travail personnel Allez à tous les cours, soyez attentifs et actifs! Travaillez chez vous! (au moins 3 heures par semaine) Programmez le plus souvent possible grâce au site http://www.hackojo.org

23/65 L amphi L amphi présente les concepts de la programmation. Comment? 1. Qu est-ce que la programmation? 2. Comment construire un programme? 3. Qu est-ce qu un programme qui calcule bien? 4. Qu est-ce qu un programme qui calcule vite? 5. À quoi s intéresse l Informatique? Évaluation Un partiel, un examen de première session, un examen de seconde session. Un tiers des points porte sur le contenu du cours (non vu en cours/td)!

24/65 Le cours/td Le cours/td applique les concepts du cours et vous aide à les maîtriser. Comment? Une partie cours avec des exercices corrigés par l enseignant. Une partie Do It Yourself qui sert à vous préparer de façon autonome à l examen. (Mais vous pouvez poser des questions sur ces exercices à l enseignant.) Évaluation Un contrôle continu.

25/65 Les travaux pratiques Les travaux pratiques vous aide à devenir des programmeurs Comment? Des exercices corrigés automatiquement en ligne sur le Dojo. Des enseignants qui répondent à vos questions de programmation et d usage des logiciels utilisés dans le cours. Évaluation Un contrôle continu, des examens sur machine.

26/65 Le soutien Le soutien vous permet de revenir sur des notions que vous trouvez difficiles. Comment? Votre chargé de cours/td vous conseillera d aller en soutien en cas de petit décrochage. Une séance de deux heures par semaine de soutien (Arnaud Sangnier). Une semaine de programmation de deux heures par jour (Inès Klimann) pendant la pause de la Toussaint. Programmation en Scratch d un jeu vidéo : https://scratch.mit.edu/projects/75303646/

27/65 Evaluation CC = TD+TP 2 Examen = max(examen 1, Partiel+Examen1 2 ) Session 1 = 3 Examen+CC 4 Session 2 = max(examen 2, 3 Examen2+CC 4 )

28/65 Le prof a dit : «Le programme est lui-même représenté en binaire dans la machine.»

28/65 Le prof a dit : «Le programme est lui-même représenté en binaire dans la machine.» Ce langage de représentation est appelé le langage machine.

28/65 Le prof a dit : «Le programme est lui-même représenté en binaire dans la machine.» Ce langage de représentation est appelé le langage machine. Comment écrire des programmes en langage machine?

29/65 La compilation Compilateur 01101001011011100 00111010101001010 10111010101011010 10101101011101110 01010101010111110 01101010101001010 11010101010101010 2. Il est traduit en langage machine. Processeur 1. On écrit un programme. 3. Il est interprété par un processeur.

30/65 Une question étrange? Peut-on écrire un compilateur dans le langage qu il compile?

31/65 Que se passe-t-il pendant l exécution d un programme? 01101001011011100 00111010101001010 10111010101011010 10101101011101110 01010101010111110 01101010101001010 11010101010101010 01101001011010000 11101010100101010 11101010101101010 10110101110111001 01010101011111001 10101010100101011 01010101010101010 01101000110011100 00111010101001010 10111010101011010 10101101011101110 01010101010111110 01101010101001010 11010101010101010 Processeur Processeur Processeur

32/65 Qu est-ce qu un langage de programmation? Définition Un langage de programmation est un langage artificiel dont la syntaxe est spécifiée par une grammaire formelle et par une sémantique telle que chaque programme est univoque. Remarques Généralement, les langages de programmation sont écrits et lus par des humains. Ils sont donc tout autant des langages support du raisonnement sur un processus de calcul que des langages pour programmer une machine. Il existe des dizaines de milliers de langages de programmation.

3/65 Le langage d IP1 Nous allons étudier un sous-ensemble de Java.

33/65 Le langage d IP1 Remarques Nous allons étudier un sous-ensemble de Java. Java est le langage orienté objet le plus utilisé. Il a été créé dans les années 90 par l entreprise américaine SUN.

33/65 Le langage d IP1 Remarques Nous allons étudier un sous-ensemble de Java. Java est le langage orienté objet le plus utilisé. Il a été créé dans les années 90 par l entreprise américaine SUN. Nous n utiliserons qu une toute petite partie du langage appelé sous-langage procédural. C est un langage que vous retrouverez dans d autres langages de programmation.

33/65 Le langage d IP1 Nous allons étudier un sous-ensemble de Java. Remarques Java est le langage orienté objet le plus utilisé. Il a été créé dans les années 90 par l entreprise américaine SUN. Nous n utiliserons qu une toute petite partie du langage appelé sous-langage procédural. C est un langage que vous retrouverez dans d autres langages de programmation. On peut utiliser ce sous-langage pour : décrire des calculs arithmétiques ou sur des tableaux de données. écrire et lire dans des variables, boucler sur certaines instructions, exécuter des instructions plutôt que d autres en fonction des entrées. créer des procédures et les appeler.

34/65 Un premier programme pour notre robot avance ( ) ;

35/65 Les séquences d instructions On enchaîne plusieurs instructions en les écrivant les unes à la suite des autres.

36/65 Un second programme pour notre robot avance ( ) ; t o u r n e ( 9 0 ) ; avance ( ) ; t o u r n e ( 90);

37/65 Comme pour une calculatrice En fait, vous avez tous déjà utilisé un langage de programmation : celui des expressions arithmétiques de vos calculatrices. Java permet aussi de faire des calculs arithmétiques. Seulement, la plupart des nombres qu on manipule en Java sont bornés. Par exemple, l ensemble de tous les entiers compris entre 2147483648 (= 2 31 ) et 2147483647 (= 2 31 1) est appelé le type int.

38/65 Quiz : D après vous, qu arrive-t-il quand on dépasse les bornes pendant un calcul sur un entier borné?

39/65 Un troisième programme pour notre robot t o u r n e ((90 + 90) 2 / 4 ) ;

40/65 Utilisation de la mémoire Les ordinateurs ont des mémoires qui leur permettent de stocker des informations, plus ou moins temporairement. Le langage Java permet de déclarer des zones mémoires, appelées variables, en leur donnant un type, un nom et une valeur initiale.

41/65 Un quatrième programme pour notre robot i n t gauche = 4 5 ; t o u r n e ( gauche 2 ) ;

42/65 Les instructions conditionnelles Les programmes doivent agir en fonction de leur entrée. Les instructions conditionnelles sont formées d une condition, d instructions à exécuter si la condition est vraie et d instructions à exécuter si la condition fausse.

43/65 Un cinquième programme pour notre robot i f ( c o u l e u r _ e s t ( rouge ) ) { t o u r n e ( gauche ) ; } e l s e { t o u r n e ( d r o i t e ) ; }

44/65 Les boucles Les ordinateurs ne s ennuient pas. On peut les faire boucler des milliards de fois sur seulement quelques instructions sans que cela pose problème. Il existe deux types de boucles : 1. Les boucles de répétitions bornées, les boucles for. 2. Les boucles non bornées, les boucles while.

45/65 Un sixième programme pour notre robot f o r ( i n t i = 0 ; i < 1 0 ; i ++) { avance ( ) ; }

46/65 Un septième programme pour notre robot while ( c o u l e u r _ e s t ( b l a n c ) ) { t o u r n e ( 1 ) ; }

7/65 Les ordinateurs servent à résoudre des problèmes complexes Aller sur la Lune. Faire fonctionner Internet. Calculer des images de synthèse.... Pour résoudre ces problèmes, on les décompose en problèmes un peu moins complexes, que l on décompose en problèmes encore un peu moins complexes, et ainsi de suite, jusqu à obtenir des problèmes très simples.

48/65 Comme avec les LEGOs, on construit des briques et les réutilise! Un logiciel, c est un ensemble de briques qui résout un problème. En programmation, ces briques sont appelées des fonctions ou procédures.

49/65 Quiz : Combien de lignes de codes dans Android?

50/65 Comment construire des logiciels? Programmons un système de navigation automatique!

1/65 Un problème complexe : un système de navigation Le bus doit aller chercher les enfants à leur arrêt. Il doit suivre les lignes blanches. En bleu est indiqué le temps nécessaire pour se rendre d une intersection à une autre. Comment mettre le moins de temps possible pour effectuer ce trajet? 1 4 2 2 3 7 1 4 5 5 2 6 2 1 3 1 7 8 9 1 4 4 3 5 10 11 12 1 4 4 3 13 14 15

52/65 Représentation des données du problème La carte 1 [ (.,.); (.,.); (2, 4); (.,.) ] 2 [ (1, 4); (.,.); (3, 2); (5, 7) ] 3 [ (2, 2); (.,.); (.,.); (6, 1) ] 4 [ (.,.); (.,.); (5, 5); (7, 2) ] 5 [ (4, 5); (2, 7); (6, 2); (8, 1) ] 6 [ (5, 2); (3, 1); (.,.); (.,.) ] 7 [ (.,.); (4, 2); (8, 3); (10, 1) ] 8 [ (7, 3); (5, 1); (9, 1); (11, 4) ] 9 [ (8, 1); (.,.); (.,.); (12, 4) ] 10 [ (.,.); (7, 1); (11, 3); (.,.) ] 11 [ (10, 3); (8, 4); (12, 5); (14, 1) ] 12 [ (11, 5); (9, 4); (15, 4); (.,.) ] 13 [ (.,.); (.,.); (14, 4); (.,.) ] 14 [ (13, 4); (11, 1); (15, 3); (.,.) ] 15 [ (14, 3); (12, 4); (.,.); (.,.) ] 1 4 2 2 3 7 1 4 5 5 2 6 2 1 7 3 8 1 9 1 4 4 3 5 10 11 12 1 4 4 3 13 14 15 L'itinéraire Un itinéraire de 1 à 9 : [ 1; 2; 5; 8; 9 ] Un autre itinéraire de 1 à 9 : [ 1; 2; 3; 6; 5; 8; 9 ] Un itinéraire de 5 à 15 : [ 5; 8; 9; 12; 15 ] Un autre itinéraire de 5 à 15 : [ 5; 4; 7; 10; 11; 14; 15 ]

3/65 Premier problème : Comment suivre un itinéraire? Notre robot sait aller à gauche, à droite ou tout droit. Comment suivre un itinéraire qui est une liste de numéros d intersection? Une idée?

54/65 Deux sous-problèmes 1. Aller d un point d intersection à un autre en suivant une direction donnée. 2. Choisir la bonne direction pour aller d un point A à un point (voisin) B.

55/65 Aller d un point à un autre en suivant une direction donnée while ( c o u l e u r _ e s t ( b l a n c ) c o u l e u r _ e s t ( n o i r ) ) { while ( c o u l e u r _ e s t ( b l a n c ) ) { avance ( ) ; } c h e r c h e _ b l a n c ( ) ; }

56/65 Quiz : Pensez-vous que le programme précédent a une erreur?

57/65 Aller d un point à un autre en suivant une direction donnée (corrigé) while ( c o u l e u r _ e s t ( b l a n c ) c o u l e u r _ e s t ( n o i r ) ) { while ( c o u l e u r _ e s t ( b l a n c ) ) { avance ( ) ; } cherche_non_noir ( ) ; }

Choisir la bonne direction 58/65

59/65 Trouver l itinéraire le plus rapide 1 4 2 2 3 7 1 4 5 5 2 6 2 1 3 1 7 8 9 1 4 4 3 5 10 11 12 1 4 4 3 13 14 15 Comment trouver le chemin le plus rapide du point 1 au point 7?

60/65 En essayant toutes les solutions... [1; 2; 3; 6; 5; 8; 9; 12; 15; 14; 11; 10; 7] 27 [1; 2; 5; 8; 9; 12; 15; 14; 11; 10; 7] 29 [1; 2; 3; 6; 5; 8; 9; 12; 11; 10; 7] 24 [1; 2; 5; 8; 9; 12; 11; 10; 7] 26 [1; 2; 3; 6; 5; 8; 11; 10; 7] 18 [1; 2; 5; 8; 11; 10; 7] 20 [1; 2; 3; 6; 5; 8; 7] 13 [1; 2; 5; 8; 7] 15 [1; 2; 3; 6; 5; 4; 7] 16 [1; 2; 5; 4; 7] 18 }10 chemins possibles du point 1 au point 7

61/65 Aïe! J ai fait quelques calculs... Nombre N d emplacements Nombre de chemin de la position 1 à N 15 26

61/65 Aïe! J ai fait quelques calculs... Nombre N d emplacements Nombre de chemin de la position 1 à N 15 26 25 5000

61/65 Aïe! J ai fait quelques calculs... Nombre N d emplacements Nombre de chemin de la position 1 à N 15 26 25 5000 36 1000000

61/65 Aïe! J ai fait quelques calculs... Nombre N d emplacements Nombre de chemin de la position 1 à N 15 26 25 5000 36 1000000 Pour la carte de Paris, il y a plus de chemins que d atomes dans l Univers!

61/65 Aïe! J ai fait quelques calculs... Nombre N d emplacements Nombre de chemin de la position 1 à N 15 26 25 5000 36 1000000 Pour la carte de Paris, il y a plus de chemins que d atomes dans l Univers! Peut-être qu il existe une meilleure façon de résoudre ce problème?

62/65 01 4 42 2 63 7 1 4 5 11 5 2 6 2 1 7 3 8 1 9 1 4 4 10 3 11 5 12 1 4 13 4 14 3 15 4 2 1 2 3 7 1 5 11 5 2 67 4 2 1 3 1 7 8 9 1 4 4 3 5 10 11 12 1 4 4 3 13 14 15 0 4 6 01 4 42 2 63 7 1 4 5 95 2 76 2 1 7 3 8 1 9 1 4 4 10 3 11 5 12 1 4 13 4 14 3 15 Le problème est résolu en 18 étapes seulement! 01 4 42 2 63 7 1 4 5 95 2 76 2 1 7 3 10 8 1 9 1 4 4 10 3 11 5 12 1 4 13 4 14 3 15 14 4 2 1 2 3 7 1 5 95 2 67 4 2 1 3 1 7 8 9 1 4 4 3 5 10 11 12 1 4 4 3 13 14 15 0 4 6 14 16 10 4 2 1 2 3 7 1 5 95 2 67 4 2 1 3 1 7 8 9 1 4 4 3 14 11 5 10 12 1 4 4 3 13 14 15 0 4 6 14 13 10 11 1 4 2 2 3 7 1 14 4 5 95 2 67 2 1... 13 7 3 10 8 1 11 9 1 4 4 14 10 3 14 11 5 15 12 1 4 13 4 14 3 15 0 4 6 19 15 18 L algorithme de Dijkstra

63/65 c l a s s H e l l o { p u b l i c s t a t i c void main ( S t r i n g [ ] argv ) { System. out. p r i n t l n ( " H e l l o IP1! " ) ; } } On compile grâce à la commande : % javac Hello.java On exécute grâce à la commande : % java Hello (Ces opérations n auront plus de secret pour vous après quelques TPs.)

64/65 À vous de jouer! Vos deux objectifs pour le partiel. 1. 25/09 : Savoir écrire un programme (maîtrise de la syntaxe). 2. 24/10 : Comprendre un programme (maîtrise de la sémantique).

65/65 Le premier défi Apprendre la syntaxe du langage de programmation... en sauvant une fourmi.