Programmation en Python

Dimension: px
Commencer à balayer dès la page:

Download "Programmation en Python"

Transcription

1 Université Paris Ouest - Nanterre - la Défense Master DÉFI Programmation en Python Résumé de cours Marcel Cori

2 1 Programmation 1.1 Les personnages Dans l activité de programmation, il faut distinguer trois personnages : - l utilisateur, - le programmeur 1, - et la machine. Le programmeur est celui qui s adresse à la machine afin qu elle exécute des tâches qui servent à l utilisateur. Les machines existantes, les ordinateurs, ont les caractéristiques suivantes : - elles sont très puissantes, c est-à-dire qu elles ont une mémoire très importante et qu elles sont très rapides ; - elles sont infaillibles, c est-à-dire que, mises plusieurs fois dans les mêmes conditions, elles réagissent d une manière parfaitement identique ; - elles sont très obéissantes ; - elles sont très bêtes. La question fondamentale qui se pose au programmeur est de savoir exprimer des ordres de telle manière que la machine agisse comme il le souhaite : ce sont ces ordres qui constitueront les programmes. L ordinateur étant très obéissant et très bête, il fait tout ce qu on lui dit de faire, mais il ne fait que ce qu on lui dit de faire. Il faut par conséquent, dans un programme, ne rien omettre et prévoir toutes les situations possibles. Par ailleurs, l ordinateur ne prend aucune décision. Il ne peut trancher si on lui transmet un ordre ambigu. On doit donc tout expliciter, ne rien laisser sous-entendu. 1.2 L informatisation des problèmes Le travail du programmeur comporte deux phases essentielles : (1) la définition très précise de la tâche, c est-à-dire de la classe d actions, que la machine aura à effectuer ; (2) la décomposition, si nécessaire, de cette tâche en tâches plus réduites. Ces deux phases peuvent être réalisées indépendamment de la machine et du langage qui seront finalement utilisés La formulation des problèmes Le programmeur doit tout d abord savoir lui-même très exactement ce qu il attend de la machine, quelle tâche il désire que celle-ci exécute. Ce qui suppose au minimum et en 1. Dans certains cas, en particulier dans les situations d apprentissage, le programmeur et l utilisateur se confondent. Mais en fait, c est parce qu une même personne joue alternativement les deux rôles. 2

3 premier lieu de définir quelles seront les données externes qui seront fournies à la machine (par un utilisateur) et ce que la machine devra en sortir. D une certaine manière, on peut dire que la phase cruciale du traitement informatique d un problème réside dans la formulation de celui-ci. Formuler un problème, cela revient à décrire l action ou la classe d actions que va effectuer le programme. Un programme a un degré de généralité d autant plus élevé que la classe d actions qu il décrit est plus large La conception des algorithmes Dans une deuxième étape, le programmeur doit pouvoir trouver de quelle façon l ordinateur exécutera une tâche qui aura été définie : la méthode. Plus exactement, quand on conçoit un programme, on commence par déterminer grossièrement comment la tâche sera effectuée, on décompose en tâches plus réduites, cette décomposition pouvant être réitérée. On obtient finalement une succession de tâches élémentaires à exécuter, exprimées en terme d instructions adressées à l ordinateur. Une suite finie d instructions, qui décrit une action ou une classe d actions, forme ainsi un algorithme Des algorithmes aux programmes Pour pouvoir transmettre des ordres à l ordinateur, il faut connaître les tâches élémentaires que celui-ci sait exécuter, autrement dit les instructions que l ordinateur comprend. Un ensemble d instructions compréhensibles par un ordinateur forme un langage de programmation. Un programme est un algorithme écrit dans un langage de programmation Langages de programmation Les langages évolués Il serait trop ardu et fastidieux pour le programmeur de s exprimer en langage machine (qui est un langage binaire, c est-à-dire composé de suites de 0 et de 1). Le programmeur ne peut non plus s adresser à la machine dans une langue naturelle, ambiguë et trop imprécise. Les langages de programmation évolués sont des langages intermédiaires entre la langue naturelle et le langage de la machine. La sémantique des langages de programmation est très rigide. Le langage correspond très exactement à des tâches que la machine sait effectuer. En définissant le langage, on définit sa sémantique. 2. On distingue les algorithmes des programmes par le fait que les algorithmes ne sont pas nécessairement écrits dans un langage de programmation. Un même algorithme peut être traduit en différents langages de programmation. 3

4 1.3.2 La traduction des programmes L ordinateur, face à un programme écrit en un langage qui n est pas le sien, doit traduire ce programme afin de l exécuter. Il y a deux types de méthodes de traduction : - l interprétaton : dès qu une instruction est traduite, elle est exécutée ; - la compilation : le programme est entièrement traduit avant toute exécution. En Python, les deux processus sont en œuvre. Remarquons que lorsqu un programmeur soumet à la machine un programme écrit dans un langage de programmation, il se comporte en fait comme l utilisateur d un logiciel, c est-à-dire d un programme, écrit par un autre programmeur. Ce logiciel, qui est un interpréteur ou un compilateur, effectue la traduction du programme écrit en langage intermédiaire dans le langage machine Les erreurs de syntaxe Si l ordinateur ne parvient pas à traduire le message qui lui a été communiqué, cela voudra dire qu il y aura eu, de la part du programmeur, une erreur de syntaxe dans le langage de programmation : la machine ne comprend pas les ordres qu on lui donne. Dans un processus de compilation, lorsque la machine rencontre une erreur de syntaxe, elle ne peut rien effectuer de ce qu on lui a demandé de faire. Mais un avantage de la compilation est que l ordinateur n est pas obligé de retraduire les ordres qu on lui donne à chaque fois qu il doit les exécuter, d où un gain de temps. 1.4 Exécution des programmes Un processus temporel L exécution d un programme est le processus déclenché par le programme sur la machine. Ce processus est temporel, en ce sens que la réalité (et notamment la réalité interne de la machine) est modifiée au cours du temps. On notera que l exécution d un programme peut être simulée par un être humain. Ainsi, le programmeur, pour savoir si un programme écrit sur une feuille de papier est correct, peut le faire tourner à la main Les différentes exécutions Un programme donné, invariable, peut connaître plusieurs exécutions différentes. Ce sont les données externes du programme, fournies en général par l utilisateur, qui varient d une exécution à l autre. L ensemble des jeux de données externes possibles définit la classe d actions que peut effectuer le programme Erreurs à l exécution Il se peut qu un programme, syntaxiquement correct, donne lieu à des erreurs à l exécution : soit la machine se bloque et ne parvient à aucun résultat si ce n est un message 4

