Vous êtes sur la page 1sur 168

C. Le Pape T.

Hilaire
cecile.lepape@lip6.fr

Informatique gnrale 1 e e Algorithmique et programmation en Python

GM3 2011-2012

Informatique gnrale 1 e e

Site web du module http://webia.lip6.fr/lepape/ens/GM3-infogen1 Cours TD (Exercices corrigs) e TP (Exercices ` rendre ` la n de la sance) a a e Annales Emploi du temps

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

2/77

Informatique gnrale 1 e e

10h de cours, 20h de TP 4 TP sur lutilisation de Python 1 TP en temps limit e 4 sances de cours e 1 examen Les TP seront tous valus, tous seront nots e e e Projet not e Examen de 2h (derni`re sance de cours) e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

3/77

Informatique gnrale 1 e e

10h de cours, 20h de TP 4 TP sur lutilisation de Python 1 TP en temps limit e 4 sances de cours e 1 examen Les TP seront tous valus, tous seront nots e e e Projet not e Examen de 2h (derni`re sance de cours) e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

3/77

Les programmes et moi


Vous utilisez tous les jours des tas de programmes informatiques. navigateur internet lecteur de video jeux video diteurs de texte e ... Comment ca marche sous le capot ? Du programme ` son excution il se passe des tas de choses quon a e ne verra pas. On apprendra ` rchir et ` crire des programmes a e e ae relativement simples.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

4/77

Les programmes et moi


Vous utilisez tous les jours des tas de programmes informatiques. navigateur internet lecteur de video jeux video diteurs de texte e ... Comment ca marche sous le capot ? Du programme ` son excution il se passe des tas de choses quon a e ne verra pas. On apprendra ` rchir et ` crire des programmes a e e ae relativement simples.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

4/77

Les programmes et moi


Vous utilisez tous les jours des tas de programmes informatiques. navigateur internet lecteur de video jeux video diteurs de texte e ... Comment ca marche sous le capot ? Du programme ` son excution il se passe des tas de choses quon a e ne verra pas. On apprendra ` rchir et ` crire des programmes a e e ae relativement simples.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

4/77

Prambule e
Ce cours est une introduction ` la programmation et a lalgorithmique Programmer pour eectuer des calculs compliqus/rptitifs e e e (automatisation des tches du mtier dingnieur) a e e Apprendre ` rchir (algorithmique) et ` mettre en uvre a e e a (programmer) dans nimporte quel langage Apprhender la dicult de rsolution dun probl`me e e e e informatique donn et savoir discuter avec un dveloppeur e e Il est illustr par lapprentissage du langage Python e

Tous les concepts vus pourront tre appliqus ` dautres langages. e e a

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

5/77

Prambule e
Ce cours est une introduction ` la programmation et a lalgorithmique Programmer pour eectuer des calculs compliqus/rptitifs e e e (automatisation des tches du mtier dingnieur) a e e Apprendre ` rchir (algorithmique) et ` mettre en uvre a e e a (programmer) dans nimporte quel langage Apprhender la dicult de rsolution dun probl`me e e e e informatique donn et savoir discuter avec un dveloppeur e e Il est illustr par lapprentissage du langage Python e

Tous les concepts vus pourront tre appliqus ` dautres langages. e e a

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

5/77

Information et ordinateurs

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Architecture dun ordinateur "#$%&'($')#(*+(,*-#+&./'()#,*


carte mre CPU (microprocesseur) mmoire vive (RAM) cran

Architecture dun ordinateur

cartes de priphriques

alimentation

clavier

lecteur de disque (CD, DVD) disque dur

souris
!

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

7/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Les ordinateurs calculent !

utiliss pour traiter du texte, du son, des images, ... e pourtant ils ne font quune seule chose : Calculer tout est donc reprsent par des nombres (texte, son, image, e e jeux...) plus exactement, ils ne manipulent que des informations binaires 0 ou 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

8/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Les ordinateurs calculent !

utiliss pour traiter du texte, du son, des images, ... e pourtant ils ne font quune seule chose : Calculer tout est donc reprsent par des nombres (texte, son, image, e e jeux...) plus exactement, ils ne manipulent que des informations binaires 0 ou 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

8/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Information binaire

information avec uniquement deux tats e vrai ou faux, ouvert ou ferm, ... e correspond ` une ralit physique de lordinateur a e e
llectronique numrique du processeur e e stockage en mmoire (RAM), sur le disque dur, le DVD, ... e la transmission dinformation numrique e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

9/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Information binaire

On reprsente une information binaire par 0 ou 1 e Ce nest quune abstraction pour reprsenter linformation. e Autres abstractions :
un mappemonde permet de reprsenter la terre e un plan de mtro reprsente le plan du rseau e e e le chire 4 peut se reprsenter de direntes faons : 4, IV, 100 e e c ...

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

10/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Information binaire

On reprsente une information binaire par 0 ou 1 e Ce nest quune abstraction pour reprsenter linformation. e Autres abstractions :
un mappemonde permet de reprsenter la terre e un plan de mtro reprsente le plan du rseau e e e le chire 4 peut se reprsenter de direntes faons : 4, IV, 100 e e c ...

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

10/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Numrotation de position e

Pour reprsenter tous les nombres, nous utilisons un alphabet e spcialis, les chires : 0, 1, 2, 3, 4 5, 6, 7, 8, 9 e e
on reprsente nos nombres en base 10 e on utilises parfois dautres bases (heures, minutes, secondes) certaines civilisations utilisent dautres bases (maya en base 20) Les Simpsons utilisent la base 8

Lordre des chires dans un nombre est capitale Cest la position des nombres qui donnent la valeur 1493 = 1 103 + 4 102 + 9 101 + 3 100

On peut utiliser dautre base que la base 10. Exemple : 149310 = 2 83 + 7 82 + 2 81 + 5 80 = 27258
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 11/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Numrotation de position e

Pour reprsenter tous les nombres, nous utilisons un alphabet e spcialis, les chires : 0, 1, 2, 3, 4 5, 6, 7, 8, 9 e e
on reprsente nos nombres en base 10 e on utilises parfois dautres bases (heures, minutes, secondes) certaines civilisations utilisent dautres bases (maya en base 20) Les Simpsons utilisent la base 8

Lordre des chires dans un nombre est capitale Cest la position des nombres qui donnent la valeur 1493 = 1 103 + 4 102 + 9 101 + 3 100

On peut utiliser dautre base que la base 10. Exemple : 149310 = 2 83 + 7 82 + 2 81 + 5 80 = 27258
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 11/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Numrotation de position e

Pour reprsenter tous les nombres, nous utilisons un alphabet e spcialis, les chires : 0, 1, 2, 3, 4 5, 6, 7, 8, 9 e e
on reprsente nos nombres en base 10 e on utilises parfois dautres bases (heures, minutes, secondes) certaines civilisations utilisent dautres bases (maya en base 20) Les Simpsons utilisent la base 8

Lordre des chires dans un nombre est capitale Cest la position des nombres qui donnent la valeur 1493 = 1 103 + 4 102 + 9 101 + 3 100

On peut utiliser dautre base que la base 10. Exemple : 149310 = 2 83 + 7 82 + 2 81 + 5 80 = 27258
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 11/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Numrotation de position e

Pour reprsenter tous les nombres, nous utilisons un alphabet e spcialis, les chires : 0, 1, 2, 3, 4 5, 6, 7, 8, 9 e e
on reprsente nos nombres en base 10 e on utilises parfois dautres bases (heures, minutes, secondes) certaines civilisations utilisent dautres bases (maya en base 20) Les Simpsons utilisent la base 8

Lordre des chires dans un nombre est capitale Cest la position des nombres qui donnent la valeur 1493 = 1 103 + 4 102 + 9 101 + 3 100

On peut utiliser dautre base que la base 10. Exemple : 149310 = 2 83 + 7 82 + 2 81 + 5 80 = 27258
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 11/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

La base dcimale e
En base dcimale, on utilise ces 2 r`gles pour lcriture dun e e e nombre On utilise uniquement lalphabet de 0 ` 9 (10 chires) a La position dun de ces chires dans un nombre nous indique la puissance de dix par laquelle ce chire doit tre multipli e e pour reconstituer le nombre. La position est compte de e droite ` gauche, position 0 pour le chire le plus ` a a droite.
Si le 7 est en 1`re position, il reprsente 7 100 , c-`-d 7 (cest e e a lunit) e e Sil y a un 7 en 5`me position, ce 7 reprsente 7 104 , c-`-d e a 70000

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

