TD1POO
TD1POO
TD1POO
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i;
int somme;
somme = 0;
i = 1;
while (i <= 100) {
somme = somme + i;
i = i + 1;
}
System.out.println("Voila la somme des 100 premiers entiers : " + somme);
}
Exercice 3 : Palindrome
public class palindromeSansEspace {
1
return(inv);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double b= Double.parseDouble(args[0]);
String s = args[0];
String inv = inverse(s);
System.out.println("L'inverse de " + s + " est " + inv);
if(s.equals(inv))
System.out.println(s + " est un palindrome");
else
System.out.println(s + " n'est un palindrome");
}
//////////////////////////// with espace
package essai;
import java.util.Scanner;
public class palindromeWithEspace {
/**
* @param args
*/
String enleveEspaces(String s) {
int i, longueur;
StringBuffer sansEspaces = new StringBuffer();
longueur = s.length();
for (i = 0; i < longueur; i++)
if (s.charAt(i) != ' ') sansEspaces.append(s.charAt(i));
return new String(sansEspaces);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner entree = new Scanner(System.in);
System.out.println("Indiquez la chaine de caracteres");
String chaine = entree.nextLine();
String sansEspace = enleveEspaces(chaine);
String inverse = palindromeSansEspace.inverse(sansEspace);
if (sansEspace.equals(inverse))
System.out.println("\"" + chaine + "\" est un palindrome");
else
System.out.println("\"" + chaine + "\" n'est pas un palindrome");
}
Il s'agit de modéliser un segment de droite dont les valeurs des deux extrémités sont entières. Si on échange les
deux extrémités, on considère qu'il s'agit encore du même segment. Les opérations que l'on souhaite faire sur ce
segment sont :
calculer sa longueur
2
savoir si un entier donné se trouve sur le segment (c'est-à-dire s'il est compris entre la plus petite et la plus
valeurs des extrémités du segment).
Pour la commande :
Pour la commande :
Indication
package segment;
/**
* @param args
*/
private int extr1, extr2;
tampon = extr1;
extr1 = extr2;
extr2 = tampon;
}
}
package segment;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Segment s = new Segment(Integer.parseInt(args[0]),
Integer.parseInt(args[1]));
int point;
System.out.println("Longueur du " + s + " : " + s.longueur());
point = Integer.parseInt(args[2]);
if (s.appartient(point))
System.out.println(point + " appartient au " + s);
else
System.out.println(point + " n'appartient pas au " + s);
}
4
}
Version avec des attributs privés Dans une seconde écriture de la classe
Segment, on souhaite assurer que extr1 soit toujours plus petit que extr2 ; pour cela, on déclare les attributs
extr1 et extr2 comme privés (avec le modificateur private) ; on permettra alors, bien que ces attributs soient
privés, leur consultation et leur modification, en définissant quatre méthodes (nommées généralement accesseurs)
supplémentaires dans la classe Segment:
int getExtr1(void);
void setExtr1(int a);.
int getExtr2(void);
void setExtr2(int a);
Dans le main défini dans EssaiSegment, on ajoutera quelques instructions au choix pour tester ces méthodes
supplémentaires.
import java.util.Random ;
public class ManipTableau {
/**
* @param args
*/
private int[] tab ;
ManipTableau(int n)
{
tab = new int[n];
}// alloue un tableau de dimension n
static int randomInt (int a,int b) //renvoie un int entre a et b inclus
{ double random1=Math.random();
int temp=(int)((Math.abs((a-b-1))*random1)+a);
return(temp);
}
void remplir ()
{
for(int i=0;i<tab.length;i++)
tab[i]= randomInt(0,100);
5
}// remplit le tableau par des valeurs générés aléatoirement entre 0 et 100.
float moyenne ()
{
int som = 0;
float moy;
for(int i=0;i<tab.length;i++)
som+=tab[i];
moy = som/tab.length;
return moy;
/*String maxMin(){
String s;
}*/
void minmax(Integer a, Integer b){
a= max();
b=min();
}
void minmax2(int []tt){
tt[0]= max();
tt[1]=min();
}
public static void main(String[] args) {
6
// TODO Auto-generated method stub
Il s'agit de modéliser un vecteur de Z2 dont l'origine est en (0, 0) (un tel vecteur est donc caractérisé par deux
nombres entiers relatifs). Les opérations que l'on souhaite faire sur ce segment sont :
7
calculer sa longueur, par une méthode d'instance sans paramètre, nommée longueur, et qui retourne cette
longueur sous forme d'un double
savoir si le vecteur concerné est ou non plus petit qu'un autre un autre vecteur donné ; on écrira pour cela
une méthode d'instance nommée plusPetitQue qui recevra en paramètre l'autre vecteur et qui retournera
une variable de type boolean
additionner au vecteur concerné un autre vecteur ; on écrira pour cela une méthode d'instance nommée
addition qui recevra en paramètre l'autre vecteur et qui ne retournera rien
additionner deux vecteurs donnés ; on écrira pour cela une méthode statique nommée aussi addition (en
utilisant ainsi la possibilité de la surcharge) qui recevra en paramètres les deux vecteurs à additionner et
qui retournera le résultat sous forme d'un objet de type Vecteur
une méthode redéfinissant la méthode : public String toString()Celle-ci décrira une instance de
Vecteur sous la forme d'une chaîne de caractères (par exemple, le vecteur de composantes 1 et 2 pourra
être décrit par la chaîne de caractères : "vecteur (1, 2)"). La méthode retournera cette chaîne.
On écrira une méthode main pour tester cette classe Vecteur, méthode que l'on écrira à l'intérieur d'une classe
nommée EssaiVecteur. Les composantes des vecteurs à traiter dans les tests pourront être indiquées sur la ligne
de commande. Un exemple d'exécution de ce main peut être :
Indications
8
public static Complexe diviser (Complexe c1, Complexe c2) ;
public String toString() ;
}
2- Ecrire une classe EssaiComplexe qui met en œuvre les différentes méthodes de la classe Complexe.
2/ écrire la classe EssaiManipTableau contenant une méthode main pour tester les méthodes précédemment
définies
3/Faites le nécessaire pour ajouter une méthode maxMin, à la classe ManipTableau, qui retourne à la fois la
valeur min et la valeur max du tableau.
1/ Il s'agit de définir une classe modélisant une pile d'entiers. Nécessairement, tous les attributs de cette classe
auront le modificateur private, ce qui signifie qu'on ne peut pas les utiliser directement de l'extérieur de la classe
(on dit encore qu'ils ne sont visibles que de leur propre classe). Cette classe possèdera les méthodes suivantes (il
faudra reprendre exactement les en-têtes indiquées) :
1/ On souhaite écrire la classe Date qui gère des dates. Les attributs jour, mois, an sont mémorisés comme
des entiers. Ecrire alors les méthodes « pubiques » suivantes :
2/ Ecrire la classe EssaiDate qui permet de donner les résultat de l’exécution suivants :
Au 3/2/2003
10