Algorithmique et programmation orient´ee objet / Java
DEUG 2, IUP 1 2004/2005
ULP - UFR de Math´ematiques et
d’Informatique
Corrig´e du TD 1 : premiers pas
1 Compilation et ex´ecution
Pour ex´ecuter le programme, il faut appeler les commandes javac Bonjour.java ; java Bonjour.
La commande javac Bonjour.java g´en`ere un fichier Bonjour.class qui contient du code objet. Ce code
sera ensuite interpr´et´e par la machine virtuelle Java.
En C, la compilation produit aussi du code objet, mais ce code est ensuite transform´e en ex´ecutable par la
phase d’´edition de liens.
2 Cr´eation d’objets
L’ex´ecution commence par la fonction TD01::main. Apr`es l’appel `a la fonction d’affichage, le constructeur
Point::Point(int, int) est appel´e trois fois.
Les coordonn´es d’un point sont affich´ees dans la fonction main par le code suivant :
Point p = new Point(16, 12);
System.out.println(p.x + " " + p.y);
La fonction Point::afficher est la suivante :
void afficher()
{
System.out.println(x + " " + y);
}
L’appel dans le main est le suivant :
Point p = new Point(16,12);
p.afficher();
3 Nombres complexes
3.1 Classe NombreComplexe
class NombreComplexe
{
// Les parties r´eelles et imaginaires
private double partieReelle;
private double partieImaginaire;
// Le constructeur
NombreComplexe(double reel, double imaginaire)
{
partieReelle = reel;
partieImaginaire = imaginaire;
1
}
// Multiplie le nombre complexe courant par un scalaire
void multiplier(double scalaire)
{
partieReelle *= scalaire;
partieImaginaire *= scalaire;
}
// Multiplie le nombre complexe courant par un complexe
void multiplier(NombreComplexe autre)
{
partieReelle = partieReelle*autre.partieReelle
- partieImaginaire*autre.partieImaginaire;
partieImaginaire = partieReelle*autre.partieImaginaire
+ partieImaginaire*autre.partieReelle;
}
// Additionne un complexe au complexe courant
void additionner(NombreComplexe autre)
{
partieReelle += autre.partieReelle;
partieImaginaire += autre.partieImaginaire;
}
// Affiche le nombre complexe
void afficher()
{
// On utilise "+" pour concat´ener les chaines de caract`eres
System.out.print( "(" + partieReelle + ", " + partieImaginaire + ")" );
}
}
3.2 Classe TestComplexe
class TestComplexe
{
// La fonction main est appel´ee lorsque le programme d´emarre
public static void main(String args[])
{
NombreComplexe nombre1 = new NombreComplexe(1, 1);
NombreComplexe nombre2 = new NombreComplexe(5, 3);
System.out.print("Nombre 1 : ");
nombre1.afficher();
System.out.print("\n");
nombre1.multiplier(5.0);
System.out.print("Nombre 1 : ");
nombre1.afficher();
System.out.print("\n");
nombre1.multiplier(nombre2);
System.out.print("Nombre 1 : ");
2
nombre1.afficher();
System.out.print("\n");
nombre1.additionner(new NombreComplexe(2,2) );
System.out.print("Nombre 1 : ");
nombre1.afficher();
System.out.print("\n");
}
}
3
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !