You are on page 1of 73

Estructura de Datos

Practicas en Java
PROYECTO
DIAZ MIRON MAC DONOUGH GABRIEL

Medrano Prez Jos Antonio Grupo: 1303

Septiembre del 2012

Problema: Elabore un programa que imprima el mensaje Hola! En la pantalla.


//Programa #1: Imprime "Hola!" en pantalla class Mensaje{ public static void main(String [] args){ System.out.println("Hola!"); } }

Problema: Elaborar un programa que muestre el funcionamiento de los operadores relacionales y lgicos.
//Programa #2: Operadores Relacionales y Logicos class OpsRL{ public static void main(String[] args) { int i=10, j=11; if (i<j) System.out.println("i<j"); if (i<=j) System.out.println("i<=j"); if (i!=j) System.out.println("i!=j"); if (i==j) System.out.println("esto no se ejecuta"); if (i>=j) System.out.println("esto no se ejecuta"); if (i>j) System.out.println("esto no se ejecuta"); boolean b1=true, b2=false; if (b1 & b2) System.out.println("esto no se ejecuta"); if (!(b1 & b2)) System.out.println("!(b1 & b2) es verdadero"); if (b1 | b2) System.out.println("b2|b1 es verdadero"); if (b1 ^ b2) System.out.println("b1 ^ b2 es verdadero"); } }

Problema: Elaborar un programa que muestre el funcionamiento de los operadores lgicos de cortocircuito.
//Programa #3: Operadores de Cortocircuito class OpsCC{ public static void main(String[] args) { int n=10, d=2; if (d!=0 && (n%d)==0) { System.out.println(d+" es un factor de "+n); } d=0; if (d!=0 && (n%d)==0) { System.out.println(d+" es un factor de "+n); } } }

Problema: Elabore un programa que imprima el mensaje Hola! 10 veces.


//Programa #4: imprime "Hola!" 10 veces class ForDemo{ public static void main(String[] args) { for (int i=1;i<=10 ;i++ ) { System.out.println("Hola!"); } } }

Problema: Elabore un programa que imprima el mensaje Hola! 10 veces.


//Programa #5: imprime "Hola!" 10 veces class DoDemo{ public static void main(String[] args) { int i=0; do{ System.out.println("Hola!"); i++; } while(i<10); } }

Problema: Elabore un programa que imprima el mensaje Hola! 10 veces.


//Programa #6: imprime "Hola!" 10 veces class WhileDemo{ public static void main(String[] args) { int i=0; while(i<10){ System.out.println("Hola!"); i++; } } }

Problema: Elabore un programa que muestre como funciona la estructura selectiva switch. //Programa #7: Muestra el funcionamiento de Switch
class SwitchDemo{ public static void main(String[] args) { int option=3; switch(option){ case 1: System.out.println("En el caso 1..."); break; case 2: System.out.println("En el caso 2..."); break; case 3: System.out.println("En el caso 3..."); break; case 4: case 5: System.out.println("En el caso 4 o 5..."); break; default: System.out.println("No. de opcion invalido"); } } }

Problema: Elabore un programa que genere una tabla de factoriales para valores de n desde 0 hasta 10. Considera el uso de la siguiente formula:

n ! n n 1 n 2 ... 2 1

Cdigo de campo cambiado

//Programa #8: Generar una tabla de factoriales class Factorial{ public static void main(String[] args){ int n=0; while(n<=10){ System.out.println(n+"!="); System.out.println(factorial (n)); n++; } } public static int factorial(int m){ int f=1; while(m>1){ f*=m; //taquigrafia f=f*m m--; } return f; }

Problema: Elabore un programa que muestre c{omo funcionan las operaciones lgicas (a nivel de bits) sobre nmeros enteros.
//Programa #9: Aplicar algunas Operaciones Lgicas sobre enteros class BitLogic{ public static void main(String[] args) { int a=2, b=7; int c=a&b; int d=a|b; int e=a^b; int f=~a&0x0f;

int g=a<<1; int h=b>>1; System.out.println("a: \n"+ValorBinario(a)); System.out.println("b: \n"+ValorBinario(b)); System.out.println("a&b: \n"+ValorBinario(c)); System.out.println("a|b: \n"+ValorBinario(d)); System.out.println("a^b: \n"+ValorBinario(e)); System.out.println("!a: \n"+ValorBinario(f)); System.out.println("a<<1: \n"+ValorBinario(g)); System.out.println("b>>1: \n"+ValorBinario(h)); } public static String ValorBinario(int n){ String[] arr={ "0000","0001","0010","0011", "0100","0101","0110","0111", "1000","1001","1010","1011", "1100","1101","1110","1111" }; if (n>=0 && n<=15) return arr[n]; return null; } }

Problema: Elabore un programa que muestre como construir cadenas.


//Programa #9: Introduccin al manejo de cadenas class StringDemo{ public static void main(String[] args) { //Construye cadenas de varias maneras String c1=new String("Las cadenas en Java son objetos"); String c2=" que se construyen de varias maneras...."; String c3=c1+c2; System.out.println(c3); } }

Problema: Elabore un programa que muestre como implementar operaciones bsicas para trabajar con cadenas.
//Programa #11: Operaciones con cadenas class OpsCads{ public static void main(String[] args) { //Declaracion de variables String c1="Cuando se programa en Java es el #1"; String c2= new String(c1); String c3="Cuando se programa en Java es el #1"; //Calcula la longitud de una cadena System.out.println("La longitud de la C1 es: "+c1.length()); //Despliega la cadena caracter por caracter for(int i=0; i<c1.length(); i++) System.out.println(c1.charAt(i)); System.out.println(); //Compara dos cadenas if (c1.equals(c2)) System.out.println("C1 es igual que C2 !"); else System.out.println("C1 no es igual que C2 !"); //Compara dos cadenas int result=c1.compareTo(c3); if (result==0) System.out.println("C1 es igual que C3 !"); else if(result<0) System.out.println("C1 es menor que C3 !"); else System.out.println("C1 es mayor que C3 !");

