CÓDIGOS DE PROGRAMAS en Java Efraín Soto Apolinar

Códigos de Programas en el lenguaje Java
Compilados por

Efraín Soto Apolinar PISIS

Monterrey, N.L., México. 2009

Índice de contenidos

1 Introducción 1.1 Conceptos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 1.1.2 Conceptos de programación . . . . . . . . . . . . . . . . . . . . . . Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 8 8 10 11 12 13 14 14 15 17 18

1.2 Palabras reservadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3 Ventajas de usar Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 If then else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5 Clase Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Códigos 2.1 Programación científica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PISIS
Códigos de programas en java

. . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . Códigos de programas en java . . . .14 RandomArray . . . . . . . .11 CountLetter . . . . . . . . . .6 2. . . . . . . . . . .2 Aproximación de π . . AlReves . . . . . . . . .5 Programas de muestra . . . . . . . . . . . . .1. . .10 CuentaPalabras . . . . . . . . .1. . .5. . . . papel y tijera . . . . . . . . 2. . . . . . . . .5. . . . . . .3 Sucesión de Fibonacci . 2. . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . 2. . . . Fibonacci (V. Diálogo . . . . . . . . . . . . . . . . . . . Entero . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 2. . . . . .5. . . . . . .5.12 LetterArithmetics . . . . . . . .4 Coeficientes binomiales y el triángulo de Pascal . . . . . Tu Nombre . . . . . . .5. . . . . . . . . . . Mensajes . . . . . . . . . .4 2. . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . .4 2. . . 18 19 22 23 25 26 29 29 30 30 31 31 32 33 34 35 35 36 36 37 38 38 PISIS 2. . . . Strings . . . . . . .3 2. . . . . . .8 2.5. . . . . . . . . . . . . . . . 2. . . . . .5. . . . . 2. . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Distribucion . . . . . . . . . . . .5. . . . . . . . . . .5 2. .1 2. . .7 2. . . . . . . . . . . 2. . . . . . . .2 2. .5. . . . . . . . . .3 Factoriales y aproximación del número e .5. . . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Comparar . .2 2. . . . . . .9 Novia . . . . . . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . .5. . . . . . . Detector de números primos . . .5. . . . . . . . . . . . . . . . . 2. . . .2) . . . . . Piedra. . . . . . . IgnoreSpaces . . . . . . . . . . . . . . . . . .

. . . . . . . .java . .17 Cards . . . .5. . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . 2. . . . . . .16 cloneArray . .5. . . . . 39 40 41 42 44 46 47 50 51 52 52 52 53 56 Términos de uso . . . . . . . . . . . 3 Gráficos 3. . . .20 Card4. . . . . . . . . 2. . . . . . . . . . . . . . . . . . .21 Complex . . . . . . . . . . . . . . . . . .19 Card3. . . . . .3 HelloWorld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . .5. . . . . 2. . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . 2. . . . . . . .java . . . . . . . . . . . . . . . . .18 Cards. . . . . . . . . . . . HelloPanel . . . . . . . . . 2. . . . . . . . .23 Estructura . . . . . . . . . . . .5. . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 3. . . . . . . . .1. . . . . . . . . . . . . .5. . . . . . . . .2 3. .5. . . . . .1 Swing . . . MyJButton . . . . . . . . . . . . . . . .22 Fraccion .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . .java . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . .

6 Códigos de programas en java PISIS .

Uno Introducción PISIS Códigos de programas en java .

1 Conceptos de programación Los conceptos que debes entender para iniciarte en el arte de la programación son: Definición 1.1 CONCEPTOS BÁSICOS En este apartado se dan algunos conceptos que necesitas conocer para poder aprovechar la lectura de este material. Los primeros tienen que ver con las bases de programación y después se incluyen los que conciernen al lenguaje java.1. Códigos de programas en java PISIS .8 Introducción 1. Definición 1.1.2 COMPILADOR Es el programa de computadora que traduce las instrucciones que nosotros le damos en un lenguaje específico. 1.1.1 ALGORITMO Una sucesión ordenada de instrucciones para resolver un problema o una tarea. Es el procedimiento que se debe realizar para resolver un problema específico.1.1. El programa fuente también se conoce como código fuente. En este texto encontrarás el programa fuente para resolver muchos problemas. Se presentan diversas secciones con contenidos igual de importantes.1. Puedes pensar en un algoritmo como si se tratara de una receta.1.3 PROGRAMA FUENTE Es el código que tú vas a escribir. Definición 1.

puede tratarse solamente de una parte del programa.1. pero existe la posibilidad de que sí existan.1.1.1.1.6 COMPILAR Indicar a la computadora que verifique que el programa fuente no contenga errores. Esta tarea siempre la realizará un software (el compilador). Definición 1. Definición 1. Evidementemente.1 Conceptos básicos 9 Definición 1. PISIS Códigos de programas en java . un programa en javadebe correrse en un compilador de ese lenguaje. el compilador no se da cuenta. En otras palabras. Puedes imaginar que la sintaxis son las reglas de gramática de ese lenguaje.7 CORRER (UN PROGRAMA) Ordenar a la computadora que ejecute las instrucciones indicadas por el código de un programa. (Yo utilizo el Dev-java. En este material solamente encontrarás código en java.1. en el caso de que tú hayas cometido el error de escribir un + en lugar de un *.1.4 CÓDIGO Es un conjunto de instrucciones en algún lenguaje de alto nivel. Por ejemplo.) Algunas veces el compilador no encontrará errores.5 SINTAXIS Son las reglas de acuerdo a las cuales debes escribir el programa fuente.1. que es gratuito. Cada lenguaje de programación tiene su sintaxis. Definición 1. las computadoras todavía no pueden leer tu mente. porque no sabe realmente qué debe hacer el programa. El código no necesariamente es un programa completo.1.

1.2 Variables Definición 1. Códigos de programas en java PISIS . dígitos o el símbolo ’_’. un identificador debe empezar con una letra o el símbolo: ’_’ y los demás caracteres deben ser letras. Por ejemplo.1.1.8 MENSAJE DE ERROR Es un mensaje que el compilador te dará cuando encuentre errores en el programa fuente.1.10 ERRORES LÓGICOS Los que comete el programador cuando traduce el algoritmo al lenguaje java. Definición 1.11 IDENTIFICADOR Es el nombre que el programador asigna a un valor dentro de un programa. simplemente no realiza la tarea que debe realizar. Cuidado con esto. El programa realmente no hace lo que el algoritmo indica. Estos mensajes te ayudan a corregir el código.1. si escribes.. cometiste un error de sintaxis (de acuerdo a la sintáxis del lenguaje GWBasic).. 1.1. Go To en lugar de GOTO. Definición 1. Tal vez no tenga errores de sintáxis.2.10 Introducción Definición 1.9 ERROR DE SINTÁXIS Ocurre cuando el código no está completamente escrito de acuerdo a las reglas de sintaxis del mismo.1.1. En java.

1. pero generan errores de compilación cuando se convierte código a C++. sino valores que tampoco pueden utilizarse como identificadores.1. Estas no son palabras clave.2.2 PALABRAS RESERVADAS abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while assert Las palabras const y goto no puede utilizarse en java. true y false. Definición 1.12 VARIABLE Es una herramienta de programación utilizada para asignar valores (no necesariamente numéricos) a letras o cadenas de letras.1.2. PISIS Códigos de programas en java . Otras tres palabras que cabe mencionar aquí son null.1. Una constante puede ser de cualquiera de los tipos de datos definidos en java. Las variables se clasifican de acuerdo al tipo de valor que almacenan.2 Palabras reservadas 11 Definición 1.13 CONSTANTE Es un valor que no cambia durante la ejecución del programa.

