Sie sind auf Seite 1von 8

Aplicacin del tipo abstracto de dato Conjunto.

A continuacin se escribe una aplicacin que muestra el uso del tipo conjunto. El programa crea
un conjunto de nmeros racionales y realiza operaciones definidas en la clase Conjunto. Se aade
una operacin complementaria para visualizar los elementos del conjunto. Tambin se declara la
clase Racional para representar a este tipo de nmeros.
import java.io.*;
import conjunto.*;
import java.util.Random;
// clase que representa un nmero racional
class Racional
{
private int n, d;
public Racional(int num, int den)throws !ception
{
i" (den ## $)
throw new !ception(%rror& denominador $%);
n # num;
d # den;
'
public Racional()
{
n # $; d # (;
'
public )trin* to)trin*()
{
)trin* racs;
racs # n + %/% + d;
return racs;
'
';


class ,onjuntoRacional
{
public static void main()trin* -. ar)
{
"inal int nelem # ($;
,onjunto cn(, cn/, t;
Racional r;
int n, d;
cn( # new ,onjunto();
cn/ # new ,onjunto();
Random a # new Random();
tr0 {
"or (int j # (; j 1# nelem; j++)
{
n # a.ne!t2nt((3); // numerador;
d # a.ne!t2nt((3); // denominador;
i" (d 4# $)
{
r # new Racional(n,d);
cn(.annadir(r);
'
'
mostrar(cn();
// se crea un se*undo conjunto
"or (int j # (; j 1# nelem; j++)
{
n # a.ne!t2nt((3); // numerador;
d # a.ne!t2nt((3); // denominador;
i" (d 4# $)
{
r # new Racional(n,d);
cn/.annadir(r);
'
'
mostrar(cn/);
// union de conjuntos
)0stem.out.println(% ,onjunto uni5n%);
t # cn(.union(cn/);
mostrar(t);
'
catch (!ception er)
{
)0stem.err.println(%rror en ejecuci5n& % + er);
'

'
static void mostrar(,onjunto c) throws !ception
{
)0stem.out.println(%6t6tlementos del conjunto %);
"or (int 7 # (; 7 1# c.cardinal(); 7++)
{
)0stem.out.print(c.elemento(7) + % %);
i" (7 8 ($ ## $) )0stem.out.println();
'
)0stem.out.println();
'
'
EJEMPLO 2.1
class 9unto
{
private int !; // coordenada !
private int 0; // coordenada 0
public 9unto(int !:,int 0:) // constructor
{
! # !:;
0 # 0:;
'
public 9unto() // constructor sin ar*umentos
{
! # 0 # $;
'
public int ;eer<() // devuelve el valor de !
{
return !;
'
public int ;eer=() // devuelve el valor de 0
{
return 0;
'
void "ijar<(int valor<) // establece el valor de !
{
! # valor<;
'
void "ijar=(int valor=) // establece el valor de 0
{
0 # valor=;
'
'
EJEMPLO 2.4
class Racional
{
private int numerador;
private int denominador;
public Racional()
{
numerador # $;
denominador # (;
'
public int leer>() { return numerador; '
public int leer?() { return denominador; '
public void "ijar (int n, int d)
{
numerador # n;
denominador # d;
'
'
EJERCICIO 2.1
import java.io.*;
class ?ia@n0o
{
private int mes;
private int dia;
public ?ia@n0o(int d, int m)
{
dia # d;
mes # m;
'
public boolean i*ual(?ia@n0o d)
{
i" ((dia ## d.dia) AA (mes ## d.mes))
return true;
else
return "alse;
'
public void visualiBar()
{
)0stem.out.println(%mes # % + mes + % , dia # % + dia);
'
'
// clase principal, con mtodo main
public class ,umple
{
public static void main()trin*-. ar)throws 2C!ception
{
?ia@n0o ho0;
?ia@n0o cumplean0os;
int d, m;
Du""eredReader entrada # new Du""eredReader(
new 2nput)treamReader()0stem.in));
)0stem.out.print(%2ntroduBca "echa de ho0, dia& %);
d # 2nte*er.parse2nt(entrada.read;ine());
)0stem.out.print(%2ntroduBca el nmero de mes& %);
m # 2nte*er.parse2nt(entrada.read;ine());
ho0 # new ?ia@n0o(d,m);
)0stem.out.print(%2ntroduBca su "echa de nacimiento, dia& %);
d # 2nte*er.parse2nt(entrada.read;ine());
)0stem.out.print(%2ntroduBca el nmero de mes& %);
m # 2nte*er.parse2nt(entrada.read;ine());
cumplean0os # new ?ia@n0o(d,m);
)0stem.out.print( % ;a "echa de ho0 es %);
ho0.visualiBar();
)0stem.out.print( % )u "echa de nacimiento es %);
cumplean0os.visualiBar();
i" (ho0.i*ual(cumplean0os))
)0stem.out.println( %EFeliB cumpleaGos 4 %);
else
)0stem.out.println( %EFeliB dia 4 %);
'
'
EJEMPLO 2.
public class quipo)onido
{
private int potencia;
private int voltios;
private int num,d;
private )trin* marca;
public quipo)onido() // constructor por de"ecto
{
marca # %)in marca%;
)0stem.out.println(%,onstructor por de"ecto%);
'
public quipo)onido()trin* mt)
{
marca # mt;
)0stem.out.println(%,onstructor con ar*mto cadena %);
'
public quipo)onido()trin* mt, int p, int v)
{
marca # mt;
potencia # p;
voltios # v;
num,d # /$;
)0stem.out.println(%,onstructor con tres ar*umentos %);
'
public double "actura(){...'
';
!a instanciacin de un objeto quipo)onido puede "acerse llamando a cualquier
constructor#
quipo)onido rt, *t, ht; // de"ine tres re"erencias
rt # new quipo)onido(); // llamada al constructor por de"ecto
*t # new quipo)onido(%HI;@J%);
rt # new quipo)onido(%9@RJC;@%,K3,//$);
EJERCICIO 2.2
import java.io.*;
class ?emo
{
private int datos;
public ?emo(){datos # $;'
protected void "inaliBe()
{
)0stem.out.println(%Fin de objeto ?emo%);
'
'
class 9rueba
{
private double !;
public 9rueba (){! # L(.$;'
protected void "inaliBe()
{
)0stem.out.println(%Fin de objeto 9rueba%);
'
'
public class 9robar?emo
{
public static void main()trin*-. ar)
{
?emo d(, d/;
9rueba p(, p/;
d( # new ?emo();
p( # new 9rueba();
)0stem.*c(); // no se libera nin*n objeto
p/ # p(;
p( # new 9rueba();
)0stem.*c(); // no se libera nin*n objeto
p( # null;
d( # new ?emo();
)0stem.*c(); // se liberan dos objetos
d/ # new ?emo();
' // se liberan los objetos restantes
'
EJERCICIO 2.!
class jemplo
{
private int datos;
static int cuenta # $;
public jemplo()
{
datos # $;
cuenta++; // nuevo objeto
'
public jemplo(int *)
{
datos # *;
cuenta++; // nuevo objeto
'
//
protected void "inaliBe()
{
)0stem.out.println(%Fin de objeto jemplo%);
cuentaLL;
'
'
public class 9robarjemplo
{
public static void main()trin*-. ar)
{
jemplo d(, d/;
)0stem.out.println(%Cbjetos jemplo& % + jemplo.cuenta);
d( # new jemplo();
d/ # new jemplo((();
)0stem.out.println(%Cbjetos jemplo& % + jemplo.cuenta);
d/ # d(;
)0stem.*c();
)0stem.out.println(%Cbjetos jemplo& % + jemplo.cuenta);
d/ # d( # null;
)0stem.*c();
)0stem.out.println(%Cbjetos jemplo& % + jemplo.cuenta);
'
'
EJEMPLO 2."
class )uma)erie
{
private static lon* n;
private static lon* m;
static
{
n # $;
m # (;
'
public static lon* suma()
{
m +# n;
n # m L n;
return m;
'
'

Das könnte Ihnen auch gefallen