12/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

La base dcimale e
En base dcimale, on utilise ces 2 r`gles pour lcriture dun e e e nombre On utilise uniquement lalphabet de 0 ` 9 (10 chires) a La position dun de ces chires dans un nombre nous indique la puissance de dix par laquelle ce chire doit tre multipli e e pour reconstituer le nombre. La position est compte de e droite ` gauche, position 0 pour le chire le plus ` a a droite.
Si le 7 est en 1`re position, il reprsente 7 100 , c-`-d 7 (cest e e a lunit) e e Sil y a un 7 en 5`me position, ce 7 reprsente 7 104 , c-`-d e a 70000

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

12/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

La base dcimale e
En base dcimale, on utilise ces 2 r`gles pour lcriture dun e e e nombre On utilise uniquement lalphabet de 0 ` 9 (10 chires) a La position dun de ces chires dans un nombre nous indique la puissance de dix par laquelle ce chire doit tre multipli e e pour reconstituer le nombre. La position est compte de e droite ` gauche, position 0 pour le chire le plus ` a a droite.
Si le 7 est en 1`re position, il reprsente 7 100 , c-`-d 7 (cest e e a lunit) e e Sil y a un 7 en 5`me position, ce 7 reprsente 7 104 , c-`-d e a 70000

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

12/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Reprsentation binaire e

Concr`tement, les ordinateurs ne traitent que des donnes e e binaires. Linformation est donc stocke avec une e reprsentation binaire. On utilise donc la base 2. e Dnitions e Une information binaire, symbolise couramment par 0 ou 1 e sappelle un bit (binary digit) Un groupe de 8 bits sappelle un octet (en anglais Byte, ` ne a pas confondre avec bit)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

13/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Reprsentation binaire e

Concr`tement, les ordinateurs ne traitent que des donnes e e binaires. Linformation est donc stocke avec une e reprsentation binaire. On utilise donc la base 2. e Dnitions e Une information binaire, symbolise couramment par 0 ou 1 e sappelle un bit (binary digit) Un groupe de 8 bits sappelle un octet (en anglais Byte, ` ne a pas confondre avec bit)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

13/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Reprsentation binaire e

Concr`tement, les ordinateurs ne traitent que des donnes e e binaires. Linformation est donc stocke avec une e reprsentation binaire. On utilise donc la base 2. e Dnitions e Une information binaire, symbolise couramment par 0 ou 1 e sappelle un bit (binary digit) Un groupe de 8 bits sappelle un octet (en anglais Byte, ` ne a pas confondre avec bit)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

13/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Units informatiques e

On parle souvent de kilo-octets, mga-octets, giga-octets, e tra-octets e 1 ko = 1 000 octets 1 Mo = 1 000 ko = 1 000 000 octets 1 Go = 1 000 000 000 octets ... Attention, avant 1998, on avait 1 ko = 1024 octets, 1Mo = 1024 ko = 1 048 576 octets. iPhone de 64Go, disque dur de 2To (ou 1TB) connection internet de 20 gigabit/s ...

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

14/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Units informatiques e

On parle souvent de kilo-octets, mga-octets, giga-octets, e tra-octets e 1 ko = 1 000 octets 1 Mo = 1 000 ko = 1 000 000 octets 1 Go = 1 000 000 000 octets ... Attention, avant 1998, on avait 1 ko = 1024 octets, 1Mo = 1024 ko = 1 048 576 octets. iPhone de 64Go, disque dur de 2To (ou 1TB) connection internet de 20 gigabit/s ...

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

14/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Units informatiques e

On parle souvent de kilo-octets, mga-octets, giga-octets, e tra-octets e 1 ko = 1 000 octets 1 Mo = 1 000 ko = 1 000 000 octets 1 Go = 1 000 000 000 octets ... Attention, avant 1998, on avait 1 ko = 1024 octets, 1Mo = 1024 ko = 1 048 576 octets. iPhone de 64Go, disque dur de 2To (ou 1TB) connection internet de 20 gigabit/s ...

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

14/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Le codage binaire : dcodage e

En base binaire, on utilise ces 2 r`gles pour lcriture dun nombre e e On utilise uniquement lalphabet compos de 0 et 1 e La position dun de ces chires dans un nombre nous indique la puissance de deux par laquelle ce chire doit tre multipli e e pour reconstituer le nombre Dcodage de 10110101b e 10110101b = 1 27 + 0 26 + 1 25 + 1 24 + 0 23 + 1 22 +0 21 + 1 20 = 128 + 32 + 16 + 4 + 1 = 18110

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

15/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Le codage binaire : dcodage e

En base binaire, on utilise ces 2 r`gles pour lcriture dun nombre e e On utilise uniquement lalphabet compos de 0 et 1 e La position dun de ces chires dans un nombre nous indique la puissance de deux par laquelle ce chire doit tre multipli e e pour reconstituer le nombre Dcodage de 10110101b e 10110101b = 1 27 + 0 26 + 1 25 + 1 24 + 0 23 + 1 22 +0 21 + 1 20 = 128 + 32 + 16 + 4 + 1 = 18110

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

15/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Le codage binaire : dcodage e

En base binaire, on utilise ces 2 r`gles pour lcriture dun nombre e e On utilise uniquement lalphabet compos de 0 et 1 e La position dun de ces chires dans un nombre nous indique la puissance de deux par laquelle ce chire doit tre multipli e e pour reconstituer le nombre Dcodage de 10110101b e 10110101b = 1 27 + 0 26 + 1 25 + 1 24 + 0 23 + 1 22 +0 21 + 1 20 = 128 + 32 + 16 + 4 + 1 = 18110

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

15/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Le codage binaire : dcodage e

En base binaire, on utilise ces 2 r`gles pour lcriture dun nombre e e On utilise uniquement lalphabet compos de 0 et 1 e La position dun de ces chires dans un nombre nous indique la puissance de deux par laquelle ce chire doit tre multipli e e pour reconstituer le nombre Dcodage de 10110101b e 10110101b = 1 27 + 0 26 + 1 25 + 1 24 + 0 23 + 1 22 +0 21 + 1 20 = 128 + 32 + 16 + 4 + 1 = 18110

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

15/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Le codage binaire : codage

Recherche des puissances successives de 2 Divisions enti`res successives par 2 (restes) e

27 128

26 64

25 32

24 16

23 8

22 4

21 2

20 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

16/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Octets et choix dun codage

Un octet peut servir ` coder 28 nombres dirents (car 8 bits a e de 2 tats) e Dirents choix sont possibles pour interprter un octet e e
la srie des nombres entiers de 0 ` 255 e a la srie des nombres entiers relatifs de -128 ` +127 e a ...

Pure aaire de convention, de choix de codage Si on veut coder des nombres plus grands, il faudra utiliser plusieurs octets
avec 2 octets, 65 536 possibilits e avec 3 octets, 16 777 216 possibilits e ...

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

17/77

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Octets et codage de texte

Un octet peut aussi coder un caract`re e Il y a 26 caract`res minuscules, 26 majuscules, 10 chires, e plus la ponctuation Un octet est susant pour coder un jeu de caract`res (hors e accents) Une norme permet ` tout le monde davoir la mme a e reprsentation e ASCII American Standard Code for Information Interchange) est le standard 43 48 49 65 67 97
C. Le Pape, T. Hilaire

00101011b 00110000b 00110001b 01000001b 01000011b 01100001b

+ 0 1 A C a
18/77

Informatique gnrale 1 Algorithmique et programmation e e

Reprsentation de linformation Reprsentation binaire et hexadcimale e e e

Octets et codage de texte

Un octet peut aussi coder un caract`re e Il y a 26 caract`res minuscules, 26 majuscules, 10 chires, e plus la ponctuation Un octet est susant pour coder un jeu de caract`res (hors e accents) Une norme permet ` tout le monde davoir la mme a e reprsentation e ASCII American Standard Code for Information Interchange) est le standard 43 48 49 65 67 97
C. Le Pape, T. Hilaire

00101011b 00110000b 00110001b 01000001b 01000011b 01100001b

+ 0 1 A C a
18/77

Informatique gnrale 1 Algorithmique et programmation e e

Introduction ` a lalgorithmique

Dnition e

Quest-ce que lalgorithmique

De lalgorithme au programme

Vous avez dj` excut des algorithmes ea e e