141592654 2. dígitos.1 Tipos de datos Variable short int float double long char string boolean Rango −32 767 a 32 767 −2 147 483 647 a 2 147 483 647 10−38 a 1038 10−308 a 10308 10−4932 a 104932 \u000 a \ufff No aplica False/True Precisión No Aplica No Aplica 7 dígitos 15 dígitos 19 dígitos No aplica No aplica No aplica Ejemplo 23 −4 3. ya que ésta no es una palabra clave. 1. Un identificador debe iniciar con una letra.718281828 ’a’ ’Hola Amigo. diferencia entre mayúsculas y minúsculas.12 Introducción Definición 1. i.2. ii. iii.2.’ False PISIS Códigos de programas en java .1 IDENTIFICADOR Las palabras que utilizamos para indicar los nombres de las variables. la palabra clave transient inicia con letra minúscula. Un identificador puede consistir de letras. o el signo de pesos ($). ni igual a las palabras null. Un identificador no debe ser igual a una palabra clave. Para definir un identificador se deben seguir las siguientes reglas. podemos definir como identificador a la palabra Transient.1416 3. Dado que el lenguaje java es Case Sensitive. true o false. el símbolo _. el signo _ o el signo de pesos ($). es decir.

Esto permite al programador concentrarse en crear los objetos. hacer que interaccionen como deben y en preocuparse por lo que debe hacer el programa. java te ayuda porque no requieres del manejo de memoria. te simplifica latarea como programador. En otras palabras. porque utiliza un colector de basura que verifica cuándo un objeto no tiene alguna referencia y por tanto no se requiere su uso. Si sabes programar en C o en C++ aprender java es muy sencillo.3 VENTAJAS DE USAR JAVA Java es un lenguaje sencillo.3 Ventajas de usar Java 13 1. PISIS Códigos de programas en java .1.

} // Después continúa con las instrucciones // que están enseguida. (condicion){ Realiza esto si la condicion es verdadera código que se ejecutará después. En caso de que la condición condicion sea verdadera el programa va a realizar las instrucciones que están dentro del argumento entre llaves después de la condición..14 Introducción 1. 1. pero si es falsa.. } else{ // Si la conición es falsa // realiza las instrucciones que están // en este argumento. Siempre debe haber una variable booleana que va a determinar qué hacer.. Códigos de programas en java PISIS ..4 FLUJO Para determinar el flujo de las instrucciones en un programa utilizamos diferentes instrucciones.4... El siguiente código nos ayuda con una segunda posibilidad. entonces realizará las instrucciones que están en el argumento después de la palabra clave else: \if(condicion){ // Si la condicion es verdadera // realiza las instrucciones que están // en este argumento.. de acuerdo a la instrucción que se utilice en cada caso..1 // if \\ } // If then else codigo que se está ejecuntando...