5 d erreur, soit elle fournit des résultats qui ne correspondent pas à ce que le programmeur a cru lui avoir demandé de faire, soit la machine semble tourner indéfiniment. Ces erreurs ne proviennent bien entendu pas de l ordinateur (qui fait exactement ce qu on lui dit de faire), mais du programmeur. Plusieurs hypothèses sont alors possibles : - l exécution du programme nécessite un temps trop élevé, ce temps pouvant éventuellement être infini ; - le programme comporte des instructions dont la succession est incohérente ; - ce que le programmeur a écrit est parfaitement cohérent, mais ne correspond pas à ce qu il voulait que l ordinateur fasse ; - ce que le programmeur a écrit ne voulait rien dire (tout en étant syntaxiquement correct) ; - l utilisateur fournit des données externes qui sortent de ce que le programmeur avait envisagé. Dans ce dernier cas, cela ne signifie pas que le programme est erroné. Mais que la classe des problèmes traités n inclut pas certaines données externes. 1.5 Environnement des programmes Un programme, avant d être exécuté, doit être composé et stocké sur un support matériel (en général le disque dur de la machine). Le programmeur, à cette fin, utilise un éditeur de programmes. Ce qui le place, provisoirement, dans la même situation qu un utilisateur face à l ordinateur, et plus précisément que l utilisateur d un logiciel de traitement de textes. Remarquons que, même s il est vendu avec, l éditeur de programmes est totalement indépendant du langage de programmation. Enfin, le programmeur doit connaître les commandes qui lanceront la traduction et l exécution du programme, commandes qui sont, au moins partiellement, elles aussi extérieures au langage de programmation. 5

6 2 Instructions élémentaires 2.1 Aspects pratiques Python interactif En Python, on peut transmettre à l ordinateur des instructions immédiatement exécutables. Ainsi, quand on a ouvert une session Python, le prompt affiché est le suivant : >>> On peut alors demander à la machine d effectuer certaines instructions, dont par exemple des calculs. C est ainsi qu on peut obtenir : >>> >>> "bon"+"jour" bonjour Les instructions à exécuter sont écrites sur une ligne, appelée ligne de commande Enregistrement d instructions dans des fichiers On peut stocker une suite d instructions (appelée un script) dans un fichier 3, qui doit être un fichier texte, et avoir l extension.py. Par exemple : machin.py. Pour que les instructions stockées soient exécutées, à la ligne de commande on écrit l instruction : >>> import machin ou, si on veut au cours d une même session exécuter à nouveau les instructions stockées dans le fichier (par exemple après une modification de ces instructions) : >>> reload(machin) Si on veut que les résultats des calculs demandés par les instructions stockées sur le fichier apparaissent à l écran, il faut utiliser l instruction print. Par exemple : print "bon"+"jour" print Le fichier doit être dans un répertoire accessible, et pour cela il faut que le chemin (path) d accès en soit connu par le système. On peut rendre accessible un chemin par une suite de deux instructions telle que : import sys sys.path = sys.path + ["C:\\Documents\\progPyth"] 6

7 2.1.3 Commentaires Les commentaires sont des énoncés explicitant la raison d être de certaines instructions ou groupes d instructions, destinés non pas à la machine, mais au programmeur lui-même ou à d autres programmeurs qui auraient besoin de comprendre le fonctionnement du programme, afin par exemple de le modifier. En Python, tout ce qui sur une ligne d un programme suit le symbole # est ignoré par la machine. De même, dans un programme stocké sur fichier on peut insérer des lignes entières entre guillemets ou entre apostrophes, qui n auront aucune influence sur le programme. Dans ce polycopié, nous utiliserons parfois les commentaires à des fins pédagogiques. 2.2 Données internes Les constantes Les constantes sont des données internes qui ont une valeur fixée une fois pour toutes par le programmeur. Cette valeur ne change ni d une exécution à l autre du programme, ni au cours d une exécution du programme. Par exemple 245 ou bonjour sont des constantes. Une constante, outre sa valeur, possède un type. Par exemple 245 est une constante de type nombre entier, est une constante de type nombre réel, "a", bonjour ou "245" sont des constantes de type suite de caractères (ou chaîne). On peut noter indiféremment les suites de caractères entre apostrophes (quotes) ou entre guillemets. Ce qui permet d avoir comme constantes : "aujourd hui" ou Paul dit "Bonjour!" au facteur Certains caractères sont notés de manière particulière : \n nouvelle ligne \\ backslash \ quote \" guillemet Variables et affectations Les différentes valeurs, qu elles soient données telles quelles ou qu elles soient calculées, peuvent être mémorisées afin d être réutilisées. On leur associe à cette fin un nom, qui correspond en pratique à un emplacement dans la mémoire de l ordinateur (qu on désigne parfois par le terme case). Les noms, qui sont fixés par le programmeur, commencent obligatoirement par une lettre (et pas par un chiffre). Ceci permet de les distinguer des constantes de type nombre. En revanche, on accepte des noms comprenant des chiffres en dehors de la première place, tels que a1 ou h2o. 7

8 On peut associer une valeur à un nom à l aide de l instruction d affectation, qui a la forme générale suivante : nom = valeur une valeur pouvant être donnée par une constante, un nom, ou une expression (c est-à-dire un calcul). Par exemple : >>> y = 12 # affectation 1 >>> x = 18 # affectation 2 >>> y = x # affectation 3 >>> z = y + 25 # affectation 4 >>> z 43 >>> y 18 >>> x 18 Dans la mesure où la valeur associée à un nom peut changer au cours du processus d exécution d un programme, ou d une exécution à l autre d un programme, on appelle la donnée interne désignée par un nom une variable 4. On observe que, dans une instruction d affectation, s il y a toujours un nom unique à gauche du signe =, des noms peuvent également apparaître à droite de ce signe (affectations 3 et 4). On peut dire que le nom représente un contenant quand il est à gauche du signe d affectation (la case mémoire), et un contenu, c est-à-dire une valeur, quand il est à droite de ce signe. Quand un nom représente un contenu, il faut qu il ait reçu aupraravant une valeur, autrement dit que la variable qu il représente ait été initialisée. A l issue de l exécution d une instruction d affectation telle que l affectation 3 ci-dessus, la valeur de x est inchangée, tandis que la valeur de y est changée : elle est désormais égale à la valeur de x. Si on veut échanger les contenus des cases a et b, on est par conséquent tenu d utiliser une troisième case, ou case auxiliaire, selon la méthode suivante : >>> c = a >>> a = b >>> b = c Enfin, en Python, des affectations multiples sont possibles, sous les formes suivantes : >>> x = y = 7 >>> a, b = "bonjour", Par convention, en Python on fait commencer les noms des variables par des minuscules. Les classes commenceront par des majuscules. Dans certains langages de programmation la différence majuscules/minuscules n est pas significative. 8

