« INFO719 : rappels et compléments de programmation » : différence entre les versions
Ligne 69 : | Ligne 69 : | ||
* l'[http://fr.wikipedia.org/wiki/UNIVAC_I UNIVAC I] est le premier ordinateur commercialisé, en 1951. |
* l'[http://fr.wikipedia.org/wiki/UNIVAC_I UNIVAC I] est le premier ordinateur commercialisé, en 1951. |
||
⚫ | |||
⚫ | |||
===Python et les autres langages=== |
|||
⚫ | |||
Il existe de nombreux langages de programmations. Certains des plus connus et utilisés sont probablement Java et C / C++. |
Il existe de nombreux langages de programmations. Certains des plus connus et utilisés sont probablement Java et C / C++. |
||
Ligne 85 : | Ligne 85 : | ||
<u>Remarque :</u> Python possède un mécanisme de code intermédiaire, mais celui ci est relativement transparent pour le programmeur. |
<u>Remarque :</u> Python possède un mécanisme de code intermédiaire, mais celui ci est relativement transparent pour le programmeur. |
||
⚫ | |||
Un des avantages de Python est qu'il intègre la « programmation objets » (comme en JAVA). Nous ne parlerons que très peu de cet aspect, que vous retrouverez au second semestre dans le cours d'info-803. |
|||
===Utilisation de Python=== |
|||
Dans les salles machines, vous pouvez tester Python sous Linux ([[Linux dans les salles de TP du Bourget|voir ici]]) en ouvrant un terminal (<tt>Application</tt> → <tt>Accessoires</tt> → <tt>Terminal</tt>) et en tapant <tt>python</tt> ou <tt>ipython</tt> après l'invite de commande. Vous devriez voir quelque chose comme |
|||
$ python |
|||
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) |
|||
[GCC 4.3.3] on linux2 |
|||
Type "help", "copyright", "credits" or "license" for more information. |
|||
>>> |
|||
Vous pouvez maintenant tester des petits programmes directement. |
|||
Lorsque vous écrivez un programme conséquent, il est important de le sauver dans un fichier. Vous pouvez soit utiliser votre éditeur de texte favori (Gedit, Emacs, Xemacs, Vim, ...) pour écrire vos programmes et utiliser le terminal pour les exécuter : |
|||
$ python mon_programme.py |
|||
Une autre possibilité (recommandée si vous n'êtes pas sûrs de vous) est d'utiliser l'environnement Python « Idle ». Vous pouvez probablement accéder à Idle par les menus. (<tt>Applications</tt> → <tt>Développement</tt> → <tt>Idle</tt> <tt>???</tt>). Vous vous retrouvez alors avec une fenêtre <tt>Python Shell</tt> qui permet de tester l'exécution de programmes (ou morceaux de programmes), et vous pouvez également éditer un programme (<tt>File</tt> → <tt>New Window</tt> ou <tt>File</tt> → <tt>Open</tt>). La touche F5 dans la fenêtre d'édition permet de faire passer votre programme dans la fenêtre <tt>Python Shell</tt>, et donc de le tester. |
|||
===Un tout petit peu de syntaxe=== |
|||
La syntaxe de Python est différente de JAVA ou Pascal, mais en général plus simple. Deux points importants sont : |
|||
* on n'utilise pas le point-virgule <tt>;</tt> pour séparer les instructions : on change simplement de ligne |
|||
* on n'utilise pas les accolades (<tt>{</tt> / <tt>}</tt>) ou les <tt>begin</tt> / <tt>end</tt> pour faire des blocs, mais on change simplement l'indentation |
|||
Voici des exemples de code Python pour les structures usuelles : |
|||
* commentaires : |
|||
# si une ligne commence par un '#', alors c'est un commentaire |
|||
* conditionnelles : |
|||
<source lang="python"> |
|||
if n <= 0 and n < 10: |
|||
print "C'est un chiffre" |
|||
elif 10 <= n and n < 100: |
|||
print "C'est un nombre à deux chiffres" |
|||
elif n >= 100: |
|||
print "C'est un nombre à beaucoup de chiffres" |
|||
print "(au moins trois)" |
|||
else: |
|||
print "Erreur : c'est probablement un nombre négatif..." |
|||
</source> |
|||
* boucles <tt>for</tt> : |
|||
<source lang="python"> |
|||
for i in range(100): # c'est pour faire une boucle de 0 à 99... |
|||
r = i*i |
|||
print r |
|||
print "C'est fini..." |
|||
</source> |
|||
* boucles <tt>while</tt> : |
|||
<source lang="python"> |
|||
d = 0 |
|||
n = 0 |
|||
tmp = n |
|||
while (tmp > 0): |
|||
tmp = tmp/10 # la division entre des nombres entiers donne le quotient (division entière) |
|||
d = d + 1 |
|||
print "Il faut %i chiffres pour écrire %i." % (d,n) |
|||
</source> |
|||
'''Remarque importante :''' pour pouvoir utiliser les accents, en dehors de l'environnement Idle, il faut mettre la ligne suivante au début de votre programme |
|||
# -encoding: utf8- |
|||
ou |
|||
# -encoding: latin1- |
|||
⚫ | |||
⚫ | |||
===Quelques exercices=== |
===Quelques exercices=== |
Version du 7 septembre 2009 à 14:54
Ce wiki est un complément de cours pour le cours « info-719 : rappels et compléments de programmation ». La participation au wiki est fortement encouragée.
Pour pouvoir modifier les pages, inscrivez-vous (lien en haut à droite) pour obtenir un login et mot de passe. (Choisissez un login du style PrenomNom...)
Je vous conseille d'aller lire ce guide pour vous familiariser avec les wikis.
Exercice : si vous n'en avez pas, créez-vous un compte et essayez de modifier cette page (correction de fôtes d'aurtograffe, rajout de détails, mise en page, ...)
Vous pouvez aussi utiliser la page de discussion pour ... discuter. (Ou poser des questions, faire des commentaires etc.)
Détails techniques
Nouvelles
- 1 septembre 2009 à 11:13 (CEST) création de la page
Organisation des séances
Sauf cas particulier, toutes les séances de cours et de TD seront en fait des séances de cours/TD.
Deux séances de TP de 4h sont prévues, mais deux ou trois séances de TD auront lieu en salle machine, et seront donc des séances de TD/TP.
Supports de TD et TP
-- à venir --
Introduction
Objectifs du cours
Plan
Rappels historiques
Vous pouvez partir de cette page pour avoir un peu plus de détails...
La préhistoire : le calcul
- le boulier chinois
- la pascaline de Pascal, inventée en 1641/42 : elle ne permet de faire que des additions (et des soustractions
- Leibniz rajoute la multiplication à la pascaline (1673)
- les "moulins à chiffres" de Charles Babbage (1834-36), malheureusement jamais construits...
- la "tabulating business machine" de Hollerith permet d'automatiser les calculs pour le recensement de la population américaine. Ceci donnera ensuite la société "international business machine" (IBM).
- l'apparition du relais électromécanique (1900) d'une fréquence de 100 Hz, permet la construction du Harvard Mark I en 1944
Les programmes et instructions
- les orgues de Barbarie
- les métiers à tisser de Vaucanson et Jacquard (1801)
Les ordinateurs "modernes"
- l'invention du tube à vide permet le développements d'ordinateurs entièrement électroniques : l'ENIAC en est le premier exemplaire (1946) ; il pèse environ 30 tonnes...
- la machine de Turing (ordinateur théorique)
- le Manchester Mark I (1948) et l'EDVAC (1951) améliorent l'ENIAC et commencent à ressembler à des ordinateurs modernes
- l'UNIVAC I est le premier ordinateur commercialisé, en 1951.
Le langage Python : première partie
Python et les autres langages
Il existe de nombreux langages de programmations. Certains des plus connus et utilisés sont probablement Java et C / C++.
Le langage Python est également très présent car il permet d'écrire assez facilement des petits programmes pour effectuer des taches relativement complexes. (Les programmeurs de Google utilisent beaucoup Python.) Python est un langage libre et gratuit, disponible pour la plupart des ordinateurs (PC Windows, PC Linux / Unix, Macintosh, ...)
Python est, en première approximation, un langage interprété. Cela signifie qu'il n'y a pas d'étape de compilation, mais que l'utilisateur doit disposer d'un interprète Python sur sa propre machine. (Javascript, PHP ou Perl sont d'autres exemples de langages interprétés.)
Ceci est a contraster avec les langages compilés (C/C++, Pascal, ADA) ou le programmeur utilise le compilateur pour produire un fichier exécutable. L'utilisateur final n'a besoin de rien pour exécuter le programme (mais il doit avoir un ordinateur compatible avec le fichier exécutable). L'intérêt est que le programme peut plus facilement être optimisé pour une famille d'ordinateurs. Les langages compilés sont en général plus rapides que les langages interprétés...
La troisième famille de langage est celle des langage utilisant du code intermédiaire : le programme est compilé en un fichier binaire optimisé, et l'utilisateur doit avoir une « machine virtuelle » pour pouvoir exécuter le programme. JAVA est un tels langage.
Remarque : Python possède un mécanisme de code intermédiaire, mais celui ci est relativement transparent pour le programmeur.
Un des avantages de Python est qu'il intègre la « programmation objets » (comme en JAVA). Nous ne parlerons que très peu de cet aspect, que vous retrouverez au second semestre dans le cours d'info-803.
Utilisation de Python
Dans les salles machines, vous pouvez tester Python sous Linux (voir ici) en ouvrant un terminal (Application → Accessoires → Terminal) et en tapant python ou ipython après l'invite de commande. Vous devriez voir quelque chose comme
$ python Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Vous pouvez maintenant tester des petits programmes directement.
Lorsque vous écrivez un programme conséquent, il est important de le sauver dans un fichier. Vous pouvez soit utiliser votre éditeur de texte favori (Gedit, Emacs, Xemacs, Vim, ...) pour écrire vos programmes et utiliser le terminal pour les exécuter :
$ python mon_programme.py
Une autre possibilité (recommandée si vous n'êtes pas sûrs de vous) est d'utiliser l'environnement Python « Idle ». Vous pouvez probablement accéder à Idle par les menus. (Applications → Développement → Idle ???). Vous vous retrouvez alors avec une fenêtre Python Shell qui permet de tester l'exécution de programmes (ou morceaux de programmes), et vous pouvez également éditer un programme (File → New Window ou File → Open). La touche F5 dans la fenêtre d'édition permet de faire passer votre programme dans la fenêtre Python Shell, et donc de le tester.
Un tout petit peu de syntaxe
La syntaxe de Python est différente de JAVA ou Pascal, mais en général plus simple. Deux points importants sont :
- on n'utilise pas le point-virgule ; pour séparer les instructions : on change simplement de ligne
- on n'utilise pas les accolades ({ / }) ou les begin / end pour faire des blocs, mais on change simplement l'indentation
Voici des exemples de code Python pour les structures usuelles :
- commentaires :
# si une ligne commence par un '#', alors c'est un commentaire
- conditionnelles :
<source lang="python"> if n <= 0 and n < 10:
print "C'est un chiffre"
elif 10 <= n and n < 100:
print "C'est un nombre à deux chiffres"
elif n >= 100:
print "C'est un nombre à beaucoup de chiffres" print "(au moins trois)"
else:
print "Erreur : c'est probablement un nombre négatif..."
</source>
- boucles for :
<source lang="python"> for i in range(100): # c'est pour faire une boucle de 0 à 99...
r = i*i print r
print "C'est fini..." </source>
- boucles while :
<source lang="python"> d = 0 n = 0 tmp = n while (tmp > 0):
tmp = tmp/10 # la division entre des nombres entiers donne le quotient (division entière) d = d + 1
print "Il faut %i chiffres pour écrire %i." % (d,n) </source>
Remarque importante : pour pouvoir utiliser les accents, en dehors de l'environnement Idle, il faut mettre la ligne suivante au début de votre programme
# -encoding: utf8-
ou
# -encoding: latin1-
Rappels d'algorithmique
Un exemple
Quelques exercices
Notions de complexité
Compléments de cours, références
- la page officiel du langage Python
- la documentation des bibliothèques standards
- un livre gratuit de Steven F. Lott sur le langage Python : Building Skills in Python (accès direct)