valor absoluto de a (double) valor absoluto de a (float) valor absoluto de a (int) arcocoseno de a (double). π ≈ 3. long b) min(double a.141592654. El resultado está entre 0 y π. e a . mayor de los valores a (float) y b (float). float b) max(long a.5 Clase Math 15 1. El resultado está entre −π/2 y π/2. double b) max(float a. logarítmicas y trigonométricas.718281828 base de los logaritmos naturales. El resultado está entre −π/2 y π/2. arcoseno de a (double).5 CLASE MATH En java una clase que utilizaremos muy frecuentemente es la clase Math. siendo a un (double). mayor entero menor o igual a a (double). raíz cúbica de a (double) menor entero mayor o igual a a (double). E PI abs(double a) abs(float a) abs(int a) acos(double a) asin(double a) atan(double a) cbrt(double a) ceil(double a) cos(double a) cosh(double a) exp(double a) floor(double a) log(double a) log10(double a) max(double a. arcotangente de a (double). mayor de los valores a (long) y b (long). siendo a un (double). siendo a un (double).1. menor de los valores a (double) y b (double). long b) PISIS Códigos de programas en java . menor de los valores a (float) y b (float). menor de los valores a (long) y b (long). log10 (a ). mayor de los valores a (double) y b (double). double b) min(float a. coseno de a (double) coseno hiperbólico de a (double). float b) min(long a. Algunos de los métodos definidos son los siguientes: Método: Regresa: e ≈ 2. En esta clase se contienen métodos (funciones matemáticas) de uso frecuente como las exponenciales. ln(a ).

0) (double) igual al entero más cercano a a (double). siendo a un (double) y b un (double). (int) más cercano a a (float).16 Método: Regresa: Introducción pow(double a. convierte a radianes angDeg que es un ángulo medido en grados (double). seno hiperbólico de a (double). (long) más cercano a a (double). tangente de a (double). double b) random() rint(double a) round(double a) round(float a) sin(double a) sinh(double a) tan(double a) toDegrees(double angRad) toRadians(double angDeg) a b .0. convierte a grados angRad que es un ángulo medido en radianes (double). seno de a (double). Códigos de programas en java PISIS . un (double) aleatorio en el intervalo [0. 1.

Dos Códigos PISIS Códigos de programas en java .

Scanner.1 PROGRAMACIÓN CIENTÍFICA Los siguientes códigos fueron realizados para practicar mi programación. class Fibonacci { static Scanner input = new Scanner(System.1. Códigos de programas en java PISIS .18 Códigos 2. Objetivo Escribir un programa en java al cual el usuario define el índice n y el programa imprime en la pantalla el valor de F (n). Este programa permite que el usuario de varios valores de n..in).. 2.util. Enseguida se muestra en código en el lenguaje java. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /* *Programa Fibonacci * * Este programa genera la sucesión de * Fibonacci * * Fecha: 26 de marzo de 2008 * */ import java. Serie de Fibonacci. usando los ejercicios que se quedaron de tarea en el curso de programación científica impartida por Dra. Elisa Schaeffer. por lo cual la serie comienza con: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946.1 Sucesión de Fibonacci La serie de Fibonacci se define por la ecuación recursiva siguiente: F (n) = F (n − 1) + F (n − 2) Los primeros elementos son F (0) = 0 y F (1) = 1. // // Genera los números de Fibonacci public static void main(String[] args) { int b4 = 0.

.out. intente de nuevo..nextInt().out. System."). Esto significa que el número 1 NO es primo. b4 = now .print("de Fibonacci desea que se impriman? ").\n").. Por ejemplo. Para esta tarea considero la siguiente definición: Definición 2. 1 Este código compila y funciona correctamente en el JCreator Ver. int i.out. 1876953 = 3 ∗ 13 ∗ 17 ∗ 19 ∗ 149 donde todos los factores son primos. int n. 4.out.2.println("Introduzca un entero positivo. n = input.2 Detector de números primos Objetivo: Escribir un programa en java1 al cual el usuario define un número entero positivo n y el programa determina si es o no primo.").1. i++) { System.. Códigos de programas en java PISIS .println("Por favor.out. } } } 2. System. } // end for for (i = 0 .50. for (. now = b4 + now.b4. i <= n .println("\n\nCuantos terminos de la sucesion"). System. dado que tiene solamente un divisor.1...010con JDK 6.out. if (n <= 0){ System.1 Programación científica 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 19 int now = 1.2.. System.1 NÚMERO PRIMO Es un número natural que tiene exactamente dos divisores naturales.println("a_" + i + " = " + now). } break.){ // hasta que introduca un numero positivo.println("\n\nError en argumento.

println("\n\nError en argumento. public class primos { static Scanner input = new Scanner(System.out. System. System. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 /** * @(#)primos.. De nuevo. N.").out.20 No se requiere.util.print("\nEste programa calcula indica si"). el número 1 NO es compuesto.00 * Fecha: 26 de marzo de 2008.nextInt().java * * * @author: Efraín Soto Apolinar * @version 1. int[] factor = new int[20].2 NÚMERO COMPUESTO Es un número natural que tiene más de dos divisores naturales..println("Por favor.Scanner. pero para no dejar a un lado: Códigos Definición 2. if (n <= 0){ System. continue. divisor.2.. System.println("Introduzca un entero positivo. n = input.out.out.")..out. prime. pues NO tiene más de dos divisores naturales. Enseguida se muestra el programa en el lenguaje java.. */ import java.\n"). System. */ public primos() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int n.").in). Códigos de programas en java PISIS . /** * Creates a new instance of <code>primos</code>.. for(. i.print("\n\nIngresa un entero positivo: ").out.1. intente de nuevo.. Verificar si un número es primo.){ // Hasta que ingrese un entero positivo System.print("\nun numero dado es primo o no. j.

"). N = N/divisor....out.. System. i = 0. i++. introduce un numero entero positivo.print(".print("\n\n\nEl numero " + n + " no es primo.out.print("\nEl numero 1 No es primo. return. } // verifico que no se divida por impares."). divisor = 2. N = N / divisor.out. while (N%2 == 0){ factor[i]=divisor. //Inicio el indice del arreglo // Reinicio el arreglo factor[20] for (j=0.pero tampoco es compuesto.print("\n\n\n" + n + " = ")... // verifico que el numero ingresado sea positivo. System.out.out.. prime = 1.j++){ factor[j]= 0. // Nueva variable para modificarla.print(factor[j]).\n\n\n").. for (j=0. } prime = 0.j<=19.j++){ System.. } // N = n."). divisor = 3. if (n<0){ System... } divisor = divisor + 2.1 Programación científica 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 21 } break. return.. } // verifico que no sea par.. while (N >= divisor){ while (N%divisor == 0){ factor[i]=divisor. } // Ahora imprimo los factores. if (divisor%3 == 0) divisor = divisor + 2.. } if (n==1){ System.. PISIS Códigos de programas en java .... if (i>=2){ System. System..2..").print("\nPor favor.print("\nError en argumento..j<i. i++.. // Supongo que el numero NO es primo. prime = 1. // reinicio el indice i j = 0..out..out.

Juego Piedra – papel – tijera. } } } 2. } } System. public class tres { static Scanner input = new Scanner(System.22 94 95 96 97 98 99 100 101 102 103 104 105 Códigos if (factor[j+1]!=0){ System. /** * Creates a new instance of <code>tres</code>.out. Enseguida se muestra el código de este programa en el lenguaje java: /** * @(#)tres.out. // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Códigos de programas en java PISIS .print("El numero " + n + " es primo.. */ public tres() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int usuario.\n\n\n").print("\n\n\n"). * @date: 27 de marzo de 2008.. } if (i == 1){ System.3 Piedra. papel y tijera Objetivo: Escribir un programa en java que juega interactivamente piedra-papel-tijera con el usuario.out.java * * * @author: Efraín Soto Apolinar.Scanner.print(" * ").in).util.compu. */ import java.1.

.print("\n\nPresionaste <<0>>...out.print("\n\n1 representa piedra.Papel o tijera")..print("\n2 representa papel.. } System..print("\n\nAdios. System. System.print("\n\nIntroduce tu jugada.out.print("\nPor favor. System..\n\n").print("\nPresiona 0 para salir.out. continue.."). System..){ // for infinito System..print("\n\nYo gano!!!\n").")......out. for (. } } 2.out."). } // //compu = (rand() % 3) + 1...print("\n\n\nEste programa juega interactivamente")...print("\ncon el usuario..print("\n\nyo elijo tijera.out.print("\n\nYo gano!!!\n")."). System.\n\n\n"). continue."). usuario = input. System.. } // termina el for. System. System.").2 Aproximación de π 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 23 System.out. System. // if ((usuario == 1)){ System..").out.out.out.print("\n\nYo gano!!!\n").print("\n\nyo elijo papel. intenta de nuevo.."). System.\n").out..2..print("\n3 representa tijera.out.out.nextInt().print("\n\nyo elijo piedra. System.. } if (usuario == 2){ System. } if (usuario == 3){ System.out. System.print("\nError en Argumento. continue. if (usuario == 0){ // hay que salir..out. break.out..")......out.out.")..2 APROXIMACIÓN DE π Enseguida se muestra el código de este programa en el lenguaje java: PISIS Códigos de programas en java .print("\n\n\nPiedra .

0 * i + 6. i++){ a = approx.0) . System.out. // for (i = 0 .0)) * Math.out.0/(8.Scanner. approx=approx+(4. int i.util. */ public cuatro() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here double approx = 0.nextInt().\n"). /** * Creates a new instance of <code>cuatro</code>.print("\nBailey ..in).0)-2. System.out.pow(1.0 * i + 4. System.out.java * * * @author: Efraín Soto Apolinar * @date: 27 de marzo de 2008. System.n.out.0 * i + 1. break.1.0/(8. i < n . // System.print("porque el valor de la aproximación no cambia. public class cuatro { static Scanner input = new Scanner(System.out. a.0) ..print("\n\nSolamente se realizaron " + i + " iteraciones\n").print("\ndel valor de PI usando la formula de"). } }// Termina el for.print("\nIntroduce el valor de n: ").1. } } Códigos de programas en java PISIS .0/(8."). */ import java.0 * i + 5.Borwein .print("\nIteracion " + (i+1) + " = " + approx).out.. System.0/16.24 Códigos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 /** * @(#)cuatro.0.0/(8.out.print("\n\n\nEl valor aproximado es: " + approx). if (a == approx){ System.i). System. n = input..print("\nEste programa calcula una aproximacion").Plouffe.

2.out.out. Enseguida se muestra el código de este programa en el lenguaje java: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 /** * @(#)cinco...nextInt(). // System. // for (i = 0 . System.java * * * @author: Efraín Soto Apolinar.print("\ndel valor de la base neperiana").. System. */ public cinco() { } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here double e = 0. j. approx. n.print("\nEste programa calcula una aproximacion").print("\nusando la serie de MacLaurin.3 Factoriales y aproximación del número e 25 2. int i.."). /** * Creates a new instance of <code>cinco</code>. double factorial.Scanner. i <= n-1 .in). // n = input.print("\nIntroduce el numero de iteraciones: "). PISIS Códigos de programas en java .out.. i++){// Iteraciones. // reinicio el factorial.util.out. * @date: 27 de marzo de 2008 */ import java. public class cinco { static Scanner input = new Scanner(System.3 FACTORIALES NÚMERO e Y APROXIMACIÓN DEL Objetivo: Escribir en ANSI-C un programa que calcula una aproximación de e utilizando su expansión Taylor ecuación: 1+1+ 1 1 1 + + + ··· 2! 3! 4! así que el usuario controle de alguna manera la exactitud de la aproximación.. System.

. k ). for (j = 1.4 COEFICIENTES BINOMIALES Y EL TRIÁNGULO DE PASCAL Objetivo: Escribir un programa en java que produce. 5) = 169 911) o las primeras n líneas del triángulo de Pascal: el elemento número k la línea número n del triángulo es exactamente C (n..0. según la elección del usuario. (por ejemplo C (31.26 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 Códigos factorial = 1. if (approx == e){ System..out.out..print("\n\nSolamente se realizaron " + i + " iteraciones\n"). factorial *= 1. break. definido como: n k = n! k ! (n − k )! con valores de n y k definidos por el usuario. }// Termina el for. System.\n").0 / j.java * * * @author: Efraín Soto A.print("porque el valor de la aproximación no cambia. Códigos de programas en java PISIS . j++){ // calculo el factorial. System.out. Enseguida se muestra el código de este programa en el lenguaje java: 1 2 3 4 5 /** * @(#)ocho.print("\n\n\nEl valor aproximado es: " + e + "\n\n\n").out. } e += factorial. approx = e. j <= i. } System. k ).print("\nIteracion " + (i+1) + " ---> " + e). } } 2. o el coeficiente binomial C (n.

4 Coeficientes binomiales y el triángulo de Pascal 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 27 * @date: 27 de marzo de 2008 */ import java.print("\n\nIndique el numero de renglones a imprimir: ").print("\n\nEl valor de n no debe ser mayor a 99. b4[i] = 0. i < 100 ..util.n.out.\n").. i++){ now[i] = 0. now[0] = 1...Scanner..out. System.out.2. b4[1] = j . j++){ // Renglones.out.. // primer valor del renglon for (i = 1 .. } } // endfor.){ System. System. // reinicio los arreglos for (i = 0 . System.out. */ public ocho() { } /** * @param args the command line arguments */ public static void main(String[] args) { int i.print("\ntriangulo de Pascal.. for(..print("\nIntente de nuevo.. // coeficientes anteriores // System. public class ocho { static Scanner input = new Scanner(System.nextInt().print("\n\n\nLo siento. for (j = 1 . b4[i+1] != 0 ...").j.. j < n .print("\t1")...out. System. /** * Creates a new instance of <code>ocho</code>..").1. // reinicio los valores de los arreglos. // coeficientes actuales long[] b4 = new long[100]. } // inicio con los coeficientes binomiales.out. System.print("\t1\n\n").print("\n\nEste programa imprime los renglones del"). i++){ // Coeficientes now[i] = b4[i] + b4[i-1]. se sobrepaso la memoria.in). // contadores long[] now = new long[100]. } else{ break.. if (now[i] <= 0){ // verifico valor negativo. PISIS Códigos de programas en java . b4[0] = 1...out.."). if (n > 99){ System. n = input..

System... } System. } } } Códigos de programas en java PISIS .print("\n").print("\t " + now[i+1]). i <= j+1 . } now[i+1] = 1. for(i = 0 . } System. // imprimo el ultimo valor del renglon.print ("\t " + now[i]).28 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 Códigos return.out. i++){ // transfiero la informacion b4[i] = now[i].out.out.

} System..out. if (respuesta == ’s’ || respuesta == ’S’){ System.out.1 Novia Este programa muestra cómo mostrar información a través de la pantalla y cómo leer datos desde el teclado..")..out.5. Baby. char respuesta = ’ ’.").io.charAt(0).readLine().out.java * Descripción: * Este programa permite dar un caracter * y leerlo para procesarlo. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 /* * Archivo: Novio.5 PROGRAMAS DE MUESTRA En esta sección incluyo programas sencillos que estuve elaborando en las vacaciones de semana santa del 20092 .println("Hola a todos.println("Hasta la vista.2.println("Lastima que soy ajeno..out.in)).").").5 Programas de muestra 29 2. System..println("¿Tienes novia? [S/N]"). try{ respuesta = r. public class Novio{ public static void main(String [] args){ BufferedReader r=new BufferedReader(new InputStreamReader(System.*.println("\n\n").println("y yo me lo ahorro.out. System.println("Tu te lo pierdes. System. }catch(Exception ex){}. 2. } } 2 Del 06 al 17 de abril del 2009.").out. Códigos de programas en java PISIS . System. } else{ System.. * Autor: Efraín Soto Apolinar * Fecha: 06/Abr/09 * **/ import java.