9 >>> x 7 >>> b + y Récapitulation Les constantes comme les variables sont des données internes. Une donnée interne a un type, une valeur et éventuellement un nom. Le nom d une donnée est fixe, toutefois une même donnée peut être désignée par plusieurs noms dans un même programme. La valeur des variables peut varier d une exécution à l autre du programme ou au cours d une exécution du programme. Le type des variables peut également varier en Python. A l exécution d un programme, il faut que la première fois que l on rencontre un nom désignant une variable, ce soit en tant que contenant, autrement dit que la variable qu il désigne soit initialisée. L initialisation s effectue de la manière la plus simple par une instruction d affectation, mais cela pourra se faire également d autres manières. Si on fait allusion à un contenu sans qu il ait été initialisé, cela provoque une erreur (erreur à l exécution due au fait que les instructions ne se succèdent pas comme il le faudrait). La machine va refuser d aller plus loin. 2.3 La communication entre la machine et l utilisateur Considérons la suite d instructions suivante 5 : Programme 2.1 print "Quel est votre prenom?" prenom = raw input( ) print "Bonjour " + prenom print "Nous vous souhaitons la bienvenue" Écriture L instruction d écriture permet à la machine de communiquer à l utilisateur une valeur désignée dans le programme par une constante, un nom (ou une expression comme on le verra plus loin). Elle a la forme suivante : print <valeur> La valeur spécifiée est affichée à l écran. Dans le cas présent, les valeurs à afficher sont soit des constantes "Quel est votre prenom?", "Nous vous souhaitons la bienvenue", soit une expression calculée "Bonjour" + prenom 5. Quand nous numérotons un programme, cela signifie que l on suppose qu il est enregistré sur un fichier. 9

10 2.3.2 Lecture L instruction de lecture permet à la machine de prendre connaissance d une donnée externe qui lui est communiquée par l utilisateur. raw input( ) correspond à la valeur (de type suite de caractères) de la prochaine donnée qui sera transmise par l utilisateur à la machine. Si on veut conserver cette valeur, on l affecte à une variable (ce qui permet, éventuellement, d initialiser la variable). Cette donnée, le prénom de l utilisateur du programme, est une suite de caractères non connue à l avance par le programmeur ; elle est fournie par l utilisateur à chaque exécution du programme. La valeur de la variable varie bien ici d une exécution à l autre du programme. On peut regrouper les deux premières instructions du programme ci-dessus en une seule, comme suit : prenom = raw input("quel est votre prenom? ") print "Bonjour " + prenom print "Nous vous souhaitons la bienvenue" On peut même regrouper les trois premières instructions en une : print "Bonjour " + raw input("quel est votre prenom? ") print "Nous vous souhaitons la bienvenue" Si on veut entrer des données de type nombre entier ou nombre réel, on peut procèder comme suit : i = int(raw input("donner un nombre entier ")) x = float(raw input("donner un nombre reel ")) On peut également entrer des données de typs divers en utilisant input( ) : i = input("donner un nombre entier ") x = input("donner une suite de caractères") La suite de caractères est alors à taper entre apostrophes ou accolades. 2.4 Tests et instructions conditionnelles Exemple introductif Considérons le programme suivant, écrit dans une perspective d enseignement assisté par ordinateur (EAO) : l utilisateur-élève doit répondre à une question qui lui est posée par la machine. Selon cette réponse, la machine lui dit s il s est trompé ou pas. Programme 2.2 "objet: repondre a une question simple" print "Quelle est la capitale de la France?" reponse = raw input( ) 10

11 if reponse == "Paris" : print "c est exact" else : print "ce n est pas la bonne reponse" Tests Ce programme contient un test : reponse == "Paris" Un test est une question à laquelle la machine doit pouvoir répondre par oui ou par non. Nous considérons pour l instant que la forme d un test est la suivante : valeur opérateur relationnel valeur les opérateurs relationnels étant : ==,!= (différent), < (inférieur), <= (inférieur ou égal), > (supérieur), >= (supérieur ou égal) Instructions conditionnelles Une instruction conditionnelle est une instruction qui contient d autres instructions, lesquelles sont ou ne sont pas exécutées, en fonction du résultat d un test. Ainsi l instruction if, dont les deux formes sont les suivantes : if condition : instruction if condition : instruction else : instruction Nous explicitons ce que font ces instructions conditionnelles, dans un contexte donné, de manière graphique : <instruction 0> if <test> : <instruction 1> <instruction 3> 11

12 instruction 0 oui test non instruction 1 instruction 3 <instruction 0> if <test> : <instruction 1> else : <instruction 2> <instruction 3> instruction 0 oui test non instruction 1 instruction 2 instruction 3 En Python, au lieu d écrire ceci : if <test 1> : <instruction 1> else : if <test 2> : <instruction 2> on peut utiliser l écriture abrégée ci-desous, qui est équivalente : 12

13 if <test 1> : <instruction 1> elif <test 2> : <instruction 2> Les blocs Considérons une modification du programme d enseignement assisté par ordinateur ci-dessus : cette fois-ci on demande à l utilisateur le nom du Président de la République, et au cas où le nom est exact, on lui demande le prénom du Président. Programme 2.3 "objet: repondre a une question un peu moins simple" print "Quel est le nom du President de la Republique?" reponse = raw input( ) if reponse == "Sarkozy" : print "quel est son prenom" reponse = raw input( ) if reponse == "Nicolas" : print "c est exact" else : print "ce n est pas le bon prenom" else : print "ce n est pas la bonne reponse" Afin d exécuter plusieurs instructions dans le cas d une première réponse correcte, on est obligé de les enclore dans un bloc. En Python, un bloc est délimité par une indentation. On remarquera que dans cet exemple la variable reponse pourra contenir successivement deux valeurs distinctes au cours d une même exécution du programme. 13

14 3 Opérations 3.1 Les opérations et leurs notations Définition Une opération associe à un certain nombre d objets d un type déterminé (les opérandes) un objet de type également déterminé (le résultat). Une opération permet ainsi de former une nouvelle valeur à partir d autres valeurs. Par exemple, l addition de nombres entiers associe à deux nombre entiers un troisième nombre entier, selon un processus bien connu. Une opération est dite n-aire si elle comprend n opérandes. n est en ce cas l arité de l opération. Ainsi, l addition est une opération 2-aire, ou binaire. Le type des opérandes et du résultat définissent le type de l opération. Nous dirons par exemple que l addition de nombres entiers est une opération de type nombre entier, nombre entier nombre entier. Si l on ne respecte pas les contraintes relatives au type dans l écriture d une opération, cela déclenche une erreur. En Python, l erreur se produit à l exécution. Par exemple : a = 27 / "bonjour" Sémantique des opérations Le fait de connaître le type des opérandes d une opération ne suffit pas pour en connaître le domaine. Ainsi, dans la division de nombres entiers, le deuxième opérande est de type nombre entier, mais la division échoue si la valeur de cet opérande est zéro. C est à l exécution d un programme que se manifestent les contraintes relatives au domaine dans l écriture d une opération. Par exemple, les instructions qui suivent induisent une erreur à l exécution : b = 0 a = 27 / b Par ailleurs, il ne faut pas confondre l opération théorique (l addition, par exemple, qui permet d obtenir des nombres si grands soient-ils) et l opération réelle, qui fonctionne sur des variables dont la taille est limitée par les caractéristiques physiques de la machine à laquelle on s adresse Opérateurs Pour les opérations binaires (et éventuellement unaires), on utilise des opérateurs, selon la notation suivante : <opérande> <opérateur> <opérande> <opérateur> <opérande> 14

