Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Premier programme en C :
La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Spécialisation/généralisation Héritage Polymorphisme
Introspection et Réflexion Manipulation dynamique de code Java.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
L’ interruption de boucle
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Paramètres et pointeurs
Les fonctions en Java Partie I Le type void. Dans cette rapide présentation, je vais expliquer :.à quoi servent les fonctions.à quoi faut-il penser avant.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Introduction à la programmation (420-PK2-SL) cours 10 Gestion des applications Technologie de linformation (LEA.BW)
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Principes de programmation (suite)
Introduction à la programmation (420-PK2-SL) cours 3 Gestion des applications Technologie de linformation (LEA.BW)
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Langage C Révision.
Introduction à la programmation (420-PK2-SL) cours 17 Gestion des applications Technologie de linformation (LEA.BW)
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Les éléments de base de l’algorithmique
Langage Oriente Objet Cours 4.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Introduction à la programmation (Java)
Langage Oriente Objet Cours 2.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
Design Pattern: Decorator
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI 1502 Principes fondamentaux de conception de logiciels
CSI1502 Principes fondamentaux en conception des logiciels
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Procédures et fonctions
Une introduction à Java
Plan cours La notion de pointeur et d’adresse mémoire.
Introduction à la programmation (420-PK2-SL) cours 6 Gestion des applications Technologie de l’information (LEA.BW)
Introduction à la programmation (420-PK2-SL) cours 20 Gestion des applications Technologie de l’information (LEA.BW)
Notion de fonction A partir d’un exemple Types de fonctions
4 Introduction des objets. Les chaînes et tableaux
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
Décomposition et paramétrage des algorithmes
Argc et argv Utilisation des paramètres de la ligne de commande.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
Tutorat en bio-informatique
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Introduction au langage C Fonctions et Procédures
Les sockets.
Cours du 5 novembre.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
Introduction à la programmation (420-PK2-SL) cours 8
Introduction à la programmation (420-PK2-SL) cours 4 Gestion des applications Technologie de l’information (LEA.BW)
Introduction à la programmation (420-PK2-SL) cours 18 Gestion des applications Technologie de l’information (LEA.BW)
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
Transcription de la présentation:

Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)

Plan Aujourdhui (25/2/2011) Retour sur les boucles imbriquées Les sous-programmes Laboratoire sur les sous-programmes Prochain cours (25/2/2011) Laboratoire sur les sous-programmes La semaine prochaine (3/3/2011) Les tableaux Laboratoire sur les tableaux

