Prof. Maria-Iuliana Dascălu Assist. Iulia-Cristina Stănică

Documents pareils
Programme Compte bancaire (code)

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Flux de données Lecture/Ecriture Fichiers

Java Licence Professionnelle CISII,

Les bases de l informatique et de la programmation. École polytechnique

Programmation C. Apprendre à développer des programmes simples dans le langage C

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Premiers Pas en Programmation Objet : les Classes et les Objets

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Représentation d un entier en base b

Corrigés des premiers exercices sur les classes

TD3: tableaux avancées, première classe et chaînes

Chapitre I Notions de base et outils de travail

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Gestion distribuée (par sockets) de banque en Java

Chapitre 10. Les interfaces Comparable et Comparator 1

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Les arbres binaires de recherche

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Conventions d écriture et outils de mise au point

Utilisation d objets : String et ArrayList

INF 321 : mémento de la syntaxe de Java

Solutions du chapitre 4

Cours 1: Java et les objets

Plan du cours. Historique du langage Nouveautés de Java 7

Exercices sur les interfaces

Cours d initiation à la programmation en C++ Johann Cuenin

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

TP1 : Initiation à Java et Eclipse

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

TP1 : Initiation à Java et Eclipse

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Programmation Objet Java Correction

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Présentation du langage et premières fonctions

Langage Java. Classe de première SI

Le prototype de la fonction main()

TP, première séquence d exercices.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Bases de programmation. Cours 5. Structurer les données

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmer en JAVA. par Tama

Objets et Programmation. origine des langages orientés-objet

TD/TP PAC - Programmation n 3

ACTIVITÉ DE PROGRAMMATION

Programmation par les Objets en Java

Tp 1 correction. Structures de données (IF2)

TP1. Outils Java Eléments de correction

Initiation à la programmation en Python

Environnements de développement (intégrés)

Algorithmique et Programmation, IMA

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

INITIATION AU LANGAGE JAVA

RMI le langage Java XII-1 JMF

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

Utiliser Java sans BlueJ

Héritage presque multiple en Java (1/2)

Une introduction à Java

Package Java.util Classe générique

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

IRL : Simulation distribuée pour les systèmes embarqués

Corrigé des exercices sur les références

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Chapitre VI- La validation de la composition.


Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Introduction au langage C

Machines virtuelles fonctionnelles (suite) Compilation ML Java

UE Programmation Impérative Licence 2ème Année

Java c est quoi? Java pourquoi?

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Notions fondamentales du langage C# Version 1.0

Chapitre 2. Classes et objets

Cours d algorithmique pour la classe de 2nde

Auto-évaluation Programmation en Java

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Architecture des ordinateurs

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Remote Method Invocation Les classes implémentant Serializable

Apprendre Java en 154 minutes

Initiation à l algorithmique

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Claude Delannoy. 3 e édition C++

Programmation avec des objets : Cours 7. Menu du jour

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Transcription:

Prof. Maria-Iuliana Dascălu Assist. Iulia-Cristina Stănică iulia.stanica@gmail.com

Les fonctions La visibilité des variables: locales vs globales

Def: Un bloc de code qui doit être exécuté plusieurs fois.

Role: On peut utiliser le même algorithme (ou le même bloc de code) sans devoir l écrire plusieurs fois. On doit seulement appeler la fonction plusieurs fois. On sépare des actions différentes, par exemple le calcul et l affichage. On clarifie la structure du programme, pour le rendre lisible et compréhensible.

Une fonction a: un nom une signature (un ensemble de paramètres) elle retourne (d habitude) certains résultat (nous avons le mot «return») Exemple en-tête: public static typefonction nomfonction (type1 nom1, type2 nom2,..., typek nomk)

Def: est constituée de la suite ordonnée des types des paramètres est unique dans un programme: on peut définir plusieurs fonctions qui ont le même nom à condition que leurs signatures soient différentes (surcharge = overloading) le compilateur doit être capable de déterminer la fonction à partir des types des paramètres d'appel Exemple de surchage: l'opérateur + est surchargé : non seulement il permet de faire des additions, mais il permet de concaténer des chaînes de caractères

public void disp (char c) { System.out.println(c); } public void disp (char c, int num) { System.out.println(c + " "+num); }

