Cours d Analyse, Algorithmique

Documents pareils
Les structures. Chapitre 3

1 Recherche en table par balayage

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

Les structures de données. Rajae El Ouazzani

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Resolution limit in community detection

Cours 1 : La compilation

Cours d Algorithmique et de Langage C v 3.0

UE C avancé cours 1: introduction et révisions

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

Algorithmique I. Algorithmique I p.1/??

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

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

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

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

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

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

ALGORITHMIQUE ET PROGRAMMATION En C

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)

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

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

Programme Compte bancaire (code)

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Cours d algorithmique pour la classe de 2nde

Informatique Générale

Ressources pour le lycée général et technologique

Architecture des ordinateurs


Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Introduction au langage C

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Raisonnement par récurrence Suites numériques

Initiation à l algorithmique

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Cours de Master Recherche

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Algorithmes : conception et réalisation MQT 63834

Sujet de thèse CIFRE RESULIS / LGI2P

STAGE IREM 0- Premiers pas en Python

Notions fondamentales du langage C# Version 1.0

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

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

Évaluation et implémentation des langages

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

Algorithmes récursifs

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Calculabilité Cours 3 : Problèmes non-calculables.

Cours 1 : Qu est-ce que la programmation?

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Cours d initiation à la programmation en C++ Johann Cuenin

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Algorithmique et Programmation

Architecture des Systèmes d Information Architecture des Systèmes d Information

Entraînement au concours ACM-ICPC

Chapitre 2. Eléments pour comprendre un énoncé

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

Quelques algorithmes simples dont l analyse n est pas si simple

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Représentation d un entier en base b

I. Introduction aux fonctions : les fonctions standards

Algorithmique - Cours et Travaux Dirigés Ecole Normale Supérieure de Lyon

Principes des langages de programmation INF 321. Eric Goubault

Machines virtuelles Cours 1 : Introduction

La persistance des nombres

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Le langage C. Séance n 4

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

as Architecture des Systèmes d Information

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

EXERCICES DE REVISIONS MATHEMATIQUES CM2

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

Conception des systèmes répartis

TD3: tableaux avancées, première classe et chaînes

Premiers Pas en Programmation Objet : les Classes et les Objets

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

OCL - Object Constraint Language

Enseignement secondaire technique

V- Manipulations de nombres en binaire

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Corrigé des TD 1 à 5

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

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

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Chapitre 2. Classes et objets

Pourquoi l apprentissage?

Chp. 4. Minimisation d une fonction d une variable

Rappels sur les suites - Algorithme

1.6- Génération de nombres aléatoires

Programmation linéaire

COMMUNICATION PC/MINITEL

Plan du cours Cours théoriques. 29 septembre 2014

Feuille TD n 1 Exercices d algorithmique éléments de correction

Transcription:

1 de 15 Cours d Analyse, Algorithmique Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert

2 de 15 Informations pratiques 25 heures de cours ; 25 heures de travaux dirigés ; Évaluation : 2 à 3 contrôles + examen final + (éventuellement) projet.

3 de 15 Plan du cours 1 Introduction ; 2 Éléments de programmation ; 3 Outils mathématiques ; 4 Tableaux et type de donnée abstraîts ; 5 Listes chaînées ; 6 Arbres ; 7 Graphes.

4 de 15 Généralités sur le traitement de l information Les ordinateurs sont utilisés pour le traitement d informations ; le stockage d informations.

5 de 15 Généralités sur le traitement de l information (2) Le schéma global d une application informatique est toujours le même : Réception Traitement des Émission d informations informations d informations déduites Exemple : réception de somme de ces n valeurs émission de la n valeurs et division moyenne numériques du résultat par n arithmétique

6 de 15 La notion de programme Tout traitement demandé à la machine, par l utilisateur, est effectué par l exécution séquencée d opérations appelées instructions. Une suite d instructions est appelée un programme. Retenir Un programme est une suite d instructions permettant à une système informatique d exécuter une tâche donnée écrit dans un langage de programmation compréhensible (directement ou indirectement) par un ordinateur. Données = Programme = Résultats

7 de 15 Qu est-ce que la programmation? Retenir Écriture d un programme dans un langage de programmation donnée. Langage de programmation : ensemble de règle de vocabulaire et de grammaire compréhensible par un ordinateur. int fun(int x) { x = x + 1; return x; } void main(void) { printf("%i", fun(2)); }

8 de 15 La notion d algorithme Pour résoudre un problème de manière informatique il y a un cheminement méthodique à respecter : Énoncé Programme Problème Algo. Résultats algo. (instructions)

9 de 15 La notion d algorithme (2) Définition (Notion d Algorithme) description formelle d un procédé de traitement qui permet, à partir d un ensemble d informations initiales, d obtenir des informations déduites ; succession finie et non ambigue d opérations clairement posées ; se termine toujours. Définition (Notion de Programme) suite d instructions définies dans un langage donné ; décrit un algorithme.

10 de 15

11 de 15

12 de 15 Exemple d algorithme Algorithme (Calcul de la moyenne d un tableau de notes) Entrées : un entier n, un tableau de n nombres à virgules Sorties : la moyenne des nombre du tableau i est un entier ; s un nombre à virgule. initialiser s avec 0 pour i de 1 à n faire ajouter le i-ème élement du tableau à s retourner s/n

12 de 15 Exemple d algorithme Algorithme (Calcul de la moyenne d un tableau de notes) Entrées : un entier n, un tableau de n nombres à virgules Sorties : la moyenne des nombre du tableau i est un entier ; s un nombre à virgule. initialiser s avec 0 pour i de 1 à n faire ajouter le i-ème élement du tableau à s retourner s/n Quel est le nombre d additions effectuées par cet algorithme?

13 de 15 Différentes problématiques terminaison : terminera en un temps fini. complexité en temps : terminera en un temps borné (raisonnable). complexité en espace : terminera en utilisant une quantité de mémoire bornée (raisonnable). correction : si l algorithme termine en donnant une proposition de solution, alors cette solution est correcte. complétude : pour un espace de problèmes donné, l algorithme, s il termine, donnera toujours des propositions de solutions.

14 de 15 Objectifs du cours d algorithmique Concevoir des algorithmes simples ; Analyser les performances d un algorithme : notion de complexité ; Algorithmes fondamentaux : description et complexité ; Structures de données performantes : listes chaînées, arbres, tables de hachage, graphes.

15 de 15 Bibliographie Mots clés : algorithmique, analyse d algorithmes. Cardon A. et Charras C. Introduction à l algorithmique et à la programmation. Ellipses, 1996. Cormen, Leiserson, Rivest et Stein, Introduction à l algorithmique, Dunod, 2002. Graham, Knuth et Patashnik, Mathématiques concrètes, Fondations pour l Informatique, International Thomson publishing France, 1998. Granjon, Algorithmes en Pascal et en langage C, Dunod, 2004. Krob, Algorithmique et structures de données, Ellipses, 1989. Froidevaux, Gaudel et Soria, Types de données et algorithmes McGraw-Hill 1990 Ediscience International 1993, 577 pages