10

} }

11

Problema: Elabore un programa que muestre como inicializar un arreglo de cadenas.


//Programa #12:Construye un arreglo de cadenas class Cadenas{ public static void main(String[] args) { String [] arr={"Esta","es","una","prueba!"}; System.out.println("Este es el arreglo original:"); for (int i=0; i<arr.length; i++) System.out.println(arr[i]); //Modificar algunos elementos de arreglo arr[1]="fue"; arr[3]="prueba tambien..."; System.out.println("Este es el arreglo modificado"); for (int i=0; i<arr.length; i++) System.out.println(arr[i]); } }

12

Problema: Elabore un programa que muestre como utilizar argumentos en la lnea de comandos.
//Programa #13: "Argumentos en lineas de comandos" class LCDemo{ public static void main(String[] args) { System.out.println("Utilizo "+args.length+" argumentos en linea de comandos!"); System.out.println("Dichos argumentos son !"); if(args.length==0) return; for (int i=0; i<args.length ; i++ ) System.out.println("args["+i+"]: "+args[i]); } }

13

Problema: Elabore un programa que realice la suma de los dos nmeros cualesquiera.
//Programa #14: "Suma de dos numeros cualesquiera" class Suma{ public static void main(String[] args) { if (args.length!=2) { System.out.println("Error! Introdusca 2 cantidades "); System.out.println("como argumentos..."); System.exit(0); } float A,B,C; try{ //convierte la cadena en float A=Float.parseFloat(args[0]); } catch(NumberFormatException nfe1){ A=0.0f; } try{ //convierte la cadena en float B=Float.parseFloat(args[1]); } catch(NumberFormatException nfe1){ B=0.0f; } C=A+B; // calcular el resultado de la suma System.out.printf("%.3f + %.3f= %.4f\n",A,B,C); } }

14

Problema: Elabore un programa que muestre como leer un carcter desde el teclado para que despus se pueda imprimir su valor en la pantalla.
//Programa #15: "Leer un caracter del teclado" import java.io.*; class CharDemo{ public static void main(String[] args) { int ch; System.out.print("Oprima una tecla seguida de <Enter>: "); try{ //Captura ch=(char) System.in.read(); //se obtiene un caracter System.out.printf("La tecla que oprimiste fue: %c\n",ch); System.out.printf("Y su caracter ascii es: %d\n",ch); }catch(IOException ioe){ //try siempre se cierra con catch System.out.println(ioe.getMessage()); return; } } }

15

Problema: Elabore un programa que permita desplegar en pantalla el contenido de un archivo de texto.
//Programa #16:"Desplegar el contenido de un archivo de texto" import java.io.*; class OpenFile{ public static void main(String []args) throws IOException{ if(args.length!=1){ System.out.println("Uso de programa: "); System.out.println("C:\\Program Files\\Java\\jdk1.7.0_07> java OpenFile <archivo> "); System.exit(0); } FileInputStream Aent; //identificador para el archivo try{ Aent=new FileInputStream (args[0]); } catch (FileNotFoundException fnfe){ System.out.println("No se encuentra el archivo de entrada!..."); return; } System.out.println("Contenido del archivo "+args [0]+":\n"); int ch; do{ ch=Aent.read(); //leer bytes hasta el fin de archivo if(ch!=-1)System.out.print((char) ch); } while(ch!=-1); System.out.println();

16

Aent.close(); } }

Problema: Elabore un programa que permita resolver ecuaciones cuadratica grado


//Programa #16:"Resolver una ecuacin cuadrtica"

17

import java.io.*; class EC2{ public static void main (String []args)throws IOException{ double A,B,C,D,X1R,X2R,X1T,X2T; System.out.println("Introduzca los coeficientes reales..."); //el valor de A debe ser diferente de cero do{ System.out.print("A=?"); A=leerDouble(); } while(A==0.0d); System.out.print("B=?"); B=leerDouble(); System.out.print("C=?"); C=leerDouble(); //inicializar valores con cero X1T=X2T=0.0d; //calcular el discriminante D=Math.pow(B,2.0)-4.0*A*C; //seleccionar raices reales complejos if(D>=0.0){ X1R=((-B+Math.sqrt(D))/(2.0*A)); X2R=((-B-Math.sqrt(D))/(2.0*A)); } else{ X1R=-B/(2.0*A); X2R=X1R; X1T=Math.sqrt(-D)/(2.0*A); X2T=-X1T; } System.out.println("Las raices de la ecuacion son:"); System.out.printf("A=%f\n",A); System.out.printf("B=%f\n",B); System.out.printf("C=%f\n",C); System.out.printf("D=%f\n",D); System.out.printf("X1=%f+%f\n",X1R,X1T); System.out.printf("X2=%f+%f\n",X2R,X2T); } public static double leerDouble() throws IOException{ BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); String cad=new String(); boolean flag; double num=0.0d; do{ flag=true; cad=buf.readLine(); try{

18

num=Double.parseDouble(cad); }catch(NumberFormatException nfe){ System.out.print("valor numerico:"); flag=false; } }while(flag==false); return num; } }

19

Problema: Elabore un programa que permita construir un archivo de datos (archivo binario).
//Programa #17: Escribir y leer datos binarios import java.io.*; class DataBin{ public static void main(String[] args) throws IOException{ //crear identificador para el archivo de entrada DataInputStream EDatos; //crear identificador para el archivo de salida DataOutputStream SDatos;