doit être indiqué après le mot «return» il est obligatoire de prévoir une telle instruction dans toutes les branches d'une fonction (voir slide 3) l'exécution d'un return a pour effet d'interrompre le calcul de la fonction en rendant le résultat à l'appelant

public static typefonction nomfonction(type1 nom1, type2 nom2,...,typeknomk) { typefonction r; r=...; return r; //r est le résultat }

L appel d une function se fait par: nomfonction (nomvar1, nomvar2,...,nomvark) En général cet appel se situe dans une affectation. Exemple: public static void main (String[]args) { type1 n1; type2 n2;... typek nk; typefonction s; s =nomfonction(n1, n2,...,nk); //appel }

Le type du résultat peut être void, dans ce cas la fonction ne rend aucun résultat. Elle opère par effet de bord, par exemple en affichant des valeurs à l'écran ou en modifiant des variables globales. Il est déconseillé d'écrire des fonctions qui procèdent par effet de bord, sauf bien entendu pour les affichages. Notons que le return n'est pas obligatoire dans une fonction de type void (seulement si on veut sortir d un branchement.)

La procédure principale (dans tous les programmes Java): class Premier { public static void main (String[] args) { System.out.println("Bonjour!"); return; //il peut manquer } }

Les variables d'une fonction sont appelées locales: elles sont visibles uniquement dans la fonction Les autres sont globales: elles sont visibles à travers le programme Les arguments d'une fonction sont passés par valeur: après la fin de la fonction les nouvelles valeurs, qui ont été peut-être attribuées à ces variables, ne sont plus accessibles

1) Ecrivez un programme Distance.java. Le programme calcule la distance entre deux points avec une méthode statique distance() qui fournit comme résultat une valeur double. La déclaration de méthode a la structure suivante: public static double distance(int x1, int y1, int x2, int y2){... } Pour calculer la distance entre les deux points, utilisez la formule: dist = (x1 x2) 2 +(y1 y2) 2

2) Utiliser une fonction statique pour calculer l aire d un triangle, avec la formule du Héron: aire = p p a p b (p c), p étant le demi-périmètre. Vous devez utiliser les coordonnées de points pour calculer les longueurs des côtés. 3) Déterminez si un triangle est rectangle dans le cas ou les longueurs de côtés sont connus. Utilisez une fonction pour cela (les côtés peuvent être introduites dans quelconque ordre).

4) Faites la somme des nombres divisibles par 3 ou par 5, mais non divisible par 15 d un tableau unidimensionnel. Utilisez une fonction pour le calcul de la somme. HINT: vous pouvez utiliser l instruction continue. 5) Créez une fonction qui va concaténer deux tableaux unidimensionnels, en entrelaçant leurs éléments. Utilisez une fonction pour affichez le vecteur final.

1) Optimisez le problème 2 de la dernière fois (avec les matrices) en utilisant des fonctions. 2) Calculez la valeur du polynôme avec une méthode statique polynome(int x) qui fournit comme résultat une valeur double et qui a, comme paramètre, la valeur de x : x 3 + 2x 2 4x + 1 3) Écrivez une méthode de signature» public static String reverse (String str) qui permet d'inverser une chaîne de caractères, c'està-dire construire une chaîne de caractères correspondant à str lue de droite à gauche. Par exemple, l'appel reverse("bonjour Monde"); renvoie la chaine de caractères ednom ruojnob.

4) Écrivez une méthode de signature public static int bintodec (String bin) qui prend en paramètre une chaîne de caractères formées uniquement de 0 et 1 représentant un nombre binaire et qui le convertit dans un nombre décimal. Par exemple l'appel bintodec("001001") renvoie 9 (23 + 20). 5) Écrivez une méthode de signature: public static int nbyears ( double money, double target, int interest) qui calcule combien d'année au minimum je dois attendre pour avoir au moins la somme d argent «target» sur mon compte si je verse la somme «money» au début de la première année et si je touche «interest» pourcents d'intérêts à la fin de chaque année. Par exemple, l' appel nbyears (100, 200, 10) va renvoyer 8 puisque après la première année, j'ai 110 sur mon compte, ensuite, après deux ans, j'ai 121,... et après 8 ans, j'ai 214.35....