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



Documents pareils
Algorithme. Table des matières

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

Représentation d un entier en base b

Chapitre 1 I:\ Soyez courageux!

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Cours 1 : Qu est-ce que la programmation?

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

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Une version javascript sera disponible directement dans le cours prochainement.

Informatique Générale

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Représentation des Nombres

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel

V- Manipulations de nombres en binaire

Licence Sciences et Technologies Examen janvier 2010

Présentation du cours

Codage d information. Codage d information : -Définition-

Rappels sur les suites - Algorithme

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

Projet Matlab : un logiciel de cryptage

Conventions d écriture et outils de mise au point

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

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

TP 1. Prise en main du langage Python


Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Conversion d un entier. Méthode par soustraction

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

Python - introduction à la programmation et calcul scientifique

OPTION SCIENCES BELLE-ISLE-EN-TERRE

Logiciel de Base. I. Représentation des nombres

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Évaluation et implémentation des langages

Chapitre 10 Arithmétique réelle

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

Le graphisme et l écriture, en lien avec les apprentissages en maternelle

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

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

I. LE CAS CHOISI PROBLEMATIQUE

Introduction à NetCDF

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Les opérations binaires

Complément d information concernant la fiche de concordance

Puissances d un nombre relatif

Technologie 9 e année (ébauche)

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Le chiffre est le signe, le nombre est la valeur.

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

Le système d évaluation par contrat de confiance (EPCC) *

TÉMOIGNAGES de participantes et de participants dans des groupes d alphabétisation populaire

Cours d Informatique

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

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

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Cours Informatique 1. Monsieur SADOUNI Salheddine

Procédure appropriée pour éditer les diagrammes avec ECM Titanium

Chap III : Les tableaux

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

L informatique en BCPST

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

Les nombres entiers. Durée suggérée: 3 semaines

Initiation. àl algorithmique et à la programmation. en C

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Éditorial. Tangente ÉDUCATION. Scratch, AlgoBox, Python. Trimestriel - n 15 - janvier 2011 Numéro spécial 16 activités TICE pour le lycée

Génie Industriel et Maintenance

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

L informatique comme discipline au gymnase. Renato Renner Institut für Theoretische Physik ETH Zürich

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

a) b)

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

Introduction à MATLAB R

Initiation à la programmation en Python

La philosophie Ludi. recréer cet esprit chaleureux et amical afin de faire passer des bons moments à ses internautes autour d une même passion.

1 Introduction au codage

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

B = A = B = A = B = A = B = A = Recopier sur la copie chaque expression numérique et la réponse exacte. Réponse A Réponse B Réponse C Solution

Informatique et sciences du numérique

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

PLAN DE COURS. Reconnaître le rôle des mathématiques ou de l informatique dans la société contemporaine (0011)

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

INFO 2 : Traitement des images

Conférence sur les microcontroleurs.

RÉFLÉCHIR AUX ENJEUX DU CRÉDIT

Découverte de l ordinateur. Partie matérielle

Représentation d un nombre en machine, erreurs d arrondis

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

TP, première séquence d exercices.

Algorithmique avec Algobox

Primaire. analyse a priori. Lucie Passaplan et Sébastien Toninato 1

Le codage informatique

Le langage C. Séance n 4

Transcription:

Introduction à l algorithmique et à la programmation (Info 2) Premier cours: présentation du module, codage et définition de l algorithmique Matthieu Puigt IUT du Littoral Côte d Opale DUT Génie Industriel et Maintenance matthieu.puigt@univ-littoral.fr http://www-lisic.univ-littoral.fr/~puigt/. Retrouvez ce document sur : http://www-lisic.univ-littoral.fr/~puigt/teaching.html Année universitaire 2014 2014 M. Puigt Info 2 Cours 1 2014 2015 1