15 Le même opérateur peut servir à désigner plusieurs opérations différentes. Ainsi, l opérateur + désigne à la fois l addition de nombres entiers et l addition de nombres réels (et, comme on le verra par la suite, la concaténation de suites de caractères). C est le type des objets auxquels s applique l opérateur qui permet à la machine de savoir de quelle opération il s agit Notation fonctionnelle Certaines opérations sont écrites non pas à l aide d opérateurs, mais en utilisant la notation fonctionnelle : un nom désigne l opération, et la liste des opérandes est placée à la suite, entre parenthèses. Dans la liste, les opérandes sont séparés les uns des autres par une virgule. Par exemple, les opérations max(x,y), len(x), find(x,y) et range(x) que nous introduisons plus loin 6. Toutes les opérations pourraient être écrites à l aide de la notation fonctionnelle, mais pour les opérations binaires, et éventuellement unaires, l usage des opérateurs est plus commode. La notation fonctionnelle est néanmoins obligatoire pour les opérations d arité supérieure à 2. Elle sera également utile pour les opérations définies par le programmeur Notation objet La notation objet sera présentée plus loin. Par exemple x.index(y) et x.count(y) sont des opérations notées à l aide de la notation objet Les opérations arithmétiques Les quatre opérations + (pour l addition), - (pour la soustraction), * (pour la multiplication) et / (pour la division) sont des opérateurs qui définissent des opérations arithmétiques. La division de deux valeurs entières produit un résultat entier, alors que la division d une valeur entière par une valeur réelle, ou d une valeur réelle par une valeur entière donne une valeur réelle. Cela signifie que l opérateur / définit plusieurs opérations arithmétiques : >>> 5/2 2 >>> 5./2 2.5 Donnons un exemple de programme utilisant ces opérations : 6. Voir ci-dessous, pages 16, 22, 26 et Cf. plus loin, page 35 et suivantes. 8. Voir page

16 Programme 3.1 annee = 2010 print "quel est ton age?" age = int(raw input()) naissance = annee - age print "tu es ne en ", naissance age = age + 1 # incrémentation de la variable age print "l annee prochaine, tu auras ", age, " ans!" L instruction age = age + 1 permet d incrémenter la variable age. On prend la valeur de la variable, on lui ajoute la valeur constante 1, et on affecte cette nouvelle valeur à la variable age. La variable age a ainsi sa valeur qui est modifiée au cours de chaque exécution du programme. Les instructions d incrémentation étant très fréquentes en programmation, en Python il existe une notation abrégée pour les représenter. Ainsi peut-on écrire à la place de l instruction d incrémentation ci-dessus : age += 1 Plus généralement, on peut écrire : a += b ce qui équivaut à : a = a + b Une telle instruction est appelée une affectation complexe. Les affectations complexes sont possibles avec les autres opérateurs arithmétiques : -=, *= et /=. Elles sont valides quelle que soit l opération décrite par ces opérateurs Autres opérations L opérateur - donne lieu à une opération unaire, qui détermine l opposé d un nombre : >>> x, y = 5, -3.5 >>> - x -5 >>> - y 3.5 Il y a la possibilité de trouver le plus petit ou le plus grand de deux nombres 9 à l aide des opérations min et max : >>> max(5,12) 9. Ces opérations se généralisent à un nombre quelconque de nombres, ou de suites de caractères. Elles peuvent également s appliquer à une liste. 16

17 12 >>> min (5,12) 5 On peut engendrer des nombres aléatoires, à condition d importer le module random : >>> import random >>> n = randint(0,100) >>> n 47 Le nombre sera compris (au sens large) entre 0 et Opérations sur les caractères On peut obtenir le code ASCII d un caractère et, à l inverse, obtenir un caractère à partir de son code ASCII : >>>ord("a") 97 >>> chr(97) a 3.4 Les opérations logiques Quand on examine si une condition est vérifiée ou pas, on effectue en réalité une opération dont le résultat est soit la valeur True soit la valeur False 10. Ainsi, l égalité entre suites de caractères est une opération qui à deux suites de caractères fait correspondre une valeur de type logique. C est pourquoi, on peut écrire : a = b == salut Il existe des opérations qui peuvent être appliquées aux valeurs de type logique. Ces opérations sont notées à l aide d opérateurs. not est une opération qui à deux donnés de type logique fait correspondre une valeur logique ; and et or sont deux opérations qui à deux donnés de type logique font correspondre une valeur logique. Les tables de ces opérations sont les suivantes : not a 0 1 not a Dans les versions plus anciennes de Python les valeurs étaient 1 (si oui) et 0 (si non). 17

18 and a \ b or a \ b On peut vérifier, à l aide de ces tables, que not (a or b) est équivalent à (not a) and (not b) et que not (a and b) est équivalent à (not a) or (not b). Nous allons donner un exemple de programme utilisant ces opérations. On pose encore une question à l utilisateur, question qui comporte deux réponses, ces réponses pouvant être données dans un ordre quelconque. Programme 3.2 print "Qui sont les jumeaux qui ont fonde Rome?" print "Premier jumeau :" reponse = raw input( ) r1 = reponse == "Remus" r2 = reponse == "Romulus" if r1 or r2 : print "Deuxieme jumeau:" reponse = raw input( ) r1 = r1 or reponse == "Remus" r2 = r2 or reponse == "Romulus" if r1 and r2 : print "c est bon" else : print "ce n est pas la bonne reponse" 3.5 Expressions et priorités Les expressions On construit des expressions, qui peuvent être complexes, utilisant plusieurs opérateurs, comme par exemple : a + b * c + 3 / d Une valeur, par conséquent, peut être désignée dans un programme de trois manières différentes : par une constante, par un nom ou par une expression. Partout où, dans un programme, on attend une valeur, on peut par conséquent avoir une expression. Aux deux dernières instructions exécutables du programme 3.1 ci-dessus, on peut ainsi substituer: print "l annee prochaine, tu auras ", age + 1, " ans!" 18

