Programmer avec Python
|
|
- Angélique St-Jacques
- il y a 6 ans
- Total affichages :
Transcription
1 Chapitre 1 Programmer avec Python Mode de lecture de ce premier chapitre Ce chapitre est dévolu à l apprentissage du langage de programmation avec lequel nous mettrons en place les notions de base de l algorithmique. Il commence par la présentation des différents types des objets que nous aurons à manipuler. Ce n est pas la façon la plus ludique de procéder, mais nous partons du point de vue que vous avez déjà écrit des micro-programmes au lycée et notre objectif est un apprentissage efficace, donc structuré. Vous pourrez d ailleurs faire des aller-retours entre la partie (1.3) et ce tout début de chapitre. Il est conseillé de reproduire les exemples encadrés, de jouer avec le logiciel pour tester ses idées et vérifier la cohérence des règles énoncées. Des exercices de premier niveau sont là, dès le début, pour faciliter la mémorisation, mettre en lumière les subtilités ou les particularités de la syntaxe de Python. Avec la section (1.3) on aborde le cœur du sujet et les exercices visent alors à conforter l apprentissage des techniques, incitent aux calculs de coûts et à la justification des algorithmes. Nous ne présenterons qu une petite partie des primitives disponibles dans la bibliothèque standard et nous travaillerons avec la version 3.2 de Python (la dernière pour laquelle sont écrits les modules numpy et scipy au moment où nous l écrivons). Pour en savoir plus, si le besoin s en fait sentir, on pourra utiliser l aide en ligne, la fonction help(...) ou encore se référer au site http ://docs.python.org/3.2/library/functions.html 1.1 Constantes, identificateurs, variables, affectation... Un langage de programmation permet de traiter des constantes, des variables, des expressions... Ce qui suit est illustré avec Python, il y aurait beaucoup de ressemblances avec la plupart des autres langages.
2 20 CHAPITRE 1. PROGRAMMER AVEC PYTHON Une constante est un objet qui désigne une valeur connue non modifiable, par exemple, 12, 12.3, -5.1, 0.001, bonjour,, False. Chaque constante admet un type ( entier, flottant, booléen, chaîne de caractères, liste, tuple etc...) qui définit les opérations qu elle supporte : algébriques sur les nombres, logiques sur les booléens, accès à un emplacement pour les tuples ou les listes, modification ou insertion d un élément pour les listes... Une variable est l association d un identificateur et d une valeur stockée en mémoire. Un identificateur est une suite de symboles commençant soit par une lettre soit par le signe _ (underscore) suivi de lettres et/ou de chiffres ou encore de _. Elle doit par ailleurs être et différente des mots réservés du langage. Cette association est réalisée par l affectation d une valeur à la variable. C est l opération qui rend cette dernière utilisable 1. La syntaxe d une affectation est <variable> = <valeur>. On peut savoir que la variable "_" joue un rôle particulier : elle contient la dernière expression évaluée (qui est le contenu de l accumulateur). C est le ans() des calculettes TI, de Scilab, le % de Maple etc... ; son usage est réservé au shell pour des raisons évidentes de lisibilité et de sécurité du code. >>> x=7 >>> y,z=x,x+1,z (7, 7, 8) >>> x=y=12 (12, 12) >>> y=1 (12, 1) >>> x1= 8 >>> y,z = x1,2*x1,z (12, 8, 16) >>> 34** >>> a=_ >>> a Exercice : que donnent les instructions successives x = y; y = x;? Affectation multiple Python autorise l affectation multiple ce qui est illustré dans la colonne de gauche du tableau qui précède. Nous montrons ci-dessous comment on permute, grâce à cela, le contenu de deux variables. La colonne de droite, quant à elle, montre comment on procède à l aide d une variable auxiliaire dans un langage sans affectation multiple. Vous devez savoir le faire! 1. Dans d autres langages les variables doivent être préalablement déclarées avec leur type qui est celui des constantes qui leur seront affectées ; ce type, contrairement à ce qui se passe avec Python est invariable, on dit que ce typage est statique ; pour Python on parle de typage dynamique
3 1.1. CONSTANTES, IDENTIFICATEURS, VARIABLES, AFFECTATION =10,11 (10, 11) = y,x (11, 10) =10,11 >>> z = x >>> x = y >>> y = z (11, 10) Une expression est une combinaison de constantes, variables, opérateurs et fonctions formée selon les règles de syntaxe du langage. Par exemple : si x, y, a, b, c sont des constantes numériques ou des variables qui ont déjà été affectées de valeurs numériques, ax 2 + bxy + cy 2 est une expression numérique valide, que l on écrira a*x**2+b*x*y+c*y**2 ; la liste [a,b,c,x*y] est elle aussi une expression ; si la variable x contient une chaîne de caractères, x + autre chaîne est encore une expression valide (l opérateur + entre deux chaînes désigne la concaténation en Python). On définit formellement les expressions comme des arbres finis dont les feuilles sont des opérandes (variables ou constantes), les nœuds non terminaux des opérateurs ou des fonctions. Par exemple, sin(ωx + phi) est une expression valide dès que les variables x et phi ont été affectées. L arbre syntaxique qui lui est associé est représenté à gauche. sin φ 3 6 y x ω x x 2 Exercice : 1. Quelle est l expression associée à l arbre qui figure à droite? 2. On y représente une addition, une multiplication avec 3 branches dérivées, pourtant il s agit d opérateurs binaires, pourrait on faire la même chose avec l élevation à la puissance? 3. Réécrire cette même expression avec un arbre dont les nœuds ont au plus deux fils. Mots réservés Ce sont les mots du langage standard ; ils ne peuvent servir de variables. Le tableau indique leur contexte d utilisation et la page où ils sont présentés dans ce cours.
4 22 CHAPITRE 1. PROGRAMMER AVEC PYTHON mot contexte page and connecteur logique binaire (expressions booléennes) 26 as associée à import dans import package as assert après évaluation d une expression booléenne, permet de... lever l exception AssertionError (non traité ici) break provoque l abandon d un boucle for ou while 54 class voir le chapitre consacré à la programmation objet 403 continue dans une boucle, permet de sauter l étape en cours 48 def permet la définition d une fonction 55 del permet d effacer un ou plusieurs éléments à partir de leur 31 index elif dans une instruction conditionnelle if 41 else dans une instruction conditionnelle if 41 except associé à try pour la gestion des erreurs 169 False une des deux constantes booléennes 25 finally associé à try pour la gestion des erreurs 169 for définit une boucle for... in from from package import global déclaration des variables globales dans une fonction 57 if définit une instruction conditionnelle if 41 import dans import package 34 in associé à for pour définir une boucle 45 in opérateur booléen ; relation d appartenance à un conteneur 45 is teste l égalité de deux objets (comme ==) 26 lambda définition d une fonction par une expression 58 None voir l usage avec les définitions de fonctions et procédure 55 nonlocal gestion de la visibilité d une variable dans une sousprocédure 59 (à associer à local et global) not opérateur logique unaire 26 or connecteur logique binaire (expressions booléennes) 26 pass instruction vide (pratique en cours de programmation) 48 raise levée d une exception 170 return signale la valeur que retourne une fonction 55 une des deux constantes booléennes 25 try instruction permettant de gérer (capturer) des erreurs ou 169 exceptions while définit une boucle conditionnelle 50 with simplification d écriture ; associé à as (non traité ici)... yield associé à la notion de co-routine (difficile)...
5 1.1. CONSTANTES, IDENTIFICATEURS, VARIABLES, AFFECTATION Séparateurs... le point-virgule sépare deux instructions sur une même ligne dans le shell ou dans un script ; lavirgule entre deux expressions est un constructeur de séquence ; le double point n est pas un séparateur d instructions, c est un composant syntaxique des boucles et instructions conditionnelles ; les espaces et l indentation tiennent lieu de délimiteurs syntaxiques ; nous détaillons cela avec l apprentissage de la programmation, page 40. Illustrations dans le shell - observez la différence entre a ; b et a,b - soyez attentifs au message d erreur lorsqu il y a un espace en début de ligne dans >>> c= 12 Illustrations dans l éditeur de scripts (pour lecteur ayant déjà programmé) - on pourrait aussi terminer les lignes par un ; - on prendra garde à l indentation : le moindre décalage et boum! >>> a=123; b=145 >>> a,b (123, 145) >>> a;b >>> z=a; a=b; b=z >>> a,b (145, 123) >>> c=12 SyntaxError: unexpected indent >>> c=12 >>> for i in range(0,3): print(i); n=120 p = 1 for k in range(1,n+1): p=p*k print(p, sep="...") def myfact(n): p=1 for k in range(1,n+1): p=p*k return p
6 24 CHAPITRE 1. PROGRAMMER AVEC PYTHON 1.2 Types prédéfinis avec Python Types numériques : entiers, flottants, complexes Les entiers On représente les entiers (éléments de Z) par des objets de type int (pour integer ou entier). Les opérations arithmétiques usuelles sont définies comme sur une calculette : +, - (relation binaire, soustraction), - (unaire, changement de signe), * (multiplication), ** (élévation à la puissance) ; a//b désigne le quotient dans la division euclidienne de a par b, le reste est a%b, divmod(a,b) est le couple (q, r) où la relation a = bq + r, 0 r<bdéfinit (q, r) de façon unique)... Les flottants On approche les réels par des objets de type float (pour float ou flottant). Les constantes de type float ont un affichage décimal (comme 12.3) ou scientifique (comme e-36). Les opérations usuelles sont encore définies : +,- (unaire et binaire), *, /, ** (avec a b = e b ln a si b n est pas entier) ; comme les opérations sur les entiers, elles obéissent aux mêmes règles de priorité que celles de vos calculettes et qui sont nos règles de calcul et de parenthésage habituelles. Les conversions de bon sens 2 pour les expressions mêlant entiers et flottants sont assurées (a+x avec a entier et x flottant retourne un flottant), la division de deux entiers a/b retourne le quotient approché (on la distinguera donc de l expression retournant le quotient dans la division euclidienne a//b). >>>a=36789; b=563 >>> a//b 65 >>> divmod(a,b) (65, 194) >>> a/b >>> type(a/b) <class float > >>> type(a//b) <class int > Les complexes Les complexes sont représentés par des couples de deux flottants à l aide du constructeur complex avec la syntaxe complex(x,y) (x et y flottants) ou encore avec une constante de la forme 1+1j. Les opérations usuelles sur les complexes sont évidemment implémentées : +,-,*,/,**, parties réelle, imaginaire, conjugué, module... le complexe i est noté 1j, on définira x + iy avec w=complex(x,y) ou w=x+y*1j 2. Il s agit de votre bon sens, pas de celui de la machine.
7 1.2. TYPES PRÉDÉFINIS AVEC PYTHON 25 Construction des complexes et opérations : on illustre les deux façons de construire un complexe ; on prendra garde aux différentes syntaxes des opérations : abs(z) comme une fonction, z.conjugate() comme une méthode, z.real, z.imag comme des champs (ou attributs) de classe. Ce qui pour le moment paraît être un total désordre prendra tout son sens lorsque nous parlerons de programmation orientée objet. Le module numpy propose des fonctions numpy.real, numpy.imag, numpy.absolute, numpy.conjugate vectorialisables (nous expliquons cela en section (1.2.8)) >>> z = complex(1,1); z (1+1j) >>> w = 1j; w 1j >>> 1j 1j >>> 1*j Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> 1*j NameError: name j is not defined >>> z.real 1.0 >>> z.conjugate() (1-1j) >>> z*z.conjugate() (2+0j) >>> abs(z) Le type None Python reconnaît un type et un objet None. Nous verrons cela page 55 avec la présentation des fonctions Le type booléen Ce type permet d effectuer les tests. Il comprend deux constantes et False, les expressions booléennes sont donc les expressions logiques. Python transforme tout un tas d objets en booléens : nous éviterons d en user. On construit des expressions
8 26 CHAPITRE 1. PROGRAMMER AVEC PYTHON booléennes avec les opérateurs de comparaison ==,<, <=,!=, les connecteurs logiques and, or, not (négation), is (égalité), in (appartenance à un conteneur)... >>> A="Bonjour";B= Bonjour >>> A is B >>> A==B >>> A!=B False >>> on in A >>> i not in A >>>a=1234; b=5678 >>> a<b >>> a<b or b<a >>> a+b>b >>> x=0; x!=0 and a/x>1 # seule la première clause est évaluée False opérateur évaluation (P and Q) P et Q sont des expressions booléennes ; si P est évaluée à (ou vraie), Q est alors évaluée. Si Q est vraie, (P and Q) est vraie, fausse sinon ; si P est évaluée à False (ou fausse), Q n est pas évaluée et (P and Q) est fausse. (E 1 is E 2 ) (E 1!=E 2 ) (E 1 is note 2 ) (E 1 <E 2 ) (E 1 <= E 2 ) (E 1 >E 2 ) (E 1 >= E 2 ) (P or Q) P et Q sont des expressions booléennes ; si P est évaluée à (ou vraie), Q n est pas évaluée et (P or Q) est vraie. si P est évaluée à False (ou fausse), Q est évaluée et (P or Q) est vraie ssi Q est vraie. not P P est une expression booléenne ; négation de P (E 1 == E 2 ) teste l égalité lorsque E 1 et E 2 sont des expressions (numériques, booléennes ou autres) retourne la valeur inverse de (E 1 is E 2 ) E 1 et E 2 sont des expressions (numériques, booléennes ou autres) comparaisons (lève une erreur de type si les objets ne peuvent être convertis en objets comparables) (e in S) teste l appartenance de eàunconteneur ; retourne une erreur de type si S n est pas un conteneur.
Présentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailTP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Plus en détail1/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)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailCours 7 : Utilisation de modules sous python
Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détail2 Comment fonctionne un ordinateur, dans les grandes lignes
Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)
Plus en détailMaple: premiers calculs et premières applications
TP Maple: premiers calculs et premières applications Maple: un logiciel de calcul formel Le logiciel Maple est un système de calcul formel. Alors que la plupart des logiciels de mathématiques utilisent
Plus en détailChapitre 2 Devine mon nombre!
Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction
Plus en détailInformatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
Plus en détailINF 321 : mémento de la syntaxe de Java
INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2
Plus en détailPython - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détail1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux
Plus en détailCours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en détailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détailCours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
Plus en détail1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailMATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.
Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne
Plus en détailArithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
Plus en détailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Plus en détailAlgorithmique, Structures de données et langage C
UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure
Plus en détailL informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Plus en détailMICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C
Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailLes classes en Python
CHAPITRE 1 Les classes en Python Le mécanisme de classe en Python permet d introduire les classes avec un minimum de syntaxe et sémantique nouvelles. Les caractéristiques les plus importantes des classes
Plus en détailAlgorithmique et programmation : les bases (VBA) Corrigé
PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailLogiciel de Base. I. Représentation des nombres
Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats
Plus en détailRappels Entrées -Sorties
Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk
Plus en détailLes bases du langage Python
Laboratoire de mathématiques d'orsay 6 décembre 2010 Plan 1 Présentation de Python 2 Les types et les opérations de base 3 Les structures de contrôle 4 Les fonctions 5 Les chiers 6 Les classes 7 Les exceptions
Plus en détailCompléments de documentation Scilab : affichage de texte et formatage de nombres
Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailSHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Plus en détailSUPPORT DE COURS. Langage C
Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages
Plus en détailProgrammation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire
Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS CCS Sommaire Généralités sur le langage. 2 Structure d un programme en C.. 3 Les constantes et équivalences.. 4 Les variables...
Plus en détail1. Structure d'un programme FORTRAN 95
FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)
Plus en détailFonctions de plusieurs variables
Maths MP Exercices Fonctions de plusieurs variables Les indications ne sont ici que pour être consultées après le T (pour les exercices non traités). Avant et pendant le T, tenez bon et n allez pas les
Plus en détailCours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
Plus en détailManuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plus en détailContinuité et dérivabilité d une fonction
DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité
Plus en détailALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET
ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailProgrammation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Plus en détailAnalyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
Plus en détailNotions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
Plus en détailModule Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS
Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)
Plus en détailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Plus en détailLangage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailDéroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009
Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30
Plus en détailObjets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Plus en détailProgrammation Classique en langage C
DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailCalcul Formel et Numérique, Partie I
Calcul Formel et Numérique N.Vandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 2 Où trouver des informations 2 3 Opérations
Plus en détailCette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :
Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailSub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"
TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailIntroduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un
Plus en détailArbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
Plus en détailAlgorithmes et mathématiques. 1. Premiers pas avec Python. Exo7. 1.1. Hello world!
Exo7 Algorithmes et mathématiques Vidéo partie 1. Premiers pas avec Python Vidéo partie 2. Ecriture des entiers Vidéo partie 3. Calculs de sinus, cosinus, tangente Vidéo partie 4. Les réels Vidéo partie
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailCodage d information. Codage d information : -Définition-
Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale
Plus en détailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailLe calcul formel dans l enseignement des mathématiques
Le calcul formel dans l enseignement des mathématiques Michel Mizony Lille, Avril 2005 mizony@univ-lyon1.fr 1 Résumé Il existe deux sortes de logiciels de calcul symbolique qui bousculent nos pratiques
Plus en détailPremiers pas avec Mathematica
Premiers pas avec Mathematica LP206 : Mathématiques pour physiciens I Année 2010/2011 1 Introduction Mathematica est un logiciel de calcul formel qui permet de manipuler des expressions mathématiques symboliques.
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détail