Vous êtes sur la page 1sur 6

Chapitre 1 : Fonctions,

Variables, Alternatives

Programmer ⇒ Donner des ordres à une machine.


→ Calculer des valeurs ou modifier des états

Communiquer avec la machine ⇒ Langage de programmation


Execution ⇒ Interpréteur ou compilateur
⇒ comprend le texte et execute les ordres.
Fonctionnement de l’interpréteur :

Une partie découpage + Un partie regroupement + Une partie arrangement

Expression atomique : Renvoie sa propre valeur


⇒ booléen, entier, variables flottant

Booléen :

Type : bool

Valeur : ‘True’ ⇒ Vrai, ‘False’ ⇒ Faux


Entier :

Notation décimale usuelle, de taille arbitraire

Type : int
Valeurs , 3, 43, 50

Flottant :

Nombre avec virgules

Type : float
Note : Les entiers sont convertis en flottant si nécessaire.

Chapitre 1 : Fonctions, Variables, Alternatives 1


Chaines de caractères :
Texte encadré par des apostrophes ou guillemets doubles

Type : str

Expressions composés : Formés de combinaisons de sous expressions,


atomiques ou composés.

Divisions

Deux types de divisions :

Divisions entière “//” ⇒ prend des entiers


Divisions…. (A completer)

Fonction
Spécification d’une fonction :

en-tête qui donne le nom, ses paramètres le type des paramètres…

Préconditions pour application de la fonction si necessaire

Description qui indique quel problème résout la fonction

→ Permet de paramétrer, d’automatiser et de généraliser des calculs.

Structure d’une fonction :

def perimetre( longueur : int, largeur : int) -> int :


"""
La fonction doit toujours contenir un docstring
"""
(Corps de la fonction)

return 2 * (longueur + largeur)

Le module “return” renvoie le résultat.

Chapitre 1 : Fonctions, Variables, Alternatives 2


Faire des tests ⇒ Utiliser “assert”.
Ecrire un précondition :

def perimetre( longueur : int, largeur : int) -> int :


"""
Precondition : longueur>= largeur
"""
return 2 * (longueur + largeur)

Ce qu’il faut faire en TME:


1. Spécification de la fonction (en-tête + précondition)

def fonction(var1 : int, var 2:str) -> int :


"""Preconditon var1>= 1 """

2. Recherche de l’algorithme solution

Se fait sur papier en dehors de l’écran

3. Implémentation de l’algorithme en calculant le résultat.

Instruction :
C’est un ordre donnée à la machine.

Note : Juxtaposition verticale → Empilement d’instructions.

Modèle simpliste d’ordinateur


→ Un processeur qui effectue des calculs

→ Une mémoire qui stocke des informations.

Exemple : Calculer la fonction aire triangle

Chapitre 1 : Fonctions, Variables, Alternatives 3


Etape 1 : Précondition et en-tête :

def aire_triangle(a : float,b : float,c : float) -> float :


""" Precondition : a>= 0 and b>= 0 and c >= 0.
a <= b +c and b < a +c
Calcul d'aire du triangle
"""

Etape 2 : Trouver l’algorithme :

Formule d’Héron d’Alexandrie :

1. Calculer le demi-p´erim`etre du triangle:

a+b+c
2
1. L’aire vaut
s(s − a)(s − b)(s − c)

s(s−a)(s−b)(s−c)

Etape 3 : Implémentation naïve :

def aire_triangle(a : float,b : float,c : float) -> float :


""" Precondition : a>= 0 and b>= 0 and c >= 0.
a <= b +c and b < a +c
Calcul d'aire du triangle
"""

return math.sqrt(
((a+b+c)/2)
* (((a+b+c) / 2) - a)
* (((a+b+c) / 2) - b)
* (((a+b+c) / 2) - c) )

Problème :

→ On calcule 4 fois le demi périmètre

Chapitre 1 : Fonctions, Variables, Alternatives 4


→ LA fonction est difficile à lire

Etape 3 : Utilisation d’une case mémoire :

def aire_triangle(a : float,b : float,c : float) -> float :


""" Precondition : a>= 0 and b>= 0 and c >= 0.
a <= b +c and b < a +c
Calcul d'aire du triangle
"""

s : float = ((a+b+c)/2)

return math.sqrt(s * (s -a)*(s-b)*(s-c))

→ Un seul calcul du demi périmètre, 4 utilisation

→ s est une variable locale à la fonction


→ Elle n’existe que dans la fonction

Variable
C’est une case mémoire locale à une fonction
Elle est définie par :

→ Un nom
→ Un type de contenu (float, int, str…)

Syntaxe :

var : type = valeur

Bonne pratique : Définir des variables au debut d’une fonction

Pour changer de valeur, on peut juste faire:

var = newValeur

Chapitre 1 : Fonctions, Variables, Alternatives 5


Alternative

Instruction qui permet de faire faire à la machine 2 choses différentes en fonction


d’une condition.
Syntaxe :

if condition:
instruction
else:
instruction

Note : “condition” est une expression booléenne


Exemple : Valeur absolue

def valeur_absolue(x :float) -> float :


if x >= 0:
return x
else:
return -x

Chapitre 1 : Fonctions, Variables, Alternatives 6

Vous aimerez peut-être aussi