Info 2, qu est-ce que c est? Il n y a que deux sortes de langages de programmation : ceux pour lesquels les gens râlent toujours et ceux que personne n utilise. Bjarne Stroustrup Objectifs Analyser et créer des algorithmes Traduire un algorithme simple en langage de programmation Comment y parvenir? Cours en ligne :http://www.pise.info/algo/ et www-lisic.univ-littoral.fr/~puigt/teaching.html Nombreux exercices corrigés sur pise.info/algo Suivi des progrès (quiz, devoirs maisons, contrôles, DS) Consultations (sur RDV) Travail personnel (préparation des Cours/TD/TP, participation active durant le cours, relecture des cours après les séances, questions à poser par mail ou pendant une consultation) M. Puigt Info 2 Cours 1 2014 2015 2

Un mot sur le langage de programmation De nombreux langages existent : les classiques (C/C++, Java, Python, Matlab, R, etc) les langages pour les enfants (Scratch, Alice, etc) Ici, nous allons programmer un Microcontrôleur Arduino. Pourquoi? L arduino permet de facilement brancher toute sorte d équipement (capteurs, moteurs, etc) et de rapidement obtenir "quelque chose de cool" Il est open-source (les plans sont en ligne) et jouit d une communauté internationale très active Son langage est proche du C mais simple à appréhender On va apprendre à programmer en l utilisant pour simuler le fonctionnement de (parties de) machines industrielles M. Puigt Info 2 Cours 1 2014 2015 3

D.I.Y "Il n y a pas de mathématiques sans larme." André Lichnérowicz Mon premier algorithme : 1 Je rencontre un problème à résoudre 2 Je cherche la solution 3 Si je n y arrive pas au bout de quelques minutes, je reviens au point 2. 4 Si je n y arrive pas au bout d un quart d heure, je demande des indices au prof ou à mes camarades de promotion. Je reviens au point 2. 5 Si, malgré toute cette aide et après être tombé de fatigue, je n y arrive toujours pas, j écoute la correction en classe et le soir venu, je reviens au point 1. "En essayant continuellement, on finit par réussir. Donc plus ça rate, plus on a de chance que ça marche", maxime Shadok M. Puigt Info 2 Cours 1 2014 2015 4

Evaluations et notes Vous aurez tous les outils en main pour réussir ce module. En contrepartie, je vous demanderai de beaucoup travailler cette matière, qui vous fournira des outils utiles dans toute votre vie professionnelle. Plagiat Quiz 10% Projet et/ou et devoirs maisons 20% Préparation + Compte-rendus de TP 20% Devoir surveillé 50% INTERDIT : Je suis sans pitié pour les tricheurs! Je suis vraiment sans pitié pour les tricheurs... Et un brin sadique : attention, je dessine le plan des salles d examen... Même si vous n êtes pas pris pendant le contrôle, trop de similitudes dans les copies de voisins sera considérée comme de la triche punissant les dits-voisins) M. Puigt Info 2 Cours 1 2014 2015 5

Références bibliographiques Algorithmique : Christophe Darmangeat : Algorithmique et programmation pour non-matheux Cours complet avec exercices, corrigés et citations philosophiques, http://www.pise.info/algo/ Programmation avec Arduino : 1 Les livres de la BULCO : Tom Igoe : Making things talk, 2ème édition, présent à Saint-Omer Massimo Banzi : Démarrez avec Arduino : principes de base et premiers montages, ou en anglais : http://it-ebooks.info/book/1338/ Christian Tavernier : Arduino : maîtrisez sa programmation et ses cartes d interface (shields) Simon Monk : Arduino : les bases de la programmation Clemens Valens : Maîtrisez les microcontrôleurs à l aide d Arduino 2 Ressources en ligne (en anglais le plus souvent) : Sur le site officiel d Arduino (http://arduino.cc/) http://www.jeremyblum.com/portfolio/ arduino-tutorial-series/, cours utilisés par de plusieurs universités américaines, russes, etc http://fr.openclassrooms.com/sciences/cours/ arduino-pour-bien-commencer-en-electronique-et-en-programmation Et beaucoup, beaucoup d autres (notamment sur Facebook et Google plus)