19 3.5.2 Nécessité de fixer des règles de priorité L utilisation des opérateurs peut introduire une ambiguïté dans l ordre d exécution des opérations 11. Par exemple, pour a + b * c on ne sait s il faut d abord effectuer l addition ou la multiplication. C est pourquoi on donne un ordre de priorité entre opérateurs. Ainsi, en Python, la multiplication sera prioritaire par rapport à l addition. Cela signifie que la multiplication sera effectuée avant l addition. Par conséquent si, dans l exemple précédent, on veut effectuer l addition avant la multiplication, on utilise des parenthèses: (a + b) * c Règles de priorité en Python Les opérateurs * et / sont prioritaires par rapport aux opérateurs + et -. Les opérateurs arithmétiques sont prioritaires par rapport aux opérateurs relationnels. Les opérateurs relationnels sont prioritaires par rapport aux opérateurs logiques. L opérateur not est prioritaire par rapprot aux opérateurs or et and. L opérateur and est prioritaire par rapport à l opérateur or. De ces règles de priorité on déduit le bon usage des parenthèses Ordre d exécution des opérations En cas de priorités égales, ou de l utilisation multiple d un même opérateur, les opérations sont effectuées de gauche à droite. C est pourquoi on obtient : >>> 8 / 4 / 2 1 >>> 8 / (4 / 2) La notation fonctionnelle exclut, quant à elle, tout risque d ambiguïté. 19

20 4 Séquences : listes, suites de caractères 4.1 Structures de données Introduction Les types nombre entier, nombre réel ou caractère sont des types primitifs. Une donnée de type primitif est une donnée simple. On peut définir des structures de données plus complexes que les données simples. Ces structures de données sont obtenues en regroupant des données simples. Parmi les structures de données, certaines consistent à mettre des éléments les uns à la suite des autres. Les listes, comme les suites de caractères correspondent à ce type. Certaines opérations sur les listes et les suites de caractères sont semblables. Ce qui fait qu en Python sont définies des opérations identiques pour les unes et les autres. Nous appellerons ces structures des séquences Les listes Une liste est composée d objets quelconques mis les uns à la suite des autres. Un même objet peut avoir plusieurs occurrences dans une liste. Par exemple : >>> a = [12,20,3,17,12,14] est une liste de nombres. Une liste peut être vide : >>> a = [ ] Les suites de caractères Une suite de caractères, comme son nom l indique, est composée de caractères mis les uns à la suite des autres. Par exemple : >>> mot = "bonjour" >>> suite vide = "" Il ne faut pas confondre une suite de caractères avec la liste composée des mêmes caractères : >>> liste = [ b, o, n, j, o, u, r ] 4.2 Opérations communes à toutes les séquences Accès aux éléments Il est possible d accéder à chacun des éléments d une séquence, par l intermédiaire d un indice, c est-à-dire de la place occupée par l élément dans la séquence : séquence [ valeur ] 20

21 La première valeur possible renvoyant à un élément de la séquence, autrement dit le premier indice possible, est 0. C est pourquoi on obtient : >>> a = [12,20,3,17,12,14] >>> a[2] 3 >>> a[0] 12 Si on cherche à accéder à un élément de la séquence par un indice qui est en dehors des valeurs possibles, cela produit une erreur. Plus exactement, l indice donne une position intermédiaire entre deux éléments. Ce qui permet d accéder à des sous-séquences, de la manière suivante : >>> mot = "Bonjour" >>> mot[2:4] nj >>> mot[0:7] Bonjour >>> mot[2:] njour >>> mot[:4] Bonj Les nombres négatifs permettent de compter à partir du dernier élément d une séquence, le dernier élément étant repéré par l indice -1. >>> b = [12,20,3,17,12,14,15] >>> b[-1] 15 >>> b[-4] 17 >>> b[-4:-1] [17, 12, 14] >>> b[-4:-0] [17, 12, 14, 15] >>> b[-4:] [17, 12, 14, 15] >>> b[:-2] [12, 20, 3, 17, 12] 21

22 4.2.2 Opérations L opération len (longueur) est une opération unaire 12 ; elle associe à toute séquence un nombre entier : le nombre d éléments dont la séquence est constituée. Par exemple : >>> b = [12,20,3,17,12,14,15] >>> mot = Salut >>> len(b) 7 >>> len(mot) 5 La concaténation est une opération binaire ; elle associe à deux séquences de même nature une autre séquence, obtenue par la concaténation (mise bout à bout) des deux séquences. On note cette opération à l aide de l opérateur +. On remarquera également l utilisation de l opérateur de multiplication qui représente une opération associant à une séquence et un nombre entier une nouvelle séquence obtenue par répétition de concaténations. >>> [12,20,3] + [17,12,14,15] [12, 20, 3, 17, 12, 14, 15] >>> "bon" + "jour" bonjour >>> bon * 3 bonbonbon >>> [12,20,3] * 3 [12, 20, 3, 12, 20, 3, 12, 20, 3] >>> bon * Tests Tous les opérateurs relationnels s appliquent aux séquences. En particulier, les opérateurs d infériorité ou de supériorité effectuent des tests sur l ordre alphabétique. >>> [22,20,3] == [17,12,14,15] False >>> [22,20,3] >= [17,12,14,15] True Il existe également l opérateur in qui vérifie si un élément appartient ou pas à une séquence. 12. On remarquera que cette opération est désignée par la notation fonctionnelle. 22

23 >>>12 in [17,12,14,15] True >>> a in bonjour False 4.3 Propriétés spécifiques des listes Modifiabilité Contrairement aux suites de caractères, les listes sont modifiables en Python. On peut ainsi changer la valeur d un élément d une liste sans toucher aux autres, en effectuant une affectation partielle, de la manière suivante : >>> b = [12, 20, 3, 17] >>> b[2] = 18 >>> b [12, 20, 18, 17] On peut également changer plusieurs éléments d une liste à la fois, changer la longueur d une liste en insérant des éléments, en supprimant des éléments, ou en remplaçant un certain nombre d éléments de la liste par un (autre) nombre d éléments de la liste : >>> b = [12,20,18,17,2,12] >>> b[2:4] = [25,35] >>> b [12, 20, 25, 35, 2, 12] >>> b[1:1] = [50,60,70] >>> b [12, 50, 60, 70, 20, 25, 35, 2, 12] >>> b[5:7] = [ ] >>> b [12, 50, 60, 70, 20, 2, 12] >>> b[2:4] = [1,5,9] >>> b [12, 0, 1, 5, 9, 20, 2, 12] Remarque : Une instruction d affectation dont la partie droite est formée par une variable représentant une liste produit l identification des variables 13. Ce qui fait que si on modifie une des listes (autrement que par une instruction d affectation non partielle à la variable liste), l autre est également modifiée : >>> b = [12,20,18,1] 13. En fait, ce sont les adresses en mémoire des variables qui sont identifiées. 23

