02 Introducción a la Programación con Java

download 02 Introducción a la Programación con Java

of 53

Transcript of 02 Introducción a la Programación con Java

Curso: BSI-03 Programacin I Universidad Latina

CONTENIDO1. VARIABLES Y TIPOS DE DATOS ............................................................................................................. 2 1.1 1.2 1.3 2. Variables ...................................................................................................................................... 2 Tipos de datos .............................................................................................................................. 2 Conversin explcita de tipos (Casting).......................................................................................... 3

OPERADORES ...................................................................................................................................... 4 2.1 2.2 2.3 2.4 2.5 2.6 Introduccin ................................................................................................................................. 4 Operadores Aritmticos ............................................................................................................... 4 Operadores Relacionales y Condicionales ..................................................................................... 4 Operadores Relacionales And y Or ................................................................................................ 4 Operadores de Asignacin ............................................................................................................ 5 Precedencia de Operadores en Java ............................................................................................. 5

3.

SENTENCIAS DE CONTROL DE FLUJO.................................................................................................... 5 3.1. Toma de decisiones ...................................................................................................................... 5 If ........................................................................................................................................... 5 If/else ................................................................................................................................... 6 Switch ................................................................................................................................... 7

3.1.1. 3.1.2. 3.1.3. 3.2.

Bucles o ciclos .............................................................................................................................. 8 For ........................................................................................................................................ 8 While / Do While .................................................................................................................. 9

3.2.1. 3.2.2. 4. 5. 6. 7. 8.

EL ENTORNO DE DESARROLLO DE NETBEANS .....................................................................................11 PRIMER PROYECTO EN JAVA ..............................................................................................................13 ABREVIATURA DE LOS NOMBRE DE LOS CONTROLES BSICOS DE JAVA ............................................17 EJERCICIOS EN NETBEANS 6.9.1 EN ESPAOL .....................................................................................18 UTILIZACIN DE LAS CAJAS DE TEXTO PARA CAPTURA DE DATOS......................................................36

10. PROGRAMAS CON CLCULOS .............................................................................................................39 11. CUADROS DE MENSAJE, CONFIRMACIN E INTRODUCCIN DE DATOS .............................................42 12. CADENAS ............................................................................................................................................43 13. LA CLASE JFRAME ...............................................................................................................................45 14. VARIABLES GLOBALES ........................................................................................................................45 15. CUADROS DE DILOGO ......................................................................................................................47 16. EJERCICIOS PROPUESTOS....................................................................................................................50 16.1. 16.2. Sentencias de control repetitivas .................................................................................................50 Ejercicios propuestos funciones ...................................................................................................52

1

Curso: BSI-03 Programacin I Universidad Latina

1. VARIABLES Y TIPOS DE DATOS 1.1 Variables Las variables se utilizan para almacenar datos asociados a nombres. Cada variable tiene un nombre que sirve de referencia para introducir datos o acceder a los mismos. Un ejemplo de utilizacin de variable es: Edad = 23; en este caso, introducimos el valor numrico 23 en la variable Edad. A partir de ahora podemos utilizar la variable a travs de su nombre (Edad) para referirnos a su valor (23). Los nombre de las variables, en Java, pueden tener cualquier longitud y deben comenzar con una letra, el smbolo de subrayado _ o el dlar $. El resto de los caracteres del nombre pueden ser cualquiera, salvo los que puden dar lugar a confusin. Los nombre de variables no deben tener espacios en blanco, puesto que el compilador identifacara ms de una variable; por ejemplo, NumeroDeAciertos es un nombre de variable correcto, sin embargo Numero De Aciertos no lo es, porque el compilador identificara tres variables diferentes: Numero, De y Aciertos. Los nombre de variables no deben coincidir con palabras reservadas (tales como public, static, class, final, main, etc.). Existe una serie de palabras reservadas las cuales tienen un significado especial para Java y por lo tanto no se pueden utilizar como nombres de variables. Dichas palabras son:

(*) Son palabras reservadas, pero no se utilizan en la actual implementacin del lenguaje Java. En Java, los identificadores de variables suelen definirse empezando por un carcter en minscula, por ejemplo contador. Si en el identificador existe ms de una palabra, los comienzos del resto de las palabras se ponen con maysculas, ejemplo: contadorDeAciertos. Los identificadores deben ser representativos de los datos que almacenan, de esta manera valorAcumulado, numeroAlumnos, cantidadEuros, edad, potencia son variables que determinan de forma adecuada el significado de sus contenidos, mientras que los nombres de variable: valor V1, V2, X, Y, Z no son representativos de sus contenidos. La longitud de los identificadores no debe ser excesivamente larga, para no dificultar la legibilidad de las instrucciones. Los identificadores en mayscula se suelen reservar para nombres (normalmente cortos) de constantes, de esta manera las instrucciones son ms legibles, al utilizarse minsculas. Ejemplo: PI, STOCK, PRECIOHORA, IVA, etc. 1.2 Tipos de datos Las variables almacenan datos de diferentes tipos (numrico decimal, numrico entero, caracteres, etc.). Para indicar el tipo de dato que contendr las variables debemos declarar las mismas, indicando sus tipos. Este mecanismo permite que el traductor (compilador) realice las comprobaciones estticas de validez, como por ejemplo que no empleamos en el programa una variable que no ha sido declarada, que no asignemos un carcter a una variable de tipo numrico, que no sumemos un carcter a un valor numrico, etc. A continuacin se establece una relacin de los tipos de datos primitivos (los que proporciona el lenguaje):

2

Curso: BSI-03 Programacin I Universidad Latina

TIPOS PRIMITIVOS NOMBRE DEL TIPO TAMAO EN BYTES TIPOS NUMRICOS ENTEROS Byte 1 Short 2 Int 4 Long 8 TIPOS NUMRICOS DECIMALES Float 4 double 8 tipo carcter Char 2 String TIPO LGICO (BOOLEANO) boolean 1 Para declara una variable se emplea la sintaxis:

RANGO -128 a 127 -32768 a 32767 -231 a 231 -263 a 263 -3.4x1038 a 3.4x1038 -1.7x10308 a 1.7x10308 Almacena un solo carcter Almacena un conjunto de caracteres true, false

tipo identificador; //declara una variable tipo identificador [= valor]; //declara e inicializa una variable tipo identificador1, identificador2, identificador3, etc.; //declara varias variables del mismo tipo tipo identificador1=valor1, identificador2=valor2, etc.; // declara e inicializa varias variables del mismo tipo

Por ejemplo:byte edad = 60; short sueldoMensual; float PrecioEuros, cateto1, cateto2, hipotenusa; boolean adquirido=false, finalizado=true;

1.3 Conversin explcita de tipos (Casting) Resulta muy habitual que en los programas nos encontremos con la necesidad de mezclar tipos de datos, por ejemplo al trabajar con un biblioteca matemtica que obliga a utiizar tipos de datos double, cuando nosotros las variables las tenemos de tipo float, o mas sencillo todava, al intentar sumar un 1 (por defecto int) a una variable tipo short. Java en algunos casos, realiza una conversin implcita de datos, sin embargo, por regla general, nos veremos obligados a programar conversiones explcitas de tipos. Para modificar el tipo de un valor, basta con indicar el nuevo tipo entre parntesis antes del valor, por ejemplo: (byte) 1 convierte el 1 (int) a byte (double) MiVariableDelTipoFloat convierte a doubl una variable de tipo float (short) (VariableDeTipoByte + VariableDeTipoByte) convierte a short el resultado de sumar dos variables de tipo byte.

3

Curso: BSI-03 Programacin I Universidad Latina

2. OPERADORES 2.1 Introduccin Los operadores nos permiten realizar operaciones sobre los operandos. Existen operandos unuarios y binarios; un ejemplo de operador unuario es la negacin lgica (!). Los operadores tienen unas reglas de precedencia que resulta importante tener en cuenta. 2.2 Operadores Aritmticos Esta tabla resume todas las operaciones aritmticas binarias en Java: Operador Uso Descripcin + op1 + op2 Suma op1 y op2 op1 - op2 Resta op2 de op1 * op1 * op2 Multiplica op1 y op2 / op1 / op2 Divide op1 por op2 % op1 % op2 Obtiene el resto de dividir op1 por op2 Nota: El lenguaje Java extiende la definicin del operador + para incluir la concatenacin de cadenas. Adems, existen dos operadores de atajos aritmticos, ++ que incrementa en uno su operando, y -- que decrementa en uno el valor de su operando. Operador ++ ++ --Uso op ++ ++op op --- op Descripcin Incrementa op en 1; evala el valor antes de incrementar Incrementa op en 1; evala el valor despus de incrementar Decrementa op en 1; evala el valor antes de decrementar Decrementa op en 1; evala el valor despus de decrementar

2.3 Operadores Relacionales y Condicionales Los valores relacionales comparan dos valores y determinan la relacin entre ellos. Por ejemplo, != devuelve true si los dos operandos son distintos. Esta tabla resume los operadores relacionales de Java: Operador Uso Devuelve true si > op1 > op2 op1 es mayor que op2 >= op1 >= op2 op1 es mayor o igual que op2 < op1 < op2 op1 es menor que op2 = 60) && (antiguedad > 25)) txtTipo.setText("La jubilacin es por: EDAD ADULTA."); else if((edad < 60) && (antiguedad > 25)) txtTipo.setText("La jubilacin es por: ANTUGEDAD JOVN."); else txtTipo.setText("No tiene derecho a jubilarse"); }