println("Este es un mensaje en Java.. System.5. System. 1 2 3 4 5 6 7 8 9 10 import javax.swing.3 Tu Nombre Este programa permite al usuario introducir un nombre y envia un mensaje a través de una ventana..out. "Cual es tu nombre?").. tuNombre = JOptionPane.").println("Java funciona muy bien.out.out. // Aqui va tu nombre. public class Nombre { public static void main(String[] args) { String tuNombre. "Mucho gusto en conocerte..io.5.showMessageDialog(null.").showMessageDialog(null.2 Mensajes Este programa manda mensajes a través de la pantalla y muestra una ventana para enviar un mensaje al usuario...*. System. import javax.swing.out. public class Mensajes{ public static void main(String[] args){ System.").*."). } } 2.. JOptionPane. "Que te parece?"). " + tuNombre).. JOptionPane.*.showInputDialog(null. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /* Archivo: Mensajes. } } Códigos de programas en java PISIS .java * Descripción: * Este programa es una ayuda en el auxilio del * aprendizaje del envio de mensajes al monitor en Java * Autor: Efraín Soto Apolinar * Fecha: 05/Abr/09 **/ import java.println("Adios.println("Java sirve para muchas cosas.30 Códigos 2.

java * Descripción: * Este programa verifica que la cadena * ingresada por el usuario corresponda * a un entero. public class Dialogo { public static void main(String[] args) { JOptionPane. /* * Archivo: Entero.").showInputDialog(null..4 Diálogo Este programita muestra una caja con un mensaje al usuario.5 Programas de muestra 31 2. En caso de que no introduzca un entero envia un mensaje de error y vuelve a pedir el entero. while (true) { // hasta que obtenga un int valido String s = JOptionPane.").swing. * Fuente: 00Java Manual.PDF * Fecha: 06/Abr/09 * **/ import javax.showMessageDialog(null.5 Entero Este programa pide al usuario un entero. } } class Verificador{ public static int getInt(String mess) { int val. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 PISIS Códigos de programas en java . mess).5.getInt("Introduce un numero entero. } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2. System..2.out.println("\n\nz = " + z). /* * Archivo: Dialogo. public class Entero{ public static void main(String[] args) { Verificador v = new Verificador(). "Este es un mensaje importante.*.*. int z = v.swing..5.java * Este programa indica como se pueden * enviar mensajes por la pantalla a un usuario * Autor: Efrain Soto Apolinar * Fecha: 06 de abril de 2009 */ import javax..

. for (i = 0 ....getInt("Introduce un numero entero positivo.").println("Por favor. i++) { System.println("a_" + i + " = " + now). } break. now = b4 + now. break.6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Fibonacci (V.out. } b4 = now .parseInt(s). } } return val.out.. break.. int now = 1.){ n = v.java * Descripción: * Este programa genera la sucesión de * Fibonacci * Fecha: 06/Abr/09 */ import javax.println("terminos de la serie. System. System. } Códigos de programas en java PISIS . System. int i.println("\n\nSe ha rebasado la memoria. i <= n .showMessageDialog(null.println("\n\n"). // Salir del ciclo infinito..println("\n\nCuantos terminos de la sucesion").*..out....out.. class Fibonacci { public static void main(String[] args) { int b4 = 0.. System.. } // end for System."). "Error en argumento.. System. }catch (NumberFormatException nx) { JOptionPane..out.println("\nSe han impreso los primeros " + i).\n\n").b4. intente de nuevo. // salir del ciclo.out.print("de Fibonacci desea que se impriman? ").").out. if (now < 0){ System. int n..println("Introduzca un entero positivo.out. Verificador v = new Verificador().println("\n\nError en argumento. if (n <= 0){ System."). System.out. }//end getInt } 2.out.32 24 25 26 27 28 29 30 31 32 33 34 Códigos try { val = Integer.5. for (.").2) /* * Archivo: Fibonacci.swing.\n").

5. usando el * espacio en blanco como criterio de * separación. System.print(nombre.length(). mess). i++.charAt(i) != ’ ’){ System.showMessageDialog(null. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 /**Arhivo: Names. while (true) { // hasta que obtenga un int valido String s = JOptionPane. break.charAt(i)). }//end getInt } 2.\n").5 Programas de muestra 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 33 System."). apPat = "".print("\nApellido Paterno: "). } i++.2..parseInt(s).. System.out. // Salir del ciclo infinito.print("\nNombre de pila: ").. apMat = "". PISIS Códigos de programas en java . */ public class Names{ public static void main(String[] args){ String nombre = "Efrain Soto Apolinar".println("\nAdios. int size = nombre.charAt(i)..showInputDialog(null. * Fecha: 08/Abr/09.out. String nombrePila = "". } } return val.out.. "Error en argumento.. int i = 0. } } class Verificador{ public static int getInt(String mess) { int val. nombrePila = nombrePila + nombre.out. * Autor: Efraín Soto Apolinar. }catch (NumberFormatException nx) { JOptionPane. while (nombre.java * Descripción: * este programa divide una cadena de * caracteres en palabras.7 Strings El siguiente programa separa el cadenas de caracteres usando el espacio para reconocer dónde empieza una palabra. try { val = Integer.

length().charAt(i). System.charAt(i)).out.java * Descripción: * Este programa permite reescribir * una cadena de caracteres omitiendo * los caracteres.out. System.println("\nNombre de pila: " + nombrePila).print(nombre.out.out. } System.charAt(i).out.println("\nApellido Paterno: " + apPat). } } 2. i < size .out.charAt(i) != ’ ’){ System. */ public class IgnoreSpaces{ public static void main(String[] args){ String cadena = "2 * sin(x) + 1.println("\ncadena sin espacios = " + chain). System. String chain = "".out. i++.println("Va de nuez:"). while (i != size){ System.charAt(i) != ’ ’){ chain += cadena.out.5".print("\nApellido Materno: "). i++){ if (cadena. System.charAt(i)). i++.34 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Códigos while (nombre. } i++. * Fecha: 08/Abr/09.out. System.println("\n\n").5.8 IgnoreSpaces 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /**Archivo: IgnoreSpaces. System. System.print(nombre.println("\nApellido Materno: " + apMat).charAt(i).out. * Autor: Efraín Soto Apolinar. int size = cadena.println("\ncadena = " + cadena).println("\n"). for (int i = 0 . } } Códigos de programas en java PISIS . } } System. apMat = apMat + nombre.out.out. apPat = apPat + nombre.println("\n"). System.

java * Descripción: * Este programa cuenta cuántas palabras tiene una cadena * de caracteres usando el caracter ’ ’ como separador * entre palabras: numPalabras = numEspacios + 1. texto += "por el bosque cuando el lobo.5. int size = texto. } } PISIS Códigos de programas en java . while (i < size){ if (texto.out. int i = 0.charAt(i+1) != ’ ’){ numPalabras++.charAt(i) == ’ ’ && texto.. } System.println("Adios\n\n"). for (int i = size .charAt(i).println("\ncadena = " + cadena).. i--){ alReves += cadena. * Autor: Efraín Soto Apolinar.9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 AlReves /**Archivo: Backwards.out.".2.length(). int numPalabras = 1.out. No manches!!!".length(). } System. System. i >= 0 .5 Programas de muestra 35 2.10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 CuentaPalabras /**Archivo: CuentaPalabras. System. * Fecha: 08/Abr/09 */ public class Backwards { public static void main(String[] args){ String cadena = "Que pex compadre.println("alReves = " + alReves).5. * Autor: Efraín Soto Apolinar. int size = cadena.out. } } 2... * Fecha: 08/Abr/09 */ public class CuentaPalabras{ public static void main(String[] args){ String texto = "Un dia caperucita paso ".1 . String alReves = "".println("\n\nnumPalabras = " + numPalabras).java * Descripción: * Este programa reescribe una cadena de * caracteres en orden inverso. } i++.

for (int i = 0 .charAt(0). "En total aparece: " + total + " veces la ’" + caracter + "’"). } } 2.println("en la cadena: " + cadena). System.out.out.36 Códigos 2. i++){ if (cadena.charAt(i) == caracter){ total++.showInputDialog(null. public class CountLetter{ public static void main(String[] args){ String cadena = "".length() . "Introduce una cadena de caracteres").5.java * Descripción: * Este programa cuenta cuántas veces aparece * una letra en una cadena. * Fecha: 08/Abr/09 */ import javax.println("\nEn total aparece " + total + " veces la letra ’" + caracter + "’"). JOptionPane.*.11 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 CountLetter /**Archivo: CountLetter. "Indica el caracter a contar en la cadena:") ).java * Descripción: * Este programa muestra la forma en que se * pueden hacer conversiones de tipo char a * tipo int (entero) * Autor: Efraín Soto Apolinar. int valor = (int) letra. i < cadena. * Fecha: 09/Abr/09 */ public class LetterArithmetics{ public static void main(String[] args){ char letra = ’m’.5. cadena = JOptionPane.showMessageDialog(null.swing. } } System. Códigos de programas en java PISIS .12 1 2 3 4 5 6 7 8 9 10 11 12 13 LetterArithmetics /**Archivo: LetterArithmetics. int total = 0. * Autor: Efraín Soto Apolinar. char caracter = ’ ’.showInputDialog(null. caracter = (JOptionPane.

if (flag == 0) { System.out.*.println ("Los nombres son iguales").out. name1 = JOptionPane. System.println ("Los nombres son el mismo.out. "Los nombres son iguales").showMessageDialog(null. name2 + " va antes que " + name1).").equals (name2)) { System.println (name1 + " va antes que " + name2). name2 = JOptionPane.println("La letra " + letra + " tiene el valor: " + valor).out. JOptionPane. JOptionPane.5. JOptionPane. } } } PISIS Códigos de programas en java . System.swing.showMessageDialog(null.compareTo (name2).out.out.println (name2 + " va antes que " + name1). * Fuente: Think like a Computer Scientist (Java version) * * Modificaciones: Efraín Soto Apolinar.13 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Comparar /**Archivo: Comparar.println(letra .showInputDialog(null.2. } else if (flag > 0) { System. "Introduce un nombre (nombre1)").print("En el alfabeto tiene el indice: "). "Introduce un nombre (nombre2)"). if (name1. String name2 = "". name1 + " va antes que " + name2).showMessageDialog(null. * Fecha: 08/Abr/09 */ import javax.’a’).out. public class Comparar{ public static void main(String[] args){ String name1 = "". } } 2.5 Programas de muestra 14 15 16 17 18 19 37 System. } else if (flag < 0) { System.showInputDialog(null. } int flag = name1.java * Descripción: * Este programa compara dos cadenas de * caracteres (orden alfabético).

out.showMessageDialog(null.000 números * pseudoaleatorios y calcula su * histograma de frecuencias para * tener una idea de su dstribución.swing.5. * Fecha: 08/Abr/09 */ Códigos de programas en java PISIS . "Error en argumento. public class RandomArray{ public static void main(String[] args){ int n = 0. "Ingrese un numero entero:").java * Descripción: * Este programa genera 10. for (int i = 0 . while (true) { // loop until we get a valid int String s = JOptionPane. } } } 2.").out.38 Códigos 2.length . i++){ a[i] = Math.. try { n = Integer. } System. }catch (NumberFormatException nx) { JOptionPane. } } double[] a = new double[n].5.length .parseInt(s).showInputDialog(null..println(i + " " + a[i]). */ import javax. i < a. for (int i = 0 .14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 RandomArray /**Archivo: RandomArray. break. //double[] p = new RandomArray(10). i < a.java * Descripción: * Este programa genera un arreglo * de n números pseudoaleatorios * con distribución uniforme.random(). * Autor: Efraín Soto Apolinar. i++){ System.println("\nNumeros pseudoaleatorios:"). * Referencia: Think like a Computer Scientist (Java Version) * * Fecha: 08/Abr/09 * Modificaciones: Efraín Soto Apolinar.*.15 1 2 3 4 5 6 7 8 9 Distribucion /**Archivo: Distribucion.

i < 100000 . i++){ // generamos un numero pseudoaleatorio aleatorio = Math.*. for (j = 0 . "Ingrese un numero entero:").0 / 8. int[] distribucion = new int[8].println("\n").parseInt(s). double aleatorio.2.out. } System. j++){ System.16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 cloneArray /**Archivo: RandomArray2.random(). } } 2. try { n = Integer.5 Programas de muestra 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 public class Distribucion{ public static void main(String[] args){ int i.println(distribucion[j]). }catch (NumberFormatException nx) { PISIS Códigos de programas en java . */ import javax. break. j++){ // generamos el histograma if ((aleatorio > j * ancho) && (aleatorio < (j+1) * ancho)){ // está en esta clase distribucion[j]++. j < 8 . public class RandomArray2{ public static void main(String[] args){ int n = 0.5.java * Descripción: * Este programa genera un arreglo * de n números pseudoaleatorios * con distribución uniforme. j < 8 . * Referencia: Think like a Computer Scientist (Java Version) * * Fecha: 08/Abr/09 * Modificaciones: Efraín Soto Apolinar. break.out.0. while (true) { String s = JOptionPane. double ancho = 1. } } } for (j = 0 .showInputDialog(null. for (i = 0 .swing. j.

40 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Códigos JOptionPane. } System. i < a. Códigos de programas en java PISIS .length . Card(){ this. } return b.showMessageDialog(null.. i++){ b[i] = a[i].out.random(). } public static void main(String[] args){ // programa principal int i.println(i + " a[" + i + "] = " + a[i] + "\tclon[" + i + "] = " + clon[i]). int rank){ this.. for (int i = 0 .suit = 0. * Autor: Efraín Soto Apolinar. for (int i = 0 . for (int i = 0 .5. i < b. } } double[] a = new double[n].suit = suit.length .println("\nNumeros pseudoaleatorios:"). // Constructor.length].out.out.println("\nAdios. } } 2.. String[] suits = { "Clubs". "Diamantes". "Error en argumento. i++){ a[i] = Math.").rank = 0. j. } public static double[] cloneArray(double[] a){ double[] b = new double[a. this.. } Card(int suit. } System..17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Cards /**Archivo: Card. i < clon.. * Fecha: 09/Abr/09 */ public class Card{ int suit.rank = rank. int rank.\n\n"). // // Probamos el metodo cloneArray // double[] clon = cloneArray(a).length . i++){ System. "Espadas" }. this. "Corazones".java * Descripción: * este programa genera un set de cartas.

2. } } return deck. rank).out. // Imprimir las cartas.println(suits[deck[i]. Card[] deck = createCards(). * Autor: Efraín Soto Apolinar. j.java * Descripción: * este programa genera un set de cartas.. public static void main(String[] args){ // programa principal int i. Cards[] deck = createCards(). "5". 0.suit = this.5 Programas de muestra 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 41 String[] ranks = { "noUsed".java /**Archivo: Cards.println("Cartas: \n"). "8". int this. int rank. "As".suit = this... "9". // Imprimir las cartas. System. i < 52 . "Jack".out. index++. "6". "7". "4"...5. "10". Cards(){ this. // creo el juego de cartas completo. for (i = 0 . PISIS Códigos de programas en java . "3". * Fecha: 09/Abr/09 */ public class Cards{ int suit.rank = } 0. // creo el juego de cartas completo... " + ranks[deck[i]. } } 2. rank){ suit. rank <= 13. suit <= 3.rank = } Cards(int suit. "Reina". Card[] deck = new Card [52].. "2". "Rey" }. rank. rank++) { deck[index] = new Card (suit. suit++) { for (int rank = 1. i++){ System. } } public static Card[] createCards(){ int index = 0.. // Constructor.rank]).18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Cards. for (int suit = 0.suit] + " ..

"As".java * Descripción: * este programa genera un set de cartas. } } 2.42 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Códigos System. } } return deck. "7".. "2".suit = 0. this.rank). suit <= 3. i++){ printCard(deck[i]. "Espadas" }. Códigos de programas en java PISIS . "4". "5". this. "10". deck[i].suit = suit. suit++) { for (int rank = 1. "Rey" }. "8". int rank. * Fecha: 09/Abr/09 */ import javax. Cards[] deck = new Cards [52]. } // Funcion para imprimir las cartas public static void printCard(int suit. int rank){ this. // Constructor. String[] ranks = { "noUsed". for (int suit = 0. Card3(){ this. "Jack". j. "6". i < 52 . rank). rank <= 13. } public static void main(String[] args){ // programa principal int i. int rank){ String[] suits = { "Clubs".println(suits[suit] + " . "Corazones".*.suit.rank = rank. * Autor: Efraín Soto Apolinar. rank++) { deck[index] = new Cards (suit. } Card3(int suit.println("Cartas: \n"). " + ranks[rank]).. public class Card3{ int suit. } } // Funcion para crear el juego de cartas public static Cards[] createCards(){ int index = 0. "Diamantes".19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Card3.java /**Archivo: Card3.5. "3". // System.out. "9".rank = 0.swing.out. index++. "Reina". for (i = 0 .

int rank){ String[] suits = { "Clubs".rank){ return i. "8". "Jack". "2". } } return deck. // creo el juego de cartas completo. index++.println("Cartas: \n"). r).parseInt(s). "Diamantes".5 Programas de muestra 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 43 int s. // Imprimir las cartas.. suit++) { for (int rank = 1. "10". String[] ranks = { "noUsed". " + ranks[rank]).length . "7". Card3[] deck){ for(int i = 0 . "Rey" }. PISIS Códigos de programas en java .out. i++){ if (C.rank). "Corazones".rank == deck[i]. deck[i]. } } return -1. "9".. "Reina". break.showInputDialog(null."). "Espadas"}. // System.suit && C. mensaje)..println("La carta esta marcada. "As". if (x != -1){ System. suit <= 3.2. rank <= 13. "6". deck). } // pido una carta: s = getInt("Introduzca el suit: "). for (i = 0 .out.println(suits[suit] + " . "5".out.println("La carta no se encuentra.suit == deck[i]. r = getInt("Introduzca el rank: ").. Card3[] deck = createCards().. i++){ printCard(deck[i]."). Card3[] deck = new Card3 [52]. Card3 C = new Card3(s. } public static int findCard(Card3 C. x = findCard(C. } // Funcion para imprimir las cartas public static void printCard(int suit.out.. for (int suit = 0. "4".. // datos para la carta a buscar int x. rank++) { deck[index] = new Card3 (suit. i < 52 .. } else{ System. "3". } } // Funcion para crear el juego de cartas public static Card3[] createCards(){ int index = 0. rank). while (true) { String s = JOptionPane.suit. r. try { val = Integer. System. } public static int getInt(String mensaje) { int val. i < deck.

* Autor: Efraín Soto Apolinar.deck[i]) == 1){ return i. } } Puedes agregar este código al programa anterior para probar qué tal funciona.").20 1 2 3 4 5 6 Card4. Card3 C2){ if (C1.44 81 82 83 84 85 86 87 88 89 Códigos }catch (NumberFormatException nx) { JOptionPane. * Fecha: 09/Abr/09 */ Códigos de programas en java PISIS .rank){ return 0. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 // Funcion para encontrar una carta public static int findCard(Card3 C. }//end getInt } Las siguientes líneas de código muestran la función que compara dos cartas.showMessageDialog(null. 2. } // // Funcion para comparar dos cartas // public static int compareCard(Card4 C1.suit && C1.java /**Archivo: Card4.5.rank == C2. Card3[] deck){ for(int i = 0 . i++){ if (compareCard(C. i < deck. } else{ return -1.length . } } return val.suit == C2. Recuerda eliminar la función findCard del programa original... "Error en argumento.java * Descripción: * este programa genera un set de cartas. } } return -1.

