Académique Documents
Professionnel Documents
Culture Documents
l’informatique
9 - Résumé
Julien Deantoni
7) Front-end et back-end
8) Sucre syntaxique
9) Résumé
Une resource intéressante:
https://inforef.be/swi/download/apprendre_python3_5.pdf
Introduction à l’informatique 2
Créer une variable
●
NomVariable : type = type( valeurInitiale )
●
i1: int = int(0)
●
i2: int = int(‘123’)
●
s1: str = str(‘zaza’)
●
s2: str = str(123)
●
liste1: list = list( [1,2,3] )
●
liste2: list[int] = list([42,18])
Introduction à l’informatique 3
Référence ou valeur référencée ?
●
À gauche du signe d’affectation (=), on parle de l’étiquette elle même, c’est
à dire de la référence. Ailleurs, on parle de la valeur référencée.
● i1: int = int(0)
● i2: int = int(‘123’)
● i3: int = i1 + i2
● i2 = i3 print(i2, i3)
Introduction à l’informatique 4
Référence ou valeur référencée ?
●
À gauche du signe d’affectation (=), on parle de l’étiquette elle même, c’est
à dire de la référence. Ailleurs, on parle de la valeur référencée.
● i1: int = int(0)
● i2: int = int(‘123’)
● i3: int = i1 + i2
● i2 = i3 print(i2, i3)
Introduction à l’informatique 5
Créer une variable d’un type structuré
●
NomVariable : type = type( valeurInitiale )
Introduction à l’informatique 6
Créer une variable d’un type structuré
●
NomVariable : type = type( valeurInitiale )
Introduction à l’informatique 7
Créer une variable d’un type structuré
●
NomVariable : type = type( valeurInitiale )
p1.nom p1.age == 18 ?
Introduction à l’informatique 8
Type structuré Point2D
Pixel
red : int Dans le langage Python
green : int
blue : int
ImagePPM
format : str
largeur : int
hauteur : int
pixels : list[Pixel]
Introduction à l’informatique 10
Opérations sur les variables
●
On peut réaliser les opérations sur les variables telles que définis par le
type. Par exemple en Python
NomVar : type = initialization value
1 i : int = int(42) #déclaration de la variable i, initialisée à 42
2 j : int = 2 #déclaration de la variable j, initialisée à 2
3 k: int = i + j #déclaration de la variable i, initialisée à 44
4 # appel de l'opération addition avec pour paramètres i et j
5 l: int = k // 2 #déclaration de la variable l, initialisée à 22
6 # appel de l'opération division entière avec pour paramètres k et 2
7 s1: str = str("Hello")
8 s2: str = str(" ")
9 s3: str = "world"
10 greeting: str = s1+s2+s3 #déclaration de la variable greeting, initialisée à Hello World
# 2 appels de l'opération concaténation avec pour
# paramètres s1 et s2 puis le résultat de s1+s2 et s3
Introduction à l’informatique 11
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
Introduction à l’informatique 12
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
Introduction à l’informatique 13
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
Introduction à l’informatique 14
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
Introduction à l’informatique 15
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
Introduction à l’informatique 16
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
Introduction à l’informatique 17
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
Introduction à l’informatique 18
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
Introduction à l’informatique 19
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
: int
42
Représentation du contenu de la mémoire non exact mais suffisante pour comprendre les notions qui vont suivre
Introduction à l’informatique 20
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
: int
i 42
Représentation du contenu de la mémoire non exact mais suffisante pour comprendre les notions qui vont suivre
Introduction à l’informatique 21
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
: int
: int
i j 2
42
Représentation du contenu de la mémoire non exact mais suffisante pour comprendre les notions qui vont suivre
Introduction à l’informatique 22
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
: int
: int
i j 2
42 : int
k 44
Représentation du contenu de la mémoire non exact mais suffisante pour comprendre les notions qui vont suivre
Introduction à l’informatique 23
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
: int
: int
i j 2
42 : int
k 44
: str
s1 Hello
‘Hello’
Représentation du contenu de la mémoire non exact mais suffisante pour comprendre les notions qui vont suivre
Introduction à l’informatique 24
Pas d’exécution et valeurs dans la mémoire
1 i: int = int(42)
2 j: int = 2
3 k: int = i+j
4
5 s1: str = str("Hello")
6 s2: str = str(" !")
7 s3: str = s1+s2
: int
: int
i j 2
42 : int
k 44
: str : str
s1 Hello
‘Hello’ s2 Hello
‘ !’
: str
s3 Hello!’
‘Hello
Représentation du contenu de la mémoire non exact mais suffisante pour comprendre les notions qui vont suivre
Introduction à l’informatique 25
Structuration de l’information
Opération sur les variables (3/3)
●
On peut réaliser les opérations sur les variables telles que définis parle
type. Par exemple en Python
Pour information, la liste de toutes les opérations possibles est consultable ici :
https://www.w3schools.com/python/python_operators.asp
b1: bool = bool( i < j ) # comparaison entre deux entier. Renvoie vrai ou faux
b2: bool = bool( i == j )
b3: bool = bool(not b1)
list1 : list
[0] [1] [2] [3]
●
On utilise la position de l’élément dans la liste. On parle de l’indice de
l’élément dans la liste.
Introduction à l’informatique 31
Mutable versus immutable data types
???
???
Introduction à l’informatique 32
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutables et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 33
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 34
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
42
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 35
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 36
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 37
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 38
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 39
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 40
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
: list
[0], [1], [2]
Introduction à l’informatique 41
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
l
: list
[0], [1], [2]
Introduction à l’informatique 42
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
l
: list
: int [0], [1], [2]
2
: int : int : int
1 2 3
Introduction à l’informatique 43
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
l
: list
: int [0], [1], [2]
2
: int : int : int
1 2 3
Introduction à l’informatique 44
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
: Pixel : int
r 0
g : int
b 0
: int
0
Introduction à l’informatique 45
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
p1
: Pixel : int
r 0
g : int
b 0
: int
0
Introduction à l’informatique 46
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
p1
p2 : Pixel : int
r 0
g : int
b 0
: int
0
Introduction à l’informatique 47
Mutable versus Immutable data types
●
Python, comme tout langage informatique définit deux sortes différentes de type de données :
les mutable et les immutables.
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
: int
i 42 j
: int
43
●
Mutable : list, tous les types structurés
●
Le contenu des cases mémoires associé aux variables peut être modifié
p1 : int
255
p2 : Pixel : int
r 0
g : int
b 0
: int
0
Introduction à l’informatique 48
Mutable versus immutable data types
False
True
Introduction à l’informatique 49
Mutable versus Immutable data types
id(var) à la rescousse
●
La fonction id(var) donne l’adresse de la variable var dans la mémoire
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
●
Mutable : list, Point2D
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 52
Mutable versus Immutable data types
id(var) à la rescousse
●
La fonction id(var) donne l’adresse de la variable var dans la mémoire
●
Immutable : int, str, float, bool
●
Le contenu des cases mémoires associé aux variables ne peut pas être modifié !
●
Mutable : list, Point2D
●
Le contenu des cases mémoires associé aux variables peut être modifié
Introduction à l’informatique 53
Premiers algorithmes
Introduction à l’informatique 54
Premiers algorithmes
●
Un algorithme est une séquence d’instructions dont l’exécution résout un
problème particulier posé à l’avance. Le problème a résoudre peut être
généraliste ou spécifique
Introduction à l’informatique 55
Premiers algorithmes
● On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Points souhaités
Points de départ
Introduction à l’informatique 56
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Points souhaités
Points de départ
Introduction à l’informatique 57
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
1 allPoints[0].y = allPoints[0].y +1
2
3 allPoints[1].y = allPoints[1].y +1
4 Séquence d’instructions
5 allPoints[2].y = allPoints[2].y +1
6
7 allPoints[3].y = allPoints[3].y +1
allPoints : list
1 allPoints[0].y = allPoints[0].y +1 [0],[1],[2],[3]
2
3 allPoints[1].y = allPoints[1].y +1 : Point2D : Point2D : Point2D : Point2D
4 Séquence d’instructions x x x x
y y y y
5 allPoints[2].y = allPoints[2].y +1
6 : int : int : int : int : int : int : int : int
7 allPoints[3].y = allPoints[3].y +1 1 2 2 4 3 6 4 8
allPoints : list
1 allPoints[0].y = allPoints[0].y +1 [0],[1],[2],[3]
2
3 allPoints[1].y = allPoints[1].y +1 : Point2D : Point2D : Point2D : Point2D
4 x x x x
y y y y
5 allPoints[2].y = allPoints[2].y +1
6 : int : int : int : int : int : int : int : int
7 allPoints[3].y = allPoints[3].y +1 1 2 2 4 3 6 4 8
Introduction à l’informatique 60
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
allPoints : list
1 allPoints[0].y = allPoints[0].y +1 [0],[1],[2],[3]
2
3 allPoints[1].y = allPoints[1].y +1 : Point2D : Point2D : Point2D : Point2D
4 x x x x
y y y y
5 allPoints[2].y = allPoints[2].y +1
6 : int : int : int : int : int : int : int : int
7 allPoints[3].y = allPoints[3].y +1 1 2 2 4 3 6 4 8
: int
3
Introduction à l’informatique 61
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
allPoints : list
1 allPoints[0].y = allPoints[0].y +1 [0],[1],[2],[3]
2
3 allPoints[1].y = allPoints[1].y +1 : Point2D : Point2D : Point2D : Point2D
4 x x x x
y y y y
5 allPoints[2].y = allPoints[2].y +1
6 : int : int : int : int : int : int : int : int
7 allPoints[3].y = allPoints[3].y +1 1 2 2 4 3 6 4 8
: int
3
Introduction à l’informatique 62
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
allPoints : list
1 allPoints[0].y = allPoints[0].y +1 [0],[1],[2],[3]
2
3 allPoints[1].y = allPoints[1].y +1 : Point2D : Point2D : Point2D : Point2D
4 x x x x
y y y y
5 allPoints[2].y = allPoints[2].y +1
6 : int : int : int : int : int : int : int : int
7 allPoints[3].y = allPoints[3].y +1 1 2 2 4 3 6 4 8
: int : int
3 5
Introduction à l’informatique 63
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
allPoints : list
1 allPoints[0].y = allPoints[0].y +1 [0],[1],[2],[3]
2
3 allPoints[1].y = allPoints[1].y +1 : Point2D : Point2D : Point2D : Point2D
4 x x x x
y y y y
5 allPoints[2].y = allPoints[2].y +1
6 : int : int : int : int : int : int : int : int
7 allPoints[3].y = allPoints[3].y +1 1 2 2 4 3 6 4 8
: int : int : int
3 5 7
Introduction à l’informatique 64
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
allPoints : list
1 allPoints[0].y = allPoints[0].y +1 [0],[1],[2],[3]
2
3 allPoints[1].y = allPoints[1].y +1 : Point2D : Point2D : Point2D : Point2D
4 x x x x
y y y y
5 allPoints[2].y = allPoints[2].y +1
6 : int : int : int : int : int : int : int : int
7 allPoints[3].y = allPoints[3].y +1 1 2 2 4 3 6 4 8
: int : int : int : int
3 5 7 9
Introduction à l’informatique 65
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
allPoints : list
1 allPoints[0].y = allPoints[0].y +1 [0],[1],[2],[3]
2
3 allPoints[1].y = allPoints[1].y +1 : Point2D : Point2D : Point2D : Point2D
4 x x x x
y y y y
5 allPoints[2].y = allPoints[2].y +1
6 : int : int : int : int : int : int : int : int
7 allPoints[3].y = allPoints[3].y +1 1 2 2 4 3 6 4 8
: int : int : int : int
3 5 7 9
[(x=1, y=3), (x=2, y=5), (x=3, y=7), (x=4, y=9)]
0 1 2 3
Introduction à l’informatique 66
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
1 allPoints[0].y = allPoints[0].y +1
2
3 allPoints[1].y = allPoints[1].y +1
4
5 allPoints[2].y = allPoints[2].y +1
6
7 allPoints[3].y = allPoints[3].y +1
Introduction à l’informatique 68
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Introduction à l’informatique 69
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Introduction à l’informatique 70
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Introduction à l’informatique 71
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Introduction à l’informatique 72
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Introduction à l’informatique 73
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Introduction à l’informatique 74
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
p: Point2D = allPoints[indice]
p.y = p.y + 1
indice = indice + 1
p: Point2D = allPoints[indice]
[(x=1, y=3), (x=2, y=5), (x=3, y=7), (x=4, y=9)]
p.y = p.y + 1
indice = indice + 1 0 1 2 3
Introduction à l’informatique 78
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
[(x=1, y=2), (x=2, y=4), (x=3, y=6), (x=4, y=8)]
indice: int = 0 0 1 2 3
p: Point2D = allPoints[indice]
p.y = p.y + 1
indice = indice + 1
p: Point2D = allPoints[indice]
[(x=1, y=3), (x=2, y=5), (x=3, y=7), (x=4, y=9)]
p.y = p.y + 1
indice = indice + 1 0 1 2 3
Introduction à l’informatique 79
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
[(x=1, y=2), (x=2, y=4), (x=3, y=6), (x=4, y=8)]
indice: int = 0 0 1 2 3
p: Point2D = allPoints[indice]
p.y = p.y + 1
indice = indice + 1
p: Point2D = allPoints[indice]
[(x=1, y=3), (x=2, y=5), (x=3, y=7), (x=4, y=9)]
p.y = p.y + 1
indice = indice + 1 0 1 2 3
Introduction à l’informatique 80
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
[(x=1, y=2), (x=2, y=4), (x=3, y=6), (x=4, y=8)]
indice: int = 0 0 1 2 3
p: Point2D = allPoints[indice]
p.y = p.y + 1
indice = indice + 1
p: Point2D = allPoints[indice]
[(x=1, y=3), (x=2, y=5), (x=3, y=7), (x=4, y=9)]
p.y = p.y + 1
indice = indice + 1 0 1 2 3
Introduction à l’informatique 81
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
[(x=1, y=2), (x=2, y=4), (x=3, y=6), (x=4, y=8)]
indice: int = 0 0 1 2 3
p: Point2D = allPoints[indice]
p.y = p.y + 1
indice = indice + 1
p: Point2D = allPoints[indice]
[(x=1, y=3), (x=2, y=5), (x=3, y=7), (x=4, y=9)]
p.y = p.y + 1
indice = indice + 1 0 1 2 3
Introduction à l’informatique 82
Premiers algorithmes
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
[(x=1, y=2), (x=2, y=4), (x=3, y=6), (x=4, y=8)]
indice: int = 0 0 1 2 3
p: Point2D = allPoints[indice]
p.y = p.y + 1
indice = indice + 1
p: Point2D = allPoints[indice]
[(x=1, y=3), (x=2, y=5), (x=3, y=7), (x=4, y=9)]
p.y = p.y + 1
indice = indice + 1 0 1 2 3
Introduction à l’informatique 83
Premiers algorithmes La boucle While
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
On désire appliquer une translation de 1 selon l’axe des ordonnées à tous
les points de la liste
Introduction à l’informatique 84
Premiers algorithmes La boucle While
Introduction à l’informatique 85
Premiers algorithmes La boucle While
Introduction à l’informatique 86
Premiers algorithmes La boucle While
●
Une boucle (loop en anglais) vous permet de répéter des blocs
d’instructions selon vos besoins.
●
Il existe différentes manières de définir des boucles en python
●
La boucle tant que (while en anglais) est définie par un bloc de code à
répéter ainsi qu’une expression booléenne appelée condition
Introduction à l’informatique 87
Premiers algorithmes La boucle While
Introduction à l’informatique 88
Premiers algorithmes La boucle While
allPoints = [??]
[(x=1, y=2), (x=2, y=4), (x=3, y=6), (x=4, y=8)]
0 1 2 3
Introduction à l’informatique 89
Premiers algorithmes La boucle While
allPoints = [??]
[(x=1, y=2), (x=2, y=4), (x=3, y=6), (x=4, y=8)]
0 1 2 3
⇒ le problème a changé et devient plus générique puisque l’on ne sait pas a priori
combien de fois il faut répéter le bloc de code représentant le traitement
→ on va donc inspecter la variable allPoints et modifier la condition de
répétition en conséquence.
Introduction à l’informatique 90
Premiers algorithmes La boucle While
allPoints = [??]
⇒ le problème a changé et devient plus générique puisque l’on ne sait pas a priori
combien de fois il faut répéter le bloc de code représentant le traitement
→ on va donc inspecter la variable allPoints et modifier la condition de
répétition en conséquence.
Ici la fonction len(var) est définie si var est de type list
et elle renvoie le nombre d’élément dans la liste var
https://www.google.com/search?q=longueur+list+pytho
n
Introduction à l’informatique 91
Premiers algorithmes La boucle While
●
Une boucle (loop en anglais) vous permet de répéter des blocs d’instructions
selon vos besoins.
●
Il existe différentes manières de définir des boucles en python
●
La boucle tant que (while en anglais) est définie par un bloc de code à répéter
ainsi qu’une expression booléenne appelée condition
●
La condition porte habituellement sur une ou plusieurs variables qui sont
modifiées dans le bloc de code à répéter pour éviter d’avoir une boucle
infinie
Introduction à l’informatique 92
Premiers algorithmes La boucle While
●
Une boucle (loop en anglais) vous permet de répéter des blocs d’instructions
selon vos besoins.
●
Il existe différentes manières de définir des boucles en python
●
La boucle tant que (while en anglais) est définie par un bloc de code à répéter
ainsi qu’une expression booléenne appelée condition
●
La condition porte habituellement sur une ou plusieurs variables qui sont
modifiées dans le bloc de code à répéter pour éviter d’avoir une boucle
infinie
Introduction à l’informatique 93
Premiers algorithmes Le branchement conditionnel If
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
Si l’ordonnée d’un point est négative, on désire la remplacer par sa valeur
absolue
●
Si l’ordonnée d’un point n’est pas négative, alors on lui ajoute 1
Points souhaités
Points de départ
Introduction à l’informatique 94
Premiers algorithmes Le branchement conditionnel If
2)Si l’ordonnée d’un point est négative, on désire la remplacer par sa valeur
absolue
3)Si l’ordonnée d’un point n’est pas négative, alors on lui ajoute 1
Points souhaités
Points de départ
Introduction à l’informatique 95
Premiers algorithmes Le branchement conditionnel If
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
Si l’ordonnée d’un point est négative, on désire la remplacer par sa valeur
absolue
●
Si l’ordonnée d’un point n’est pas négative, alors on lui ajoute 1
Points souhaités
Points de départ
Introduction à l’informatique 96
Premiers algorithmes Le branchement conditionnel If
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
Si l’ordonnée d’un point est négative, on désire la remplacer par sa valeur
absolue
●
Si l’ordonnée d’un point n’est pas négative, alors on lui ajoute 1
Points souhaités
Points de départ
Si la condition est vraie, alors le bloc de code qui suit la condition est
exécuté, sinon le bloc de code qui suit le mot clef else est exécuté.
Rappel : les blocs de code sont définis en fonction de l’indentation (du retrait par
rapport au bord du fichier)
Introduction à l’informatique 97
Premiers algorithmes Le branchement conditionnel If
●
On a un ensemble de 4 points dans une liste nommée allPoints.
●
Si l’ordonnée d’un point est négative, on désire la remplacer par sa valeur
absolue
●
Si l’ordonnée d’un point n’est pas négative, alors on lui ajoute 1
Points souhaités
optionnel
Points de départ
Si la condition est vraie, alors le bloc de code qui suit la condition est
exécuté, sinon le bloc de code qui suit le mot clef else est exécuté.
optionnel
Rappel : les blocs de code sont définis en fonction de l’indentation (du retrait par
rapport au bord du fichier)
Introduction à l’informatique 98
Algorithmes
●
Les structures de code conditionnel et les boucles peuvent s’imbriquer de
nombreuses manières, engendrant des comportements différents.
●
Il est important de pratiquer afin de progresser. N’hésitez pas à jouer dans
l’éditeur utilisé en TP et à mettre des print pour voir les valeurs des
variables à chaque ligne, mais aussi pour comprendre quel est le flot
d’exécution.
●
Challengez vous les uns les autres. Posez vous des questions, entre aidez
vous.
●
Si vous avez des questions particulières et que personne autour de vous
n’a la réponse, n’hésitez pas à me contacter moi ou les chargés de
TD/TP.
Introduction à l’informatique 99
Premiers algorithmes : compréhension
●
Un algorithme est une séquence d’instructions dont l’exécution résout un
problème particulier posé à l’avance. Le problème a résoudre peut être
généraliste ou spécifique
⚠️
Introduction à l’informatique 100
Premiers algorithmes : écriture
●
Un algorithme est une séquence d’instructions dont l’exécution résout un
problème particulier posé à l’avance. Le problème a résoudre peut être
généraliste ou spécifique
⚠️
modification des éléments de inputPixels n’impacte pas la liste outputPixels
Création d’un
nouveau pixel
⚠️
Introduction à l’informatique 108
Premiers algorithmes : écriture
●
2.4.2 Changement de couleur
Soit une variable nommée img de type ImagePPM. ImagePPM est le type
définit précédemment. Soit une variable nommée pRef de type Pixel.
Soit une autre variable nommée Pnew de type Pixel. Écrire un
algorithme permettant changer tous les pixels de img qui sont égaux à
pRef par des pixels égaux à pNew.
⚠️
Introduction à l’informatique 109
Premiers algorithmes : écriture
●
2.4.2 Changement de couleur
Soit une variable nommée img de type ImagePPM. ImagePPM est le type
définit précédemment. Soit une variable nommée pRef de type Pixel.
Soit une autre variable nommée Pnew de type Pixel. Écrire un
algorithme permettant changer tous les pixels de img qui sont égaux à
pRef par des pixels égaux à pNew.
Elle fut utilisée la première fois pour les circuits de commutation téléphonique par Claude Shannon.
●
C’est l’algèbre sous-jacente aux prédicats utilisés dans les boucles et les
branchements conditionnels
Points souhaités
Points de départ
Elle fut utilisée la première fois pour les circuits de commutation téléphonique par Claude Shannon.
●
C’est l’algèbre sous-jacente aux prédicats utilisés dans les boucles et les
branchements conditionnels
Points souhaités
Points de départ
Elle fut utilisée la première fois pour les circuits de commutation téléphonique par Claude Shannon.
●
C’est l’algèbre sous-jacente aux prédicats utilisés dans les boucles et les
branchements conditionnels
Points souhaités
Points de départ
Elle fut utilisée la première fois pour les circuits de commutation téléphonique par Claude Shannon.
●
C’est l’algèbre sous-jacente aux prédicats utilisés dans les boucles et les
branchements conditionnels
●
Pour faire des raisonnements rigoureux sur des objets mathématiques
●
Pour mécaniser voire automatiser les raisonnements.
●
Pour faire des raisonnements rigoureux en général !
●
Écrire sur la première ligne les propositions atomiques et les formules,
une colonne pour chaque.
●
Déterminer le nombre de lignes : 2n où n nombre de propositions
atomiques.
●
Exemple : si n=3, alors 2n=8 lignes.
●
Compléter les lignes avec toutes les combinaisons possibles.
●
Technique : Compter jusque 2n en binaire pour n'oublier aucune
ligne. (0=F et 1=V)
●
Remplir les colonnes de droite, éventuellement en découpant les formules
compliquées.
1
2
1
2
L’un des concepts les plus importants en programmation est celui de fonction. Les
fonctions permettent en effet de décomposer un programme complexe en une série de
sous-programmes plus simples, lesquels peuvent à leur tour être décomposés en
fragments plus petits, et ainsi de suite. D’autre part, les fonctions sont réutilisables : si
nous disposons d’une fonction capable de calculer une racine carrée, par exemple,
nous pouvons l’utiliser un peu partout dans nos programmes sans avoir à la ré-écrire à
chaque fois.
https://inforef.be/swi/download/apprendre_python3_5.
pdf Page 69
●
Nous avons déjà utilisé des fonctions prédéfinies. Par exemple
print print(‘Bonjour’, name)
●
Nous avons déjà utilisé des fonctions importées. Par exemple
sqrt r: float = sqrt(1)
●
Définition d’une fonction avec paramètre :
●
Appel de la fonction ci dessus :
●
Définition d’une fonction avec paramètre :
nomParam1 : type, nomParam2 : type, etc
●
Appel de la fonction ci dessus :
: int
6
●
Définition d’une fonction avec paramètre :
nomParam1 : type, nomParam2 : type, etc
●
Appel de la fonction ci dessus :
i base
: int
6
●
Définition d’une fonction avec paramètre :
i base
: int
4
●
Définition d’une fonction avec paramètre :
i base
: int : int
4 8
●
Définition d’une fonction avec paramètre :
●
Définition d’une fonction avec paramètre :
p : int
0
blanc : Pixel : int
r 255
g
b
●
Définition d’une fonction avec paramètre et type de retour :
Le mot clé return stop le flux d’exécution de la fonction et revient à la ligne d’appel
●
Définition d’une fonction avec ‘code mort’ :
Le mot clé return stop le flux d’exécution de la fonction et revient à la ligne d’appel
●
Définition d’une fonction avec multiples return:
Le mot clé return stop le flux d’exécution de la fonction et revient à la ligne d’appel
●
Définition d’une fonction avec paramètre par defaut:
●
Internet est un ensemble d’ordinateurs, reliés entre eux par un réseau, leur
permettant ainsi d’échanger toutes sortes de données.
●
Basé sur l’ensemble de protocoles TCP/IP
●
Sans centre névralgique
●
permet des applications variées comme le courrier électronique, la
messagerie instantanée, le partage de fichiers en pair-à-pair, le
streaming, le podcasting, la téléconférence et aussi le World Wide
Web
●
Le « Web » est un système hypertexte public fonctionnant sur Internet. Le
Web permet de consulter (avec un navigateur), des pages accessibles
sur des sites.
●
Internet Protocol :
●
C’est un protocole basé sur une notion d’adresse unique pour chaque nœud
publique directement lié au réseau internet (par exemple votre box internet) →
l’adresse IP publique.
●
L’adresse IP s’obtient en ayant un fournisseur d’accès à internet.
●
L’adresse IP permet non seulement d’envoyer les bonnes données au bon endroit
mais elle permet aussi d’estimer approximativement où se trouve l’ordinateur lié
à internet (https://mon-adresse-ip.fr/)
●
Sur un ordinateur, l’adresse de la machine sur laquelle on « travaille » est toujours
127.0.0.1 par convention, avec le nom localhost
●
Transmission Control Protocol :
●
Permet d’établir une liaison entre un serveur et un client afin d’échanger des
données
https://www.afternerd.com/blog/python-http-server/
Introduction à l’informatique 143
HTTP et le web
●
URL de la page demandée : Chemin de la requête
http://www.i3s.unice.fr/~deantoni/index.html
protocol serveur hôte chemin fichier
e
●
Actions effectuées :
1) Demande de l’adresse ip du serveur hôte à un serveur particulier nommé
DNS (Domain Name Server)
●
Langage à balise pour l’hyper text. Ce n’est pas un langage de programmation.
Aucun algorithme n’est décrit.
Langage à balise
●
En informatique, les langages à balise représentent une classe de langages
spécialisés dans l'enrichissement d'information textuelle. Ils utilisent des
balises, unités syntaxiques délimitant une séquence de caractères ou
marquant une position précise à l'intérieur d'un flux de caractères (par
exemple un fichier texte).
●
L'inclusion de balises permet de transférer à la fois la structure du document et son
contenu. Cette structure est compréhensible par un programme informatique,
ce qui permet un traitement automatisé du contenu.
●
Exemple : Texte du titre
●
Le document est de type HTML (sa DTD est celle d’HTML)
<!DOCTYPE html>
<html>
●
Le document html commence <head>
<title>Titre</title>
●
L’entête définit différentes choses dont </head>
le titre de l’onglet puis se termine <body>
</body>
●
Le corps du document est ici vide, </html>
c’est à dire que la page sera vide
●
Le document html finit
⚠️qui Les balises ne doivent pas être entrelacées, la première qui ouvre est la dernière
ferme <p><b> … </p> </b>
Introduction à l’informatique 149
HTML : Hyper Text Markup Language
<!DOCTYPE html>
<html>
<head>
<title>Titre de la page</title>
</head>
<body>
This is the body
</body>
</html>
head
1 2 body
• title: simple body
meta title 1 2 3 4
• charset : utf-8
1
Titre de la page
●
Cette structure, en mémoire est facile à manipuler informatiquement et est
largement utilisée. Le concept est générique et peut être adapté à
différents cas (arbre d’expression, arbre binaire de recherche,
grammaire, html)
●
Les feuilles de style en cascade (CSS) sont utilisées pour formater la mise en
page d'une page Web.
●
Avec CSS, vous pouvez contrôler la couleur, la police, la taille du texte,
l'espacement entre les éléments, la manière dont les éléments sont
positionnés et disposés, les images d'arrière-plan ou les couleurs d'arrière-
plan à utiliser, différents affichages pour différents appareils et tailles
d'écran, et beaucoup plus!
●
Le mot cascade signifie qu'un style appliqué à un élément parent s'appliquera
également à tous les éléments enfants du parent. Ainsi, si vous définissez la
couleur du corps du texte sur "bleu", tous les titres, paragraphes et autres
éléments de texte du corps auront également lahttps://www.w3schools.com/html/html_css.as
même couleur (sauf si vous
spécifiez autre chose) ! p
●
CSS est basé sur la notion de règle qui s’applique à des nœuds particuliers de
l’arbre de la structure html.
Notes : Pour 1 document il peut y avoir une infinité de styles :
http://www.csszengarden.com
On ne verra pas toutes les propriétés ! https://www.w3schools.com/w3css/defaulT.asp
body {
background-color: powderblue;
color: brown;
}
3 règles a{
CSS color: yellow;
}
img {
border: 2px solid #7FFFD4;
}
fichierDeStyle.css
selector, … {
property: value …;
…
} Toutes les balises h1, h2, h3
• Examples:
h1, h2, h3 {
Border: 2px solid grey;
} Toutes les balises avec
.title { l’attribut class = “title”
font-weight: bold;
}
#main { La balise avec id=“main”
font-style: italic;
}
* { Toutes les balises
font-style: italic;
}
Introduction à l’informatique slide from Nicolas Ferry 155
Sélécteurs avancés Les sélécteurs avancés permettent de spécifier
des relations dans l’arbre sous jacent à HTML
(i.e., des sous arbres)
h1[title]{
…
}
●
L’informatique permet de traiter de l’information en écrivant des
algorithmes.
●
L’informatique donne des méthodes, des langages et des « frameworks »
permettant de décrire l’information et les algorithmes.
●
Écrire un algorithme ne s’apprend pas en un jour. Il est nécessaire de
pratiquer afin de comprendre certains automatismes de pensée.
●
Rien n’est perdu pour personne mais rien n’arrive sans travail ni
rigueur.
●
Pratiquez par vous même (même en reprenant au TP2 si nécessaire).
Relisez les cours. Demandez à quelqu’un de relire votre code pour des
corrections et des conseils. C’est mon rôle mais aussi celui des autres
chargés de Tps/Tds. (Cela peut aussi être avec d’autres personnes de la
promo).