en suivant une recette de cuisine en dchirant un mode demploi (Ikea) e

Vous avez dj` fabriqu et fait excut des algorithmes ea e e e


si vous avez dj` indiqu un chemin ` un touriste ea e a si vous avez fait chercher un objet ` quelquun par tlphone a ee

Lalgorithmique est une aptitude partage par tout le monde e (ce nest pas uniquement informatique)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

20/77

Dnition e

Quest-ce que lalgorithmique

De lalgorithme au programme

Vous avez dj` excut des algorithmes ea e e


en suivant une recette de cuisine en dchirant un mode demploi (Ikea) e

Vous avez dj` fabriqu et fait excut des algorithmes ea e e e


si vous avez dj` indiqu un chemin ` un touriste ea e a si vous avez fait chercher un objet ` quelquun par tlphone a ee

Lalgorithmique est une aptitude partage par tout le monde e (ce nest pas uniquement informatique)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

20/77

Dnition e

Quest-ce que lalgorithmique

De lalgorithme au programme

Vous avez dj` excut des algorithmes ea e e


en suivant une recette de cuisine en dchirant un mode demploi (Ikea) e

Vous avez dj` fabriqu et fait excut des algorithmes ea e e e


si vous avez dj` indiqu un chemin ` un touriste ea e a si vous avez fait chercher un objet ` quelquun par tlphone a ee

Lalgorithmique est une aptitude partage par tout le monde e (ce nest pas uniquement informatique)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

20/77

Dnition e

De lalgorithme au programme

Dnition dun algorithme e

On peut comparer un algorithme ` une recette de cuisine. Les a ingrdients ncessaires ` la ralisation du gteau sont les e e a e a donnes ou entres. Lalgorithme est une suite dactions qui e e produira des rsultats ou sorties. e La recette du gteau nantais a

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

21/77

Dnition e

De lalgorithme au programme

Dnition dun algorithme e

On peut comparer un algorithme ` une recette de cuisine. Les a ingrdients ncessaires ` la ralisation du gteau sont les e e a e a donnes ou entres. Lalgorithme est une suite dactions qui e e produira des rsultats ou sorties. e La recette du gteau nantais a
sucre beurre chocolat rhum

entres

amandes

farine

oeufs

algorithme

Recette du gteau nantais

sorties
C. Le Pape, T. Hilaire

gteau nantais
Informatique gnrale 1 Algorithmique et programmation e e 21/77

Dnition e

Etape1 : conception de lalgorithme

De lalgorithme au programme

Intention (ide, envie, besoin)

Algorithme

CONCEPTION

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

22/77

Dnition e

Etape1 : conception de lalgorithme

De lalgorithme au programme

La conception de lalgorithme est la partie la plus importante. Elle se fait sur papier et peut prendre beaucoup de temps. Bacler cette tape conduit toujours ` des programmes e a inecaces voire incorrects et fait perdre plus de temps nalement. Soigner cette tape fait gagner beaucoup de e temps au nal. Un algorithme bien conu se traduira facilement en langage de c programmation, quelque soit le langage cible choisi.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

23/77

Dnition e

De lalgorithme au programme

De lalgorithme au programme

Pourquoi apprendre lalgorithmique pour apprendre ` programmer ? a En quoi a-t-on besoin dun langage spcial, distinct des langages e de programmation comprhensibles par les ordinateurs ? e Lalgorithmique exprime les instructions rsolvant un probl`me e e donn indpendamment des particularits de tel ou tel e e e langage. Plus facile de rchir au probl`me, le dcouper, le rsoudre si e e e e e on na pas ` se soucier des particularits dun langage a e Analogie avec la dissertation : algorithme code plan, les ides, leur organisation e rdaction + orthographe e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

24/77

Dnition e

De lalgorithme au programme

De lalgorithme au programme

Pourquoi apprendre lalgorithmique pour apprendre ` programmer ? a En quoi a-t-on besoin dun langage spcial, distinct des langages e de programmation comprhensibles par les ordinateurs ? e Lalgorithmique exprime les instructions rsolvant un probl`me e e donn indpendamment des particularits de tel ou tel e e e langage. Plus facile de rchir au probl`me, le dcouper, le rsoudre si e e e e e on na pas ` se soucier des particularits dun langage a e Analogie avec la dissertation : algorithme code plan, les ides, leur organisation e rdaction + orthographe e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

24/77

Dnition e

De lalgorithme au programme

Ecrire un programme

Ecrire un programme informatique revient ` crire un algorithme ae dans un langage comprhensible par un ordinateur e Programme = Algorithme + Langage Un programme est un texte qui doit tre excut par e e e lordinateur. Un programme informatique est la traduction de lalgorithme dans le langage cible.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

25/77

Dnition e

Etape 2 : traduction en langage de programmation


Texte comprhensible par l'humain crit dans un pseudo-langage informel
1) obtenir la longueur 2) obtenir la largeur 3) calculer le primtre 4) afficher le primtre

De lalgorithme au programme

PROGRAMMATION

longueur=12 largeur=3.5 perimetre=largeur*longeur print "perimetre=",perimetre

Texte comprhensible par l'humain crit dans un langage de programmation

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

26/77

Dnition e

De lalgorithme au programme

Dnition dun programme e

Un programme informatique est crit dans un langage de e programmation Le langage permet ` la personne qui rdige un programme de a e faire abstraction de certains mcanismes internes. e Contrairement ` un algorithme qui scrit dans un langage de a e pseudo-code ou en langage naturel, un programme doit tre e correct syntaxiquement. Un mme algorithme peut tre crit dans des dizaines de e e e langages de programmations dirents : C, java, javascript, e C++, caml, python, ....

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

27/77

Dnition e

De lalgorithme au programme

Langages informatiques

Le C
Langage de haut niveau, plus lisible que lassembleur, tout en restant proche de la machine Syst`mes dexploitation, syst`mes embarqus, calculs intensifs, e e e ...

C++, Java, Objective-C, ...


Langage haut niveau orients objets e

PHP, HTML, SQL


Langages lis au web e HTML : langage de description de page SQL : langage de requtes sur des bases de donnes e e PHP : langage de programmation web

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

28/77

Dnition e

De lalgorithme au programme

Python

Simple Ecace, et fourni avec de nombreuses biblioth`ques (Battery included !) e Code tr`s lisible, pdagogique e e De plus en plus utilis (Google, ...) e Logiciel libre, disponible sur toutes les plateformes (Windows, Linux, Mac OS, etc.)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

29/77

Dnition e

Etape 3 : traduction en langage binaire


Texte comprhensible par l'humain crit dans un langage de programmation
longueur=12 largeur=3.5 perimetre=largeur*longeur print "perimetre=",perimetre

De lalgorithme au programme

COMPILATION

0010010101010101001010110101 1010010101010101010101010101 1111000100111001001001010010 1110001010010101010100010101

Texte comprhensible par l'ordinateur crit en langage binaire

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

30/77

Dnition e

De lalgorithme au programme

Langages informatiques

Le langage machine
Cest la suite de bits qui est interprte par le processeur de ee lordinateur lors de lexcution dun programme, chaque e instruction tant caractrise par un code dopration. e e e e
31 2827 1615 87

ARM Instruction Set Form


0

Instruct
Multiply

Cond Cond

0 0 I Opcode

Rn Rd

Rd Rn Rs Rs

Operand2 1 0 0 1 1 0 0 1 Rm Rm

Data proc

Le langage dassemblage (assembleur) Cond 0 0 0 0 1 U A S RdHi RdLo

0 0 0 0 0 0 A S

