Projet de programmation (IK3) : TP n 1 Correction

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

Package Java.util Classe générique

Programmer en JAVA. par Tama

Chapitre 10. Les interfaces Comparable et Comparator 1

Java Licence Professionnelle CISII,

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Corrigé des exercices sur les références

Auto-évaluation Programmation en Java

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

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

Programmation avec des objets : Cours 7. Menu du jour

Programmation par les Objets en Java

Langage Java. Classe de première SI

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Programme Compte bancaire (code)

Utilisation d objets : String et ArrayList

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

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

Un ordonnanceur stupide

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

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

Programmation Par Objets

Threads. Threads. USTL routier 1

Programmation en Java IUT GEII (MC-II1) 1

Flux de données Lecture/Ecriture Fichiers

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

as Architecture des Systèmes d Information

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

Remote Method Invocation (RMI)

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

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

Introduction au langage Java

Solution du challenge SSTIC Emilien Girault ANSSI/COSSI/DTO/BAI 06/06/13

Algorithmique I. Algorithmique I p.1/??

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Programmation Orientée Objet

Dis papa, c est quoi un bus logiciel réparti?

TD/TP PAC - Programmation n 3

TP1 : Initiation à Java et Eclipse

Exercices sur les interfaces

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

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

ACTIVITÉ DE PROGRAMMATION

Chapitre V. Les classes : Object, Vector, etc.

Premiers Pas en Programmation Objet : les Classes et les Objets

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Une introduction à Java

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

PROGRAMMATION PAR OBJETS

Introduction : les processus. Introduction : les threads. Plan

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

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

Cours 1: Java et les objets

TD2 Programmation concurrentielle

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

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

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

OpenPaaS Le réseau social d'entreprise

Java Licence Professionnelle CISII,

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

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

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

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

Apprendre Java en 154 minutes

Corrigé des exercices avancés sur les structures récursives

INITIATION AU LANGAGE JAVA

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Programmation Internet en Java

Développement Logiciel

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

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

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

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

4. Groupement d objets

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

INF 321 : mémento de la syntaxe de Java

TD/TP PAC - Programmation n 3

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Modèle à composants. Daniel Hagimont. IRIT/ENSEEIHT 2 rue Charles Camichel - BP TOULOUSE CEDEX 7. Remerciements

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Bases Java - Eclipse / Netbeans

Master d Informatique Corrigé du partiel novembre 2010

RMI le langage Java XII-1 JMF

Classe Interne, Anonyme & Enumération

Entrées / Sorties. Entrées / Sorties. Entrées/Sorties. System.out. Fonctionnement par flots (stream) Karima Boudaoud IUT- R&T. Terrain connu.

Problèmes liés à la concurrence

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Design patterns. Design patterns - définition. Design patterns - avantages

Applet pour visualiser les variables «automate» notifiées

Chapitre VI- La validation de la composition.

Module http MMS AllMySMS.com Manuel d intégration

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Transcription:

Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public class TestInt static DeugConsole console ; private static void print ( int a, int b, int c ) console. WriteInt ( a ) ; console. WriteInt (b ) ; console. WriteInt ( c ) ; int a, b, c ; console = DeugConsole. console ( ) ; a = console. ReadInt ( ) ; b = console. ReadInt ( ) ; c = console. ReadInt ( ) ; i f ( a < b) i f ( a < c ) i f (b < c ) print (a, b, c ) ; else print (a, c, b ) ; else print ( c, a, b ) ; else i f ( a < c ) print (b, a, c ) ; else i f (b < c ) print (b, c, a ) ; else print ( c, b, a ) ; 1

