Introduction à la programmation
Transcription
Introduction à la programmation
Introduction à la programmation Séance 1 passer d'une idée à un programme informatique Séance 2 exemples de programmes, programmes complexes Séance 3 coût d'un algorithme, jeu du pendu Séance 4 trois algorithmes classiques Xavier Dupré http://www.xavierdupre.fr [email protected] Séance 1 : de l'idée au programme programe Plan : 1. un cas concret : former des couples ayant des goûts commun 1.1 comment fait-on ? 1.2 que comprend une machine ? 1.3 le faire faire par une machine 2. autre utilisation des informations collectées 2.1 statistique : combien d'élèves ont... 2.2 lien entre voie maths/éco et ... 3. à quoi sert l'informatique, où est-il utilisé ? 4. récapitulatif 1. cas concret : comment fait-on ? idée : former des couples de personnes semblables moyen : regrouper les personnes ayant des réponses similaires questions : écrire les réponses sur une feuille de papier suivi d'un pseudonyme 1. plus de 10 livres lus par an 2. plus de 10 films au cinéma 3. un ordinateur à la maison 4. aime les jeux vidéo 5. aime la science fiction 6. fille ou garçon 7. pensez-vous vous ennuyer jusqu'à la fin du cours 8. êtes-vous marié 9. voie éco / voie maths On échange ? 1. cas concret : comment fait-on ? qu'a-t-on fait : 1. on a formé des couples d'élèves ayant des goûts semblables 2. on a formé des couples d'élèves ayant un grand nombres de réponses communes 3. on cherche pour chaque élève un autre élève ayant le plus grand nombre de réponses communes découpage en éléments simples : 1. représentation d'une réponse : 0 ou 1 2. représentation de 9 réponses : 9 nombres 0 ou 1 successifs 3. calcul du nombre de réponses communes : somme des différences → c'est une distance 4. recherche de l'autre élève le plus proche : quel est l'élève qui minimise la distance 1. cas concret : comment fait-on ? cas concret : 3 élèves 1. Simplet : 2. Blanche Neige : 3. La sorcière : [0,0,0,1,1,1,0,0,0] [0,0,1,0,1,1,0,0,1] [1,1,1,1,1,1,1,1,1] matrice des distances Simplet Blanche Neige La sorcière Simplet 0 3 6 Blanche Neige 3 0 5 La sorcière 6 5 0 conclusion : tout le monde aime Blanche Neige ! Si A est le plus proche voisin de B, B est-il le plus proche voisin de A ? 1. cas concret : ce que comprend la machine cas concret : N élèves personne 1 : personne i : personne N: [0,0,0,1,1,1,0,0,0] ... [1,1,1,1,1,1,1,1,1] matrice des distances pour une personne i, la personne la plus proche est : - dont la distance à i est la plus petite - la personne j telle que la case (i,j) contient la plus petite valeur de la ligne i et vérifiant j différent de i comment fait-on pour trouver le minimum ? peut-on décomposer en actions simples telles que : - faire des additions - comparer deux valeurs - répéter la même opération n fois 1. cas concret : ce que comprend la machine deux étapes : 1. calculer la matrice des distances pour Blanche Neige – Simplet – La sorcière 2. trouver le plus proche voisin de Blanche Neige Simplet Blanche Neige La sorcière Simplet 0 3 6 Blanche Neige 3 0 5 La sorcière 6 5 0 1. Simplet : 2. Blanche Neige : 3. La sorcière : [0,0,0,1,1,1,0,0,0] [0,0,1,0,1,1,0,0,1] [1,1,1,1,1,1,1,1,1] distance entre Simplet et Blanche Neige somme12 = 0 pour toutes les réponses si réponse Simplet ≠ réponse Blanche Neige somme12 = somme12 + 1 distance entre Simplet et La sorcière ... somme13 = 0 pour toutes les réponses si réponse Simplet ≠ réponse Sorcière somme13 = somme13 + 1 1. cas concret : calcul des distances distance entre Simplet et Blanche Neige somme12 = 0 pour toutes les réponses si réponse Simplet ≠ réponse Blanche Neige somme12 = somme12 + 1 distance entre Simplet et La sorcière somme13 = 0 pour toutes les réponses si réponse Simplet ≠ réponse Sorcière somme13 = somme13 + 1 distance entre Blanche Neige et La sorcière somme23 = 0 pour toutes les réponses si réponse Blanche Neige ≠ réponse Sorcière somme23 = somme23 + 1 Simplet Blanche Neige La sorcière Simplet 0 Somme12 somme13 Blanche Neige Somme12 0 Somme23 La sorcière Somme13 Somme23 0 1. cas concret : le plus proche voisin seconde étape : trouver le plus proche voisin de Blanche Neige Simplet Blanche Neige La sorcière Simplet 0 Somme12 somme13 Blanche Neige Somme12 0 Somme23 La sorcière Somme13 Somme23 0 si somme12 < somme23 alors c'est Simplet sinon c'est la sorcière 1. cas concret : pour 3, c'est facile, pour N ? Avec 3 individus, le nombre d'opérations est humainement envisageable. Avec N individus, comment fait-on ? individu j le plus proche de i matrice des distances individu i réponse en TD Séance 2. autre utilisation 1 : de l'idée des auinformations programe De quoi dispose-t-on ? - pour chaque individu - un pseudonyme - 9 réponses binaires à 9 questions 1. plus de 10 livres lus par an 2. plus de 10 films au cinéma 3. un ordinateur à la maison 4. aime les jeux vidéo 5. aime la science fiction 6. fille ou garçon 7. pensez-vous vous ennuyer jusqu'à la fin du cours 8. êtes-vous marié 9. voie éco / voie maths Que peut-on en faire ? Séance 2. autre utilisation 1 : de l'idée des auinformations programe Que peut-on en faire ? Simple : - calculer la proportion de voie éco, voie maths - calculer la proportion de ceux qui lisent Moins simple : - comparer la proportion des filles qui lisent et des garçons qui lisent Encore moins simple - former des groupes d'élèves ayant des réponses communes Compliqué ? - deviner qui se cache derrière les pseudonymes en posant des questions (exemple demain)... Séance 2. calculer 1 : la deproportion l'idée au programe de ... les données pseudo A voie éco pseudo B voie maths pseudo C voie maths pseudo D voie éco pseudo E voie éco calcul de la proportion de voie éco prop = 0 si pseudo A a fait voie éco alors prop += 1/5 si pseudo B a fait voie éco alors prop += 1/5 si pseudo C a fait voie éco alors prop += 1/5 si pseudo D a fait voie éco alors prop += 1/5 si pseudo E a fait voie éco alors prop += 1/5 vrai vrai vrai résultat : prop = 3/5 pour N pseudo prop = 0 pour tous les pseudo i allant de 1 à N : si pseudo i a fait voie éco alors prop += 1/N Séance 3. à quoi1sert : del'informatique l'idée au programe L'informatique est aujourd'hui utilisé partout, cela sert à : 1- à effectuer des tâches inaccessibles à l'homme calculer - météo - calculs de résistance des matériaux - résolution d'équations, inversion d'une matrice 1000x1000 - trier 10000 titres de livres par ordre alphabétiques - recherche un mot dans plusieurs millions de pages internet - ... 2- à répéter la même opération autant de fois que nécessaire automatiser - envoyer un mail - à lire un chèque automatiquement - à envoyer de la publicité à plusieurs milliers de personnes - à reconnaître une plaque d'immatriculation (péage à Stockholm) - ... Séance 3. à quoi1sert : del'informatique l'idée au programe L'ordinateur se sait faire que des calculs : 1- l'ordinateur manipule des informations ou des données qu'il reçoit - un nombre partie description - un tableau, une liste - une matrice - un graphe (un arbre généalogique par exemple) - du texte - ... 2- et il en construit d'autres grâce à des algorithmes - multiplier un nombre partie action - rechercher le maximum dans un tableau - inverser une matrice - déterminer la descendance d'un individu - déterminer statistiquement l'auteur d'un texte - ... Séance 3. à quoi1sert : del'informatique l'idée au programe Branches de l'informatiques 1- stockage de l'information : base de données, fichiers, mp3, divX, zip... 2- communication : réseaux, internet, ... 3- calcul : prévision, reconnaissance, image de synthèses, trading, ... 4- représentation : via un écran, une imprimante, une carte son, via ce qu'on appelle un périphérique Séance 3. à quoi1sert : del'informatique l'idée au programe En finance - réception en temps réel des prix (Bloomberg, Reuters, ...) - stockage (base de données, SQL, ...) - calcul, des risques, prévisions, ... (Excel, C++, Matlab, Visual Basic) En économie - stockage de l'information (base de données, SQL) - estimation de modèles économiques (SAS, Excel, Visual Basic, Python, Matlab, C++) En statistique, actuariat - stockage de l'information (base de données, SQL, Oracle) - statistique descriptive (SAS, - estimation de modèles (SAS, C++, Python) Séance 4. récapitulatif 1 : de l'idée au programe L'informatique utilise des données de types variés - nombre - matrice - graphe, - texte, ... L'ordinateur manipule les données grâce à un algorithme. Cet algorithme est une longue liste de petites opérations qui sont de trois types : - un calcul (addition, mutliplication, soustraction, division) - une comparaison (ou test) < > == != <= >= si ce nombre vaut ceci alors je fais ceci s'il est plus grand que cela alors je fais cela - une répétition (ou boucle) : je répète N fois cette liste d'opérations ou je répète cette liste d'opérations tant qu'une certaine condition est vraie Séance 1 : de l'idée au programe fin retour sur les exemples de la séance