Langage proche1du Blangage Rn machine qui0peut 0tre directement e 1 0 0 1 Rm Cond 0 0 0 0 0 0 Rd 0 0 Swap interprt par le processeur de lordinateur tout en restant ee Cond 0 1 I P U B W L Rn Rd Offset Load/Stor lisible par un humain, cr pour faciliter le travail des ee Cond 1 0 0 P U S W L Rn Register List Load/Stor programmeurs. Il consiste ` reprsenter les combinaisons de a e Cond 0 0 0 P U 1 W L Rn Rd Offset1 1 S H 1 Offset2 Halfword tran bits employes en langage binaire par des symboles. e Halfword tra Cond Rn Rd 0 0 0 0 S H 1 Rm Exemple 0 ADD P U 0 W L : 0 0 r0,r1,0x62 signie ajouter la 1valeur du Branch Cond 0 1 la registre r1 1avec L valeur hexadcimale 0x61 et mettre le e Offset Branch Ex 0 0 1 1 Rn rsultat dans 0le1 registre0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 e Cond 0 0
Cond Cond
C. Le Pape, T. Hilaire

Long Mul

1 1 0 P U N W L 1 1 1 0 Op1

Rn CRn

CRd CRd

CPNum CPNum Op2 Op2

Offset 0 1 CRm CRm

Coproces

Coproces

programmation Cond Informatique 0 enrale 1 L Algorithmique etRd 1 1 1 g e Op1 CRn CPNum

31/77 Coproces

Dnition e

Etape 4 : excuter un programme e


Une fois traduit en langage binaire, le programme ne fait encore rien. Pour obtenir un rsultat, il faut encore excuter le e e programme. Lexcution du programme dpend de son environnement : e e syst`me dexploitation, biblioth`ques installes, etc. e e e
Texte binaire comprhensible par l'ordinateur
0010100101010101010010101011 1010101001010101010110101001 1010101001010101010110100111

De lalgorithme au programme

EXECUTION

>>>perimetre=42

Excution du programme dans un terminal

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

32/77

Dnition e

De lalgorithme au programme

Programmer en python

Python est capable de compiler et dexcuter un programme en e mme temps. On dira quil interpr`te le programme. e e Il existe deux modes dexcution de python : e Mode interactif : ouvez un terminal, tapez python et valuer e des expressions en interagissant avec python. Mode batch : ouvrez un terminal et demander ` python a dexcuter les instructions dun programme contenu dans un e chier. On parlera aussi de scripts python.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

33/77

Dnition e

De lalgorithme au programme

Travailler avec Python

Programmer en python ncessite : e


1 2

un diteur de texte (ex : gedit, wordpad, emacs, ...) e un interpr`teur python (un programme capable de comprendre e les programmes crits en python). e
A lcole, linterpr`teur python est install et peut-tre excut e e e e e e dans un terminal avec la ligne de commande : python A la maison, installer python est tr`s simple. e Vous pouvez consulter la page officielle ici : http://python.org/getit/releases/2.7.2/

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

34/77

Introduction ` la a programmation

Type de valeurs
Un programme manipule des valeurs de plusieurs types possibles. nombres entiers 23 -3493 nombres ottants (nombres rels) e 0.1 1.23e4 boolens (valeurs logiques) e True False les cha nes de caract`res (dlimites par " et ") e e e "Toto tas une belle auto" ""
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 36/77

Type de valeurs
Un programme manipule des valeurs de plusieurs types possibles. nombres entiers 23 -3493 nombres ottants (nombres rels) e 0.1 1.23e4 boolens (valeurs logiques) e True False les cha nes de caract`res (dlimites par " et ") e e e "Toto tas une belle auto" ""
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 36/77

Type de valeurs
Un programme manipule des valeurs de plusieurs types possibles. nombres entiers 23 -3493 nombres ottants (nombres rels) e 0.1 1.23e4 boolens (valeurs logiques) e True False les cha nes de caract`res (dlimites par " et ") e e e "Toto tas une belle auto" ""
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 36/77

Type de valeurs
Un programme manipule des valeurs de plusieurs types possibles. nombres entiers 23 -3493 nombres ottants (nombres rels) e 0.1 1.23e4 boolens (valeurs logiques) e True False les cha nes de caract`res (dlimites par " et ") e e e "Toto tas une belle auto" ""
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 36/77

Type de valeurs
Un programme manipule des valeurs de plusieurs types possibles. nombres entiers 23 -3493 nombres ottants (nombres rels) e 0.1 1.23e4 boolens (valeurs logiques) e True False les cha nes de caract`res (dlimites par " et ") e e e "Toto tas une belle auto" ""
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 36/77

Les variables

Les valeurs sont par dfaut anonymes et volatiles : une fois utilise, e e une valeur disparait du programme. Une variable reprsente un emplacement dans la mmoire de e e lordinateur.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

37/77

Les variables

Les valeurs sont par dfaut anonymes et volatiles : une fois utilise, e e une valeur disparait du programme. Une variable reprsente un emplacement dans la mmoire de e e lordinateur.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

37/77

! ! !

Donnes issues du disque dur (fichiers)

Les variables Donnes fournies par lutilisateur (frappes au clavier)


Rsultats obtenus par le programme, intermdiaires ou dfinitifs

Les variables

Ces donnes peuvent tre de plusieurs types


!

Elles peuvent tre des nombres, du anonymes et volatiles : une fois utilise, Les valeurs sont par dfaut texte, etc. e e

Pour employer unereprsente unvariable est une bote, emoire de que Une variable image, une emplacement dans la m le e programme va reprer par une tiquette. Pour avoir accs au lordinateur. contenu de la bote, il suffit de la dsigner par son tiquette. "Bonjour"
Nom de la variable Contenu de la variable reponse 2
chaine

une valeur disparait du programme.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

37/77

Proprits des variables ee

Nommage : une variable permet de nommer une valeur. Le nom dune variable nest pas entoure de guillemets, ` la e a dirence des valeurs de cha de caract`res. e ne e Dure de vie : une variable existe tant que le programme e sexcute. Elle disparait au plus tard quand le programme se e termine. Unicit :une variable ne contient quune seule valeur ` un e a moment donn. e Modiabilit : la valeur contenue par une variable peut tre e e modie. e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

38/77

Les variables

Les variables sont stockes en mmoire : e e ` un emplacement prcis, caractris par ladresse mmoire a e e e e ont une taille donne (nombre doctets) e ont un type donn e i : un entier sur 8 bits qui vaut 12 chaine : une cha de caract`res qui vaut coin-coin ! ne e verite : un boolen qui vaut Vrai e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

39/77

Les variables

Les variables sont stockes en mmoire : e e ` un emplacement prcis, caractris par ladresse mmoire a e e e e ont une taille donne (nombre doctets) e ont un type donn e i : un entier sur 8 bits qui vaut 12 chaine : une cha de caract`res qui vaut coin-coin ! ne e verite : un boolen qui vaut Vrai e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

39/77

Aectation de variable
Les deux seules choses que lon puisse faire avec une variable, cest :
1 2

lire la valeur quelle contient : valuer une variable. e modier (crire) la valeur quelle contient : aecter une e variable.

Aectation dune variable par une valeur mavariable = mavaleur

age = 5 poids = 7.2 nom = " Guilhem " estUneFille = False

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

40/77

Aectation de variable
Les deux seules choses que lon puisse faire avec une variable, cest :
1 2

lire la valeur quelle contient : valuer une variable. e modier (crire) la valeur quelle contient : aecter une e variable.

Aectation dune variable par une valeur mavariable = mavaleur

age = 5 poids = 7.2 nom = " Guilhem " estUneFille = False

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

40/77

Aectation de variable
Les deux seules choses que lon puisse faire avec une variable, cest :
1 2

lire la valeur quelle contient : valuer une variable. e modier (crire) la valeur quelle contient : aecter une e variable.

Aectation dune variable par une valeur mavariable = mavaleur

age = 5 poids = 7.2 nom = " Guilhem " estUneFille = False

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

40/77

Python et le typage dynamique


En python, le type de la variable est dtermin au moment de e e laectation. Le type dune variable peut changer au cours du temps. On peut connaitre le type courant dune variable avec la fonction type. Type dune variable type(mavariable)

x = 9 type ( x ) vaut int x = " Guilhem " type ( x ) vaut str

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

41/77

Python et le typage dynamique


En python, le type de la variable est dtermin au moment de e e laectation. Le type dune variable peut changer au cours du temps. On peut connaitre le type courant dune variable avec la fonction type. Type dune variable type(mavariable)

x = 9 type ( x ) vaut int x = " Guilhem " type ( x ) vaut str

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

41/77

Python et le typage dynamique


En python, le type de la variable est dtermin au moment de e e laectation. Le type dune variable peut changer au cours du temps. On peut connaitre le type courant dune variable avec la fonction type. Type dune variable type(mavariable)

x = 9 type ( x ) vaut int x = " Guilhem " type ( x ) vaut str

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

41/77

Aectation de variable
On peut aecter ` une variable maVar la valeur dune autre a variable monAutreVar Aectation de variable par une autre variable maVar = monAutreVar la valeur de maVar est maintenant la mme que celle e de monAutreVar. Il y a eu recopie de la valeur de monAutreVar