deck[i]. // Constructor.suit. PISIS Códigos de programas en java ..1). suit <= 3. // Imprimir las cartas. // deck[i]. i++){ x = (int)(Math..5 Programas de muestra 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 45 public class Card4{ int suit. y. public static void main(String[] args){ // programa principal int i. rank <= 13. // creo el juego de cartas completo. // intercambio las cartas: temp.rank. int s. } } // Funcion para crear el juego de cartas public static Card4[] createCards(){ int index = 0. // random number int size = deck.suit.suit = temp. deck[x].suit = this.suit = deck[x]. int x. deck[i].suit = this.println("Cartas: \n").out. } public static Card4[] swapDeck(Card4[] deck){ int i. i++){ printCard(deck[i]. // Barajar las cartas deck = swapDeck(deck). r.length. for (int suit = 0. // datos para la carta a buscar int x.random() * size) % (size .rank = } Card4(int suit. temp. Card4(){ this. } } return deck. Card4[] deck = createCards(). rank){ suit. for (i = 0 . 0. rank). for (i = 0 . index++. rank++) { deck[index] = new Card4 (suit. int rank.j. suit++) { for (int rank = 1. j.2. i < size . Card4[] deck = new Card4 [52]... i < 52 .rank = } 0..suit.. Card4 temp = new Card4().rank = deck[i].suit = deck[i]. rank.rank).rank = deck[x].rank.suit. int this. System.

