algorithme & langage de programmation

Documents pareils
Évaluation et implémentation des langages

Préparation à l examen EFA en Macro

Logiciel Libre Cours 2 Fondements: Programmation

Cours 1 : La compilation

Éléments de programmation et introduction à Java

Programmation Web. Madalina Croitoru IUT Montpellier

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles Cours 1 : Introduction

Chapitre 1 Qu est-ce qu une expression régulière?

Les Langages Informatiques

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

Rappels sur les suites - Algorithme

Cours d algorithmique pour la classe de 2nde

STAGE IREM 0- Premiers pas en Python

M Études et développement informatique

Cours d Algorithmique et de Langage C v 3.0

Cours de Programmation 2

Technologies Web avancées. ING1 SIGL Technologies Web avancées

Programmes des classes préparatoires aux Grandes Ecoles

Introduction aux Bases de Données Relationnelles Conclusion - 1

Chapitre 7. Récurrences

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

ALGORITHMIQUE ET PROGRAMMATION En C

Organigramme / Algorigramme Dossier élève 1 SI

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

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

M Études et développement informatique

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Informatique Machines à calculer en théorie et en pratique

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

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

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Cours Informatique Master STEP

2 Comment fonctionne un ordinateur, dans les grandes lignes

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

4.2 Unités d enseignement du M1

Optimisation de logiciels de modélisation sur centre de calcul

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

Initiation à la programmation en Python

INTRODUCTION À LA PROGRAMMATION PRATIQUE DU LANGAGE C. M. Le Gonidec

Architectures web/bases de données

Introduction à MATLAB R

Indications pour une progression au CM1 et au CM2

TP 1. Prise en main du langage Python

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

MIS 102 Initiation à l Informatique

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)

Sites web éducatifs et ressources en mathématiques

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

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

Comparer l intérêt simple et l intérêt composé

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

Cours 1 : Qu est-ce que la programmation?

Compilation (INF 564)

Éléments d'architecture des ordinateurs


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

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

L informatique en BCPST

Traduction des Langages : Le Compilateur Micro Java

Algorithmique I. Algorithmique I p.1/??

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

DIRECTEUR / CHEF DE PROJETS / CONSULTANT. «Project Management Institute PMP»

M Études et développement null informatique. R i. Appellations. Analyste cogniticien / cogniticienne informatique

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

S3CP. Socle commun de connaissances et de compétences professionnelles

Algorithme. Table des matières

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Introduction à l algorithmique et à la programmation M1102 CM n 3

Attaques applicatives

Langage de scripts : historique et définition

Dossier de presse. Août Le Grain de Web : le webmarketing à la portée de tous p 1. Témoignage client de Mélanie Robilliard p 2

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Compétences en fin de maternelle Comparer des quantités.

Logiciel de base. Première année ENSIMAG

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Analyse de sécurité de logiciels système par typage statique

Algorithmique et Programmation, IMA

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

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

Les structures. Chapitre 3

Présentation du langage et premières fonctions

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Le modèle standard, SPE (1/8)

Principes des langages de programmation INF 321. Eric Goubault

Initiation à l algorithmique

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

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Visual Paradigm Contraintes inter-associations

Panorama des solutions analytiques existantes


Projet de Semestre. Page Web Didactique de Visualisation d Algorithme. Université de Genève - semestre de printemps 2012

Lier Erlang avec d autres langages de programmation

CUEEP Département Mathématiques E 821 : Problèmes du premier degré 1/27

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

1 Recherche en table par balayage

Transcription:

algorithme & langage de programmation Philippe Marquet maison pour la science, 19 avril 2016

concepts de l informatique algorithme bien avant début de l informatique langage programme exprimé dans un langage information numériser = abstraire / représenter objets réels (math = manipuler des notions abstraites) 4 machine exécuter un algorithme écrit dans un langage qui traite de l information

algorithmique algorithme méthode de résolution de problèmes entre problème trier une liste de valeurs faire des crêpes et programme mon tri quicksort en Python qsort3.py ma f.meuse recette de crêpes véganes plusieurs algorithmes possibles pour un problème plusieurs programmes possibles pour un algorithme

résolution systématique algorithme = recette applicable mécaniquement suite d'actions / de manipulations précises, élémentaires à accomplir les unes après les autres Évacuer la pensée du calcul, afin de le rendre exécutable par une machine numérique Gérard Berry décomposition décomposer chaque action en actions élémentaires pour mieux les recombiner ensuite