la valeur de monAutreVar nest pas du tout modie. e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

42/77

peuvent tre de plusieurs types Ces donnes peuvent tre de plusieurs types Aectation de variable
On peut aecter ` une variable maVar la valeur dune autre a

ent!tre despeuvent tre des nombres, du texte, etc. Elles nombres, du texte, etc.

er uneemployer une image, uneune bote,est une bote Pour image,monAutreVar variable une variable est variable que le Aectation variable par par une tiquette. Pour avoir a va reprer parva reprerune autre variable programme deune tiquette. Pour avoir accs au maVar suffit de la a contenu = monAutreVar dsignerde lason tiquette. son tiq bote, il de la bote, il suffit par dsigner par

la valeur de maVar est maintenant la mme que celle e reponse Il a eu recopie Nom de lade monAutreVar.reponse variable Nom de layvariable de la valeur de monAutreVar
153 2 monAutreVar

enu de la variable Contenu de la variable 12 2


maVar

la valeur de monAutreVar nest pas du tout modie. e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

42/77

peuvent tre de plusieurs types Ces donnes peuvent tre de plusieurs types Aectation de variable
On peut aecter ` une variable maVar la valeur dune autre a

ent!tre despeuvent tre des nombres, du texte, etc. Elles nombres, du texte, etc.

er uneemployer une image, uneune bote,est une bote Pour image,monAutreVar variable une variable est variable que le Aectation variable par par une tiquette. Pour avoir a va reprer parva reprerune autre variable programme deune tiquette. Pour avoir accs au maVar suffit de la a contenu = monAutreVar dsignerde lason tiquette. son tiq bote, il de la bote, il suffit par dsigner par

la valeur de maVar est maintenant la mme que celle e reponse Il a eu recopie Nom de lade monAutreVar.reponse variable Nom de layvariable de la valeur de monAutreVar
153 2 monAutreVar

enu de la variable Contenu de la variable 153 2


maVar

la valeur de monAutreVar nest pas du tout modie. e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

42/77

Aectation de variable

Exemple n1 Riri = " Loulou " Fifi = " Riri " Exemple n2 Riri = " Loulou " Fifi = Riri Que valent les variables Riri et Fifi ?

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

43/77

Aectation de variable

Exemple n1 Riri = " Loulou " Fifi = " Riri " Exemple n2 Riri = " Loulou " Fifi = Riri Que valent les variables Riri et Fifi ?

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

43/77

Aectation de variable

Exemple n3 A = 12 A = 34 B = A Que valent A et B ?

Exemple n4 A = 12 B = A A = 34

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

44/77

Aectation de variable

Exemple n3 A = 12 A = 34 B = A Que valent A et B ?

Exemple n4 A = 12 B = A A = 34

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

44/77

Notion dexpression
Il y a plusieurs faons dobtenir une valeur : c Les valeurs littrales e Les expressions composes e Les valeurs calcules par des fonctions prdnies e e e Exemple de valeurs gales e 2 10/5 B /6 log (100 ,10) 2+3 -10%3 - log (100 ,10) len ( " eh " ) Nous dcouvrirons les fonctions prdnies au fur et ` mesure des e e e a cours. Nous nous intressons tout dabord aux oprateurs. e e
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 45/77

Expressions

Une expression reprsente une valeur. e Une expression doit tre valide e (A+12-B)/13 nest valide que si A et B sont des variables numriques, sinon cela na pas de sens e Le type dune expression est le type du rsultat (dtermin par e e e le type des variable et les oprateurs utiliss) e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

46/77

Expressions

Une expression reprsente une valeur. e Une expression doit tre valide e (A+12-B)/13 nest valide que si A et B sont des variables numriques, sinon cela na pas de sens e Le type dune expression est le type du rsultat (dtermin par e e e le type des variable et les oprateurs utiliss) e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

46/77

Expressions

Une expression reprsente une valeur. e Une expression doit tre valide e (A+12-B)/13 nest valide que si A et B sont des variables numriques, sinon cela na pas de sens e Le type dune expression est le type du rsultat (dtermin par e e e le type des variable et les oprateurs utiliss) e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

46/77

Oprateurs e
Un oprateur est un signe qui agit sur une ou plusieurs valeurs e (appeles oprandes), pour produire un rsultat. e e e
+, -, OU, modulo, ?

Larit dun oprateur est le nombre doprandes utilis par e e e e loprateur. e


Operateurs unaires : ils nagissent en fonction dune donne e Oprateurs binaires : ils agissent en fonction de deux donnes e e Oprateurs ternaires : ils agissent en fonction de trois donnes e e

Il existe plusieurs familles doprateurs : e


Oprateurs e Oprateurs e Oprateurs e Oprateurs e arithmtiques e alphanumriques e de comparaison logiques

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

47/77

Oprateurs e
Un oprateur est un signe qui agit sur une ou plusieurs valeurs e (appeles oprandes), pour produire un rsultat. e e e
+, -, OU, modulo, ?

Larit dun oprateur est le nombre doprandes utilis par e e e e loprateur. e


Operateurs unaires : ils nagissent en fonction dune donne e Oprateurs binaires : ils agissent en fonction de deux donnes e e Oprateurs ternaires : ils agissent en fonction de trois donnes e e

Il existe plusieurs familles doprateurs : e


Oprateurs e Oprateurs e Oprateurs e Oprateurs e arithmtiques e alphanumriques e de comparaison logiques

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

47/77

Oprateurs e
Un oprateur est un signe qui agit sur une ou plusieurs valeurs e (appeles oprandes), pour produire un rsultat. e e e
+, -, OU, modulo, ?

Larit dun oprateur est le nombre doprandes utilis par e e e e loprateur. e


Operateurs unaires : ils nagissent en fonction dune donne e Oprateurs binaires : ils agissent en fonction de deux donnes e e Oprateurs ternaires : ils agissent en fonction de trois donnes e e

Il existe plusieurs familles doprateurs : e


Oprateurs e Oprateurs e Oprateurs e Oprateurs e arithmtiques e alphanumriques e de comparaison logiques

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

47/77

Oprateurs arithmtiques e e

Oprateurs arithmtiques e e
+ : addition - : soustraction * : multiplication / : division ** qui signie puissance. 45 au carr scrira donc 45 ** 2. e e % signie modulo. 15 modulo 2 scrira donc 15 % 2. e

Priorit des oprateurs arithmtiques e e e


priorit entre oprateurs e e utilisation des parenth`ses e 12 + 3 * 5 et 12 + (3 * 5) sont quivalents, mais e dirents de (12 + 3) * 5 e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

48/77

Oprateurs alphanumriques e e
Loprateur + sert ` concatner deux cha e a e nes de caract`res. e Exemple n3 " Chapi " + " Chapo " A = " Chapi " B = A + " Chapo " Exemple n4 A = " il fait " B = A + " " + " beau " B + " " + A + " chaud ! "

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

49/77

Oprateurs alphanumriques e e
Loprateur + sert ` concatner deux cha e a e nes de caract`res. e Exemple n3 " Chapi " + " Chapo " A = " Chapi " B = A + " Chapo " Exemple n4 A = " il fait " B = A + " " + " beau " B + " " + A + " chaud ! "

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

49/77

Oprateurs alphanumriques e e
Loprateur + sert ` concatner deux cha e a e nes de caract`res. e Exemple n3 " Chapi " + " Chapo " A = " Chapi " B = A + " Chapo " Exemple n4 A = " il fait " B = A + " " + " beau " B + " " + A + " chaud ! "

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

49/77

Conversion en cha de caract`res ne e

On ne peut concatner que des cha e nes de caract`res e

Si on veut concatner une chaine de caract`res et une valeur e e numrique, Il faut dabord convertir la valeur numrique en chaine e e de caract`res avec la fonction str. e age = 2 " Le petit Loulou a " + str ( age ) + " ans "

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

50/77

Conversion en cha de caract`res ne e

On ne peut concatner que des cha e nes de caract`res e

Si on veut concatner une chaine de caract`res et une valeur e e numrique, Il faut dabord convertir la valeur numrique en chaine e e de caract`res avec la fonction str. e age = 2 " Le petit Loulou a " + str ( age ) + " ans "

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

50/77

Lire et Ecrire