21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Complex /**Archivo: Complex.46 64 65 66 67 68 69 70 71 72 73 74 75 76 77 Códigos deck[x].im = imaginary.sqrt(re * re + im * im). "10". } Códigos de programas en java PISIS .re = real. "Reina".rank. } // Object method public double modulus(){ return Math.re * c.im * c.re * c. } // Funcion para imprimir las cartas public static void printCard(int suit. "5".re + c. " + ranks[rank]).im * c. im. this. -im).0. "Corazones". int rank){ String[] suits = { "Clubs". double imaginary){ this. "9".5. "As". "Rey" }. c.im = 0. "Diamantes".re = 0.im). "Jack".im public static double modulo(Complex c){ return Math.out. "3". String[] ranks = { "noUsed". } // Object Method public Complex conjugado(){ return new Complex(re. "2". } } 2. } // Otro Constructor Complex(double real. // Constructor Complex(){ this.re + c. "Espadas" }. // System. "8". "7". } return deck.0. } // Class Method // Nota las diferencias: // 1: static // 2. "4". this.rank = temp.sqrt(c. "6".java * Descripción: * Implementa la clase Complex * para trabajar con números complejos * Autor: Efraín Soto Apolinar * Fecha: 09/Abr/09 */ public class Complex{ double re.println(suits[suit] + " .

").re). } else{ System.out.modulus().im) + ". C. Complex C2){ return new Complex (C1.conjugado()).C1. } } } 2. } // Class Method public static Complex dividir(Complex C1. return C.im). C = multiplicar(C1. Complex C2){ if (C2.re && z1.5 Programas de muestra 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 47 // Class Method public static Complex sumar(Complex C1. C1.re /= r.out. if (c.im + ".re).im + C1.out.re + C2.im /= r. Complex z2){ if (z1 == null || z2 == null){ return false. System.re * C2.im > 0){ System.5.im * C2. C2. return new Complex(). } } public static boolean sonIguales(Complex z1.im). Complex C2)").re == 0 && C2. } // Class Method public static Complex multiplicar(Complex C1."). * Fecha: 09/Abr/09 PISIS Códigos de programas en java .im. C1.re * C2.im == 0){ System.println(" .println("Division entre cero. * Autor: Efraín Soto Apolinar.println(" + i " + c..").im == z2.out.println( "public static divide(Complex C1.println(c.im + C2. } double r = C2. } public static void printComplex(Complex c){ System.im * C2.2.re .out.re. Complex C2){ return new Complex(C1.java * Descripción: * Este archivo implementa la clase * Fracción para trabajar con fracciones.i " + (-1* c.22 1 2 3 4 5 6 Fraccion /**Archivo: Fraccion. Complex C = new Complex(). } else{ return (z1.re == z2.. C.

} this. num = den. int d){ den = d.out.println("Fraccion. if (d == 0){ System.out.abs(num). } // Object Method // El signo: // acomodarlo en el numerador public Fraccion verificaSigno(){ if (num * den > 0){ num = Math.verificaSigno(). den = Math. // Constructor public Fraccion(){ num = 0.println("Fraccion. } else{ num = -1 * Math. Códigos de programas en java PISIS .den = 0").println("Error en argumento").abs(den). } // Constructor public Fraccion(int n. } // Object Method public Fraccion Reciproco(){ if (num == 0){ System. return this. System. while (num % 2 == 0 && den % 2 == 0){ num /= 2.48 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Códigos */ public class Fraccion{ int num.out. int den. } num = n.out. System.den = 0"). den = 1. den = 1. } else{ den = num.abs(den). den /= 2.println("Error en argumento"). } while(divisor >= num || divisor >= den){ if (num % divisor == 0 && den % divisor == 0){ num /= divisor. } return this. } // Object Method // simplifica la fraccion public Fraccion simplificar(){ int divisor = 3.abs(num). den = Math.