Un dernier mot sur l attitude en classe Coupez votre téléphone... http://youtu.be/q9cbm18btj4 Soyez attentif. Préparez vos séances. Participez : il vaut mieux se tromper en classe que devant votre copie! M. Puigt Info 2 Cours 1 2014 2015 7

Ready? Steady? Go! On va commencer les choses sérieuses. M. Puigt Info 2 Cours 1 2014 2015 8

Le codage "Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres" Voir http://www.pise.info/algo/codage.htm Anonyme Des calculatrices améliorées Avec un ordinateur, on peut traiter des images, jouer, écouter de la musique, éditer un texte, etc Pourtant, un ordinateur n est qu une calculatrice améliorée qui traite des "données binaires" Comment sont représentées les données dans un ordinateur? Un peu d histoire Bâtons (homo sapiens, il y a 40000 ans) Nombres romains (introduction de V, X, L, etc) Nombres arabes (introduction des chiffres et de 0 notamment) M. Puigt Info 2 Cours 1 2014 2015 9

Les nombres décimaux Les plus utilisés 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9 Utilisés pour représenter n importe quel entier (par exemple 456) Comment cela fonctionne? Système de base, où chaque chiffre est multiplié par une puissance (selon la position du chiffre) du nombre de chiffres de la base (ici 10) : 456 = 4 position 10 base 2 + 5 10 1 + 6 10 0 = 400 + 50 + 6 La position de chaque chiffre est importante! 654 = 6 10 2 + 5 10 1 + 4 10 0 = 600 + 50 + 4 M. Puigt Info 2 Cours 1 2014 2015 10

Les autres bases Les babyloniens : base 60 Les mayas : base 20 Les shadoks : base 4 (http://youtu.be/nm0cw6b1pma) Les ordinateurs : 1 bit 1b (ou bit en anglais) : base 2 (0 ou 1), dite binaire 1 nibble (même mot en anglais) : une collection de 4 bits. 1 octet 1o (ou byte en anglais 1B ) : une collection de 8 bits, ou 2 nibbles Exercice : écrire la suite d entiers de 0 à 16 en binaire Base hexadécimale base 16 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) Compact et simple à lire Facile de convertir les nombres décimaux à binaire ou hexadécimal et vice-versa. Conventions : rajouter "h" ou l indice 16. Par exemple : 5Fh ou 5F 16 Tout nombre hexadécimal dont le premier chiffre est une lettre est précédé d un 0 (par exemple : 0FEh) M. Puigt Info 2 Cours 1 2014 2015 11

Convertir un nombre décimal dans une autre base Comment faire? 1 Diviser le nombre par la base que vous voulez 2 Garder le reste de la division et diviser le quotient, devenant un nouveau dividende, par la base 3 Répéter l étape 2 jusqu à ce que le quotient de la division soit égal à zéro 4 Ecrire les restes successifs du dernier au premier Exemple : convertir un nombre en hexadécimal 39 = 16 2 + 7 2 = 16 0 + 2 Nombre hexadécimal : 27h Exercice : Convertir 43868 en hexadécimal puis en binaire Réponses : M. Puigt Info 2 Cours 1 2014 2015 12

Convertir un nombre décimal dans une autre base Comment faire? 1 Diviser le nombre par la base que vous voulez 2 Garder le reste de la division et diviser le quotient, devenant un nouveau dividende, par la base 3 Répéter l étape 2 jusqu à ce que le quotient de la division soit égal à zéro 4 Ecrire les restes successifs du dernier au premier Exemple : convertir un nombre en hexadécimal 39 = 16 2 + 7 2 = 16 0 + 2 Nombre hexadécimal : 27h Exercice : Convertir 43868 en hexadécimal puis en binaire Réponses : 1 0AB5Ch M. Puigt Info 2 Cours 1 2014 2015 12

Convertir un nombre décimal dans une autre base Comment faire? 1 Diviser le nombre par la base que vous voulez 2 Garder le reste de la division et diviser le quotient, devenant un nouveau dividende, par la base 3 Répéter l étape 2 jusqu à ce que le quotient de la division soit égal à zéro 4 Ecrire les restes successifs du dernier au premier Exemple : convertir un nombre en hexadécimal 39 = 16 2 + 7 2 = 16 0 + 2 Nombre hexadécimal : 27h Exercice : Convertir 43868 en hexadécimal puis en binaire Réponses : 1 0AB5Ch 2 1010101101011100b M. Puigt Info 2 Cours 1 2014 2015 12

Compter avec les doigts Un petit truc de geek pour impressionner vos amis 1 Nombres décimaux :) 2 Nombres binaires 3 Nombres hexadécimaux http://youtu.be/tzyvkvcvsa4 M. Puigt Info 2 Cours 1 2014 2015 13