20

//se inicializan los tipos primitivos int i=10; double d=123.45; boolean b=true; //solicitamos crear un archivo binario try{ SDatos=new DataOutputStream(new FileOutputStream("archi.dat")); } catch(IOException exc){ System.out.println("No se puede crear archivo..."); return; } //escribimos los datos secuencialmente try{ System.out.println("Escribiendo " + i); SDatos.writeInt(i); System.out.println("Escribiendo " + d); SDatos.writeDouble(d); System.out.println("Escribiendo " + b); SDatos.writeBoolean(b); } catch (IOException exc){ System.out.println("Error de escritura..."); return; } SDatos.close(); //solicitamos abrir archivo de datos de nuevo try{ EDatos=new DataInputStream(new FileInputStream("archi.dat")); } catch(IOException exc){ System.out.println("No se puede abrir el archivo..."); return; } //Ahora se leen en orden los datos en almacenamiento try{ i=EDatos.readInt(); System.out.println("Leyendo "+i); d=EDatos.readDouble(); System.out.println("Leyendo "+d); b=EDatos.readBoolean(); System.out.println("Leyendo "+b); } catch (IOException exc){ System.out.println("Error de lectura..."); return; } EDatos.close(); } }

21

22

Problema: Elabore un programa que mustre como leer una cadena desde el teclado para que despus se pueda imprimir su valor en la pantalla.
//Programa #18: Leer e imprimir una cadena import java.io.*; class LeeCad{ public static void main(String[] args) { BufferedReader b=new BufferedReader(new InputStreamReader(System.in)); String cad;

23

System.out.println("Escriba una frase..."); try{ cad=b.readLine(); System.out.println("La Frase que ud. escribio es:"); System.out.println(cad); } catch(IOException ioe){ ioe.printStackTrace(); return; } } }

Problema: Elabore un programa que muestre como sumar dos numero cualesquiera.
//Programa #19: Suma de dos numeros cualesquiera import java.io.*; class Suma{ public static void main(String[] args) throws IOException { float A,B,C; System.out.print("Escriba el valor de A: "); A=leer_float(); System.out.print("Escriba el valor de B: "); B=leer_float(); C=A+B; System.out.printf("%.3f + %.3f = %.4f \n",A,B,C);

24

} public static float leer_float() throws IOException{ String str= new String(); BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); float x=0.0f; str=buf.readLine(); try{ //Convierte la cadena en numero x=Float.parseFloat(str); } catch(NumberFormatException nfe){ x=0.0f; } return x; } }

25

Problema: Elabore un programa que muestre como leer e imprimir un arreglo de cadenas.
//Programa #20:Lee e imprime un arreglo de cadenas import java.io.*; class LeeCads{ public static void main(String[] args) throws IOException{ BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); String[] cads=new String[3]; System.out.println("Escribir 3 cadenas para almacenarlas..."); for (int i=0; i<3; i++) { System.out.println("Cadena #"+(i+1)+": "); cads[i]=buf.readLine(); } System.out.println("Las cadenas almacenadas son..."); for(int i=0; i<3;i++) System.out.println("Cadena #"+(i+1)+": "+ cads[i]); } }

26

Problema: Elabore un programa que permita desplegar en pantalla el contenido de un archivo de texto.
//Programa #21: Leer cadenas desde un archivo import java.io.*; class LeeCads{ public static void main(String[] args) throws IOException { FileInputStream aent=new FileInputStream("prueba.txt"); BufferedReader buf=new BufferedReader(new InputStreamReader(aent)); String str=new String(); do{ str=buf.readLine(); if (str!=null) System.out.println(str); }while (str!=null); aent.close(); } }

27

Problema: Elaborar un programa que permita implementar objetos de tipo Entero


//Programa #22: Definicion de clase package Programa22; class Entero{ //atributos de clase (acceso privado) private int n; //atributos de clase(acceso publuco) public void asigna(int i){ n=i; } public void muestra(){ System.out.println(n); } }

//Programa #22: Implementar un objeto de tipo "Entero" package Programa22; class TestEntero{ public static void main(String[] args) { //Variable de clase entero Entero X; //construir objeto X= new Entero(); //asignar un valor al objeto X.asigna(10); //Mostrar el valor del Objeto

28

System.out.println("El valor de X es: "); X.muestra(); } }