32

Curso: BSI-03 Programacin I Universidad Latina

private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) { txtEdad.setText(""); txtAntiguedad.setText(""); Limpia las cajitas de texto para volver a usarlas txtTipo.setText(""); } 7.13. Formulario llantera En una llantera se ha establecido una promocin de las llantas marca "Ponchadas", dicha promocin consiste en lo siguiente Si se compran menos de cinco llantas el precio es de 3 000 cada una, 2 500 si se compran de cinco a 10 y de 2 000 si se compran ms de 10

Obtener la cantidad de dinero por cada una de las llantas que compra y el total de la compra. Objeto Text Name JTextField1 txtCantidad JTextField2 txtPrecio JTextField3 txtTotal JButton1 Calcular btnProcesar JButton2 Limpiar btnLimpiar Cdigo fuente private void btnProcesarActionPerformed(java.awt.event.ActionEvent evt) { int cantidad=0, precio=0, total=0; cantidad=Integer.parseInt(txtCantidad.getText()); if(cantidad=5)&&(cantidad0)&&(kilos=3)&&(kilos=6)&&(kilos0). El valor de n se solicitar al principio del programa y los nmeros sern introducidos por el usuario. 6. Realizar un programa que pida dos nmeros enteros por teclado y muestre por pantalla el siguiente men:

El usuario deber elegir una opcin y el programa deber mostrar el resultado por pantalla y despus volver al men. El programa deber ejecutarse hasta que se elija la opcin 5. Salir. Modificar el ejercicio anterior para que al elegir la opcin 5, en vez de salir del programa directamente, nos muestre el siguiente mensaje de confirmacin:

De modo que si elegimos s salgamos del programa, pero si pulsamos el botn no, volvamos al men. 7. Realice un programa que calcule el factorial de un nmero dado por teclado. Realice este ejercicio utilizando primero un bucle for y posteriormente repita el ejercicio utilizando un bucle while. 8. Realice un programa que determine si un nmero ledo del teclado es primo o no.

50

Curso: BSI-03 Programacin I Universidad Latina

9. Un nmero perfecto es un entero positivo, que es igual a la suma de todos los enteros positivos (excluido l mismo) que son divisores del nmero. El primer nmero perfecto es 6, ya que los divisores de 6 son 1, 2, 3 y 1 + 2 + 3 = 6. Escriba un programa que lea un nmero entero positivo n y muestre por pantalla si ese nmero es o no perfecto. 10. Realice un programa que lea un nmero entero por teclado y devuelva por pantalla el nmero de dgitos que componen ese nmero. Por ejemplo, si introducimos el nmero 12334, el programa deber devolver 5. (Pista: utilice el operador %, averige para qu sirve y piense cmo utilizarlo). 11. Realice un programa que lea un nmero entero por teclado y devuelva por pantalla las que forman ese nmero. Por ejemplo, si se introduce el nmero 2345, el programa deber mostrar por pantalla 5 4 3 2. (Pista: utilice el ejercicio anterior como base para realizar este ejercicio). Ejercicios que usan nmeros aleatorios para realizar juegos y simulaciones 12. Realizar un programa que simule un juego de adivinar un nmero. El programa pedir al usuario dos nmeros que representan el rango de valores entre los que se encuentra el nmero a adivinar, as como el nmero de intentos para adivinar el nmero. A continuacin el programa generar un nmero aleatorio entre esos dos nmeros y el usuario deber adivinarlo en el nmero mximo de intentos antes indicado. Cada vez que el jugador introduce un nmero el programa le dice si es mayor o menor y le indica cuantos intentos le quedan. 13. Realice un programa que pregunte aleatoriamente cualquier multiplicacin. El programa debe indicar si la respuesta ha sido correcta o no (en caso que la respuesta sea incorrecta el programa debe indicar cul es la correcta). Una vez preguntado por una multiplicacin el programa debe preguntar si desea realizar otra. En caso afirmativo preguntar aleatoriamente otra multiplicacin. En caso negativo el programa finalizar. 14. Modificar el ejercicio anterior de modo que el programa pregunta aleatoriamente un total de n multiplicaciones siendo n un nmero dado por teclado. En cada multiplicacin el programa debe indicar si se ha acertado o no. Al final del programa, ste deber mostrar un resumen indicando el nmero de respuestas correctas y errneas, as como el porcentaje de aciertos y de fallos. 15. Realice un programa que genere aleatoriamente 7 operaciones aritmticas consecutivas a las que el usuario deber ir respondiendo correctamente para ir avanzando. Los nmeros (aleatorios) sobre los que se realizan las operaciones deben estar comprendidos entre 2 y 9 y las operaciones aritmticas (tambin aleatorias) permitidas sern la suma, resta, multiplicacin y divisin (en el caso de la divisin se realizar siempre una divisin entera). Ejemplo: 1. 5 x 4 = 20 2. 20 4 = 16 3. 16 / 8 = 2 4. 2 x 6 = 10 Incorrecto 5. 3 x 3 = 9 6. 12 7 = 2 Incorrecto 7. 12 7 = 5

51

Curso: BSI-03 Programacin I Universidad Latina

16.2.

Ejercicios propuestos funciones

1. Escribir un programa que pida un nmero por teclado y nos diga si ese nmero es primo. El programa deber utilizar una funcin definida por el usuario, a la que se le pase un nmero y nos devuelva un 0 en el caso de que el nmero que le pasemos no sea primo, y un 1 en caso contrario. 2. Escribir un programa que pida un nmero natural por teclado y nos diga si ese nmero es perfecto (un nmero natural es perfecto si es igual a la suma de sus divisores, excluido l mismo). El programa deber utilizar una funcin definida por el usuario, a la que se le pase un nmero y nos devuelva un 0 en el caso de que el nmero que le pasemos no sea perfecto, y un 1 en caso contrario. 3. Realizar un programa que pida dos nmeros enteros por teclado y muestre por pantalla el siguiente men:

El usuario deber elegir una opcin, introducir dos valores y el programa deber mostrar el resultado por pantalla. Todas las opciones (1 a 6) deben realizarse utilizando funciones. 4. Utilizando la funcin primo realizada en el Ejercicio 1, realizar un programa que muestre por pantalla todos los nmeros primos comprendidos entre 1 y un nmero n introducido por teclado por el usuario. 5. Escriba una funcin que lea tres nmeros enteros del teclado y nos devuelva el mayor. 6. Escriba una funcin que calcule la suma de los divisores de un nmero entero positivo. 7. Escriba una funcin que determine si un carcter es uno de los dgitos 0,1,2.....9. 8. Escriba una funcin que convierta grados a fahrenheit (fahrenheit = grados * 9.0/5.0 + 32.0) 9. Escriba las funciones necesarias para poder calcular la equivalencia entre centmetros, pies y pulgadas. (1 Pulgada = 2.54 cm, 1 Pie = 30.48 cm, 1 Pie = 12 Pulgadas) 10. Escribir una funcin que lea un nmero entero y un nmero real por teclado, en funcin del nmero entero se aplicar una de las funciones de conversin anteriores, tal y como muestra la siguiente tabla:

52

Curso: BSI-03 Programacin I Universidad Latina

Ejercicios propuestos de un nivel de dificultad mayor. 11. Escriba una funcin que decida si un nmero entero es capica. La palabra capica (en matemticas, nmero palndromo) se refiere a cualquier nmero que se lee igual de izquierda a derecha y de derecha a izquierda (Ejemplos: 101, 111, 121,..., 181, 191, 202, 212,..., 292, 303, 313,..., 898, 909, 919, 929,..., 979, 989, 999, etc) 12. Escriba una funcin que calcule la suma de los divisores de un nmero entero positivo, pudiendo excluir de dicha suma el propio nmero (ser un parmetro adicional (valor 1 o 0) quien determinar si se suma o no). 13. Construya una funcin, llamada amigos, que apoyndose en la funcin anterior, permita ver si dos nmeros son o no amigos (dos nmeros A y B son amigos si la suma de los divisores de A (excluido l mismo) coincide con B y viceversa) 14. Realizar un programa que pida dos nmeros enteros por teclado y muestre por pantalla el siguiente men:

El usuario deber elegir introducir dos valores y a continuacin elegir una opcin (pulsando el carcter correspondiente), el programa deber mostrar el resultado por pantalla. Cada una de las opciones a realizarse en el men la debe realizar una funcin especfica, sumar(num1, num2); restar(num1,num2) etc

15. Realizar una funcin que reciba como entrada una frase acabada en punto, y devuelva el nmero de vocales y el nmero total de caracteres ledos sin incluir los espacios en blanco. 16. Realizar una funcin que reciba un array de caracteres y devuelva en una variable el nmero de palabras que hay en el array. 17. Realizar una funcin que recibe una cadena de caracteres, y cambia todas las vocales por punto. 18. Realizar un programa que lea un nombre con apellidos por teclado y a continuacin muestre el siguiente men:

53