24 >>> c = b # identification des listes c et b >>> c [12, 20, 18, 1] >>> b[1] = 55 # modification de b qui affecte c >>> b [12, 55, 18, 1] >>> c [12, 55, 18, 1] c[2:3] = [ ] # modification de c qui affecte b >>> b [12, 55, 1] >>> b = [12,20,18,1] # réinitialisation de b, qui ne touche pas c >>> c [12, 55, 1] On peut en revanche affecter à c une copie de b sans que se produise une identification des variables : >>> b = [12,20,18,1] >>> c = b[ : ] # affectation à c d une copie de b >>> c [12, 20, 18, 1] >>> b[1] = 55 # modification de b qui ne touche pas c >>> b [12, 55, 18, 1] >>> c [12,20,18,1] c[2:3] = [ ] # modification de c qui ne touche pas b >>> b [12, 55, 18, 1] Hétérogénéité En Python, une liste peut être hétérogène, c est-à-dire contenir des éléments de types différents, et on peut même remplacer un élément d un type donné par un élément d un autre type : >>> b = [12,20, a,3,"bonjour",2] >>> b[3] a >>> b[1] = [ salut ] >>> b [12, salut, a, 3, bonjour, 2] 24

25 4.3.3 Liste comme élément d une liste Une liste peut admettre d autres listes comme éléments : >>> b = [12,20,3,6] >>>c = [1,b,4] >>> c [1, [12, 20, 3, 6], 4] >>> c[1] [12, 20, 3, 6] >>> c[1][2] 3 >>> len(c) 3 >>> len(c[1]) Autres instructions Les opérations index et count, notées comme des méthodes, donnent respectivement la position du premier élément qui a une valeur donnée (cela produit une erreur si aucun élément de la liste n a cette valeur), ou le nombre d éléments qui ont la valeur donnée : >>> a = [ a, b, c, b, e, f, c ] >>> a.index( b ) 1 >>> a.count( b ) 2 >>> a.count( d ) 0 L instruction del permet d enlever certains éléments d une liste, selon les indices : >>> a = [ a, b, c, d, e, f ] >>> del a[0] >>> a [ b, c, d, e, f ] del a[2:4] a [ b, c, f ] Les méthodes qui suivent modifient la liste à laquelle elles s appliquent. insert ajoute dans une position donnée, un élément à la liste. append place un élément dans la liste en dernière position, remove enlève la première occurrence de l element qui a une valeur donnée (et produit une erreur si aucun élément n a cette valeur), sort trie la liste par 25

26 ordre alphabétique, reverse inverse l ordre des éléments de la liste : >>> a = [ a, b, c, b, e, f, c ] >>> a.insert(2, d ) >>> a [ a, b, d, c, b, e, f, c ] >>> a.append( g ) >>> a [ a, b, d, c, b, e, f, c, g ] >>> a.remove( b ) >>> a [ a, d, c, b, e, f, c, g ] >>> a.sort( ) >>> a [ a, b, c, c, d, e, f, g ] >>> a.reverse( ) >>> a [ g, f, e, d, c, c, b, a ] 4.4 Propriétés spécifiques des suites de caractères Non-modifiabilité Les affectations partielles sont interdites sur les suites de caractères. Si on veut changer le caractère d ordre 4 dans la suite a ci-dessous, il faut procéder comme suit, à l aide d une affectation non partielle : >>> a = "chansons" >>> a = a[:4] + t + a[5:] >>> a chantons Le module string L importation du module string permet d utiliser un certain nombre d opérations spécifiques et d avoir à disposition des constantes prédéfinies Opérations string.find(a,b) associe aux suites de caractères a et b une valeur entière : -1 si b n est pas une sous-suite de a, l indice correspondant à la première occurrence de b dans a sinon. string.find(a,b,n) où n est une valeur numérique commence la recherche à l indice n. Par exemple : >>> string.find("ananas","na") 26

