Fonctions – Procédures – Méthodes Plan Fonctions en ...
13 pages
Français

Fonctions – Procédures – Méthodes Plan Fonctions en ...

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
13 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

  • mémoire - matière potentielle : des fonctions en cours d' exécution ƒ
  • mémoire - matière potentielle : la méthode main
  • mémoire - matière potentielle : la fonction ƒ
  • mémoire
  • mémoire - matière potentielle : la méthode echanger
  • cours - matière potentielle : sur les paquetages
1Fonctions – Procédures – Méthodes Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 – 5/10/11 Richard Grin Fonctions - Méthodes page 2 Plan ƒ Définition ƒ Écrire ses propres méthodes ƒ Paramètres, pile d'exécution ƒ Appels récursifs ƒ Surcharge ƒ Exception/erreur pendant l'exécution Fonctions en mathématiques ƒ En mathématiques on utilise des fonctions qui prennent un paramètre et qui renvoient une valeur : sin(x), log(x) ƒ Pour utiliser ces fonctions, il suffit de passer un argument en paramètre : sin(0) Richard Grin Fonctions - Méthodes page 3 Fonctions en informatique ƒ En informatique on utilise aussi des fonctions
  • pile d'exécution
  • return ƒ
  • int max
  • public static void
  • static void
  • max
  • code
  • codes
  • classes
  • classe
  • méthodes
  • méthode

Sujets

Informations

Publié par
Nombre de lectures 34
Langue Français

Extrait

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Plan
Définition
Écrire ses propres méthodes
Fonctions – Procédures Paramètres, pile d’exécution
–Méthodes Appels récursifs
Surcharge
Université de Nice - Sophia Antipolis
Exception/erreur pendant l’exécution
Richard Grin
Version 1.0.4 – 5/10/11
Richard Grin Fonctions - Méthodes page 2
Fonctions en mathématiques Fonctions en informatique
En mathématiques on utilise des fonctions qui En informatique on utilise aussi des fonctions
prennent un paramètre et qui renvoient une Elles correspondent à des morceaux de
valeur : sin(x), log(x) programmes paramétrés par des valeurs
Pour utiliser ces fonctions, il suffit de passer un
argument en paramètre : sin(0)
Richard Grin Fonctions - Méthodes page 3 Richard Grin Fonctions - Méthodes page 4
Fonctions en Java Exemple de calcul en Java
double v = Math.cos(x);En Java, les fonctions s’appelle des méthodes
Notation « pointée » : on envoie un message à la Comme Java est un langage objet à classes, il
classe Math pour lui demander de calculer le faut envoyer un message à un objet ou à une
cosinus pour la valeur x ; la valeur renvoyée est classe pour lui demander de calculer la valeur
rangée dans la variable vd’une fonction (c’est-à-dire d’exécuter le code
La classe Math est le destinataire du message d’une méthode)
«cos(x) »Par exemple, on peut s’adresser à la classe Math
Qu’est-ce qui sera exécuté ?pour lui demander de calculer des fonctions
mathématiques
Richard Grin Fonctions - Méthodes page 5 Richard Grin Fonctions - Méthodes page 6

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Comment connaître
Quelques méthodes de la classe Math
les méthodes d’une classe ?
double cos(double x) : prend un paramètre de type
Toutes ces méthodes correspondent à des et renvoie une valeur de type double
messages qu’on peut envoyer à la classe Math
double sin(double x)
Comme pour toutes les classes du JDK, les
double exp(double x) méthodes de la classe Math peuvent se trouver
double log(double x) dans une documentation en ligne appelée la
javadoc de la classelong round(double x) : arrondit au plus proche long
Démo de consultation de la javadoc de la classe double floor(double x) : tronque au plus grand
Mathentier inférieur ou égal à x
L’outil javadoc permet de générer facilement la double random() : retourne au hasard un nombre
javadoc de ses propres classescompris entre 0.0 (compris) et 1.0 (non compris)
Richard Grin Fonctions - Méthodes page 7 Richard Grin Fonctions - Méthodes page 8
Commentaires « javadoc »
Tous les commentaires entourés de /** et */
sont pris en compte par l’outil javadoc
Exemple :
/** Écrire ses propres méthodes
* Calcule la TVA d’un produit.
* @param produit le produit
* @return la TVA sur le produit
*/
public double calculeTva(Produit produit) {
...
}
Richard Grin Fonctions - Méthodes page 9 Richard Grin Fonctions - Méthodes page 10
Ses propres méthodes Exemple : fonction max
En plus de la méthode main, on peut écrire ses Programme qui met dans la variable max le plus
propres méthodes, par exemple pour faire grand de 3 nombres contenus dans les variables
x, y et zexécuter facilement le même code à plusieurs
endroits, sans recopier le code à ces différents
endroits
Il n’est jamais bon de recopier un même code à
plusieurs endroits (il faudra le modifier à plusieurs
endroits si on veut l’adapter ou le corriger)
Richard Grin Fonctions - Méthodes page 11 Richard Grin Fonctions - Méthodes page 12