Nota: Desde la raz del proyecto hay que compilar ambos programas de forma simultanea con el comando: javac Programa22/*.java Problema: Elaborar un programa que permita implementar objetos de tipo Entero
//Programa #22: Re-definicion de la clase "Entero" package Programa23; class Entero{ //atributos de clase (acceso privado) private int n; //definicion del primer constructor public Entero(){ System.out.println("En constructor...0"); n=0; } //definicion del sugundo constructor public Entero(int i){ System.out.println("En constructor...1"); n=i; } //Metodo para asignar vaor al atributo public void asigna(int i){

29

n=i; } //Metod para mostrar el valor del atributo public int muestra(){ return n; } //metodo para sumar dos objetos public Entero suma(Entero obj){ Entero tmp=new Entero(); tmp.n=n+obj.n; return tmp; } } //Programa #22: Sumar 2 objetos de tipo "Entero" package Programa23; class TestEntero{ public static void main(String[] args) { //Crear identificador de objetos Entero Obj1, Obj2, Obj3; //construir dos objeto Obj1= new Entero(); Obj2= new Entero(10); //imprimir el valor de los objetos System.out.println("Obj1: "+Obj1.muestra()); System.out.println("Obj2: "+Obj2.muestra()); //Cambiar el valor del objeto "1" Obj1.asigna(1); //Sumar dos objetos Obj3=Obj1.suma(Obj2); System.out.println("Obj3: "+Obj3.muestra()); } }

30

Problema: Elaborar un programa que permita implementar un arreglo de objetos de tipo Entero. Nota: Se utilizo la clase Entero (vista en el programa anterior)
//Programa #22: Re-definicion de la clase "Entero" package Programa24;

31

class Entero{ //atributos de clase (acceso privado) private int n; //definicion del primer constructor public Entero(){ System.out.println("En constructor...0"); n=0; } //definicion del sugundo constructor public Entero(int i){ System.out.println("En constructor...1"); n=i; } //Metodo para asignar vaor al atributo public void asigna(int i){ n=i; } //Metod para mostrar el valor del atributo public int muestra(){ return n; } //metodo para sumar dos objetos public Entero suma(Entero obj){ Entero tmp=new Entero(); tmp.n=n+obj.n; return tmp; } } //Programa 24: Construir un arreglo con tres enteros package Programa24; class TestEnteros{ public static void main(String[] args) { //definir los objetos de programa Entero[] arr = new Entero[3]; //Construir arreglo de objetos for (int i=0; i<3; i++) arr[i]=new Entero(); //dar valor a los objetos for (int i=0; i<3; i++) arr[i].asigna(i); //imprimir el valor de los objetos System.out.println("Los elementos del arreglo son..."); for (int i=0; i<3; i++) { System.out.print("Arr["+i+"] = "); System.out.println(arr[i].muestra()); } } }

32

Problema: Elaborar un programa que permita implementar objetos de tipo Vector


//Programa #25: Definicion de la clase "Vector" package Programa25; public class Vector{ private double[] x; private int n; public Vector(int i){ n=i; x=new double[n]; } public void asigna(double y[]){ for(int i=0;i<n;i++){ x[i]=y[i]; }

33

} public void muestra(){ for(int i=0;i<n;i++){ System.out.printf("%.1f\t",x[i]); } System.out.println(); } public Vector suma(Vector obj){ Vector tmp=new Vector(n); for (int i=0;i<n ;i++ ) tmp.x[i]=x[i]+obj.x[i]; return tmp; } public double multiplica(Vector obj){ double tmp=0.0; for (int i=0;i<n ;i++ ) tmp+=x[i]*obj.x[i]; return tmp; } } //Programa #25: Implementar opciones con vectores package Programa25; class TestVector{ public static void main(String[] args) { Vector obj_1=new Vector(5); double []arr_1={0.0,1.0,2.0,3.0,4.0}; obj_1.asigna(arr_1); Vector obj_2=new Vector(5); obj_2=obj_1; Vector obj_3=obj_1.suma(obj_2); System.out.printf("o1+o2:\t"); obj_3.muestra(); System.out.printf("o1*o2:\t"); double result=obj_1.multiplica(obj_2); System.out.print(result+"\n"); } }

34

Problema: Elaborar un programa que permita implementar objetos de tipo Matriz.


//Programa #26: Definicin de la clase "Matriz" package Programa26; import java.io.*;

35

public class Matriz{ private double [][]mat; private int nr,nc; public Matriz(int r, int c){ if (r>0 && c>0) { mat=new double[nr=r][nc=c]; } else{ mat=null; nr=nc=0; } } public void leer() throws IOException{ BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); String str=new String(); for(int i=0;i<nr;i++){ for (int j=0;j<nc ;j++ ) { System.out.print("Valor["+(i+1)+","+(j+1)+"]="); str=buf.readLine(); try{ mat[i][j]=Double.parseDouble(str); }catch(NumberFormatException exc){ mat[i][j]=0.0d; } } System.out.print("\n"); } } public void imprimir(){ for (int i=0;i<nr ;i++ ) { for (int j=0;j<nc ; j++) System.out.print("\t"+mat[i][j]); System.out.print("\n"); } } public Matriz suma(Matriz obj){ Matriz tmp=new Matriz(nr,nc); for (int i=0;i<nr ;i++ ) { for (int j=0;j<nc ; j++){ tmp.mat[i][j]=mat[i][j]+obj.mat[i][j]; } } return tmp; } }

36

//Programa #26: sumar dos objetos de la clase Matriz package Programa26; import java.io.*;

class TestMatriz{ public static void main(String[] args) throws IOException { System.out.println("Programa que suma 2 Matrices..."); int m,n; System.out.println("Escriba el numero de Renglones..."); m=numero_elementos(); System.out.println("Escriba el numero de Columnas..."); n=numero_elementos(); System.out.println("Construyendo a la Matriz A..."); Matriz A=new Matriz(m,n); System.out.println("Escriba los elementos de la Matriz A..."); A.leer(); System.out.println("Construyendo a la Matriz B..."); Matriz B=new Matriz(m,n); System.out.println("Escriba los elementos de la Matriz B..."); B.leer(); System.out.println("Los elementos de la Matriz A son:"); A.imprimir(); System.out.println("Los elementos de la Matriz B son:"); B.imprimir(); System.out.println("Sumando la Matriz A y B..."); Matriz C=A.suma(B); System.out.println("Los elementos de la Matriz C son: "); C.imprimir(); System.out.println("Fin del Programa..."); } public static int numero_elementos()throws IOException{ BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); String str=new String(); int num=0; System.out.print("Valor entero=? "); str=buf.readLine(); try{ num=Integer.parseInt(str); }catch(NumberFormatException exc){ num=0; } return num; }

37

38

39

Problema: Elaborar un programa que permita mostrar el concepto de Herencia Simple


//Programa #27: Definicin de la clase "Base" package Programa27; abstract public class Base{ private int x; public Base(){ System.out.println("Constructor de la clase Base..."); } public void asigna_x(int i){ x=i; } public int muestra_x(){ return x;

40

} } //Programa #27: Definicin de la clase "Derivada" package Programa27; public class Derivada extends Base{ private int y; public Derivada(){ System.out.println("Constructor de la clase Derivada..."); } public void asigna_y(int j){ y=j; } public int muestra_y(){ return y; } } //Programa #27: Implementa objetos de la clase derivada Herencia Simple package Programa27; class TestHS{ public static void main(String[] args) { Derivada obj=new Derivada(); obj.asigna_x(10); obj.asigna_y(20); System.out.println("Valor de X: "+obj.muestra_x()); System.out.println("Valor de y: "+obj.muestra_y()); } }

41

Problema: Elaborar un programa que permita mostrar el concepto de Herencia Multiple


//Programa #28: Definicion de clase "A" package Programa28; abstract public class A{ private int a;

42

A(int i){ a=i; System.out.println("Construyendo....A"); } int muestra_A(){ return a; } } //Programa #28: Definicion de clase "B" package Programa28; public class B extends A{ private int b; B(int i, int j){ super(i); b=j; System.out.println("Construyendo....B"); } int muestra_B(){ return b; } } //Programa #28: Definicion de clase "C" package Programa28; public class C extends B{ private int c; C(int i, int j, int k){ super(i,j); c=k; System.out.println("Construyendo....C"); } void muestra(){ System.out.println("En clase A: "+muestra_A()); System.out.println("En clase B: "+muestra_B()); System.out.println("En clase C: "+c); } } //Programa #28: Herencia multinivel package Programa28; class TestHM{ public static void main(String[] args) { C sub=new C(1,2,3); sub.muestra(); } }

43

44

Problema: Elaborar un programa que utilice una clase abstracta y una interface para elevar un objeto de tipo nmero al cuadrado y/o al cubo.
//Programa #29: Definicion de interface package Programa29; public interface CalcularValor{ double calcularValor(double k); } //Programa #29: Definicion de la clase Real package Programa29; abstract public class Real{ double real; public Real(){ real=0.0d; } public Real(double r){ real=r; } public double realValor(){ return real; } } //Programa #29: Definicion de la clase Numero package Programa29; public class Numero extends Real implements CalcularValor{ public Numero(double r){

45

super(r); } public double calcularValor(double k){ return Math.pow(realValor(),k); } } //Programa #29: Implementa un ibjeto de la clase Numero package Programa29; import java.io.*; class TestNumero{ public static void main(String[] args) throws IOException{ double num=0.0d; System.out.print("Escriba un valor numerico..."); num=leerDouble(); Numero obj=new Numero(num); double cuadrado=obj.calcularValor(2.0); System.out.println(num+"^2="+cuadrado); double cubo=obj.calcularValor(3.0); System.out.println(num+"^3="+cubo); } public static double leerDouble() throws IOException{ BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); String str=new String(); boolean flag; double val=0.0d; do{ flag=true; str=buf.readLine(); try{ val=Double.parseDouble(str); } catch(NumberFormatException exc){ System.out.print("Escriba un valor numerio..."); flag=false; } } while (flag==false); return val; } }

46

47

Problema: Elaborar un programa que utilice una clase abstracta y una interface para calcular el rea de un objeto de tipo circulo y de un objeto de tipo triangulo.
//Progrma #30: Definicin de la interface CalcularArea package Programa30; public interface CalcularArea{ public void calcularArea(); } //Programa #30: Definicin de la clase figura package Programa30; abstract public class Figura{ protected double area=0.0d; public void mostrarArea(){ System.out.println("Area= "+area); } } //Progrma #30: Definicion de la clase Circulo package Programa30; public class Circulo extends Figura implements CalcularArea{ private double radio; public Circulo(double r){ radio=r; } public void calcularArea(){ area=Math.PI*Math.pow(radio,2.0); } } //Progrma #30: Definicion de la clase Triangulo package Programa30; public class Triangulo extends Figura implements CalcularArea{

48

private double base,altura; public Triangulo(double b,double h){ base=b; altura=h; } public void calcularArea(){ area=(base*altura)/2.0; } } //Progrma #30: Utilice objetos de las subclases "Figura" package Programa30; class TestFiguras{ public static void main(String[] args) { Circulo X=new Circulo(1.0); System.out.println("Calculando el area del Circulo..."); X.calcularArea(); X.mostrarArea(); Triangulo Y=new Triangulo(2.0,3.0); System.out.println("Calculando el area del Triangulo..."); Y.calcularArea(); Y.mostrarArea(); } }

49

Problema: Elaborar un programa que utilice applet para dibujar un mensaje en la pantalla
Archivo en JAVA: //Programa #31: AppletSimple.java package Applet; import java.awt.*; import java.applet.*; public class AppletSimple extends Applet{ public void paint(Graphics g){ g.drawString("Java facilita los applets",30,50); showStatus("Esto se muestra en la ventana de estado"); } }

50

Archivo en HTML: <!--Programa #31: AppletSimple.html--> <html> <head> <title>Dibuja una Cadena</title> </head> <body> <h1>Cadena</h1> <hr> <applet code="Applet/AppletSimple.class" width=500 height=300>alt="Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> <hr> <a href="Applet/AppletSimple.java">El c&#243;digo fuente...</a> </body> </html>

51

Problema: Elaborar un programa que utilice un Applet con diferentes botones y que pueda reconocer cual de estos botones es el que se oprime.
//Programa #32: ButtonsDemo.java package Applet; import java.awt.*; import java.awt.event.*; import java.applet.*; public class ButtonsDemo extends Applet implements ActionListener, KeyListener{ String msg="Caja de Resultados..."; Button si, no, quiza; TextField text; public void init(){ si=new Button("Si"); no=new Button("No"); quiza=new Button("Tal vez"); text=new TextField(msg); si.addActionListener(this); no.addActionListener(this); quiza.addActionListener(this); si.addKeyListener(this); no.addKeyListener(this); quiza.addKeyListener(this); add(si); add(no); add(quiza); add(text); } public void actionPerformed(ActionEvent ae){ String str=ae.getActionCommand();

52

if(str.equals("Si")){ msg="Ha pulsado Si!"; } else if(str.equals("No")){ msg="Ha pulsado No!"; } else{ msg="Ha pulsado Tal vez!"; } repaint(); } public void keyPressed(KeyEvent ke){ if(ke.getSource() instanceof Button){ int k=ke.getKeyCode(); if(k==KeyEvent.VK_ENTER){ Button jb=(Button)ke.getSource(); msg="Ha pulsado "+jb.getLabel().toLowerCase()+"!"; } } repaint(); } public void keyReleased(KeyEvent ke){} public void keyTyped(KeyEvent ke){} public void paint(Graphics g){ text.setText(msg); } } <!--Programa 32: AppletSimple.html--> <html> <head> <title>Dibuja una Cadena</title> </head> <body> <h1>Cadena</h1> <hr> <applet code="Applet/ButtonsDemo.class" width=500 height=300>alt="Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> <hr> <a href="Applet/ButtonsDemo.java">El c&#243;digo fuente...</a> </body> </html>

53

Problema: Elaborar un programa que utilice un Applet que contenga cuatro cajas de seleccin y que pueda reconocer cuales de estas cajas se encuentran seleccionadas.
//Programa #33: checkBoxDemo.java package App; import java.awt.*; import java.awt.event.*; import java.applet.*; public class CheckBoxDemo extends Applet implements ItemListener{ String msg=new String(); Checkbox Win98, WinNT, Solaris, Mac; public void init() { Win98=new Checkbox("Windows 98",true); WinNT=new Checkbox("Windows NT/2000"); Solaris=new Checkbox("Solaris"); Mac=new Checkbox("MacOS"); add(Win98); add(WinNT); add(Solaris); add(Mac); Win98.addItemListener(this); WinNT.addItemListener(this); Solaris.addItemListener(this); Mac.addItemListener(this); } public void itemStateChanged(ItemEvent ie) { repaint(); } public void paint(Graphics g){ msg="Estado actual: "; g.drawString(msg,30,50);

54

msg=" Windows 98:" + Win98.getState(); g.drawString(msg,30,75); msg=" Windows NT/2000: " + WinNT.getState(); g.drawString(msg,30,100); msg=" Solaris: " + Solaris.getState(); g.drawString(msg,30,125); msg=" MacOS: " + Mac.getState(); g.drawString(msg,30,150); } } <!--Programa 33: CheckBoxDemo.html--> <html> <head> <title>CheckBoxDemo</title> </head> <body> <h1>CheckBoxDemo</h1> <hr> <applet code="App/CheckBoxDemo.class" width=500 height=300>alt="Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> <hr> <a href="App/CheckBoxDemo.java">El c&#243;digo fuente...</a> </body> </html>

55

Problema: Elaborar un programa que utilice un Applet que contenga dos listas de seleccin y que pueda reconocer cuales elementos de estas listas se encuentran seleccionadas.
//Programa #34: ChoiceDemo.java package App; import java.awt.*; import java.awt.event.*; import java.applet.*; public class ChoiceDemo extends Applet implements ItemListener { String msg=new String(); Choice os=new Choice() , browser=new Choice(); public void init() { os.add("Windows 98"); os.add("Windows NT/2000"); os.add("Solaris"); os.add("MacOS"); os.addItemListener(this); add(os); browser.add("Explorer"); browser.add("Netscape"); browser.add("Mozilla"); browser.addItemListener(this); add(browser); } public void itemStateChanged(ItemEvent ie) { repaint(); } public void paint (Graphics g) { msg="Sistema actual: "; msg+=os.getSelectedItem(); g.drawString(msg,30,50); msg="Navegador actual: "; msg+=browser.getSelectedItem(); g.drawString(msg,30,75); } } <!--Programa 34: ChoiceDemo.html--> <html> <head> <title>ChoiceDemo</title> </head> <body> <h1>ChoiceDemo</h1> <hr> <applet code="App/ChoiceDemo.class" width=500 height=300>alt="Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> <hr> <a href="App/ChoiceDemo.java">El c&#243;digo fuente...</a> </body> </html>

56

Problema: Elaborar un programa que utilice un Applet que contenga cuatro cajas de seleccin y que pueda reconocer cuales de estas se encuentran seleccionadas.
//Programa #35: CBGroupDemo.java package App; import java.awt.*; import java.awt.event.*; import java.applet.*; public class CBGroupDemo extends Applet implements ItemListener { Checkbox Win98, WinNT, Solaris, Mac; CheckboxGroup cbg=new CheckboxGroup(); public void init() { Win98=new Checkbox("Windows 98",cbg,true); WinNT=new Checkbox("Windows NT/2000",cbg,false); Solaris=new Checkbox("Solaris",cbg,false);

57

Mac=new Checkbox("MacOS",cbg, false); add(Win98); add(WinNT); add(Solaris); add(Mac); Win98.addItemListener(this); WinNT.addItemListener(this); Solaris.addItemListener(this); Mac.addItemListener(this); } public void itemStateChanged(ItemEvent ie) { repaint(); } public void paint(Graphics g) { String msg="Estado actual: "; msg+=cbg.getSelectedCheckbox() .getLabel(); g.drawString(msg,30,50); } } <!--Programa 35: CBGroupDemo.html--> <html> <head> <title>CBGroupDemo</title> </head> <body> <h1>CBGroupDemo</h1> <hr> <applet code="App/CBGroupDemo.class" width=500 height=300>"Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> <hr> <a href="App/CBGroupDemo.java">El c&#243;digo fuente...</a> </body> </html>

58

Problema: Elaborar un programa que utilice un Frame que contenga dos cajas de texto y un botn con el objetivo de que la misma aplicacin permita comparar dos cadenas.
//Programa #36: ButtonDemo.java import java.awt.*; import java.awt.event.*; public class ButtonDemo extends WindowAdapter implements ActionListener { private Frame f; private Button b1, b2; private TextField t1, t2, t3; private Label l1, l2; public ButtonDemo() { f=new Frame("Compara dos cadenas ! "); b1=new Button("Aceptar"); b2=new Button("Limpiar"); b1.addActionListener(this); b2.addActionListener(this); t1=new TextField(45); t2=new TextField(45); t3=new TextField(45); t3.setEnabled(false); l1=new Label("Cadena 1:"); l2=new Label("Cadena 2:"); } public void muestra() { f.setSize(400,300); f.setResizable(true); f.setLayout(new FlowLayout()); f.setBackground(Color.blue); f.setVisible(true);

59

f.addWindowListener(this); f.add(l1); f.add(t1); f.add(l2); f.add(t2); f.add(b1); f.add(t3); f.add(b2); } public void actionPerformed(ActionEvent ae) { String str=ae.getActionCommand(); if (str.equals("Aceptar")) { String s1=t1.getText(); String s2=t2.getText(); if (s1.compareTo(s2)==0) t3.setText("Cadenas Iguales"); else t3.setText("Cadenas Diferentes"); } if (str.equals("Limpiar")) { t1.setText(""); t2.setText(""); t3.setText(""); } } public void windowClosing(WindowEvent e) { System.exit(0); } public static void main(String args[]) { ButtonDemo obj = new ButtonDemo(); obj.muestra(); } } <!--Programa 36: ButtonDemo.html--> <html> <head> <title>ButtonDemo</title> </head> <body> <h1>BottonDemo</h1> <hr> <applet code="ButtonDemo.class">"Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> <hr> <a href="ButtonDemo.java">El c&#243;digo fuente...</a> </body> </html>

60

Problema: Elaborar un programa que utilice un JApplet que permita seleccionar solo una de las cuatro operaciones aritmticas bsicas para que entonces pueda ser aplicada dados dos nmeros cualesquiera.
//Programa #37: OperationDemo.java package App; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class OperationDemo extends JApplet implements ActionListener { private JLabel j11, j12; private JTextField jt1, jt2, jt3; private JButton jb1, jb2; private JRadioButton rb1, rb2, rb3, rb4; private ButtonGroup bg; public void init() { Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); rb1=new JRadioButton("Sumar"); contentPane.add(rb1); rb2=new JRadioButton("Restar"); contentPane.add(rb2); rb3=new JRadioButton("Multiplicar"); contentPane.add(rb3); rb4=new JRadioButton("Dividir"); contentPane.add(rb4); bg=new ButtonGroup(); bg.add(rb1); bg.add(rb2); bg.add(rb3); bg.add(rb4); j11=new JLabel("Introduzca la cantidad # 1"); contentPane.add(j11); jt1=new JTextField(40); contentPane.add(jt1); j12=new JLabel("Introduzca la cantidad # 2"); contentPane.add(j12); jt2=new JTextField(40);

61

contentPane.add(jt2); jb1=new JButton("Aceptar"); jb1.addActionListener(this); contentPane.add(jb1); jt3=new JTextField(40); jt3.setEditable(false); contentPane.add(jt3); jb2=new JButton("Limpiar"); jb2.addActionListener(this); contentPane.add(jb2); } public void actionPerformed(ActionEvent ae) { boolean flag=false; if(rb1.isSelected()==true) flag=true; if(rb2.isSelected()==true) flag=true; if(rb3.isSelected()==true) flag=true; if(rb4.isSelected()==true) flag=true; if(flag==false) { JOptionPane.showMessageDialog(null, "Seleccione alguna operacion del menu..."); return; } JButton jb=(JButton)ae.getSource(); String txb=jb.getText(); if (txb.equals("Aceptar")) seleccionar(); if (txb.equals("Limpiar")) limpiar(); } public void seleccionar() { java.lang.Double A,B,C=0.0d; String s1=jt1.getText(); String s2=jt2.getText(); if (s1.length()==0) { JOptionPane.showMessageDialog(null, "Introduzca la primera cantidad numerica..."); return; } if (s2.length()==0) { JOptionPane.showMessageDialog(null, "Introduzca la segunda cantidad numerica..."); return; } try{ A=Double.parseDouble(s1); } catch(NumberFormatException exc1) { JOptionPane.showMessageDialog(null, "Introduzca la primera cantidad numerica..."); return; } try{ B=Double.parseDouble(s2); } catch(NumberFormatException exc2) { JOptionPane.showMessageDialog(null, "Introduzca la segunda cantidad numerica...");

62

return; } if (rb1.isSelected()==true) C=A+B; if (rb2.isSelected()==true) C=A-B; if (rb3.isSelected()==true) C=A*B; if (rb4.isSelected()==true) C=A/B; jt3.setText(C+""); } public void limpiar(){ jt1.setText(""); jt2.setText(""); jt3.setText(""); } } <!--Programa 37: OperationDemo.html--> <html> <head> <title>OperationDemo</title> </head> <body> <h1>OperationDemo</h1> <hr> <applet code="App/OperationDemo.class" width=500 height=300>"Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> <hr> <a href="App/OperationDemo.java">El c&#243;digo fuente...</a> </body> </html>

63

Problema: Elaborar un programa en Java que utilice un JFrame que permita seleccionar archivos java para poder entonces mostrar su contenido.
//Programa #38: FArchivo.java package App; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*;

64

public class FArchivo extends JFrame implements ActionListener,KeyListener{ private JTextArea jta; private JScrollPane jsp; private JButton jb; private JTextField jt1, jt2; public void menu(){ Container contentPane=getContentPane(); contentPane.setLayout(new FlowLayout()); jta=new JTextArea(); jta.setColumns(40); jta.setRows(10); jta.setEditable(false); jsp=new JScrollPane(jta); contentPane.add(jsp); jb=new JButton("Checar Opciones"); jb.addActionListener(this); jb.addKeyListener(this); contentPane.add(jb); jt1=new JTextField(40); jt1.setEnabled(false); contentPane.add(jt1); jt2=new JTextField(40); jt2.setEnabled(false); contentPane.add(jt2); setDefaultCloseOperation(EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent ae){ if(ae.getSource() instanceof JButton) selecciona(); } public void keyPressed(KeyEvent ke){ if(ke.getSource() instanceof JButton) selecciona(); } public void keyReleased(KeyEvent ke){} public void keyTyped(KeyEvent ke) {} public void selecciona(){ jta.setText(""); JFileChooser jfc=new JFileChooser(); jfc.setFileFilter(new FiltroJava()); int estado=jfc.showOpenDialog(null); if(estado==JFileChooser.APPROVE_OPTION){ File f=jfc.getSelectedFile(); String nom=f.getName(); String dir=f.getPath(); try{ FileReader archi=new FileReader(f); String cont=new String(); int ch='\0';

65

while((ch=archi.read())!=-1) cont+=(char)ch; jta.append(cont); jt1.setText(nom); jt2.setText(dir); } catch(Exception exc){ jta.append(exc.getMessage()); } } else{ jta.append("Dialogo para abrir archivo cancelado..."); jt1.setText(""); jt2.setText(""); } } } //Programa #38: TestFArchivo.java package App; public class TestFArchivo{ public static void main(String[] args) { FArchivo obj=new FArchivo(); obj.setTitle("Reconose cuales son los archivos de Java..."); obj.setSize(500,300); obj.setLocation(150,250); obj.setVisible(true); obj.menu(); } }

66

67

Problema: Elaborar un programa utilice un proceso y un subproceso para desplegar en un Applet 5 mensajes diferentes en intervalos diferentes de 2 segundos.
//Programa #39: AppletDemo.java package App; import java.applet.Applet; import java.awt.*; public class AppletDemo extends Applet implements Runnable{ private int count=0; private Thread worker; private String message="Iniciando..."; public void start(){ if(worker==null){ worker=new Thread(this); worker.start(); } } public void run(){ try{ do{ if (count==0) message="Hola, este codigo"; if (count==1) message="nos permitira"; if (count==2) message="resolver el examen"; if (count==3) message="del Applet con"; if (count==4) message="uso de Thread..."; setResults(); worker.sleep(2000); count++; } while(count<5); } catch(InterruptedException exc){

68

//System.out.println(sub.getName()+"interrumpido..."); } } public void paint(Graphics g){ Font f=new Font("SansSerif", Font.BOLD,24); g.setFont(f); g.drawString(message,75,125); } private void setResults(){ repaint(); } } <html> <head> <title>AppletDemo</title> </head> <body> <applet code="App/AppletDemo.class" width=500 height=300>Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> </body> </html>

69

70

Problema: Elaborar un programa que transmita un mensaje en forma de cadena utilizando un socket orientado a conexin.
//Programa #40: SimpleServer.java package App; import java.net.*; import java.io.*; public class SimpleClient{ public static void main(String[] args) { try{ //Abrir una conexion con el servidor en el puerto 12345 Socket s1= new Socket("127.0.0.1",12345); //conectar kon un socket para lectura BufferedReader br= new BufferedReader(new InputStreamReader(s1.getInputStream())); //leer la entrada e imprimirla en consola System.out.println(br.readLine()); //cerrar flujo y la conexion br.close(); s1.close(); } catch(ConnectException connExc){ System.err.println("No se puede conectar el servidor..."); } catch(IOException e){ //ignorar } } } //Programa #40: SimpleServer.java package App; import java.net.*; import java.io.*; public class SimpleServer{ public static void main(String[] args) { ServerSocket s = null; //registrar el servicio en el puerto 12345 try{ s = new ServerSocket(12345); } catch (IOException e){ e.printStackTrace(); } //correr el ciclo para esperar y aceptar for (; ; ) { try { //esperar por una conexion Socket s1=s.accept();

71

//Obtener el flujo de salida asociado al socket OutputStream out = s1.getOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out)); //enviar una cadena bw.write("Hello, net world!"); //cerrar la conexion del cliente pero no para el servidor bw.close(); s1.close(); } catch(IOException e){ e.printStackTrace(); } } } } <!--Programa #40: SimpleServer.java--> <html> <head> <title>SimpleServer</title> </head> <body> <applet code="App/SimpleServer.class" width=500 height=300>"Tu explorador reconoce el &#60;APPLET&#62; pero no lo ejecuta por alguna raz&#243;n"</applet> <hr> <a href="App/SimpleServer.java">El c&#243;digo fuente...</a> </body> </html>

72

You might also like