procédé général rechercher le mot algorithme dans ce dictionnaire rechercher un mot dans un dictionnaire

ingrédients des algorithmes - 1 domaine des mathématiques, de l informatique nombres, matrices, équations représentation numérique, symbolique mais pas que! un algorithme de tri des valeurs, des listes une recette de crêpes des ingrédients, des instruments la recherche d un mot dans un dictionnaire... des mots, des dictionnaires, leurs pages

ingrédients des algorithmes - 2 combiner les opérations faire ci puis ça introduire des branchements si ceci alors cela utiliser des boucles ou des récursions répéter ceci autant de fois traiter la 1re puis traiter le reste s il existe 3 principes

coût complexité temps nécessaire pour résoudre le problème combien d opérations coût opérations élémentaires ordre de grandeur complexité fonction de la taille N des données en entrée complexité en moyenne, dans le pire des cas linéaire, quadratique, polynomial ordre N, carré de N exponentiel comparaison d algorithmes différents algorithmes de tri naïf quadratique / optimal n log(n)

problème algorithme algorithme programme programme exécution sur une machine

ordinateur = machine programmée ordinateur = machine universelle toutes les machines informatiques ne sont pas des ordinateurs universelle programmable expliciter à la machine ce qu elle doit faire programmable programme machine instruction machine LCFI1: subq movl jmp addl L2: cmpl jle call movq programmeur = humain exprimer un programme dans un langage de programmation $16, %rsp $0, -4(%rbp) L2 $1, -4(%rbp) $4942, -4(%rbp) L2 _getpid (%rax), %edx forall pixel in image { if pixel.luminosité() > 127 pixel.couleur(noir) else pixel.couleur(blanc) }

langage(s) informatique(s) langages de programmation autres langages langages de requêtes langages de description Algol APL ASP Assembleur BASIC BCPL Shell Unix C COBOL Natural Forth Fortran Go Limbo Lua Modula-2 NQC NXC OPL Pascal Perl PHP Rust PL/I Tcl / C++ C# CoffeeScript D Delphi Eiffel Groovy Java JavaScript Lisaac Logo Objective-C PHP Python Ruby Scala Simula Smalltalk Visual Basic / Haskell Lisp Common Lisp ML OCaml Gallina F# Standard ML Opa Scheme XSLT / Clips Prolog / Ada Erlang pléthore de langages de programmation, toujours en évolution

langage de programmation mais des notions universelles, pérennes apprendre un langage de programmation écrire des programmes central en informatique (les 4 concepts) autonomie, s exerciser, créer... information algorithme programme machine langage

programme programme = suite d instructions instruction = mot / construction du langage programme est donc un texte qui respecte une syntaxe donnée les règles du langage sémantique d un programme exécution des instructions

instruction syntaxe d une instruction sucre syntaxique quels éléments sémantique d une instruction effet de l exécution de l instruction effet sur un environnement, sur un état position / orientation du robot la valeur des variables... exemple l affectation v := expr v = expr v expr variable expression la valeur de la variable prend la valeur de l expression

langage de programmation langage de programmation défini par la définition de ses instructions par la définition d un environnement exemples (avancer reculer aller-à-droite aller-à-gauche) {position robot} (avancer pivoter-droite pivoter-gauche) {position robot, orientation robot}

programme erroné bug au niveau syntaxique erreur lexicale symbole ; attendu instruction faire-demi-tour inconnue erreur syntaxique nom de variable attendu au niveau sémantique valeur erronée de l environnement, de l état robot à une position impossible valeur d une variable incorrecte mais l exécution peut / va continuer...

état notion de variable ensemble de variables : nom, valeur ensemble des valeurs de chaque variable la valeur d une variable x dépend de l état donc dépend du temps ne change pas sans qu une instruction ne soit exécutée (bien différent des variables x en mathématique)

programme suite d instructions exprimées dans un langage de programmation dont l exécution permet de passer d un état initial à l état final (à un état final)

?!

crédits )i(nterstices http://interstices.info - Qu est-ce qu un algorithme? Philippe Flajolet, Étienne Parizot - Les ingrédients des algorithmes, Gilles Dowek, Thierry Viéville et al. images - https://commons.wikimedia.org/wiki/file:shell_sorting_algorithm_color_bars.svg - https://pixabay.com/fr/dictionnaire-mots-grammaire-abc-390055/ - https://pixabay.com/fr/roue-dent%c3%a9e-engins-cg-cog-310906/

more Algorithme - complexité, coût - Exemple instructions - séquence - affectation notion variable -