Algorithmique : Què és això? (1) On rentre dans le cœur du sujet Voir http://www.pise.info/algo/introduction.htm. Définition Un algorithme est une suite d instructions simples permettant d obtenir un résultat espéré si elles sont correctement utilisées. Exemples : une recette, un mode d emploi, etc Contre-exemple : "débrouille-toi" n est pas un algorithme Algorithmique et maths Pas besoin d être bon en maths pour écrire de bons algorithmes mais les maths apportent : "l intuition" de la résolution du problème (qu on peut obtenir avec beaucoup d expérience) méthode et rigueur : chaque algorithme doit être vérifié méthodiquement M. Puigt Info 2 Cours 1 2014 2015 14

Algorithmique : Què és això? (2) ADN et algorithmes ADN : 4 éléments qui permettent la vie (selon leur nombre et leur position) Algorithmes : 4 instructions qui permettent de tout faire : 1 l affectation de variables 2 la lecture / écriture 3 les tests 4 les boucles Algorithmique et programmation Un algorithme est universel Un programme informatique est une traduction de l algorithme, dans un langage donné (avec ses particularités et ses limites) Analyser et comprendre un algorithme est donc très important! M. Puigt Info 2 Cours 1 2014 2015 15

Algorithmique : Què és això? (3) Ecrire un algorithme 1 Organigramme : simple, en apparence du moins (car vite illisible), et presque abandonné (car incite à programmation non-structurée à éviter) 2 Pseudo-code : série d instructions proche d un vrai langage de programmation, mais sans les problèmes de syntaxe Exécuter un algorithme Un ordinateur n est pas un objet "magique"... Il est juste beaucoup plus rapide que l homme pour exécuter une série de tâches basiques Vous devez donc vous muer en ordinateur pour faire "tourner" vos algorithmes. Une manière simple consiste à créer des tableaux dont chaque colonne contient une variable, une condition (tests / boucles), ou enfin ce qui apparaît sur l écran d ordinateur. Quand on teste un algorithme, on devient Terminator : pas de sentiment, pas de question, on n exécute que ce qui est écrit dans le pseudo-code (on remarque les erreurs et on progresse). M. Puigt Info 2 Cours 1 2014 2015 16

Algorithmique : Què és això? (3) Ecrire un algorithme 1 Organigramme : simple, en apparence du moins (car vite illisible), et presque abandonné (car incite à programmation non-structurée à éviter) 2 Pseudo-code : série d instructions proche d un vrai langage de programmation, mais sans les problèmes de syntaxe Un outil informatique pratique Algobox http://www.xm1math.net/algobox/ Langage proche du pseudo-code Libre, gratuit, avec un terminator dedans :) et à utiliser à la maison M. Puigt Info 2 Cours 1 2014 2015 16

Questions? Des questions? M. Puigt Info 2 Cours 1 2014 2015 17