Exercices dirigés n°2 - corrigé

publicité
ED n°2 corrigé
Exercices dirigés n°2 - corrigé
Etant donné une chaîne de caractères quelconque, écrire une première fonction qui retourne
sa longueur.
Ecrire une seconde fonction qui retourne la longueur d'une chaîne après l'avoir transformée en
un tableau.
Solution
int longueur( String chaine){ return chaine.length();}
int longueur( String chaine){
String s = chaine.toCharArray(); return s.length;
}
Ecrire une fonction qui retourne la chaîne résultant de la concaténation de deux chaînes, la plus à
gauche précédant la plus à droite selon l'ordre lexicographique.
Exemple : concaténer ‟Kurt‟ et ‟Elling‟ => ‟EllingKurt‟
Solution
String concat(String s1, String s2){
return s1.compareTo(s2)<=0 ? s1+s2:s2+s1;
}
Ecrire une fonction qui teste l'égalité de 2 tableaux d'entiers
Solution
static boolean estEgal ( int[ ] ti1, int[ ] ti2 ) {
if ( ti1.length != ti2.length ) {
return false ;
}else{ / / ti1.length == ti2.length
for( int i = 0 ; i < ti1.length ; i++ ) {
if ( ti1[ i ] != ti2[ i ] ) {
return false ;
}
}
}
return true ;
}
Exécuter le programme suivant :
class Compteur {
int x ;
Compteur ( int n ) {
x = n ;
}
Compteur incremente ( ) {
x++ ;
1
ED n°2 corrigé
}
return this;
// this contient la référence du récepteur du message
}
int getValeur ( ) {
return x ;
}
class Exo12_4 {
public static void main ( String [ ] argv ) {
Compteur c1 , c2 , c3 ;
c1 = new Compteur ( 0 ) ;
c1.incremente ( ) ;
c2 = new Compteur ( 1 ) ;
c3 = c1 ;
if ( c1 == c3 ) {
System.out.println( " c1 et c3 sont égaux " ) ;
} else {
System.out.println( " c1 et c3 ne sont pas égaux " ) ;
}
if ( c1.getValeur( ) == c2.getValeur ( ) ) {
System.out.println( " c1 et c2 ont même valeur " ) ;
} else {
System.out.println( " c1 et c2 n’ont pas la même valeur " ) ;
}
if ( c1 == c2 ) {
System.out.println( " c1 et c2 sont égaux " ) ;
} else {
System.out.println( " c1 et c2 ne sont pas égaux " ) ;
}
if ( c1.getValeur( ) == c1.incremente( ).getValeur( ) ) {
System.out.println( " c1 et c1 incremente ont même valeur " ) ;
} else {
System.out.println("c1 et c1.incremente n’ont pas la même valeur ");
}
if ( c1 == c1.incremente( ) ) {
System.out.println( " c1 et c1 incremente sont égaux " ) ;
} else {
System.out.println( " c1 et c1 incremente ne sont pas égaux " ) ;
}
}
}
Solution
c1
c1
c1
c1
c1
et
et
et
et
et
c3
c2
c2
c1
c1
sont égaux
ont même valeur
ne sont pas égaux
incremente n’ont pas la même valeur
incremente sont égaux
Spécification et documentation (format javadoc) de l'interface Java SMSEdit d'un éditeur de
SMS. La longueur maximale du texte est de 194 caractères. Les fonctionnalités de cet éditeur
simple sont :
2
ED n°2 corrigé
–
–
–
ajouter un caractère au texte rédigé
effacer le dernier caractère ajouté
enregistrer le texte dans un fichier connu par son nom
Solution
interface SMSEdit{
/**
* MAX taille maximale du message SMS
/
static final int MAX = 194;
/**
* Ajout d'un caractère au message en édition
* @param c le caractère à ajouter
* @param texte le message en cours d'édition
* @return le nouveau message
*/
String ajouter(char c, String texte);
/**
* Effacement du dernier caractère édité
* @param texte le message en cours d'édition
* @return le nouveau message
*/
String effacer(String texte);
/**
* Enregistrement du texte édité
* @param texte le message édité
* @param fichier nom du fichier de sauvegarde
*/
void effacer(String texte, String fichier);
Ecrire 3 petits programmes pour saisir vos nom, prénom et afficher ces informations sous la forme :
nom : votre nom
prénom : votre prénom
Le premier programme se contentera d'afficher le résultat sur un terminal
Le second programme affichera le résultat dans une fenêtre de dialogue
Le dernier programme sera créé sous la forme d'une applet
Solution
// résultat sur terminal => Identite.java
import java.util.Scanner;
public class Identite{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.print("Nom : ");
String nom = in.next();
System.out.print("Prénom : ");
String prenom = in.next();
3
ED n°2 corrigé
}
}
System.out.println("Nom : "+nom);
System.out.println("Prénom : "+prenom);
// interface graphique => Identite.java
import javax.swing.JOptionPane;
public class Identite{
}
public static void main(String[] args){
nom = JOptionPane.showInputDialog("Votre nom");
prenom = JOptionPane.showInputDialog("Votre prénom");
JoptionPane.showMessageDialog(null,
"nom : "+nom+"\n, prénom : " +prenom , "Identité");
}
// résultat sur l'applet => identite.html
<html>
<head> applet Identité</head>
<body>
<applet code = "Identite.class" width = 200 height = 300>
</applet>
</body>
</html>
// résultat sur l'applet => Identite.java
import java.awt.*;
import javax.swing.*;
public class Identite extends Japplet{
String nom=null,prenom=null,annee=null;
public void init(){
nom = JOptionPane.showInputDialog("Votre nom");
prenom = JOptionPane.showInputDialog("Votre prénom");
}
public void paint(Graphics g){
super.paint(g);
g.drawString("nom : "+nom+"\nprénom : "+prenom,25,25 );
}
}
public void start(){}
public void stop(){}
public void destroy(){}
4
Téléchargement