Achage
Lachage consiste ` prsenter visuellement une valeur ` a e a lutilisateur du programme. Il y a plusieurs types dachages : achage dans le terminal achage dans une fentre graphique (on verra plus tard) e Lachage dans le terminal se fait avec la fonction print qui peut sutiliser avec ou sans parenth`ses. e Achage dans le terminal print " le message que je veux afficher " Achage dans le terminal print ( " le message que je veux afficher " )

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

52/77

Achage
Lachage consiste ` prsenter visuellement une valeur ` a e a lutilisateur du programme. Il y a plusieurs types dachages : achage dans le terminal achage dans une fentre graphique (on verra plus tard) e Lachage dans le terminal se fait avec la fonction print qui peut sutiliser avec ou sans parenth`ses. e Achage dans le terminal print " le message que je veux afficher " Achage dans le terminal print ( " le message que je veux afficher " )

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

52/77

Achage dune variable

Si on ache une variable, sa valeur est ache e nom = print age = print " toto " nom 3.5 age

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

53/77

Achage mixte
Pour acher des messages comportant du texte et des valeurs numriques, il y a plusieurs mthodes. e e Achage mixte : mthode 1 e age = 2 print " Loulou a " + str ( age ) + " ans " . Achage mixte : mthode 2 e age = 2 print " Loulou a " , age , " ans " . La mthode 2 concat`ne les 3 parties du messages et rajoute un e e caract`re despacement entre chaque partie. Mthode dprcie. e e e e e
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 54/77

Achage mixte
Achage par cha de formattage ne print " Message ` trous " % ( val1 , val2 , val3 ) a Le message remplace toutes les valeurs par lindication de leur format. Les valeurs sont donnes ` part dans une liste. La liste est e a spare du message par le caract`re %. e e e La liste des principaux formats possibles : %d : entier %f : ottant %s : cha de caract`res ne e %r : boolen e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

55/77

Achage mixte

Achage mixte : mthode 3 e age = 2 print " Loulou a % d ans " % age nom = " Loulou " print " % s a % d ans " % ( nom , age )

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

56/77

Saisir des valeurs dans un terminal


La saisie permet ` lutilisateur de rentrer des valeurs au clavier a pour quelles soient utilises par le programme. e La valeur donne par lutilisateur est stocke dans une variable e e pralablement dclare. e e e Saisie reponse = raw_input("question ` poser") a D`s que le programme rencontre une instruction raw_input, e lexcution sinterrompt, ache un texte ` afficher, e a attendant la saisie au clavier. D`s lors, aussitt que la touche Entre a t frappe, e o e ee e lexcution reprend, et la variable reponse a pour valeur la e cha de caract`res rentre au clavier. ne e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

57/77

Saisir des valeurs dans un terminal


La saisie permet ` lutilisateur de rentrer des valeurs au clavier a pour quelles soient utilises par le programme. e La valeur donne par lutilisateur est stocke dans une variable e e pralablement dclare. e e e Saisie reponse = raw_input("question ` poser") a D`s que le programme rencontre une instruction raw_input, e lexcution sinterrompt, ache un texte ` afficher, e a attendant la saisie au clavier. D`s lors, aussitt que la touche Entre a t frappe, e o e ee e lexcution reprend, et la variable reponse a pour valeur la e cha de caract`res rentre au clavier. ne e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

57/77

Saisir des valeurs dans un terminal

nom = raw_input ( " Donnez le nom : " ) print " Bonjour " + nom La valeur saisie est toujours une chaine de caract`res. Il faut e convertir la rponse dans un autre type si ncessaire. e e Fonctions de conversion en type numriques et boolens : e e int(s) : convertit la cha de carac`res s en entier. ne e float(s) : convertit la cha de carac`res s en oat. ne e bool(s) : convertit la cha de carac`res s en boolen. ne e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

58/77

Saisir des valeurs dans un terminal

nom = raw_input ( " Donnez le nom : " ) print " Bonjour " + nom La valeur saisie est toujours une chaine de caract`res. Il faut e convertir la rponse dans un autre type si ncessaire. e e Fonctions de conversion en type numriques et boolens : e e int(s) : convertit la cha de carac`res s en entier. ne e float(s) : convertit la cha de carac`res s en oat. ne e bool(s) : convertit la cha de carac`res s en boolen. ne e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

58/77

Saisir des valeurs dans un terminal

nom = raw_input ( " Donnez le nom : " ) print " Bonjour " + nom La valeur saisie est toujours une chaine de caract`res. Il faut e convertir la rponse dans un autre type si ncessaire. e e Fonctions de conversion en type numriques et boolens : e e int(s) : convertit la cha de carac`res s en entier. ne e float(s) : convertit la cha de carac`res s en oat. ne e bool(s) : convertit la cha de carac`res s en boolen. ne e e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

58/77

Exemple
Version dtaille e e reponse = raw_input ( " Entrez un nombre : " ) nb = float ( reponse ) dbl = 2* nb print " le double de % f est % f " % ( nb , dbl ) Version compacte nb = float ( raw_input ( " Entrez un nombre : " ) ) print " le double de % f est % f " % ( nb , 2* nb )

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

59/77

Exercice
Ecrire un programme qui saisit lheure, les minutes et les secondes, et qui ache Demain, ` la m^me heure, il sera xxHyyminzzs. a e # Saisie Heures = raw_input ( " Heure ? " ) Minutes = raw_intput ( " Minutes ? " ) Secondes = raw_input ( " Secondes ? " ) # Affichage print ( " Demain ` la m^ me heure il sera " + a e Heures + " h " + Minutes + " min " + Secondes + "s")

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

60/77

Exercice
Ecrire un programme qui saisit lheure, les minutes et les secondes, et qui ache Demain, ` la m^me heure, il sera xxHyyminzzs. a e # Saisie Heures = raw_input ( " Heure ? " ) Minutes = raw_intput ( " Minutes ? " ) Secondes = raw_input ( " Secondes ? " ) # Affichage print ( " Demain ` la m^ me heure il sera " + a e Heures + " h " + Minutes + " min " + Secondes + "s")

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

60/77

Commentaires

Les commentaires commencent par le caract`re # jusqu` la e a n de la ligne Ils servent ` donner plus dinformations a Il faut les utiliser pour Annoter le code Sparer les direntes parties du code e e Indiquer le rle de chaque variable (indispensable d`s quon a o e beaucoup de variables)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

61/77

Oprateurs e logiques et de comparaison

Oprateurs de comparaison e

Les oprateurs de comparaison sont : e


== : gal ` ... (=) e a <> : dirent de ... (=) e < : strictement plus petit que ... (<) > : strictement plus grand que ... (>) <= : plus petit ou gal ` ... ( ) e a >= : plus grand ou gal ` ... ( ) e a

Le rsultat dun oprateur de comparaison est de type boolen e e e (bool)


10<23 est une condition toujours Vrai (True) Toto 2 est une condition dont la valeur dpend de la valeur e de Toto

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

63/77

Oprateurs de comparaison e

les valeurs compares peuvent tre a priori de nimporte quel e e type (numriques, caract`res,...). e e Mais la comparaison na de sens que si les 2 valeurs compares sont de m^me type e e On peut tr`s bien comparer des caract`res (leur code ASCII e e est compar - ordre alphabtique, avec les majuscules avant e e les minuscules), et des cha nes de caract`res (comparaison e caract`re par caract`re tant quils ne sont pas gaux) e e e
"w"<"t" "Guinness">"1664" "Chocolat noir">"Chocolat blanc" "Chocolat noir">"chocolat blanc"

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

64/77

Oprateurs de comparaison e

les valeurs compares peuvent tre a priori de nimporte quel e e type (numriques, caract`res,...). e e Mais la comparaison na de sens que si les 2 valeurs compares sont de m^me type e e On peut tr`s bien comparer des caract`res (leur code ASCII e e est compar - ordre alphabtique, avec les majuscules avant e e les minuscules), et des cha nes de caract`res (comparaison e caract`re par caract`re tant quils ne sont pas gaux) e e e
"w"<"t" Faux "Guinness">"1664" "Chocolat noir">"Chocolat blanc" "Chocolat noir">"chocolat blanc"

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

64/77

Oprateurs de comparaison e

les valeurs compares peuvent tre a priori de nimporte quel e e type (numriques, caract`res,...). e e Mais la comparaison na de sens que si les 2 valeurs compares sont de m^me type e e On peut tr`s bien comparer des caract`res (leur code ASCII e e est compar - ordre alphabtique, avec les majuscules avant e e les minuscules), et des cha nes de caract`res (comparaison e caract`re par caract`re tant quils ne sont pas gaux) e e e
"w"<"t" Faux "Guinness">"1664" "Chocolat noir">"Chocolat blanc" "Chocolat noir">"chocolat blanc"

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

64/77

Oprateurs de comparaison e

les valeurs compares peuvent tre a priori de nimporte quel e e type (numriques, caract`res,...). e e Mais la comparaison na de sens que si les 2 valeurs compares sont de m^me type e e On peut tr`s bien comparer des caract`res (leur code ASCII e e est compar - ordre alphabtique, avec les majuscules avant e e les minuscules), et des cha nes de caract`res (comparaison e caract`re par caract`re tant quils ne sont pas gaux) e e e
"w"<"t" Faux "Guinness">"1664" Vrai "Chocolat noir">"Chocolat blanc" "Chocolat noir">"chocolat blanc"

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

64/77

Oprateurs de comparaison e

les valeurs compares peuvent tre a priori de nimporte quel e e type (numriques, caract`res,...). e e Mais la comparaison na de sens que si les 2 valeurs compares sont de m^me type e e On peut tr`s bien comparer des caract`res (leur code ASCII e e est compar - ordre alphabtique, avec les majuscules avant e e les minuscules), et des cha nes de caract`res (comparaison e caract`re par caract`re tant quils ne sont pas gaux) e e e
"w"<"t" Faux "Guinness">"1664" Vrai "Chocolat noir">"Chocolat blanc" "Chocolat noir">"chocolat blanc"

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

64/77

Oprateurs de comparaison e

les valeurs compares peuvent tre a priori de nimporte quel e e type (numriques, caract`res,...). e e Mais la comparaison na de sens que si les 2 valeurs compares sont de m^me type e e On peut tr`s bien comparer des caract`res (leur code ASCII e e est compar - ordre alphabtique, avec les majuscules avant e e les minuscules), et des cha nes de caract`res (comparaison e caract`re par caract`re tant quils ne sont pas gaux) e e e
"w"<"t" Faux "Guinness">"1664" Vrai "Chocolat noir">"Chocolat blanc" Vrai "Chocolat noir">"chocolat blanc"

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

64/77

Oprateurs de comparaison e

les valeurs compares peuvent tre a priori de nimporte quel e e type (numriques, caract`res,...). e e Mais la comparaison na de sens que si les 2 valeurs compares sont de m^me type e e On peut tr`s bien comparer des caract`res (leur code ASCII e e est compar - ordre alphabtique, avec les majuscules avant e e les minuscules), et des cha nes de caract`res (comparaison e caract`re par caract`re tant quils ne sont pas gaux) e e e
"w"<"t" Faux "Guinness">"1664" Vrai "Chocolat noir">"Chocolat blanc" Vrai "Chocolat noir">"chocolat blanc"

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

64/77

Oprateurs de comparaison e

les valeurs compares peuvent tre a priori de nimporte quel e e type (numriques, caract`res,...). e e Mais la comparaison na de sens que si les 2 valeurs compares sont de m^me type e e On peut tr`s bien comparer des caract`res (leur code ASCII e e est compar - ordre alphabtique, avec les majuscules avant e e les minuscules), et des cha nes de caract`res (comparaison e caract`re par caract`re tant quils ne sont pas gaux) e e e
"w"<"t" Faux "Guinness">"1664" Vrai "Chocolat noir">"Chocolat blanc" Vrai "Chocolat noir">"chocolat blanc" Faux

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

64/77

Oprateurs logiques e

Certains probl`mes exigent parfois de formuler des conditions e qui ne peuvent pas tre exprimes sous une condition simple e e
Toto compris entre 10 et 35 sexprime sous la forme de deux conditions : (Toto>= 10)and (Toto<= 35)

Oprateurs logiques e
and : (Et logique) la condition A and B est True si ` la fois la a condition A et la condition B sont True or : (Ou logique) la condition A or B est True si la condition A ou bien la condition B ou bien les deux sont True not : (Ngation logique) la condition not A est True si la e condition A est False, et inversement

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

65/77

Oprateurs logiques e

Certains probl`mes exigent parfois de formuler des conditions e qui ne peuvent pas tre exprimes sous une condition simple e e
Toto compris entre 10 et 35 sexprime sous la forme de deux conditions : (Toto>= 10)and (Toto<= 35)

Oprateurs logiques e
and : (Et logique) la condition A and B est True si ` la fois la a condition A et la condition B sont True or : (Ou logique) la condition A or B est True si la condition A ou bien la condition B ou bien les deux sont True not : (Ngation logique) la condition not A est True si la e condition A est False, et inversement

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

65/77

Oprateurs logiques e

On reprsente frquemment les oprations logiques dans des e e e tables de vrit e e On utilise souvent 1 pour reprsenter True et 0 pour False e A 0 0 1 1 B 0 1 0 1 not A A and B A or B

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

66/77

Oprateurs logiques e

On reprsente frquemment les oprations logiques dans des e e e tables de vrit e e On utilise souvent 1 pour reprsenter True et 0 pour False e A 0 0 1 1 B 0 1 0 1 not A A and B A or B

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

66/77

Oprateurs logiques e

On reprsente frquemment les oprations logiques dans des e e e tables de vrit e e On utilise souvent 1 pour reprsenter True et 0 pour False e A 0 0 1 1 B 0 1 0 1 not A 1 1 0 0 A and B A or B

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

66/77

Oprateurs logiques e

On reprsente frquemment les oprations logiques dans des e e e tables de vrit e e On utilise souvent 1 pour reprsenter True et 0 pour False e A 0 0 1 1 B 0 1 0 1 not A 1 1 0 0 A and B 0 0 0 1 A or B

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

66/77

Oprateurs logiques e

On reprsente frquemment les oprations logiques dans des e e e tables de vrit e e On utilise souvent 1 pour reprsenter True et 0 pour False e A 0 0 1 1 B 0 1 0 1 not A 1 1 0 0 A and B 0 0 0 1 A or B 0 1 1 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

66/77

Oprateurs logiques e
Distributivit e
A and (B or C)= (A and B)or (A and C) A or (B and C)= (A or B)and (A or C)

Priorit des oprateurs logiques : e e


and est prioritaire sur or not est prioritaire sur or et sur and

Pour ne pas avoir ` retenir cela, il faut parenth`ser a e Thor`me de Morgan e e not (A and B) = (not A) or (not B) not (A or B) = (not A) and (not B)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

67/77

Oprateurs logiques e
Distributivit e
A and (B or C)= (A and B)or (A and C) A or (B and C)= (A or B)and (A or C)

Priorit des oprateurs logiques : e e


and est prioritaire sur or not est prioritaire sur or et sur and

Pour ne pas avoir ` retenir cela, il faut parenth`ser a e Thor`me de Morgan e e not (A and B) = (not A) or (not B) not (A or B) = (not A) and (not B)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

67/77

Oprateurs logiques e
Distributivit e
A and (B or C)= (A and B)or (A and C) A or (B and C)= (A or B)and (A or C)

Priorit des oprateurs logiques : e e


and est prioritaire sur or not est prioritaire sur or et sur and

Pour ne pas avoir ` retenir cela, il faut parenth`ser a e Thor`me de Morgan e e not (A and B) = (not A) or (not B) not (A or B) = (not A) and (not B)

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

67/77

Oprateurs logiques et conditions e


Les oprations logiques permettent de modliser des e e raisonnements logiques, en exprimant un tat en fonction e de conditions Exemple : on veut savoir si on doit commander une bi`re ou e non. On doit dcider en fonction de ltat de notre verre (vide ou e e non), de notre soif, et de si quelquun nous ore ` boire a Question : doit-on commander une bi`re ou non ? e Raisonner logiquement, cest dnir une expression boolenne e e qui est vraie si et seulement si on doit commander une bi`re e
1

2 3 4

