Cours 01
Cours 01
Cours 01
Jean-Noël Vittaut
© Équipe enseignante LU1IN0X1
Cours 1 : Expressions arithmétiques et fonctions
Plan du cours
1 Informations pratiques
2 Introduction
Objectifs de l’UE
Un premier exemple
3 Les expressions
Expressions simples
Expressions composées
Opérateurs
Spécification de fonction
Application de fonction
Principe d’évaluation
4 Définition de fonction
Complément sur la spécification
Implémentation
Jeu de tests
5 Conclusion
6 Informations complémentaires
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 1/45
Présentation
Vous
PEIP : 5 groupes de TD
CMI + SA + IL : 3 groupes de TD
SHI (mS) : 1/2 groupe de TD
Moi
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 2/45
Supports de cours
Versions papiers
Tous les documents papiers sont distribués par l’Association Ludique et InformAtique de Sorbonne
Université (ALIAS) 14-15 506
Créneaux réservés pour vous :
mardi 20 septembre 2022 de 18h à 19h pour PEIP + CMI + IL + SA
mercredi 21 septembre 2022 de 12h45 à 13h45 pour SHI
À récupérer :
Cahier d’exercices TD-TME en 2 saisons : semaines 1 à 5
Carte de référence : seul document autorisé aux examens
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 3/45
Supports de cours
Versions numériques
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 4/45
Prérequis et organisation
Prérequis
Organisation
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 5/45
Environnement et évaluation
Environnement
Évaluation
Note de l’UE sur 100 points :
Soit :
Devoir sur Table le 18 novembre 2022 de 18h30 à 20h sur 15 points,
"TME solo" debut novembre sur 15 points,
Évaluation TD (interro/colles/devoirs/participation) sur 10 points,
Rendus de TME systématiques sur 10 points.
Contrôle final en janvier sur 50 points.
Soit :
2× Contrôle final en janvier sur 50 points.
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 6/45
Règles de validation
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 7/45
Séances de TD-TME
Consignes :
Se munir de ses identifiants (login/mot de passe donnés avec la carte d’étudiant) pour les TMEs.
Ne pas changer de groupe de TD.
Transmettre les justificatifs d’absence à Patricia Lavanchy (24-25 204)
Patricia.Lavanchy@sorbonne-universite.fr
Le site Web contient un lien vers le site de soumission des TMEs. Apprenez à soumettre vos TME
correctement !
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 8/45
Conseils pour réussir l’UE
Ne pas se sous-estimer : pas de pré-requis pour ce cours, accessible à tout étudiant de L1.
Ne pas se sur-estimer : des connaissances en informatique (lycée/autodidaxie) et en Python ne
garantissent pas la réussite de l’UE. Vision particulière de l’informatique et de la programmation.
Aller en cours pour prendre des notes et participer : la première visualisation des concepts est
importante, l’écriture des programmes permet de s’entraîner.
Être actif en TD/TME : attention aux binômes "déséquilibrés" en TME et à l’attitude passive en TD.
Travailler seul : refaire les exercices de TD/TME si nécessaire, faire ceux non-traités en TD/TME.
Parler avec l’équipe pédagogique : poser des questions pendant (ou à la fin) des amphis, en TD/TME,
envoyer des mails à l’équipe pédagogique pour des précisions, des corrections, des énoncés
supplémentaires, des exemples d’interrogations ou d’examens.
Ne pas compter sur la seconde chance.
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 9/45
Plan du cours
1 Informations pratiques
2 Introduction
Objectifs de l’UE
Un premier exemple
3 Les expressions
Expressions simples
Expressions composées
Opérateurs
Spécification de fonction
Application de fonction
Principe d’évaluation
4 Définition de fonction
Complément sur la spécification
Implémentation
Jeu de tests
5 Conclusion
6 Informations complémentaires
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 10/45
Qu’est-ce que l’informatique ?
L’informatique n’est pas plus la science des ordinateurs que l’astronomie n’est celle des télescopes
(Edsger W. Dijkstra)
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 11/45
Programmation
Wikipédia
Un programme informatique est une séquence d’instructions qui spécifie étape par étape les opérations à effectuer pour obtenir un résultat. Il est exprimé sous
une forme qui permet de l’utiliser avec une machine comme un ordinateur pour exécuter les instructions. Un programme est la forme électronique et numérique
d’un algorithme exprimé dans un langage de programmation - un vocabulaire et des règles de ponctuation destinées à exprimer des programmes.
Programmer (écrire des programmes), c’est donner des instructions à une machine en vue de lui faire
réaliser un résultat.
instructions : analogie de la recette de cuisine,
machines : PC, processeur, puce, . . .
résultats :
calculer une expression,
construire une image,
effectuer un geste physique,
mettre en page un texte, . . .
Omniprésence : industrie, économie, physique, média, . . .
Medium entre l’homme et la machine :
langage de programmation.
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 12/45
Objectifs de l’UE
Concepts fondamentaux
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 13/45
Langage support du cours
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 14/45
Python vs. ce cours
Wikipedia
Python est un langage de programmation objet, multi-paradigme et multi-plateformes. Il favorise la programmation impérative structurée et orientée objet. Il
est doté d’un typage dynamique fort, d’une gestion automatique de la mémoire par ramasse-miettes et d’un système de gestion d’exceptions ; il est ainsi
similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.
Le langage Python est placé sous une licence libre proche de la licence BSD2 et fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs
aux ordinateurs centraux, de Windows à Unix en passant par GNU/Linux, Mac OS, ou encore Android, iOS, et aussi avec Java ou encore .NET. Il est conçu
pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser.
Il est également apprécié par les pédagogues qui y trouvent un langage où la syntaxe, clairement séparée par des mécanismes de bas niveau, permet une
initiation aisée aux concepts de base de la programmation.
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 15/45
Exemple de problème
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 16/45
Exemple de problème
if i_est_premier:
L.append(i)
return L
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 16/45
Exemple de problème
Ce programme permet de définir la fonction liste_premiers, qui peut ensuite être invoquée pour répondre
au problème :
>>> liste_premiers(30)
[2,3,5,7,11,13,17,19,23,29]
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 17/45
Exemple de problème
Ce programme permet de définir la fonction liste_premiers, qui peut ensuite être invoquée pour répondre
au problème :
>>> liste_premiers(30)
[2,3,5,7,11,13,17,19,23,29]
Expressions : 2, i - 1, i % j == 0, ...
Dans ce cours, on s’intéresse aux expressions et définitions de fonctions (simples), ainsi qu’à leur processus
d’évaluation.
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 17/45
Plan du cours
1 Informations pratiques
2 Introduction
Objectifs de l’UE
Un premier exemple
3 Les expressions
Expressions simples
Expressions composées
Opérateurs
Spécification de fonction
Application de fonction
Principe d’évaluation
4 Définition de fonction
Complément sur la spécification
Implémentation
Jeu de tests
5 Conclusion
6 Informations complémentaires
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 18/45
Notion d’expressions
En mathématique comme en informatique, une expression est un texte formel exprimant le calcul d’une valeur.
Deux éléments :
Syntaxe ou comment écrire l’expression : règles de grammaire / contrainte du langage
Sémantique ou que signifie l’expression : règles sémantiques ou d’évaluation
Pour obtenir la valeur, il faut évaluer l’expression.
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 19/45
Expressions simples
Un premier exemple :
>>> 42
42
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 20/45
Expressions simples
Un premier exemple :
>>> 42
42
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 20/45
Expressions simples
Un premier exemple :
>>> 42
42
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 20/45
Expressions simples
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 21/45
Expressions simples
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 22/45
À retenir
bool
float
int (sous-type de float)
str
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 23/45
Expressions composées
Composées à partir de :
Expressions simples
Opérateurs
Applications de fonctions prédéfinies ou définies par le programmeur
Exemples :
>>> 2 + 3
5
>>> 2 * 2.5 + 1
6.0
>>> max(2,3) * 4
12
>>> type(2 + 3)
<class ’int’>
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 24/45
Expressions composées
Composées à partir de :
Expressions simples
Opérateurs
Applications de fonctions prédéfinies ou définies par le programmeur
Exemples :
>>> 2 + 3
5
>>> 2 * 2.5 + 1
6.0
>>> max(2,3) * 4
12
>>> type(2 + 3)
<class ’int’>
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 24/45
Opérateurs arithmétiques
Exemples :
>>> 2 + 3
5
>>> -2 + 3
1
>>> 2 + 3 * 4
14
>>> (2 + 3) * 4
20
>>> 2.5 * 2.5
6.25
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 25/45
Opérateurs arithmétiques
Division euclidienne :
3 est le quotient de la division euclidienne de 7 par 2.
1 est le reste de la division euclidienne de 7 par 2.
Ce que l’on vérifie avec : 7 = 3 ∗ 2 + 1
>>> 7 // 2
3
>>> 7 % 2
1
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 26/45
Priorité des opérateurs
Exemples :
2 + 3 * 9
==> 2 + 27
==> 29
(2 + 3) * 9
==> 5 * 9
==> 45
>>> 4 + 7 * 3 - 9 * 2
>>> 4 + 3 // 2
>>> 4 + (7 * - 3 - 9) * 2
>>> 4 + 6 / 3
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 27/45
Priorité des opérateurs
Exemples :
2 + 3 * 9
==> 2 + 27
==> 29
(2 + 3) * 9
==> 5 * 9
==> 45
>>> 4 + 7 * 3 - 9 * 2
7
>>> 4 + 3 // 2
5
>>> 4 + (7 * - 3 - 9) * 2
-56
>>> 4 + 6 / 3
6.0
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 27/45
Fonctions prédéfinies
En plus des opérateurs, un certain nombre de fonctions sont pré-définies en python. On parle alors de
primitives.
Par exemple :
Fonctions natives : max, min, abs, ...
Fonctions du module math : sqrt, cos, sin, ...
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 28/45
Spécification de fonction
Par exemple :
def abs(x : float) -> float:
"""retourne la valeur absolue de x"""
Contient 2 informations :
1 def abs(x : float) -> float: : la fonction se nomme abs et prend un paramètre (x) qui est un réel
et retourne un réel
2 """retourne la valeur absolue de x""" : la fonction calcule la valeur absolue
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 29/45
Spécification de fonction
Autre exemple :
def max(a : float, b : float, ...) -> float:
"""retourne la plus grande valeur parmi les parametres"""
1 def max(a : float, b : float, ...) -> float: : la fonction se nomme max et prend un réel
quelconque de paramètres (au moins 2) qui sont des réels et retourne un réel
2 """retourne la plus grande valeur parmi les parametres""" : la fonction calcule la plus grande
des valeurs
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 30/45
Spécification de fonction
1 def sqrt(x): : la fonction se nomme sqrt et prend un paramètre (x) qui est un réel et la valeur de
retour est un réel
2 """Precondition : x >= 0 : la valeur du paramètre x doit être positive ou nulle
√
3 """retourne la racine carree de x""" : calcule x.
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 31/45
Spécification de fonction
1 def sqrt(x): : la fonction se nomme sqrt et prend un paramètre (x) qui est un réel et la valeur de
retour est un réel
2 """Precondition : x >= 0 : la valeur du paramètre x doit être positive ou nulle
√
3 """retourne la racine carree de x""" : calcule x.
Remarque : pour utiliser une fonction d’un module, il faut déclarer le module :
>>> import math
>>> math.sqrt(4)
2.0
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 31/45
Spécification de fonction
Plus généralement :
La spécification d’une fonction contient
sa signature : précise son nom et le nom de ses paramètres avec leurs types et le type de la valeur de retour
ses éventuelles préconditions : précise les domaines de validité des paramètres
sa description : décrit le problème résolu par la fonction
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 32/45
Application de fonction
>>> max(1,3)
3
>>> max(-1, -5)
-1
>>> max(1, 2, 4.5)
4.5
>>> max(1, 2, 4.5, 6)
6
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 33/45
Évaluation des fonctions
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 34/45
Évaluation des fonctions
Exemple :
max(2+3, 4*12)
==> max(5,4*12)
==> max(5,48)
==> 48
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 34/45
Évaluation des fonctions
Exemple :
max(2+3, 4*12)
==> max(5,4*12)
==> max(5,48)
==> 48
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 34/45
Évaluation des expressions
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 35/45
Évaluation des expressions
Exemple :
(3 + 5) * (max(2, 6) - 5) - 9
==> 8 * ( max(2, 6) - 5 ) - 9 [parenthésage - gauche]
==> 8 * ( 6 - 5 ) - 9 [appel de la fonction max]
==> 8 * 1 - 9 [soustraction entre parenthèses]
==> 8 - 9 [multiplication prioritaire]
==> -1 [soustraction]
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 35/45
Plan du cours
1 Informations pratiques
2 Introduction
Objectifs de l’UE
Un premier exemple
3 Les expressions
Expressions simples
Expressions composées
Opérateurs
Spécification de fonction
Application de fonction
Principe d’évaluation
4 Définition de fonction
Complément sur la spécification
Implémentation
Jeu de tests
5 Conclusion
6 Informations complémentaires
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 36/45
Motivation
Question : Quel est le périmètre d’un rectangle de largeur 2 unités et longueur 5 unités ?
Réponse : 14. Il suffit d’évaluer l’expression arithmétique 2 + 2 + 5 + 5
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 37/45
Motivation
Question : Quel est le périmètre d’un rectangle de largeur 2 unités et longueur 5 unités ?
Réponse : 14. Il suffit d’évaluer l’expression arithmétique 2 + 2 + 5 + 5
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 37/45
Motivation
Question : Quel est le périmètre d’un rectangle de largeur 2 unités et longueur 5 unités ?
Réponse : 14. Il suffit d’évaluer l’expression arithmétique 2 + 2 + 5 + 5
→ On aimerait en fait une fonction perimetre qui, étant donné la largeur et la longueur d’un rectangle,
calcule son périmètre.
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 37/45
Définition de fonction
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 38/45
Étapes de réflexion
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 39/45
Périmètre : spécification
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 40/45
Périmètre : spécification
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 40/45
Périmètre : implémentation
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 41/45
Périmètre : implémentation
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 41/45
Périmètre : jeu de tests
assert perimetre(2,5) == 14
assert perimetre(0,0) == 0
assert perimetre(0,2) == 4
assert perimetre(2,3) == 10
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 42/45
Périmètre : jeu de tests
assert perimetre(2,5) == 14
assert perimetre(0,0) == 0
assert perimetre(0,2) == 4
assert perimetre(2,3) == 10
assert perimetre(2, 3) == 12
Erreur: ligne 13
==> Erreur d’assertion (test invalide ?)
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 42/45
Conclusion
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 43/45
Informations importantes (rappel)
Site de l’UE
https://moodle-sciences-22.sorbonne-universite.fr
Versions papiers
Tous les documents papiers sont distribués par l’Association Ludique et InformAtique de
Sorbonne Université (ALIAS) 14-15 506
Créneaux réservés pour vous :
mardi 20 septembre 2022 de 18h à 19h pour PEIP + CMI + IL + SA
mercredi 21 septembre 2022 de 12h45 à 13h45 pour SHI
À récupérer :
Cahier d’exercices TD-TME en 2 saisons : semaines 1 à 5
Carte de référence : seul document autorisé aux examens
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 44/45
Points abordés dans le semestre
Jean-Noël Vittaut — Cours 1 : Expressions arithmétiques et fonctions — Éléments de programmation 1 — 2022–2023 45/45