Cours 4
Programmation en sciences
420-SN1-RE
1
Plan de la rencontre
• Quiz
• Analyse d’un problème
• Fonction
• Présentation du travail 1
2
L’analyse d’un problème
2.1.4 Lecture obligatoire de la semaine 1
3
L’analyse d’un problème
Les problèmes de programmation peuvent
être intimidants par leur complexité. Chaque
problème est unique et il n’y a pas de recette
magique pour trouver une solution.
4
Suggestion de démarche dans l’écriture
d’un programme informatique
1. Bien comprendre le problème
2. Bien comprendre le résultat attendu
3. Obtenir l’information nécessaire
4. Décomposer un gros problème en de petits
problèmes et écrire la solution de manière
itérative
5. Réviser le programme
5
1. Bien comprendre le problème
Si je vous demandais d’écrire un programme
qui détermine les zéros d’une fonction avec
la méthode de Newton. Votre première
étape avant d’écrire votre programme devrait
être de vous renseigner sur la méthode de
Newton et comprendre son fonctionnement.
6
2. Bien comprendre le résultat
attendu
On détermine ce que notre programme doit
produire comme résultat. Est-ce une valeur?
Est-ce un fichier de données?
7
3. Obtenir l’information nécessaire
On détermine ensuite ce dont le programme
a besoin. A-t-il besoin de données ? Les
données proviennent-elles d’un fichier ou
bien sont-elles entrées directement par un
utilisateur?
8
4. Décomposer un gros problème en petits
problèmes et écrire la solution de manière
itérative
Adopter une stratégie « diviser pour régner ». Décomposer
un problème complexe en plusieurs petits problèmes
simples. Exemple : tracer le graphique de la vitesse du
déplacement d’un bloc sur un plan incliné avec frottement.
1. Trouver la vitesse du bloc à un moment
2. Trouver les vitesses du bloc aux différents instants sans
frottement
3. Inclure le frottement
4. Générer le graphique
9
5. Réviser votre solution
Une fois que vous avez trouvé une solution qui semble
fonctionner, votre travail n’est pas terminé. Vous pouvez peut-
être l’améliorer :
• Est-ce que cette solution fonctionne dans tous les cas?
• Est-ce pertinent de produire des tests unitaires?*
• Est-ce que les variables sont bien nommées?
• Serait-il pertinent d’ajouter des fonctions?
• Éviter le code qui se répète et favoriser la réutilisation
• Améliorer les lisibilités
*sera vue plus tard 10
Les fonctions
11
Les fonctions
Les fonctions pourraient être décrites comme
un mini-programme qui peut être utilisé par
d’autres programmes.
12
Avantage des fonctions
• Permet la réutilisation du code
• Assure une meilleure lisibilité
• Facilite la résolution de problématique avec
un programme
13
Exemple
f(x) = x2
f(x, y) = x – y
s
x
f(x) = (x - 32) × 5 / 9
14
Les composants d’une fonction
15
Les composants d’une fonction
Nom de la fonction : le nom que vous
donnez a votre fonction pour pouvoir
l’utiliser plus tard.
16
Les composants d’une fonction
Paramètres : les informations que vous
donnez à votre fonction pour qu’elle puisse
travailler.
17
Les composants d’une fonction
Corps de la fonction : partie de la fonction
où le travail est effectué.*
Techniquement, le return fait partie du corps. 18
Les composants d’une fonction
Retour de la fonction : la fonction renvoie
une valeur qui peut être utilisée ailleurs
dans le programme.
19
Ordre d’exécution
On définit la fonction.
20
Ordre d’exécution
On appelle la fonction avec le
paramètre 3.
21
Ordre d’exécution
La fonction s’exécute. Dans la
variable valeur, il y a le nombre 3.
22
Ordre d’exécution
La valeur que la fonction va
retourner sera 9.
23
Ordre d’exécution
La valeur que la fonction va
retourner sera 9. Par conséquent, la
fonction print affichera 9.
24
Exemple de la réutilisation d’une
fonction
25
Le type de retour
Lorsqu'une fonction renvoie une variable,
celle-ci possède un type spécifique. Il est
essentiel de prêter attention au type de
retour de la fonction. De plus, si vous créez
une fonction nommée calculer_somme, il
serait déroutant que le résultat soit une
chaîne de caractères.
26
Le type de retour
Il est également possible qu’une fonction
n’ait aucun retour, car elle fait seulement une
action :
• activer_moteur
• arreter_capteur
• sauvegarder_donnees
27
Retour multiple
Il est possible de retourner plusieurs
variables en même temps.
28
Porté d’une variable
Une variable existe dans ce qu’on appelle un
« scope ». Si une variable est déclarée dans
une fonction, elle n’existe que pour la durée
de la fonction.*
*Il existe des exceptions. 29