On dnit les variables boolennes reprsentant les tats e e e e possibles de chaque entit e On dnit une variable boolenne reprsentant ltat demand e e e e e On tablit sa table de vrit e e e On en dduit lexpression boolenne qui correspond ` la e e a variable
Informatique gnrale 1 Algorithmique et programmation e e 68/77

C. Le Pape, T. Hilaire

Oprateurs logiques et conditions e


Les oprations logiques permettent de modliser des e e raisonnements logiques, en exprimant un tat en fonction e de conditions Exemple : on veut savoir si on doit commander une bi`re ou e non. On doit dcider en fonction de ltat de notre verre (vide ou e e non), de notre soif, et de si quelquun nous ore ` boire a Question : doit-on commander une bi`re ou non ? e Raisonner logiquement, cest dnir une expression boolenne e e qui est vraie si et seulement si on doit commander une bi`re e
1

2 3 4

On dnit les variables boolennes reprsentant les tats e e e e possibles de chaque entit e On dnit une variable boolenne reprsentant ltat demand e e e e e On tablit sa table de vrit e e e On en dduit lexpression boolenne qui correspond ` la e e a variable
Informatique gnrale 1 Algorithmique et programmation e e 68/77

C. Le Pape, T. Hilaire

Oprateurs logiques et conditions e


1

on dnit les variables boolennes e e


a indique si notre verre est vide b indique si on a soif c indique si quelquun nous ore ` boire a

Soit d la variable boolenne indiquant si e on command ` boire a On dduit la table de vrit de d e e e Dapr`s la table, on a e d = (a ET b) OU c On commande ` boire si on a soif et que a notre verre est vide, ou bien si quelquun nous ore ` boire (mme si on na pas a e soif, a ne se refuse pas). c

3 4

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

69/77

Oprateurs logiques et conditions e


1

on dnit les variables boolennes e e


a indique si notre verre est vide b indique si on a soif c indique si quelquun nous ore ` boire a

Soit d la variable boolenne indiquant si e on command ` boire a On dduit la table de vrit de d e e e Dapr`s la table, on a e d = (a ET b) OU c On commande ` boire si on a soif et que a notre verre est vide, ou bien si quelquun nous ore ` boire (mme si on na pas a e soif, a ne se refuse pas). c

3 4

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

69/77

Oprateurs logiques et conditions e


1

on dnit les variables boolennes e e


a indique si notre verre est vide b indique si on a soif c indique si quelquun nous ore ` boire a

Soit d la variable boolenne indiquant si e on command ` boire a On dduit la table de vrit de d e e e Dapr`s la table, on a e d = (a ET b) OU c On commande ` boire si on a soif et que a notre verre est vide, ou bien si quelquun nous ore ` boire (mme si on na pas a e soif, a ne se refuse pas). c

3 4

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

69/77

Oprateurs logiques et conditions e


1

on dnit les variables boolennes e e


a indique si notre verre est vide b indique si on a soif c indique si quelquun nous ore ` boire a

Soit d la variable boolenne indiquant si e on command ` boire a On dduit la table de vrit de d e e e Dapr`s la table, on a e d = (a ET b) OU c On commande ` boire si on a soif et que a notre verre est vide, ou bien si quelquun nous ore ` boire (mme si on na pas a e soif, a ne se refuse pas). c

3 4

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

d 0 1 0 1 0 1 1 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

69/77

Oprateurs logiques et conditions e


1

on dnit les variables boolennes e e


a indique si notre verre est vide b indique si on a soif c indique si quelquun nous ore ` boire a

Soit d la variable boolenne indiquant si e on command ` boire a On dduit la table de vrit de d e e e Dapr`s la table, on a e d = (a ET b) OU c On commande ` boire si on a soif et que a notre verre est vide, ou bien si quelquun nous ore ` boire (mme si on na pas a e soif, a ne se refuse pas). c

3 4

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

d 0 1 0 1 0 1 1 1

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

69/77

` A propos de logiciels libres

Pour aller plus loin : les logiciels libres

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

70/77

` A propos de logiciels libres


Petit apart e Licence de logiciel Une licence de logiciel est un contrat par lequel le titulaire des droits dauteur sur un programme informatique dnit avec son e cocontractant (utilisateur) les conditions dans lesquelles ce programme peut tre utilis, dius ou modi. e e e e Contrat de Licence Utilisateur Final (CLUF) Deux grands types de logiciels (selon leur licence) : Logiciels propritaires e
licence xe, nominative ou ottante logiciel payante ou gratuit

Logiciels libres
peut tre payant e
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 71/77

` A propos de logiciels libres


Petit apart e Licence de logiciel Une licence de logiciel est un contrat par lequel le titulaire des droits dauteur sur un programme informatique dnit avec son e cocontractant (utilisateur) les conditions dans lesquelles ce programme peut tre utilis, dius ou modi. e e e e Contrat de Licence Utilisateur Final (CLUF) Deux grands types de logiciels (selon leur licence) : Logiciels propritaires e
licence xe, nominative ou ottante logiciel payante ou gratuit

Logiciels libres
peut tre payant e
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 71/77

Logiciels libres
Dnition e Un logiciel est libre sil conf`re ` son utilisateur 4 liberts : e a e la libert dexcuter le programme, pour tous les usages, e e la libert dtudier le fonctionnement du programme et de e e ladapter ` ses besoins, a la libert de redistribuer des copies du programme (donner ou e vendre des copies), la libert damliorer le programme et de distribuer ces e e amliorations au public, pour en faire proter toute la e communaut. e Lacc`s au code source est donc ncessaire mais pas susant e e logiciels libres logiciel open source

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

72/77

Logiciels libres
Dnition e Un logiciel est libre sil conf`re ` son utilisateur 4 liberts : e a e la libert dexcuter le programme, pour tous les usages, e e la libert dtudier le fonctionnement du programme et de e e ladapter ` ses besoins, a la libert de redistribuer des copies du programme (donner ou e vendre des copies), la libert damliorer le programme et de distribuer ces e e amliorations au public, pour en faire proter toute la e communaut. e Lacc`s au code source est donc ncessaire mais pas susant e e logiciels libres logiciel open source

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

72/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres Windows

Propritaires e

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Google Chrome

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Google Chrome

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Google Chrome

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Google Chrome

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Skype Google Chrome

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Google Chrome Skype

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Microsoft Oce Google Chrome Skype

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Google Chrome Skype Microsoft Oce

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Google Chrome Skype Microsoft Oce Open Oce

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Google Chrome Skype Microsoft Oce Open Oce

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Google Chrome Skype Microsoft Oce Open Oce Facebook

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Logiciels libres
Ces logiciels sont-ils libres ou propritaires ? e Libres GNU/Linux MSN Firefox Chromium Android Google Chrome Skype Microsoft Oce Open Oce Facebook

Propritaires e Windows

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

73/77

Licence de libre diusion


De la mme mani`re, ce type de licence est tendu ` une uvre de e e e a lesprit au sens large (logiciel, document, photo, etc.) La possibilit dutiliser lvre, pour tous les usages ; e La possibilit dtudier luvre ; e e La possibilit de redistribuer des copies de luvre ; e La possibilit de modier luvre de lesprit et de publier ces e modications. Principales licences : GNU GPL (GNU General Public License), GFDL BDS Creative Commons CeCiLL ...
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 74/77

Licence de libre diusion


De la mme mani`re, ce type de licence est tendu ` une uvre de e e e a lesprit au sens large (logiciel, document, photo, etc.) La possibilit dutiliser lvre, pour tous les usages ; e La possibilit dtudier luvre ; e e La possibilit de redistribuer des copies de luvre ; e La possibilit de modier luvre de lesprit et de publier ces e modications. Principales licences : GNU GPL (GNU General Public License), GFDL BDS Creative Commons CeCiLL ...
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 74/77

Les licences Creative Commons sont un ensemble de licences rgissant les conditions de rutilisation et/ou e e de distribution duvres. Nom CC-by CC-by-sa CC-by-nd CC-by-nc CC-by-nc-sa CC-by-nc-nd
C. Le Pape, T. Hilaire Informatique gnrale 1 Algorithmique et programmation e e 75/77

Licences Creative Commons

Symboles

Paternit e Pas dutilisation commerciale Pas de modication Partage des conditions initiales ` lidentique a

Licences Creative Commons

Exemples duvres sous licence Creative Commons : Ce cours, sous licence CC-by-nc-sa De nombreux cours, polycopis, exercices, etc. e Le long mtrage Le Bal des Innocents e La bi`re Vores I (CC-by-sa), (OpenCola sous licence GPL, e ...) etc.

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

76/77

Rfrences bibliographiques ee

Programmation Python, conception et optimisation, Tarik Ziad, Ed. Eyrolles e Python, Learn it the hard way http://learnpythonthehardway.org/book/ Dive Into Python http://diveintopython.adrahon.org/ http://www.python.org/

C. Le Pape, T. Hilaire

Informatique gnrale 1 Algorithmique et programmation e e

77/77