return r.den.simplificar().5 Programas de muestra 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 49 den /= divisor. } public static boolean sonIguales(Fraccion f1.den*f2.num.den + ". Fraccion f2){ Fraccion r = new Fraccion().verificaSigno(). r.num. } // Class Method public static Fraccion Dividir(Fraccion f1.den = f1. } public static void printFraccion(Fraccion f){ System. r.den*f2.den.den = f1.num*f2. Fraccion f2){ PISIS Códigos de programas en java .simplificar().den.num = f1. } // Class Method public static Fraccion Restar(Fraccion f1.den.num = f1.num*f2.num*f2.den + f1. r.num*f2. Fraccion f2){ Fraccion r = new Fraccion().verificaSigno()..num.verificaSigno(). r. Fraccion f2){ Fraccion r = new Fraccion(). } else{ divisor += 2. r.den*f2.simplificar().den = f1. } // Class Method public static Fraccion sumar(Fraccion f1.den = f1. return r. Fraccion f2){ Fraccion r = new Fraccion(). return r.num.num + " / " + f. r.0 * den). r = r.den*f2. } // Class Method public static Fraccion Multiplicar(Fraccion f1.num*f2. r = r. } } this. r. r.println(f. return r.verificaSigno().simplificar(). return r.. } // Object Method // Convierte la fracción a un número // con parte decimal.2. return this.verificaSigno().out. r. r = r. r.0 * num / (1.num = f1.f1. r.den ."). public double real(){ double r = 1.num = f1. r. r = r.num*f2.

* Autor: Efraín Soto Apolinar.j).i + y. f2. j =y. return (f1.5.50 121 122 123 124 125 Códigos f1. int y){ i = x. * Fecha: 14/Abr/09 */ class Estructura{ // variables de la isntancia (campos) int i. } Estructura(int x.verificaSigno().den == f2. Estructura y){ return new Estructura(x.num && f1. j.i. j = 0. // Constructores Estructura(){ i = 0.j + y. x.j). } // Métodos de la clase public static Estructura sumar(Estructura x. } } Códigos de programas en java PISIS .num == f2.23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Estructura /**Archivo: Estructura.den).verificaSigno(). } // Métodos de los Objetos public Estructura sumar(Estructura y){ return new Estructura(i+y.java * Descripción: * Este archivo contiene la estructura * de una clase.i. } } 2. j+y.

Tres Gráficos PISIS Códigos de programas en java .

setTitle("Hola Mundo!"). this.JPanel: para crear paneles * .swing. this. //this.setDefaultCloseOperation(JFrame.JLabel: para crear etiquetas * Autor: Efraín Soto Apolinar * Fecha: 16/Abr/09 */ Códigos de programas en java PISIS . public class HelloWorld extends JFrame{ public static void main(String[] args){ new HelloWorld().75).52 Gráficos 3.setResizeable(true).*.1. } } 3. this.setSize(300.2 1 2 3 4 5 6 7 8 9 10 HelloPanel /**Archivo: HelloPanel.1 SWING En esta sección se incluyen códigos de programas que utilizan el paquete swing de java.java * Descripcion: * Implementa el clásico: "Hola Mundo" * usando swing * Autor: Efraín Soto Apolinar * Fecha: 16/Abr/09 */ import javax.java * Descripcion: * Se ejemplifica el uso de las clases: * .JFrame: para crear ventanas * .EXIT_ON_CLOSE).1.300).setVisible(true). } public HelloWorld(){ this. this. 3.1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 HelloWorld /**Archivo: HelloWorld.setLocation(125.

.add(miPanel). this. import java.swing. // Arreglo la etiqueta al centro del Panel miPanel.EXIT_ON_CLOSE). // Agregar el panel al frame: this.JButton: para crear botones * Autor: Efraín Soto Apolinar * Fecha: 16/Abr/09 */ import javax.1 Swing 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 53 import javax. BorderLayout. this.swing. // contuir un panel: PISIS Códigos de programas en java . } } 3. } public MyJButton(){ this. // Agregar etiqueta al panel: miPanel. // contuir un panel: JPanel miPanel = new JPanel(). // construir etiqueta: JLabel hola = new JLabel("Mi primer etiqueta!").300).300). // centrado.awt. this. public class HelloPanel extends JFrame{ public static void main(String[] args){ new HelloPanel().setLayout(new BorderLayout()).3.setTitle("Frame con boton!"). public class MyJButton extends JFrame{ public static void main(String[] args){ new MyJButton().JPanel: para crear paneles * .setDefaultCloseOperation(JFrame. } public HelloPanel(){ this.3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 MyJButton /**Archivo: MyJButton.setSize(300.JFrame: para crear ventanas * . this.NORTH).java * Descripcion: * Se ejemplifica el uso de las clases: * .getContentPane().setSize(300.*..setLocationRelativeTo(null). this.setDefaultCloseOperation(JFrame.setTitle("Este es un frame!").*.EXIT_ON_CLOSE).*. // this.1.setVisible(true).add(hola.

setVisible(true).54 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Gráficos JPanel miPanel = new JPanel(). // Agregar etiqueta al panel: miPanel.setLocationRelativeTo(null). this. // construir un botón: JButton boton = new JButton().getContentPane()...add(miPanel).setToolTipText("No hace nada!"). // Agregar el panel al frame: this. } } Códigos de programas en java PISIS .setText("Un Boton!"). // Agrego mensaje al boton: boton.add(boton). // centrado. // Mensaje del botón al usuario boton. // this.

9 Error de Sintaxis. 18 Tarea 2 Lenguaje java.Indice alfabético Algoritmo. 11 Códigos de programas en java . 9 Coeficientes binomiales. 26 Compilador. 8 Sintaxis. 20 Tarea 3 Lenguaje java. 22 Tarea 4 PISIS Lenguaje java. 25 Variable Definición. 9 Correr. 10 Programa.. 10 Lógico. 23 Tarea 5 Lenguaje java. 8 Compilar.. 10 Identificador.. 9 Tarea 1 Lenguaje java. 10 Mensajes de. 8 Código..

e. Voy a utilizarlo en lo futuro como una referencia. Este material está siendo actualizado continuamente. Tienes derecho de leer el material y de divulgarlo a otras personas. efra.a@gmail. En realidad el material que estas leyendo lo estoy generando como un resumen de lo que voy aprendiendo. causales.. con la única condición de que no modifiques el documento en forma alguna. etc. Si deseas utilizar alguna parte del material. este material y a Efraín Soto Apolinar como el autor. con la única condición de que menciones la fuente. puedes hacerlo. Te agradeceré que me envíes un mensaje en caso de que encuentres errores en los códigos. Con estos programas estoy aprendiendo junto contigo. Utilízalo bajo tu propio riesgo.56 INDICE ALFABÉTICO TÉRMINOS DE USO Utiliza los códigos como una guía para aprender a programar. Espero que este material pueda ser de ayuda a muchas personas que desean aprender a programar en Java.) ocasionados por el uso de este material. El material no ha tenido ninguna revisión.com Códigos de programas en java PISIS . Efraín Soto Apolinar. indirectos. en las definiciones o en la ortografía y/o gramática del mismo.soto. No hay ninguna garantía de que los códigos estén libres de cualquier tipo de error. i. Efraín Soto Apolinar no es responsable por cualesquiera daños (directos.

Revisión técnica: Pendiente. A Edición del código LTEX 2 . Composición tipográfica: Efraín Soto Apolinar. Diseño de encabezados y diagramas.5 LE Edición del código en lenguaje Java.com . Diseño de portada: Efraín Soto Apolinar. Año de edición: 2009 Año de publicación: Pendiente Última revisión: 05 de abril de 2009 Software Utilizado: En la edición y composición tipográfica de este material se han utilizado los siguientes programas: Créditos x y z { A LTEX 2 Tipografía del texto y ecuaciones. Edición: Efraín Soto Apolinar.soto. Apreciado lector. TikZ TEXnicCenter JCreator 3.CRÉDITOS Autor: Efraín Soto Apolinar. gradezco tus sugerencias y comentarios a la cuenta de correo electrónico: efra.a@gmail.

Sign up to vote on this title
UsefulNot useful