Tests et types de bases (chaînes) public class TestString static DeugConsole console ; private static void print ( String a, String b, String c ) console. WriteString ( a + " \n" + b + " \n" + " \n" + c ) ; String a, b, c ; console = DeugConsole. console ( ) ; a = console. ReadString ( ) ; b = console. ReadString ( ) ; c = console. ReadString ( ) ; i f ( a. compareto (b) < 0) i f ( a. compareto ( c ) < 0) i f (b. compareto ( c ) < 0) print (a, b, c ) ; else print (a, c, b ) ; else print ( c, a, b ) ; else i f ( a. compareto ( c ) < 0) print (b, a, c ) ; else i f (b. compareto ( c ) < 0) print (b, c, a ) ; else print ( c, b, a ) ; Tableaux et boucles Tableaux et boucles public class Table String [ ] noms ; int [ ] notes ; 2

int nb ; DeugConsole console = DeugConsole. console ( ) ; console. WriteString ( "Number of students? " ) ; nb = console. ReadInt ( ) ; noms = new String [ nb ] ; notes = new int [ nb ] ; for ( int i = 0 ; i < nb ; i++) I n t e g e r n = i + 1 ; noms [ i ] = console. ReadString ( "Name of student number " + n. tostring ( ) + "? " ) ; console. WriteString ( " Student s mark? " ) ; notes [ i ] = console. ReadInt ( ) ; for ( int i = 0 ; i < nb 1 ; i++) for ( int j = 0 ; j < nb i 1 ; j++ ) i f (noms [ j ]. compareto (noms [ j + 1 ] ) > 0) String t s = noms [ j ] ; int t i = notes [ j ] ; noms [ j ] = noms [ j + 1 ] ; notes [ j ] = notes [ j + 1 ] ; noms [ j + 1 ] = t s ; notes [ j + 1 ] = t i ; for ( int i = 0 ; i < nb ; i++) console. WriteString (noms [ i ] + " : " ) ; console. WriteInt ( notes [ i ] ) ; Fonctions récursives Fibonacci, version avec boucle public class FiboBoucle DeugConsole console = DeugConsole. console ( ) ; int n = console. ReadInt ( ) ; int a = 1, b = 1 ; for ( int i = 0 ; i < n ; i++) int c = a + b ; a = b ; b = c ; console. WriteString ( "The r e s u l t i s : " ) ; console. WriteInt ( a ) ; 3

Fibonacci, version récursive public class FiboRecursif public static int f i b o n a c c i ( int n) i f (n <= 1) return 1 ; else return ( f i b o n a c c i (n 1) + f i b o n a c c i (n 2 ) ) ; DeugConsole console = DeugConsole. console ( ) ; int n = console. ReadInt ( ) ; console. WriteString ( "The r e s u l t i s : " ) ; console. WriteInt ( f i b o n a c c i (n ) ) ; Tris On commence par réécrire le code précédant pour qu il utilise plusieurs fonctions. Tris à bulles public class TriABulle private static DeugConsole console ; private static void print ( int nb, String [ ] noms, int [ ] notes ) for ( int i = 0 ; i < nb ; i++) console. WriteString (noms [ i ] + " : " ) ; console. WriteInt ( notes [ i ] ) ; private static void t r i ( int nb, String [ ] noms, int [ ] notes ) for ( int i = 0 ; i < nb 1 ; i++) for ( int j = 0 ; j < nb i 1 ; j++ ) i f (noms [ j ]. compareto (noms [ j + 1 ] ) > 0) String t s = noms [ j ] ; int t i = notes [ j ] ; noms [ j ] = noms [ j + 1 ] ; notes [ j ] = notes [ j + 1 ] ; noms [ j + 1 ] = t s ; notes [ j + 1 ] = t i ; String [ ] noms ; 4