Retour sur les boucles imbriquées Coordonnée cartésienne Parcours de tous les points La première boucle parcourt lordonnée (axe en y) La deuxième boucle parcourt labscisse (axe en x) public class boucles_imbriquees{ static final int MAX_Y=20; static final int MAX_X=10; public static void main(String args[]){ for(int y=0;y<=MAX_Y;y++){ for(int x=0;x<=MAX_X;x++){ System.out.println("[" + x + "," + y +"]"); }

Les sous-programmes Les procédures et les fonctions sont des sous- programmes qui se démarrent à partir dun programme (exemple : pow, rand, nextLine, nextInt,...) Une fonction renvoie une valeur Le résultat de la fonction Une procédure ne renvoie rien (void) Les sous-programmes peuvent nécessiter des valeurs quil faut fournir à lappel : paramètre effectif

Les sous-programmes Pour utiliser un sous-programme, on doit connaître Son nom Le type et la signification de la valeur de retour (dans le cas de fonction) Le nombre, le type et la signification des paramètres effectifs Le traitement qui sera effectué Pour obtenir ces informations API JAVA

Les sous-programmes La définition formelle est len-tête du sous- programme et défini Le nom du sous-programme Le type de la valeur de retour du sous-programme Les paramètres formels nécessaires à lexécution du sous- programme public static int plus_grand(int a, int b){ int resultat; if(a>b){ resultat=a; }else{ resultat=b; } return resultat; }

Les sous-programmes Limplémentation définit laction du sous-programme Ensemble dinstruction Bloc délimité par des accolades public static int plus_grand(int a, int b){ int resultat; if(a>b){ resultat=a; }else{ resultat=b; } return resultat; }

Les sous-programmes import java.util.Scanner; public class connaitre_plus_grand{ public static void main(String args[]){ Scanner clavier = new Scanner(System.in); int nombre1; int nombre2; int le_plus_grand; System.out.println("Entrez un entier:"); nombre1 = clavier.nextInt(); System.out.println("Entrez un entier:"); nombre2 = clavier.nextInt(); clavier.close(); le_plus_grand = plus_grand(nombre1,nombre2); System.out.println("Le plus grand est " + le_plus_grand); } public static int plus_grand(int a, int b){ int resultat; if(a>b){ resultat=a; }else{ resultat=b; } return resultat; }

Les sous-programmes Limplémentation définit le code qui sera exécuté par le sous- programme lors de lappel. import java.util.Scanner; public class connaitre_plus_grand{ public static void main(String args[]){ Scanner clavier = new Scanner(System.in); int nombre1; int nombre2; int le_plus_grand; System.out.println("Entrez un entier:"); nombre1 = clavier.nextInt(); System.out.println("Entrez un entier:"); nombre2 = clavier.nextInt(); clavier.close(); le_plus_grand = plus_grand(nombre1,nombre2); System.out.println("Le plus grand est " + le_plus_grand); } public static int plus_grand(int a, int b){ int resultat; if(a>b){ resultat=a; }else{ resultat=b; } return resultat; }

Les sous-programmes Lappel effectif démarre lexécution dun sous- programme Invocation par le nom Envoie des paramètres (valeurs) Il récupère la valeur de retour dans le cas des fonctions import java.util.Scanner; public class connaitre_plus_grand{ public static void main(String args[]){ Scanner clavier = new Scanner(System.in); int nombre1; int nombre2; int le_plus_grand; System.out.println("Entrez un entier:"); nombre1 = clavier.nextInt(); System.out.println("Entrez un entier:"); nombre2 = clavier.nextInt(); clavier.close(); le_plus_grand = plus_grand(nombre1,nombre2); System.out.println("Le plus grand est " + le_plus_grand); } public static int plus_grand(int a, int b){ int resultat; if(a>b){ resultat=a; }else{ resultat=b; } return resultat; }

Les sous-programmes Fonction Ensemble dinstruction renvoyant une valeur Procédure Ensemble dinstruction ne renvoyant pas de valeur public static double carre(double x){ return x*x; } public static void afficher_n_allo(int n){ for (int i=1; i<=n;i++){ System.out.println(allo); }

Les sous-programmes Valeur de retour Linstruction return permet de renvoyer le résultat dune fonction La valeur renvoyée doit obligatoirement être du même type que ou il sera utilisé. Si le sous-programme retourne un entier, il doit être stocké dans un int ou il peut être utilisé dans un calcul ou il peut être affiché. Exemple return 10;// int return x;// type de x return x > y;// booléen

Les sous-programmes On appelle paramètres formels, la liste des paramètres apparaissant dans len- tête dun sous- programme import java.util.Scanner; public class connaitre_plus_grand{ public static void main(String args[]){ Scanner clavier = new Scanner(System.in); int nombre1; int nombre2; int le_plus_grand; System.out.println("Entrez un entier:"); nombre1 = clavier.nextInt(); System.out.println("Entrez un entier:"); nombre2 = clavier.nextInt(); clavier.close(); le_plus_grand = plus_grand(nombre1,nombre2); System.out.println("Le plus grand est " + le_plus_grand); } public static int plus_grand(int a, int b){ int resultat; if(a>b){ resultat=a; }else{ resultat=b; } return resultat; }

Les sous-programmes On appelle paramètres effectifs ou paramètres actuels ou argument les valeurs fournies à un sous- programme lors de lappel Les paramètres formels sont initialisés par la valeur des paramètres effectifs lors de lappel du sous- programme import java.util.Scanner; public class connaitre_plus_grand{ public static void main(String args[]){ Scanner clavier = new Scanner(System.in); int nombre1; int nombre2; int le_plus_grand; System.out.println("Entrez un entier:"); nombre1 = clavier.nextInt(); System.out.println("Entrez un entier:"); nombre2 = clavier.nextInt(); clavier.close(); le_plus_grand = plus_grand(nombre1,nombre2); System.out.println("Le plus grand est " + le_plus_grand); } public static int plus_grand(int a, int b){ int resultat; if(a>b){ resultat=a; }else{ resultat=b; } return resultat; }

Les sous-programmes Passage de paramètres par copie Les paramètres effectifs sont copiés dans les paramètres formels au moment de lappel Les paramètres effectifs passés par copie ne sont pas touchés par une modification faite aux paramètres formels dans un sous-programme Exemple Si dans votre programme principal (main) vous avez une variable x, et que vous appelez un sous-programme en lui passant x. La valeur du x qui est dans le programme principal ne sera pas modifiée même si le sous-programme effectue des opérations sur la variable x. Cest normal, car lorsquon passe un paramètre la valeur est copiée en mémoire. passage_par_copie.java

Les sous-programmes Norme Un sous-programme se doit davoir un commentaire den-tête qui donne les informations suivantes (avec éclipse la tâche sera automatisée) La description du travail effectué La description de chaque paramètre formel La description de la valeur retournée Il doit y avoir un seul return par sous-programme Limiter la taille des sous-programmes, ils ne devraient jamais faire bien plus de 50 lignes de code. Aucune lecture/écriture dans une fonction de calcul La fonction pow de nous oblige pas à taper les valeurs au clavier vous devriez TOUJOURS faire de même. Comme dans lexemple, le sous-programme plus_grand ne demande pas à lutilisateur les informations.

Les sous-programmes Exemple Version 1. /* *PLUS GRAND *retourne le plus grand de deux entiers (premier et deuxième) reçus en paramètres */ public static int plus_grand(int premier, int deuxieme){ if (premier>deuxieme) return premier; else return deuxieme; }

Les sous-programmes Exemple Version 2. /* *PLUS GRAND *retourne le plus grand de deux entiers (premier et deuxième) reçus en *paramètres */ public static int plus_grand(int premier, int deuxieme){ int resultat = premier; if (premier<deuxieme) resultat = deuxieme; return resultat; }

Les sous-programmes /* *PLUS GRAND TROIS *retourne le plus grand de trois entiers (premier, deuxième et troisième) *reçus en paramètres */ public static int plus_grand_trois(int premier, int deuxieme, int troisieme){ return plus_grand(premier,plus_grand(deuxieme,troisieme); } ***Lorsquune fonction existe, on peut la réutiliser à volonté, même dans dautres fonctions

Les sous-programmes Avantages Réutilisation de code On écrit le code une seule fois et on lutilise à volonté Évite de reproduire des erreurs Lors de la maintenance des programmes un seul endroit à modifier Permets de généraliser des situations grâce aux paramètres Lisibilité du code Un code est plus facile à lire sil est divisé en sous-programmes. Même si le sous-programme nest appelé quune seule fois dans le projet Partionnement du travail Division des tâches dans une équipe

Laboratoire sur les sous-programmes Exercice1 Écrivez un sous-programme afficher_date qui reçoit en paramètre trois entiers représentant un jour, un mois et une année. Le sous-programme affiche le jour suivi du mois sous forme littérale et lannée sous forme dentier. Par exemple si la procédure reçoit , elle affiche 28 février Écrivez un programme principal qui utilise votre procédure pour afficher 28 février Vous navez pas à solliciter lutilisateur pour linstant. Vous ne devez pas faire de vérification à ce stade

Laboratoire sur les sous-programmes Exercice 2 Ajoutez, à lexercice 1, un sous-programme annee_valide qui retourne un entier lu au clavier plus grand quun nombre reçu en paramètre. Par exemple, vous passer en paramètre le nombre 1900 et le sous-programme demande des années tant que le nombres lu est plus petit que Comme pour lexercice 1, vous pouvez ajouté un appel dans votre programme principal pour tester votre sous-programme.

Laboratoire sur les sous-programmes Exercice 3 Ajoutez, à lexercice 2, un sous-programme mois_valide qui retourne un entier lu au clavier et qui est entre 1 et 12. Tant que le nombre lu est invalide, la fonction le redemande. Comme pour les autres exercices, vous pouvez ajouté un appel dans votre programme principal pour tester votre sous-programme.

Laboratoire sur les sous-programmes Exercice 4 Ajoutez, à lexercice 3, un sous-programme est_bissextile qui reçoit une année et qui retourne TRUE(1) si lannée est bissextile et FALSE(0) sinon. Comme pour les autres exercices, vous pouvez ajouté un appel dans votre programme principal pour tester votre sous-programme.

Laboratoire sur les sous-programmes Exercice 5 Ajoutez, à lexercice 4, un sous-programme nbr_jour_maximum qui reçoit deux entiers. Le premier représente un mois et le second une année. La fonction retourne 28, 29, 30 ou 31 selon les valeurs reçues. Par exemple, nbr_jour_maximum(2,2000) retournera 29. Comme pour les autres exercices, vous pouvez ajouté un appel dans votre programme principal pour tester votre sous- programme.

Laboratoires sur les sous-programmes Exercice 6 Ajoutez, à lexercice 5, un sous-programme jour_valide qui retourne un entier lu au clavier et qui est entre deux valeurs reçues en paramètres. Tant que le nombre lu est invalide, la fonction le redemande. Ex dappel : jour_valide(1,29) //retourne un nombre lu entre 1 et 29 Comme pour les autres exercices, vous pouvez ajouté un appel dans votre programme principal pour tester votre sous- programme.

Laboratoire sur les sous-programmes Exercice 7 Modifiez le main(String args[]) pour obtenir un programme qui valide une date. Le programme commence par demander une année supérieure à Tant que lannée est invalide, le programme la redemande. Par la suite, le programme demande un mois valide entre un et 12. Lorsque le mois est valide, le programme demande une journée valide. Lorsque la journée entrée est valide selon le mois et lannée entrés, le programme affiche la date sous forme littérale (2 février 2000).