Codigos Java

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

Transcript of Codigos Java

CDIGOS DE PROGRAMAS en Java Efran Soto Apolinar

Cdigos de Programas en el lenguaje JavaCompilados por

Efran Soto Apolinar PISIS

Monterrey, N.L., Mxico. 2009

ndice de contenidos

1 Introduccin 1.1 Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 1.1.2 Conceptos de programacin . . . . . . . . . . . . . . . . . . . . . . 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 Cdigos 2.1 Programacin cientca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .PISISCdigos de programas en java

4 2.1.1 2.1.2 2.1.3 Sucesin de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . Detector de nmeros primos . . . . . . . . . . . . . . . . . . . . . Piedra, papel y tijera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 19 22 23 25 26 29 29 30 30 31 31 32 33 34 35 35 36 36 37 38 38PISIS

2.2 Aproximacin de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Factoriales y aproximacin del nmero e . . . . . . . . . . . . . . . . . . 2.4 Coecientes binomiales y el tringulo de Pascal . . . . . . . . . . . . . 2.5 Programas de muestra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 Novia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tu Nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fibonacci (V.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IgnoreSpaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AlReves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5.10 CuentaPalabras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.11 CountLetter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.12 LetterArithmetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.13 Comparar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.14 RandomArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.15 Distribucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Cdigos de programas en java

2.5.16 cloneArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.17 Cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.18 Cards.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.19 Card3.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.20 Card4.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.21 Complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.22 Fraccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.23 Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Grcos 3.1 Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 3.1.2 3.1.3 HelloWorld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HelloPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MyJButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39 40 41 42 44 46 47 50 51 52 52 52 53 56

Trminos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

Cdigos de programas en java

PISIS

UnoIntroduccin

PISIS

Cdigos de programas en java

8

Introduccin

1.1

CONCEPTOS BSICOS

En este apartado se dan algunos conceptos que necesitas conocer para poder aprovechar la lectura de este material. Se presentan diversas secciones con contenidos igual de importantes. Los primeros tienen que ver con las bases de programacin y despus se incluyen los que conciernen al lenguaje java.

1.1.1

Conceptos de programacin

Los conceptos que debes entender para iniciarte en el arte de la programacin son:

Denicin 1.1.1.1ALGORITMO Una sucesin ordenada de instrucciones para resolver un problema o una tarea. Puedes pensar en un algoritmo como si se tratara de una receta. Es el procedimiento que se debe realizar para resolver un problema especco.

Denicin 1.1.1.2COMPILADOR Es el programa de computadora que traduce las instrucciones que nosotros le damos en un lenguaje especco.

Denicin 1.1.1.3PROGRAMA FUENTE Es el cdigo que t vas a escribir. En este texto encontrars el programa fuente para resolver muchos problemas. El programa fuente tambin se conoce como cdigo fuente.

Cdigos de programas en java

PISIS

1.1 Conceptos bsicos

9

Denicin 1.1.1.4CDIGO Es un conjunto de instrucciones en algn lenguaje de alto nivel. En este material solamente encontrars cdigo en java. El cdigo no necesariamente es un programa completo, puede tratarse solamente de una parte del programa.

Denicin 1.1.1.5SINTAXIS Son las reglas de acuerdo a las cuales debes escribir el programa fuente. Cada lenguaje de programacin tiene su sintaxis. Puedes imaginar que la sintaxis son las reglas de gramtica de ese lenguaje.

Denicin 1.1.1.6COMPILAR Indicar a la computadora que verique que el programa fuente no contenga errores. Esta tarea siempre la realizar un software (el compilador).

Denicin 1.1.1.7CORRER (UN PROGRAMA) Ordenar a la computadora que ejecute las instrucciones indicadas por el cdigo de un programa. Evidementemente, un programa en javadebe correrse en un compilador de ese lenguaje. (Yo utilizo el Dev-java, que es gratuito.)

Algunas veces el compilador no encontrar errores, pero existe la posibilidad de que s existan. Por ejemplo, en el caso de que t hayas cometido el error de escribir un + en lugar de un *, el compilador no se da cuenta, porque no sabe realmente qu debe hacer el programa. En otras palabras, las computadoras todava no pueden leer tu mente.

PISIS

Cdigos de programas en java

10

Introduccin

Denicin 1.1.1.8MENSAJE DE ERROR Es un mensaje que el compilador te dar cuando encuentre errores en el programa fuente. Estos mensajes te ayudan a corregir el cdigo.

Denicin 1.1.1.9ERROR DE SINTXIS Ocurre cuando el cdigo no est completamente escrito de acuerdo a las reglas de sintaxis del mismo. Por ejemplo, si escribes, Go To en lugar de GOTO, cometiste un error de sintaxis (de acuerdo a la sintxis del lenguaje GWBasic).

Denicin 1.1.1.10ERRORES LGICOS Los que comete el programador cuando traduce el algoritmo al lenguaje java. El programa realmente no hace lo que el algoritmo indica. Tal vez no tenga errores de sintxis... simplemente no realiza la tarea que debe realizar. Cuidado con esto.

1.1.2

Variables

Denicin 1.1.2.11IDENTIFICADOR Es el nombre que el programador asigna a un valor dentro de un programa. En java, un identicador debe empezar con una letra o el smbolo: _ y los dems caracteres deben ser letras, dgitos o el smbolo _.

Cdigos de programas en java

PISIS

1.2 Palabras reservadas

11

Denicin 1.1.2.12VARIABLE Es una herramienta de programacin utilizada para asignar valores (no necesariamente numricos) a letras o cadenas de letras. Las variables se clasican de acuerdo al tipo de valor que almacenan.

Denicin 1.1.2.13CONSTANTE Es un valor que no cambia durante la ejecucin del programa. Una constante puede ser de cualquiera de los tipos de datos denidos en java.

1.2

PALABRAS RESERVADASabstract boolean break byte case catch char class const continue default do double else extends nal nally oat 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, pero generan errores de compilacin cuando se convierte cdigo a C++. Otras tres palabras que cabe mencionar aqu son null, true y false. Estas no son palabras clave, sino valores que tampoco pueden utilizarse como identicadores.PISISCdigos de programas en java

12

Introduccin

Denicin 1.2.1IDENTIFICADOR Las palabras que utilizamos para indicar los nombres de las variables.

Para denir un identicador se deben seguir las siguientes reglas.

i. Un identicador no debe ser igual a una palabra clave, ni igual a las palabras null, true o false. ii. Un identicador puede consistir de letras, dgitos, el smbolo _, o el signo de pesos ($). iii. Un identicador debe iniciar con una letra, el signo _ o el signo de pesos ($).

Dado que el lenguaje java es Case Sensitive, es decir, diferencia entre maysculas y minsculas, podemos denir como identicador a la palabra Transient, ya que sta no es una palabra clave, la palabra clave transient inicia con letra minscula.

1.2.1

Tipos de datos

Variable short int oat double long char string boolean

Rango 32 767 a 32 767 2 147 483 647 a 2 147 483 647 1038 a 1038 10308 a 10308 104932 a 104932 \u000 a \ufff No aplica False/True

Precisin No Aplica No Aplica 7 dgitos 15 dgitos 19 dgitos No aplica No aplica No aplica

Ejemplo 23 4 3.1416 3.141592654 2.718281828 a Hola Amigo. FalsePISIS

Cdigos de programas en java

1.3 Ventajas de usar Java

13

1.3

VENTAJAS DE USAR JAVA

Java es un lenguaje sencillo. Si sabes programar en C o en C++ aprender java es muy sencillo.

java te ayuda porque no requieres del manejo de memoria, porque utiliza uncolector de basura que verica cundo un objeto no tiene alguna referencia y por tanto no se requiere su uso. Esto permite al programador concentrarse en crear los objetos, hacer que interaccionen como deben y en preocuparse por lo que debe hacer el programa. En otras palabras, te simplica latarea como programador.

PISIS

Cdigos de programas en java

14

Introduccin

1.4

FLUJO

Para determinar el ujo de las instrucciones en un programa utilizamos diferentes instrucciones. Siempre debe haber una variable booleana que va a determinar qu hacer, de acuerdo a la instruccin que se utilice en cada caso.

1.4.1// if \\ } //

If then else

codigo que se est ejecuntando... (condicion){ Realiza esto si la condicion es verdadera cdigo que se ejecutar despus...

El siguiente cdigo nos ayuda con una segunda posibilidad. En caso de que la condicin condicion sea verdadera el programa va a realizar las instrucciones que estn dentro del argumento entre llaves despus de la condicin, pero si es falsa, entonces realizar las instrucciones que estn en el argumento despus de la palabra clave else:

\if(condicion){ // Si la condicion es verdadera // realiza las instrucciones que estn // en este argumento... } else{ // Si la conicin es falsa // realiza las instrucciones que estn // en este argumento... } // Despus contina con las instrucciones // que estn enseguida...

Cdigos de programas en java

PISIS

1.5 Clase Math

15

1.5

CLASE MATH

En java una clase que utilizaremos muy frecuentemente es la clase Math. En esta clase se contienen mtodos (funciones matemticas) de uso frecuente como las exponenciales, logartmicas y trigonomtricas. Algunos de los mtodos denidos son los siguientes:

Mtodo:

Regresa: e 2.718281828 base de los logaritmos naturales. 3.141592654. valor absoluto de a (double) valor absoluto de a (float) valor absoluto de a (int) arcocoseno de a (double). El resultado est entre 0 y . arcoseno de a (double). El resultado est entre /2 y /2. arcotangente de a (double). El resultado est entre /2 y /2. raz cbica de a (double) menor entero mayor o igual a a (double). coseno de a (double) coseno hiperblico de a (double). e a , siendo a un (double). mayor entero menor o igual a a (double). ln(a ), siendo a un (double). log10 (a ), siendo a un (double). mayor de los valores a (double) y b (double). mayor de los valores a (float) y b (float). mayor de los valores a (long) y b (long). menor de los valores a (double) y b (double). menor de los valores a (float) y b (float). menor de los valores a (long) y b (long).

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, double b) max(float a, float b) max(long a, long b) min(double a, double b) min(float a, float b) min(long a, long b)PISIS

Cdigos de programas en java

16 Mtodo: Regresa:

Introduccin

pow(double a, 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 , siendo a un (double) y b un (double). un (double) aleatorio en el intervalo [0.0, 1.0) (double) igual al entero ms cercano a a (double). (long) ms cercano a a (double). (int) ms cercano a a (float). seno de a (double). seno hiperblico de a (double). tangente de a (double). convierte a grados angRad que es un ngulo medido en radianes (double). convierte a radianes angDeg que es un ngulo medido en grados (double).

Cdigos de programas en java

PISIS

DosCdigos

PISIS

Cdigos de programas en java

18

Cdigos

2.1

PROGRAMACIN CIENTFICA

Los siguientes cdigos fueron realizados para practicar mi programacin, usando los ejercicios que se quedaron de tarea en el curso de programacin cientca impartida por Dra. Elisa Schaeffer.

2.1.1

Sucesin de Fibonacci

La serie de Fibonacci se dene por la ecuacin recursiva siguiente: F (n) = F (n 1) + F (n 2) Los primeros elementos son F (0) = 0 y F (1) = 1, 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... Objetivo Escribir un programa en java al cual el usuario dene el ndice n y el programa imprime en la pantalla el valor de F (n). Serie de Fibonacci. Este programa permite que el usuario de varios valores de n. Enseguida se muestra en cdigo 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 sucesin de * Fibonacci * * Fecha: 26 de marzo de 2008 * */ import java.util.Scanner; class Fibonacci { static Scanner input = new Scanner(System.in); // // Genera los nmeros de Fibonacci public static void main(String[] args) { int b4 = 0;

Cdigos de programas en java

PISIS

2.1 Programacin cientca19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

19

int now = 1; int i; int n; System.out.println("\n\nCuantos terminos de la sucesion"); System.out.print("de Fibonacci desea que se impriman? "); for (;;){ // hasta que introduca un numero positivo... n = input.nextInt(); if (n