int [ ] notes ; int nb ; console = DeugConsole. console ( ) ; console. WriteString ( "Number of students? " ) ; nb = console. ReadInt ( ) ; noms = new String [ nb ] ; notes = new int [ nb ] ; for ( int i = 0 ; i < nb ; i++) I n t e g e r n = i + 1 ; noms [ i ] = console. ReadString ( "Name of student number " + n. tostring ( ) + "? " ) ; console. WriteString ( " Student s mark? " ) ; notes [ i ] = console. ReadInt ( ) ; t r i (nb, noms, notes ) ; print (nb, noms, notes ) ; Puis j indique seulement les différentes version de la fonction tri. Tris fusion public class TriFusion private static DeugConsole console ; private static void print ( int nb, String [ ] noms, int [ ] notes ) /... / private static void t r i ( int nb, String [ ] noms, int [ ] notes ) for ( int i = 0 ; i < nb 1 ; i++) for ( int j = 0 ; j < nb i 1 ; j++ ) i f (noms [ j ]. compareto (noms [ j + 1 ] ) > 0) String t s = noms [ j ] ; int t i = notes [ j ] ; noms [ j ] = noms [ j + 1 ] ; notes [ j ] = notes [ j + 1 ] ; noms [ j + 1 ] = t s ; notes [ j + 1 ] = t i ; //... t r i (nb, 0, noms, notes ) ; print (nb, noms, notes ) ; 2 Programmation orientée objet et communications réseaux Dérivation de fonctions La fonction de dérivation pourrait être un peu moins naïve. 5

public interface Fonction public double c a l c u l e ( double x ) ; public class Cos implements Fonction Dérivation de fonctions public double c a l c u l e ( double x) return Math. cos ( x ) ; public class Deriv Fonction f ; public Deriv ( Fonction g ) f = g ; static final private double e p s i l o n = 0.00001; public double d( double x) return ( ( f. c a l c u l e ( x+e p s i l o n ) f. c a l c u l e (x e p s i l o n ))/(2 e p s i l o n ) ) ; Serveur echo import deug. DeugSocket ; Client et serveur echo class Client extends DeugSocket Client ( String hostname ) super( hostname ) ; public void run ( ) DeugConsole c = DeugConsole. console ( ) ; String text ; do text = c. ReadString ( " Text to send? " ) ; WriteString ( text ) ; text = ReadString ( ) ; c. WriteString ( " Got : " + text ) ; c. NewLine ( ) ; while (! text. contentequals ( "EOF" ) ) ; class Server extends DeugSocket Server ( ) 6

super ( ) ; public void run ( ) String text ; DeugConsole c = DeugConsole. console ( ) ; do text = ReadString ( ) ; c. WriteString ( " Got : " + text ) ; c. NewLine ( ) ; WriteString ( text ) ; while (! text. contentequals ( "EOF" ) ) ; public class Echo i f ( args. length == 0) Server s = new Server ( ) ; s. run ( ) ; else Client c = new Client ( args [ 0 ] ) ; c. run ( ) ; Client HTTP import deug. DeugSocket ; Client HTTP public class ClientHTTP String u r l ; String hostname, l o c a t i o n ; DeugSocket socket ; DeugConsole c = DeugConsole. console ( ) ; int port = 80; int temp ; boolean page = false ; u r l = c. ReadString ( "URL? " ). trim ( ) ; i f ( u r l. startswith ( " http :// " ) ) u r l = u r l. s u b s t r i n g ( 7 ) ; temp = u r l. indexof ( / ) ; i f ( temp == 1) l o c a t i o n = " / " ; hostname = u r l ; else l o c a t i o n = u r l. s u b s t r i n g ( temp ) ; hostname = u r l. s u b s t r i n g (0, temp ) ; 7

temp = hostname. indexof ( : ) ; i f ( temp!= 1) port = I n t e g e r. parseint ( u r l. s u b s t r i n g ( temp ) ) ; hostname = u r l. s u b s t r i n g (0, temp ) ; socket = new DeugSocket( hostname, port ) ; socket. WriteLine ( "GET " + l o c a t i o n + " HTTP/1.1 " ) ; socket. WriteLine ( " Host : " + hostname ) ; socket. WriteLine ( " Connection : c l o s e " ) ; socket. WriteLine ( " User agent : p a r i s 7 small c l i e n t 1.0 " ) ; socket. NewLine ( ) ; while ( true ) String s = socket. ReadLine ( ) ; i f ( s == null ) System. e x i t ( 0 ) ; i f ( page ) c. WriteString ( s ) ; c. NewLine ( ) ; i f ( s. compareto ( " " ) == 0) page = true ; 8