27 1 >>> string.find("ananas","na",2) 3 string.upper(a) associe à la suite de caractères a une autre suite obtenue en transformant toutes les lettres minuscules de a en les lettres majuscules correspondantes, les autres caractères étant inchangés. De même string.lower(a) transforme les majuscules en minuscules. >>> string.lower("marcel Cori") marcel cori >>> string.upper("marcel Cori") MARCEL CORI string.split(phrase) associe à une suite de caractères (censée représenter une phrase) une liste de suites de caractères (chacune d elles représentant un mot). >>> string.split("le petit chien dort dans sa niche") [ le, petit, chien, dort, dans, sa, niche ] >>> string.split("le fox-terrier dort dans sa niche") [ le, fox-terrier, dort, dans, sa, niche ] >>> string.split("paul, aujourd hui, dort dans sa niche.") [ Paul,, aujourd hui,, dort, dans, sa, niche. ] >>> string.split( Paul me dit " comment vas-tu? " et sort.") [ Paul, me, dit, ", comment, vas-tu,?, ", et, sort. ] string.join effectue l opération inverse : >>> string.join([ le, petit, chien, dort, dans, sa, niche ]) le petit chien dort dans sa niche Constantes Le module string fournit également un certain nombre de suites constantes qui peuvent être utiles dans certains programmes : >>> string.lowercase abcdefghijklmnopqrstuvwxyz >>> string.uppercase ABCDFGHIJKLMNOPQRSTUVWXYZ >>>string.letters abcdefghijklmnopqrstuvwxyzabcdfghijklmnopqrstuvwxyz >>> string.digits

28 Enfin, string.whitespace fournit la suite \t\n\x0b\x0c\r correspondant à différents séparateurs. 4.5 Les n-uplets Les n-uplets (ou tuples en anglais) sont des séquences non modifiables qui, comme les listes, peuvent être hétérogènes, avoir pour éléments des listes ou d autres n-uplets. Un n-uplet constant s écrit entre parenthèses, mais quelquefois on peut omettre les parenthèses : >>> a = 1,2,3,4 >>> a (1, 2, 3, 4) Pour écrire un n-uplet constant composé d un élément unique, il faut terminer par une virgule : >>> a = "bonjour", >>> b = (1) >>> a ( bonjour,) >>> b 1 Les opérations possibles sur les n-uplets sont les opérations sur les séquences : >>> a = 1,2,3,4,5,6 >>> a[2:4] (3, 4) 4.6 Les dictionnaires Définition Un dictionnaire regroupe un ensemble non ordonné d éléments accessibles à l aide d une clé. La clé est de n importe quel type non transformable (nombres, suites de caractères, n-uplets). Les clés d un dictionnaire doivent toutes être différentes. Un dictionnaire constant est présenté sous la forme de couples <clé> : <valeur>, c est-à-dire d enregistrements, entre accolades. On accède à chaque élément à l aide de la clé. >>> dico = { chien : nom, manger : verbe, chat : nom, le : art } >>> dico[ chat ] nom 28

29 4.6.2 Modification du dictionnaire On ajoute et on modifie des enregistrements à l aide de la même insruction : >>> dico[ manger ] = inf >>> dico[ noir ] = adj >>> dico { chat : nom, noir : adj, le : art, chien : nom, manger : inf } On supprime des enregistrements à l aide de l instruction del : >>> del dico[ chien ] >>> dico { chat : nom, noir : adj, le : art, manger : inf } Autres instructions On peut obtenir le nombre d enregistrements d un dictionnaire, la liste des clés, la liste des valeurs, vérifier si une clé appartient bien au dictionnaire, créer la copie d un dictionnaire, modifier un dictionnaire en lui adjoignant les enregistrements d un autre dictionnaire : >>> dico = { chat : nom, noir : adj, le : art, chien : nom } >>> len(dico) 4 >>> dico.keys() [ chat, noir, le, chien ] >>> dico.values() [ nom, adj, art ] >>> dico.has key( chien ) 1 >>> dic1 = dico.copy() >>> dic2 = { rat : nom, le : det } >>> dic1.update(dic2) >>> dic1 { chat : nom, noir : adj, le : det, chien : nom, rat : nom } On remarque que quand il y a conflit pour une clé donnée avec l instruction update, c est la valeur associée au dictionnaire adjoint qui l emporte sur la valeur d origine. 29

30 5 Programmes itératifs 5.1 Exemple introductif Supposons que l on envisage le problème d enseignement assisté en posant une question à un élève, jusqu à ce qu il donne la bonne réponse. Cela peut s effectuer de la manière suivante : Programme 5.1 reponse = "" print "Quelle est la capitale de la France?" while reponse!= "Paris" : reponse = raw input( ) if reponse!= "Paris" : print "ce n est pas la bonne reponse, recommencez" print "c est cela" 5.2 L instruction while Dans l algorithme qui précède, on utilise une instruction while. Cette instruction a la forme générale suivante: while test : instruction Elle permet d itérer une instruction, c est-à-dire de la répéter un certain nombre de fois (ici non connu à l avance 14 ). C est le test qui permet de savoir jusqu à quand on répète l instruction. Il est clair que l instruction qui est itérée peut être remplacée par un bloc d instructions 15 (ce qui est le cas dans le présent exemple). Nous explicitons ce que fait l instruction while, dans un contexte donné, de manière graphique : instruction 1 while test : instruction 2 instruction Dans le cas présent, on n est pas certain que le programme s arrêtera un jour. 15. Voir ci-dessus page

31 non instruction 1 test oui instruction 3 instruction L instruction for Quand la machine va effectuer une itération sur tous les éléments d une séquence, ou quand on peut savoir, au moment de commencer à exécuter une itération, combien de fois elle répétera son instruction ou son bloc d instructions, il est préférable d utiliser l instruction for. Cette instruction a la forme générale suivante: for nom in séquence : instruction Si on utilisait à la place l instruction while, on serait obligé d écrire un plus grand nombre de lignes d instructions, comme suit : l = len( séquence ) i = 0 while i < l : nom = séquence [i] instruction i = i + 1 Nous allons donner un exemple d utilisation de l instruction for : la recherche du nombre d occurrences de la lettre e dans une phrase. Programme 5.2 print "Donner une phrase :" phrase = raw input( ) k = 0 # Initialisation de k for lettre in phrase : if lettre == e : 31

32 k = k + 1 # Incrémentation de k print "il y a ",k," e dans la phrase" Dans cet algorithme, on utilise un compteur, k, c est-à-dire une variable entière qui est initialisée (ici, à 0), puis incrémentée (par l instruction k = k+1) au fur et à mesure que c est nécessaire. Remarque : Il est souvent utile d itérer des instructions pour la suite des n premiers nombres entiers. En ce cas on utilise l opération range qui forme une telle liste à partir du nombre n : >>> range(5) [0, 1, 2, 3, 4] 5.4 Applications Calcul d une somme Le calcul d une somme d un certain nombre de quantités (pas nécessairement connu à l avance) s effectue en généralisant ce qui a été fait pour les compteurs. On initialise une variable (par exemple de nom somme), en général à la valeur 0. Puis, on ajoute à cette variable les différentes valeurs qu il faut lui ajouter, à l aide d une instruction while ou d une instruction for. Considérons par exemple le problème suivant: un enseignant va communiquer à la machine toutes les notes obtenues par ses élèves. Quand il a fini, il tape un nombre négatif à la place d une note. Il veut connaître la moyenne de ces notes. Programme 5.3 print "Donner votre premiere note" note = float(raw input( )) somme = 0 k = 0 #Initialisation de k while note>= 0 : somme = somme + note k = k + 1 print "Donner la note suivante, negatif si termine" note = float(raw input( )) print "la moyenne est : ",somme/k Calcul d un maximum ou d un minimum Soit maintenant le problème suivant: le professeur entre le nom de tous ses élèves (dans un ordre quelconque). Quand il a fini, il entre la suite zzz. La machine lui renvoie le nom du premier élève dans l ordre alphabétique. 32

33 Programme 5.4 print "Donner le nom du premier eleve" eleve = raw input( ) premier = "zzzz" # Initialisation du minimum while eleve! = "zzz" : if eleve < premier : # test premier = eleve # changement du premier provisoire print "Donner le nom suivant, zzz si termine" eleve = raw input( ) print "le premier par ordre alphabetique est : ", premier On a ici résolu un problème de recherche d une valeur minimum parmi un nombre quelconque de valeurs. Le problème de la recherche d une valeur maximum serait résolu d une manière similaire. Dans les deux cas, on effectue des comparaisons entre valeurs prises deux par deux. On utilise une variable qui contient à un moment donné le minimum (ou le maximum) provisoire (ici premier). On initialise convenablement cette variable (selon le problème). Puis on compare chacun des candidats possibles à être le minimum ou le maximum à la valeur du minimum ou du maximum provisoire. Si nécessaire, on modifie cette valeur provisoire. En fin d itération, cette valeur sera le minimum ou le maximum définitif, c est-à-dire le résultat de l algorithme Algorithmes de tri Les algorithmes de tri rangent les éléments d une liste dans un ordre croissant ou décroissant. Il existe diverses méthodes pour effectuer des tris. Nous en proposons une ci-dessous à titre d exemple. Il s agit d un tri de nombres réels dans l ordre croissant. Programme 5.5 print "combien de nombres y aura-t-il a trier?" n = int(raw input( )) tn = [ ] for i in range(n) : print "nombre numero ",i tn = tn + [int(raw input( ))] for i in range(n-1) : if tn[i] > tn[i+1] : inverse = 1 j = i while inverse and j>=0 : a = tn[j+1] 33

34 tn[j+1] = tn[j] tn[j] = a j = j-1 if j>=0 : inverse = tn[j]>tn[j+1] print "Les nombres, dans l ordre croissant, sont :" for x in tn : print x Instructions itératives imbriquées Il est possible que, parmi les instructions qui sont à itérer, figure une instruction d itération (qui elle-même peut contenir une instruction d itération, etc.). On va donner un exemple d imbrication d instructions itératives: le jeu du pendu. La machine pense à un mot, et l utilisateur doit essayer de le deviner en proposant successivement des lettres. S il propose plus de dix lettres erronées, il a perdu. Au fur et à mesure de ses propositions, la machine affiche les lettres qu il a trouvées dans le mot à leur bonne position. Programme 5.6 a = "anticonstitutionnellement" b = "" for x in a : b = b + " " print b k = 0 while a! = b and k <= 10 : print "Proposez une lettre" lettre = raw input( ) bon = 0 c = "" i = 0 for x in a : if x == lettre : bon = 1 c = c + lettre else : c = c +b[i] i = i+1 b = c if bon : print b else : k = k+1 if k > 10 : print "vous etes pendu" else : print "vous avez trouve" 34

35 6 Les fonctions 6.1 Ecriture des fonctions Le programmeur peut définir lui-même des opérations qui seront ajoutées à l ensemble des opérations primitives que l ordinateur sait effectuer, et ensuite utiliser ces nouvelles opérations de la même manière que les opérations primitives. Par exemple, si l on veut définir, en se servant des opérations de base sur les suites de caractères, une opération qui sélectionne le dernier caractère d une suite, on écrit une fonction, de la manière suivante: Programme 6.1 def dernier(a) : return a[-1] a est le paramètre (unique dans le cas présent) de la fonction dernier. Les paramètres sont des noms. Ils représentent des variables que l on n a pas à initialiser. Ils sont les opérandes génériques de l opération définie par le programmeur. La fonction se divise en un en-tête, qui sert à donner un nom à la fonction, et à indiquer quels sont ses paramètres, et un ensemble d instructions exécutables (ici une seule). Le résultat de la fonction est transmis à l aide de l instruction return <valeur>. Notons l indentation des instructions exécutables par rapport à l en-tête. L exemple qui suit est une fonction à plusieurs paramètres (trois). Il s agit de définir l opération copie qui va extraire d une suite de caractères la sous-suite commençant au p-ième caractère et qui comprend n caractères. S il n y a pas p caractères à partir du p-ième, on s arrête au dernier caractère de la suite de départ. Programme 6.2 def copie(a, p, n) : segment = "" l = len(a) j = p i = 1 while i n and j < l : segment = segment + a[j] i = i + 1 j = j + 1 return segment Le programme formé par les instructions d une fonction qui définit une opération peut comporter autant d instructions que nécessaire, mais il ne comporte pas d instruction 35

Initiation à la programmation en Python

Initiation à 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étail

STAGE IREM 0- Premiers pas en Python

STAGE 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étail

Découverte de Python

Dé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étail

Présentation du langage et premières fonctions

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étail

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

Cours 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étail

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique 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étail

1 Recherche en table par balayage

1 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étail

TP 1. Prise en main du langage Python

TP 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étail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Représentation d un entier en base b

Repré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étail

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

IN 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étail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 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étail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

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

Info0101 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étail

Recherche dans un tableau

Recherche 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étail

Introduction à MATLAB R

Introduction à 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étail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION 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étail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

V- Manipulations de nombres en binaire

V- 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étail

UEO11 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. 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étail

Exercices 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 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étail

L informatique en BCPST

L 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étail

Solutions du chapitre 4

Solutions du chapitre 4 Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (

Plus en détail

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

Manuel 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étail

Licence 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étail

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

1 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étail

Python - introduction à la programmation et calcul scientifique

Python - 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étail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

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

UE 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étail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers 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étail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION 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étail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

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 É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étail

Cours d algorithmique pour la classe de 2nde

Cours 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étail

1 Lecture de fichiers

1 Lecture de fichiers Programmation 1 Cours n 6 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot 1 Lecture de fichiers Un fichier est une suite de caractères mémorisés sur le disque dur de la machine dans un endroit

Plus en détail

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

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

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

Travaux 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étail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Programmer 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) 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étail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation 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étail

TP 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 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étail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

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

Bases 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étail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence 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étail

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmé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étail

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

Chapitre 1 Qu est-ce qu une expression régulière? Chapitre 1 Qu est-ce qu une expression régulière? Les ordinateurs n ont pas du tout la même conception des textes que nous : pour nous, un texte est un ensemble d idées couchées sur papier. Nous nous en

Plus en détail

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

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique 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étail

Représentation des Nombres

Repré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étail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Cours 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 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

Quelques éléments de compilation en C et makefiles

Quelques éléments de compilation en C et makefiles Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable

Plus en détail

2 Comment fonctionne un ordinateur, dans les grandes lignes

2 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étail

1 Introduction au codage

1 Introduction au codage CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles

Plus en détail

Initiation à l algorithmique

Initiation à 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étail

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

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

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

Codage 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étail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4 PROGRAMMER EN MQL4 Apprenez à automatiser vos stratégies sur MetaTrader 4 3 2011 Henri Baltzer. Tous droits réservés. Veuillez excuser par avance les nombreuses erreurs qui subsistent probablement dans

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

Plus en détail

COURS DE MS EXCEL 2010

COURS DE MS EXCEL 2010 COURS DE MS EXCEL 2010 Auteur: Jean Monseu Ce cours est publié par Mechelsesteenweg 102 2018 Anvers Copyright Jean Monseu CFD, Mechelsesteenweg 102, 2018 Anvers Tous droits réservés. Aucune partie de cette

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

Conception des bases de données : Modèle Entité-Association

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

EXCEL TUTORIEL 2012/2013

EXCEL TUTORIEL 2012/2013 EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi

Plus en détail

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

UE 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étail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

INF 321 : mémento de la syntaxe de Java

INF 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étail

R, Bonnes pratiques. Christophe Genolini

R, Bonnes pratiques. Christophe Genolini R, Bonnes pratiques Christophe Genolini 1 Table des matières 1 Des bonnes pratiques, pour quoi faire? 4 2 Choix de l éditeur de texte 4 3 Architecture du code 6 4 Variables 10 5 Commentaires et documentation

Plus en détail

Indications pour une progression au CM1 et au CM2

Indications pour une progression au CM1 et au CM2 Indications pour une progression au CM1 et au CM2 Objectif 1 Construire et utiliser de nouveaux nombres, plus précis que les entiers naturels pour mesurer les grandeurs continues. Introduction : Découvrir

Plus en détail

Cours Informatique Master STEP

Cours 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étail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1 SPF FIN Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale Version 1.1 Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale Date: 17/06/2004 Historique

Plus en détail

SUPPORT DE COURS. Langage C

SUPPORT 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étail

Notions fondamentales du langage C# Version 1.0

Notions 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étail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE 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étail

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

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 Claude Delannoy S initier à la la programmation Avec des exemples en Avec des exemples en C, C++, C#, Java et PHP C, C++, C#, Java et PHP S initier à la programmation Avec des exemples en C, C++, C#, Java

Plus en détail

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données

Plus en détail

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante: 420-183 Programmation 1 8. Les structures conditionnelles Dans l'écriture de tout programme informatique, une des premières nécessités que nous rencontrons est de pouvoir faire des choix. Dans une application

Plus en détail