ƒ
ƒ
ƒ
Code pour trouver le max Méthode max
int max; Si on veut utiliser plusieurs fois cet algorithme
if (x >= y) dans un programme, il est intéressant de
max = x; regrouper ces instructions dans une méthode qui
else prend 3 entiers en paramètre et qui renvoie le
max = y; plus grand
if (z >= max)
max = z;
Richard Grin Fonctions - Méthodes page 13 Richard Grin Fonctions - Méthodes page 14
Définition de la fonction Structure de la classe
public class Test {Il faut déclarer le type des paramètres et de la
int max(int x, int y, int z) {valeur retour dans la signature de la méthode :
int max(int x, int y, int z) ...
}Remarque : il n’est pas possible de déclarer les
public static void main(String[] args) {paramètres ainsi :
...int max(int x, y, z)
}Il faut aussi choisir dans quelle classe mettre la
}méthode ; pour simplifier on la met dans la même
classe que la méthode main
Richard Grin Fonctions - Méthodes page 15 Richard Grin Fonctions - Méthodes page 16
Code de la méthode max Utilisation de max dans main
int max(int x, int y, int z) {
public static void main(String[] args) {
int max;
int x = 3, y = 15, z = 9;
if (x > y)
int m = max(x, y, z);
max = x;
System.out.println(m);
else
}
max = y;
if (z > max)
• Quel est le destinataire du message max ?max = z;
Indique la valeur renvoyée ; • Par défaut, c’est la classe qui contient le codereturn max; arrête l’exécution de la méthode
• On aurait pu écrire :}
int m = Test.max(x, y, z);
Richard Grin Fonctions - Méthodes page 17 Richard Grin Fonctions - Méthodes page 18

ƒ
ƒ
ƒ
ƒ
ƒ
Utilisation de max dans main Mot-clé static
public static void main(String[] args) { Les messages envoyés à une classe doivent
int x = 3, y = 15, z = 9; correspondre à une méthode qui contient le mot-
int m = max(x, y, z); clé static dans sa définition (comme la
System.out.println(m); méthode main)
}
Ne compile pas. Message d’erreur :
Cannot make a static reference to the non-static
method max(int, int, int) from the type Test
Richard Grin Fonctions - Méthodes page 19 Richard Grin Fonctions - Méthodes page 20
Le bon code Destinataire par défaut
static int max(int x, int y, int z) {
On a pu appeler la méthode max sans la notation int max;
pointée car elle est dans la même classe que la if (x > y)
méthode main qui l’utilisemax = x;
else Quand il n’y a pas de destinataire, le destinataire
max = y; par défaut est la classe qui contient le code (ou
if (z > max) l’objet courant quand on travaillera sur les objets)
max = z;
return max;
}
Richard Grin Fonctions - Méthodes page 21 Richard Grin Fonctions - Méthodes page 22
Variante du codereturn
static int max(int x, int y, int z) {
return peut être suivi d’une expression complexe : if (x >= y) {
return Math.cos(x * 2);
if (z >= x) { return z; }
L’expression qui suit le return doit être du type else { return x; }
retour défini dans la définition de la méthode }
Une méthode peut contenir plusieurs return else {
if (z >= y) { return z; }
else { return y; }
}
}
Richard Grin Fonctions - Méthodes page 23 Richard Grin Fonctions - Méthodes page 24

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Exemple de procédureLes procédures
static void afficherMax(int x, int y, int z) {
En informatique on appelle procédure une
int max;
« fonction » qui ne renvoie aucune valeur
if (x > y)
Une procédure peut par exemple afficher une
max = x;
message à l’écran
else
Java ne fait pas vraiment de distinction entre les max = y;
fonctions et les procédures ; une procédure est if (z > max)
tout simplement une méthode qui ne renvoie max = z;
aucune valeur et qui déclare le type void (vide System.out.println(max);
en anglais) comme type retour }
Richard Grin Fonctions - Méthodes page 25 Richard Grin Fonctions - Méthodes page 26
return et procédures
Une procédure ne contient souvent aucune
instruction return
Elle peut contenir une instruction return (suivie
d’aucune expression) pour terminer l’exécution de Paramètres
la procédure en milieu de code :
void afficherMax(int x, int y, int z) {
if (x == y && y == z) {
System.out.println("Tous égaux");
return;
}
// La suite du code de la procédure…
Richard Grin Fonctions - Méthodes page 27 Richard Grin Fonctions - Méthodes page 28
Types de paramètres Types de paramètres (2)
En mathématiques un paramètre n’est jamais On appelle paramètre d’entrée « in » un
modifié par une fonction paramètre dont la valeur du code appelant est
seulement lue par la fonction (idem maths)En informatique peut être modifié
par une fonction On appelle paramètre « out » un paramètre dont
l

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents