83
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL MANUAL DE APRENDIZAJE CÓDIGO: 89001653 Profesional Técnico DESARROLLO DE SOFTWARE I COMPUTACIÓN E INFORMÁTICA

MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

Embed Size (px)

Citation preview

Page 1: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL

MANUAL DE APRENDIZAJE

CÓDIGO: 89001653

Profesional Técnico

DESARROLLO DE SOFTWARE I

COMPUTACIÓN E INFORMÁTICA

Page 2: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN
Page 3: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN
Page 4: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN
Page 5: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

TABLA DE CONTENIDOS

TAREA DENOMINACIÓN DE TAREA PÁG.

I. LECTURA Y ESCRITURA DE DATOS. 6

II. ESTRUCTURA DE CONTROL REPETITIVAS 30

III. CLASES: MATH Y STRING. 37

IV. ARREGLOS EN JAVA. 51

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 5

Page 6: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

I. LECTURA Y ESCRITURA DE DATOS.

El técnico profesional en Desarrollo de software al término de esta tarea podrá identificar y reconocer las principales características técnicas y procedimientos de lectura de datos de un algoritmo computacional Para ejecutar esta tarea deberá desarrollar las siguientes operaciones

Aprende y conceptualiza los operadores y los tipos de datos. Aprende y desarrolla el ingreso y visualización de datos mediante variables. Analiza y aplica la clase JOptionPane.

1.1. EQUIPOS Y MATERIALES.

1 Computador con tecnología Core 2 Duo con velocidad de 3.16 Ghz – Superior. Software Java Sun IDE Netbeans Versión 7.2 – Superior.

1.2. ORDEN DE EJECUCIÓN.

Utiliza variables de declaración. Identifican tipos de operadores. Crea variables estáticas. Identifican e implementa librerías para la lectura y escritura de datos. Utiliza la algorítmica computacional. Utiliza estructura de control condicional en programación. Utiliza estructuras de condición múltiple en programación.

Nunca consideres el estudio como una

obligación, sino como una oportunidad

para ingresar al maravilloso mundo del

saber. Albert Einstein

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 6

Page 7: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

1.3. OPERACIÓN.

1.3.1. NORMAS DE SEGURIDAD Y PROTECCIÓN AMBIENTAL.

Normas de seguridad.

Identifique el lugar de los extinguidores y la ubicación de las salidas del laboratorio.

Recuerda dónde está situado el botiquín. No pongas en funcionamiento un equipo de laboratorio sin que el instructor haya

revisado la instalación. No utilices ninguna herramienta o equipo sin conocer su uso, funcionamiento y

normas de seguridad específicas. Maneja con especial cuidado el material frágil. Informa al instructor del material roto o averiado. No fumar, comer o beber en el taller. Guarda tus prendas y los objetos personales y no los dejes sobre la mesa de

trabajo. Procura no andar de un lado para otro sin motivo y, sobre todo, no corras dentro

del laboratorio. Ten siempre tus manos limpias y secas. Si tienes alguna herida protégela. Mantenga su puesto de trabajo limpio y ordenado, para evitar accidente. Mantenga las herramientas ordenadas para evitar accidentes.

Normas de protección ambiental.

Los componentes electrónicos son tóxicos. Si salpicas la mesa, límpiala con agua y sécala después con un paño. Al acabar la práctica, limpia y ordena el material utilizado.

Los desechos tóxicos, generados en la tarea deben recolectados y entregados al instructor para ser depositados en tacho de elementos tóxicos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 7

Page 8: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Ventana principal del IDE Netbeans java:

1.3.2. USO DE OPERADORES.

El participante se encarga de asignar los tipos de operadores así como también el tipo de valor que devuelve una operación.

• Operadores Aritméticos:

Operador Uso Descripción

+ a + b Suma a y b

- a - b Resta a de b

* a * b Multiplica a y b

/ a / b Divide a por b

% a % b Obtiene el resto de dividir a

entre b

Nota: El lenguaje Java extiende la definición del operador + para incluir la concatenación de cadenas.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 8

Page 9: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Los operadores + y - tienen versiones unarias que seleccionan el signo del operando.

Operador Uso Descripción

+ +op Indica un valor positivo

- -op Niega el operando

Además, existen dos operadores de atajos aritméticos, ++ que incrementa en uno su operando, y -- que decrementa en uno el valor de su operando.

Operador Uso Descripción

++ op

++

Incrementa op en 1; evalúa el valor antes de

incrementar

++ ++

op

Incrementa op en 1; evalúa el valor después

de incrementar

-- op -- Decrementa op en 1; evalúa el valor antes de

decrementar

-- -- op Decrementa op en 1; evalúa el valor después

de decrementar

• Operadores Relacionales:

Operador Uso Devuelve true si

> a > b a es mayor que b

>= a >= b a es mayor o igual que b

< a < b a es menor que b

<= a <= b a es menor o igual que b

== a == b a y b son iguales

!= a != b a y b son diferentes

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 9

Page 10: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

• Operadores Lógicos:

Operador Uso Devuelve true si

&& a && b a y b son verdaderos

|| a || b uno de los dos es verdadero

! !a a es falso

Ejemplo:

Si la edad se encuentra en el intervalo de 18 y 50]

if (edad >= 18 && nota <= 50 ){:

}

• Operadores de Asignación. Se emplea el operador de asignación =, para asignar un valor a otro. Además del operador de asignación básico, Java proporciona varios operadores de asignación que permiten realizar operaciones aritméticas, lógicas o de bits y una operación de asignación al mismo tiempo. Suponga que desea adir un número a una variable y asignar el resultado dentro de la misma variable, como esto:

i = i + 2;

Puedes ordenar esta sentencia utilizando el operador +=.

i += 2;

Las dos líneas de código anteriores son equivalentes.

Tabla de los operadores de asignación y sus equivalentes.

Operador Uso Equivale a

+= a += b a = a + b

-= a -= b a = a – b

*= a *= b a = a * b

/= a /= a a = a / b

%= a %= b a = a % b

&= a &= b a = a & b

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 10

Page 11: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

|= a |= b a = a | b

^= a ^= b a = a ^ b

<<= a <<= b a = a << b

>>= a >>= b a = a >> b

>>>= a >>>= b a = a <<< b

Precedencia de Operadores en Java.

La tabla siguiente muestra la precedencia asignada a los operadores de Java. Los operadores se han listado por orden de precedencia de mayor a menor. Los operadores con mayor precedencia se evalúan antes que los operadores con una precedencia relativamente menor. Los operadores con la misma precedencia se evalúan de izquierda a derecha.

Operadores sufijo [] . (params) expr++ expr--

operadores unarios ++expr --expr +expr -expr ~ !

Creación o tipo new (type)expr

multiplicadores * / %

suma/resta + -

desplazamiento <<>>>>>

Relacionales <><=>= instanceof

Igualdad == !=

bitwise AND &

bitwise exclusive OR ^

bitwise inclusive OR |

AND lógico &&

OR lógico ||

Condicional ? :

Asignación = += -= *= /= %= ^= &= |= <<= >>=

>>>=

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 11

Page 12: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Aprende y desarrolla el ingreso y visualización de los datos mediante variables.

El participante se encarga de codificar el procedimiento de los diferentes tipos de declaración de variable.

Tipos de Variables.

Todas las variables en el lenguaje Java deben tener un tipo de dato. El tipo de la variable determina los valores que la variable puede contener y las operaciones que se pueden realizar con ella.

Tipos de datos.

Existen dos categorías de datos principales en el lenguaje Java: los tipos de datos primitivos y los tipos de datos referenciados.

Tipos de Datos primitivos.

Son datos simples que requieren de una sola posición de memoria para ser almacenados.

Tipo Tamaño/Formato Descripción

(Números enteros)

Byte 8-bit complemento a 2 Entero de un Byte

Short 16-bit complemento a 2 Entero corto

Int 32-bit complemento a 2 Entero

Long 64-bit complemento a 2 Entero largo

(Números reales)

Float 32-bit IEEE 754 Coma flotante de precisión simple

Double 64-bit IEEE 754 Coma flotante de precisión doble

(otros tipos)

Char 16-bit Carácter Un sólo carácter

Bolean true o false Un valor booleano (verdadero o falso)

Tipos de datos referenciados

Los tipos referenciados se llaman así porque el valor de una variable de referencia es una referencia (un puntero) hacia el valor real.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 12

Page 13: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

¿QUE ES UNA VARIABLE?

Son entidades valores o datos almacenado en la memoria, la variable posee la siguiente sintaxis de creación

Tipo de dato Nombre de variable;

Ejemplo 1

String nombre;

Se lee: variable de tipo cadena, quiere decir que la variable nombre almacena valores de tipo alfanumérico (combinación de números y letras)

Ejemplo 2

int edad ;

Se lee: variable de tipo entero, quiere decir que la variable edad almacena valores de tipo numérico entero

Ejemplo 3

int sueldo ;

Se lee: variable de tipo decimal, quiere decir que la variable sueldo almacena valores de tipo numérico entero o decimal.

Nota: una variable de tipo doublé ocupa más espacio en la memoria.

Implemente variable para almacenar el apellido de un alumno.

Tipo de dato Nombre de la variable

Implemente variable para almacenar la cantidad de artículos.

Tipo de dato Nombre de la variable

Implemente variable para almacenar el impuesto general a las ventas.

Tipo de dato Nombre de la variable

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 13

Page 14: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Ejemplo 1

Declaración de una variable de tipo String

package Programas;

public class Programa1 {

public static void main(String[] args) {

String nombre;

}

}

Importante: una variable de tipo String representa todos los caracteres alfanuméricos (letras, números o letras)

Ejemplo 2

Declaración de una variable de tipo String

package Programas;

public class Programa1 {

public static void main(String[] args) {

int edad;

} }

Importante: una variable de tipo int representa todos los valores numéricos enteros

Ejemplo 3

package Programas;

public class Programa1 {

public static void main(String[] args) {

doublé sueldo;

}

}

Variables estáticas

Una variable estática es aquel tipo de variable que se extiende por toda el proyecto y que por lo general tiene un ámbito superior al de otra variables.

Su uso es muy importante para el paso de valores de un aplicación a otra.

Ejemplo:

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 14

Page 15: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Crear una variable estática de nombre cont con tipo de dato String:

Solución

En esta declaración intervienen dos palabras clave cuyo significado es importante: a) static: los atributos miembros de una clase pueden ser atributos de clase o

atributos de instancia; se dice que son atributos de clase si se usa la palabra clave static: en ese caso la variable es única para todas las instancias (objetos) de la clase (ocupa un único lugar en memoria). A veces a las variables de clase se les llama variables estáticas. Si no se usa static, el sistema crea un lugar nuevo para esa variable con cada instancia (la variable es diferente para cada objeto). En el caso de una constante no tiene sentido crear un nuevo lugar de memoria por cada objeto de una clase que se cree. Por ello es adecuado el uso de la palabra clave static. Cuando usamos “static final” se dice que creamos una constante de clase, un atributo común a todos los objetos de esa clase.

b) final: en este contexto indica que una variable es de tipo constante: no admitirá cambios después de su declaración y asignación de valor. Final determina que un atributo no puede ser sobre escrito o redefinido. O sea: no funcionará como una variable “tradicional”, sino como una constante. Toda constante declarada con final ha de ser inicializada en el mismo momento de declararla. Final también se usa como palabra clave en otro contexto: una clase final (final) es aquella que no puede tener clases que la hereden. Lo veremos más adelante cuando hablemos sobre herencia.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 15

Page 16: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Ejemplo: Sintaxis: Carácter Público / Privado static final Tipo De La Constante = valor De La Constante; private static final float PI = 3.1416f; //Recordar f indica que se trata de un float private static double PI = 3.1416; public static final String password = "123456P@$$W0rd_";

Clase JOptionPane

Es una clase que permite crear alertas o cuadros de dialogo simples y sencillos con la finalidad de solicitar y mostrar información al usuario.

Métodos de la clase JOptionPane

JOptionPane.showInputDialog JOptionPane.showMessageDialog JOptionPane.showConfirmDialog JOptionPane.showOptionDialog

1. JOptionPane.showInputDialog Sirve para mostrar una ventana que permita ingresar datos (una cadena, texto, números, etc.). Los parámetros que puede recibir son los mismos que los del MessagaDialog. Ejemplo: Sintaxis: String texto = JOptionPane.showInputDialog (null, "Ingrese un texto: ", "showInputDialog",JOptionPane.INFORMATION_MESSAGE);

Ejemplo:

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 16

Page 17: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Ejecutar con la combinación de teclas Shift + F6

2. showMessageDialog(): Muestra un cuadro de diálogo al usuario, normalmente de carácter informativo, como mínimo recibe 2 parámetros: el componente padre (que puede ser null) y una cadena de caracteres que corresponde al mensaje a ser mostrado. También puede recibir como parámetro una cadena que irá como título del cuadro y el tipo de mensaje a mostrarse (determinado por una constante de la clase JOptionPane). Parámetros: • Component componente Padre: el componente al que pertenece. • Object mensaje = es el objeto que corresponde al mensaje (texto) a mostrarse. • String titulo = texto que será el título del cuadro de diálogo. • int tipoDeMensaje = definido por una constante de la clase JOptionPane

Sintaxis: JOptionPane.showMessageDialog(null,"Este es un mensaje simple"); Ejemplo:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 17

Page 18: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Resultado:

Constantes de JOptionPane: los mensajes pueden ser de tipo informativo (INFORMATION_MESSAGE), de error (ERROR_MESSAGE), de advertencia (WARNING_MESSAGE), mensaje plano (PLAIN_MESSAGE) o mensaje interrogativo (QUESTION_MESSAGE) aunque el uso de este último tipo de mensaje no tiene mucho sentido para este caso

Ejemplos:

3. showCofirmDialog(): Método que nos sirve para solicitar al usuario la confirmación de una determinada acción. Puede establecerse los distintos parámetros antes mencionados, como por ejemplo el componente padre, mensaje, título y tipo de mensaje. Para el tipo de mensaje las constantes posibles son:

YES_NO_OPTION,YES_NO_CANCEL_OPCION,YES_OPTION,NO_OPTION,

CANCEL_OPTION

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 18

Page 19: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Ejemplo:

4. showOptionDialog(): Podríamos decir que gracias a este método podemos obtener un cuadro de diálogo ajustado a nuestra necesidad, ya que es totalmente configurable.

Parámetros: • Componente Padre: el objeto que indica de qué componente es hijo. • Objeto Mensaje: un String que corresponde al texto a mostrarse como mensaje. • Título: String que se establecerá como título de la ventana. • Tipo de Opción: es un entero, representado por unas constantes que definen qué

opciones tendrá el cuadro de diálogo. Puede ser: DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, YES_CANCEL_OPTION.

• Tipo de Mensaje: entero que determina el tipo de mensaje (ERROR_MESSAGE, por ejemplo).

• Ícono: la imagen que acompañará al mensaje, si no se especifica (es decir, se pasa null) se establecerá uno por defecto de acuerdo al tipoDeMensaje.

• Opciones: un array tipo Object que indica las opciones posibles, normalmente debe ser coherente con Valor Inicial igual es la opción predeterminada, deberá ser una de las opciones introducidas en el array de opciones. Puede ser null.

Ejemplo:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 19

Page 20: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Resultado:

Ejemplo 2:

int elección = JOptionPane.showOptionDialog (null,"¿De verdad quieres salir?" ,"¿Salir?", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null , null , null); // Interpretar la elección del usuario

if(elección == JOptionPane.YES_OPTION){ System.exit(0); }

Define y aplica las estructuras de control.

Sentencias de Control de flujo en Java

La estructura de control de flujo determina el orden en que se ejecutarán las otras sentencias dentro del programa. El lenguaje Java soporta varias sentencias de control de flujo.

1. ESTRUCTURA SECUENCIAL. Es aquel tipo de estructura encargada de desarrollar los 2 pasos importantes los cuales son:

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 20

Page 21: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

1. Entrada. 2. Proceso. 3. Salida.

Ejercicios Propuestos:

Ingreso de datos:

Salida del propuesto:

Ejemplo 1:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 21

Page 22: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Ejemplo 2 public class Ejercicio4 { public static void main(String[] args) { int num1,num2,suma,producto; num1 = Integer.parseInt(JOptionPane.showInputDialog(null,"ingrese numero 1","N1",1)); num2 = Integer.parseInt(JOptionPane.showInputDialog(null,"ingrese numero 2","N2",1)); suma=num1 + num2; producto=num1 * num2; System.out.print("La suma de los dos valores es:"); System.out.println(suma); System.out.print("El producto de los dos valores es:"); System.out.println(producto);}}

Para realizar:

En la plantilla de la clase Bienvenida que muestra NetBeans, escriba el siguiente código de la aplicación.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 22

Page 23: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Pulse SHIF + F6 o haga clic en el botón Execute , para ejecutar la aplicación.

En el cuadro de diálogo escriba su nombre y pulse Enter.

Java mostrará un mensaje de bienvenida en el panel de salida de Netbeans.

Otra ventana seria:

public static void main(String[] args) {

String mensaje;

mensaje = JOptionPane.showInputDialog(null,"Ingrese nombre","Nombre",1);

JOptionPane.showMessageDialog(null,"El nombre es :" + mensaje); }

IMPORTANTE:

Repita los pasos del procedimiento anterior para crear las clases que se muestran a continuación (Cómo crear una aplicación Java).

Ejecute la aplicación para visualizar los resultados en el panel de salida (Output).

No olvide que antes de realizar cualquier aplicación Java debe mostrar una carpeta como directorio local, no para cada aplicación sino para todas las aplicaciones que desee realizar.

Cuando termine la sesión, cierre todo y envíe la carpeta que montó como directorio local en su USB.

Desarrollo de Aplicaciones con Sentencias de Control.

Estructura secuencial.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 23

Page 24: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

CASO PROPUESTO.

Utilizando la estructura secuencia implemente un programa que al momento de ingresar un numero de 3 dígitos de como resultado la suma de 15 tal como se muestra en la siguiente pantalla una vez terminado comunique al Instructor

/* para practicar

Programa que lea dos números por teclado y los muestre por pantalla.

*/

2. ESTRUCTURA CONDICIONAL.

Es aquel tipo de estructura que se encarga de evaluar condiciones según sea, estas se encuentra dividida de la siguiente manera:

2.1. La sentencia if simple. Es aquel tipo de estructura que evalúa una sola condición.

Sintaxis

if (condición) {

//Instrucciones que se ejecutan solo cuando la condición es true

}

2.2. La sentencia if…else Doble. Tipo de estructura que se encarga de evaluar 2 condiciones una cuando es verdadera y la otra cuando es falsa

if (respuesta == OK){

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 24

Page 25: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

//Código para la acción respuesta = OK true}

} else {

//Código para la acción respuesta no igual a OK false

}

2.3. La sentencia if…else if. Tipo de estructura que se encarga de evaluar múltiples condiciones

if (condición ){

//Código

} else if (condición 2) {

//Código

} else if (condición n) { //Código }

Ejemplo 1

String nombre="Juan Perez Lopez", cat="A";

double sb=700,sn;

if (cat.equals("A")==true) {

sn = sb + 250;

} else if (cat.equals("B")==true) {

sn = sb + 150;

} else if (cat.equals("C")==true) {

sn = sb + 100; // continua en la siguiente pagina

} else {

sn = 0 ;

} Ejemplo 2 public static void main(String[] args) { float sueldo; sueldo = Integer.parseInt(JOptionPane.showInputDialog(null,"ingrese sueldo 1","sueldo",1));

if (sueldo>3000) {

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 25

Page 26: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

System.out.println("Esta persona debe abonar impuestos");

} }

Ejemplo 3. Programa que devuelva la suma de cuadrados consecutivos:

2.4. LA SENTENCIA SWITCH.

La sentencia switch se utiliza para realizar sentencias condicionalmente basadas en alguna expresión. Por ejemplo, queremos mostrar el nombre de un mes basándose en su número entero equivalente.

Nota: La sentencia break es relativamente opcional dependiendo del tipo de aplicación que deseas realizar como se mostrara en el ejemplo siguiente y se utiliza para finalizar el switch tras la ejecución de un case. Si la sentencia break no estuviera, al salir de

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 26

Page 27: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

un bloque case entraría en el siguiente aunque el valor de ese case no coincidiera con el evaluado en la expresión. El case default se ejecuta si el resultado de la expresión no coincide con ningún case. Su uso también es opcional.

Ejercicio:

El resultado será Domingo puesto que el valor inicial del día es 1

La sentencia switch evalúa su expresión, en este caso el valor de cadena día, y ejecuta la sentencia case apropiada.

La sentencia break hace que el control salga de la sentencia switch y continúe con la siguiente línea. La sentencia break es necesaria en esta aplicación porque las sentencias case se siguen ejecutando hacia abajo. Esto es, sin un break explícito, el flujo de control seguiría secuencialmente a través de las sentencias case siguientes.

En el ejemplo, no se quiere que el flujo vaya de una sentencia case a otra, por eso se ha tenido que asignar las sentencias break.

Sin embargo, hay ciertos escenario en los que el control proceda secuencialmente a través de las sentencias case.

int mes, año;

int numeroDias;

. . .

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 27

Page 28: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

switch (mes) {

case 1.

case 3.

case 5.

case 7.

case 8.

case 10.

case 12. numeroDias = 31;break;

case 4.

case 6.

case 9.

case 11. numeroDias = 30;

break;

case 2.

if ( ((año % 4 == 0) && !( año % 100 == 0)) || año % 400 == 0) )

numeroDias = 29;

else

numeroDias = 28;break;

}

Finalmente, puede utilizar la sentencia default al final de la sentencia switch para manejar los valores que no se han manejado explícitamente por una de las sentencias case.

Ejemplo Aplicativo:

int mes;

mes = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese Mes","Mes",1));switch (mes) {

case 1: System.out.println("Enero"); break;

case 2: System.out.println("Febrero"); break;

case 3: System.out.println("Marzo"); break;

case 4: System.out.println("Abril"); break;

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 28

Page 29: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

case 5: System.out.println("Mayo"); break;

case 6: System.out.println("Junio"); break;

case 7: System.out.println("Julio"); break;

case 8: System.out.println("Agosto"); break;

case 9: System.out.println("Septiembre"); break;

case 10: System.out.println("Octubre"); break;

case 11: System.out.println("Noviembre"); break;

case 12: System.out.println("Diciembre"); break;

default: System.out.println("Este, no es un mes válido!");

break;

}

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 29

Page 30: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

II. ESTRUCTURA DE CONTROL REPETITIVAS. En este capítulo se trataran los siguientes temas:

ESTRUCTURAS DE CONTROL REPETITIVAS

Estructura de control for. Estructura de control while. Estructura de control do while.

1. ESTRUCTURA DE CONTROL REPETITIVAS. Aplica las estructuras de control for. 1.1. Sentencia repetitiva for. La sentencia for realiza una acción un número determinado de veces sabiendo cuantas veces iterara el mismo, esta estructura es controlada por un contador.

Sintaxis:

for (inicio; condición; incremento) {

Instrucciones;

}

Ejemplo:

Imprimir la siguiente serie de números: 0, 1, 2, 3, 4,…..20

for (i = 0; i <= 20; i =i+1) {

System.out.println(i);

}

1.2. Sentencia repetitiva While. La sentencia while realiza una acción un número determinado de veces si es que la condición a evaluarse es verdadera, esta estructura es controlada por un contador.

Sintaxis:

While ( Condicion ) {

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 30

Page 31: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Instrucciones;

Contador

}

Nota:

Generalmente esta estructura se utiliza en situaciones en donde desconocemos la cantidad de ciclos que se deben ejecutar para producir un resultado.

Ejemplo:

Imprimir la siguiente serie de números: 0, 1, 2, 3, 4,…..20

int n=0;

while (n <= 20) {

System.out.print(n +"\n");

n++;

}

1.3. Sentencia do…while. La sentencia do…while se emplea cuando el bucle debe ejecutarse al menos una vez.

Sintaxis:

do {

Instrucciones;

} while (condición);

Ejemplo:

Leer información de un archivo, al menos debe leer un carácter.

int n;

n = 10 ;

do {

System.out.println(n);

n--;

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 31

Page 32: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

} while (n != -1);

Casos Aplicativos:

Ejemplo 1. int f; for(f=1;f<=100;f++) { System.out.println(f); System.out.print("-"); } Ejemplo 2. public static void main(String[] args) { int aprobados,reprobados,f,nota; aprobados=0; reprobados=0; for(f=1;f<=5;f++) { nota = Integer.parseInt(JOptionPane.showInputDialog(null,"ingrese nota ", " Nota",1)); if (nota>=10) { aprobados=aprobados+1; } else { reprobados=reprobados+1; } } System.out.print("Cantidad de aprobados:"); System.out.println(aprobados); System.out.print("Cantidad de reprobados:"); System.out.print(reprobados); } // Salida

Ejemplo 3. public static void main(String[] args) { //multiplis de 3 y 5 ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 32

Page 33: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

int mul3,mul5,valor,f; mul3=0; mul5=0; for(f=1;f<=4;f++) { valor = Integer.parseInt(JOptionPane.showInputDialog(null,"ingrese valor ","Valor",1)); if (valor%3==0) { mul3=mul3+1; } if (valor%5==0) { mul5=mul5+1; } } System.out.println("Cantidad de valores ingresados múltiplos de 3:"); System.out.println(mul3); System.out.println("Cantidad de valores ingresados múltiplos de 5:"); System.out.print(mul5); } } Salida

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 33

Page 34: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Problemas propuestos: Ha llegado nuevamente la parte fundamental, que es el momento donde uno desarrolla individualmente la solución de un problema. 1. Elaborar un programa que lea n pares de datos, cada par de datos corresponde a

la medida de la base y la altura de un triángulo. El programa deberá informar: a) De cada triángulo la medida de su base, su altura y su superficie. b) La cantidad de triángulos cuya superficie es mayor a 12.

2. Desarrollar un programa que solicite la carga de 10 números e imprima la suma

de los últimos 5 valores ingresados.

3. Desarrollar un programa que muestre la tabla de multiplicar del 5 (del 5 al 50). Confeccionar un programa que permita ingresar un valor del 1 al 10 y nos muestre la tabla de multiplicar del mismo (los primeros 12 términos). Ejemplo: Si ingreso 3 deberá aparecer en pantalla los valores 3, 6, 9, hasta el 36.

4. Realizar un programa que lea los lados de n triángulos, e informar:

a) De cada uno de ellos, qué tipo de triángulo es: equilátero (tres lados iguales),

isósceles (dos lados iguales), o escaleno (ningún lado igual). b) Cantidad de triángulos de cada tipo. c) Tipo de triángulo que posee menor cantidad.

5. Escribir un programa que pida ingresar coordenadas (x,y) que representan puntos

en el plano. Informar cuántos puntos se han ingresado en el primer, segundo, tercer y cuarto cuadrante. Al comenzar el programa se pide que se ingrese la cantidad de puntos a procesar. Se realiza la carga de 10 valores enteros por teclado. Se desea conocer: a) La cantidad de valores ingresados negativos. b) La cantidad de valores ingresados positivos. c) La cantidad de múltiplos de 15. d) El valor acumulado de los números ingresados que son pares.

Importante:

1. Contadores.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 34

Page 35: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Un contador es una variable que se emplea para contar el número de ocurrencias de un suceso o el número de veces que se cumple un determinada condición. Por ejemplo, se necesita un contador para determinar: El número de veces que se hizo clic en un botón. El número de notas ingresadas. El número de notas aprobatorias. Una instrucción de conteo tiene la siguiente forma: contador++;

2. Acumuladores. Un acumulador es una variable que se emplea para acumular o totalizar cantidades de una misma especie. Por ejemplo, se necesita un acumulador para determinar: El sueldo total de los empleados de una empresa. La edad total de un conjunto de personas. La suma de las notas de un alumno. Una instrucción de conteo tiene la siguiente forma: acumulador += cantidad;

3. Comentarios. // Para establecer comentarios de una sola línea o comentarios a la derecha /* Comentarios en bloque… */ /** Comentarios para documentación… **/

Contador: Es aquel que lleva la cuenta de las veces que se ha realizado un proceso.

Contador es aquel que usaras dentro de una iteración y que fuera de ella no tiene valor significativo.

Estructura general de un programa en Java:

import javax.swing.*;

public class Demostracion { // inicio de la clase

//Declaración global

String nombre;

//Método principal

public static void main(String[] args) {

//Asignando un valor a la variable nombre ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 35

Page 36: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

nombre=”Juan Perez”;

//Mostrando en pantalla un mensaje de bienvenida

System.out.println(“Bienvenido a Java “ + nombre);

}//fin del metodo

}//fin de la clase

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 36

Page 37: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

III. CLASES MATH Y STRING.

En este capítulo se trataran los siguientes temas:

Clase String. Operaciones de cadena. Clase Math. Operaciones Matemáticas.

CLASES BASE: CLASE MATH Y CLASE STRING.

1. La Clase Math. Es una de las clases principales de Java ubicada en el paquete java.lang. Esta clase contiene una serie de métodos estáticos que nos ofrecen algunas funciones matemáticas importantes, a las que podemos acceder desde cualquier otra clase de la siguiente manera:

Métodos estáticos de la Clase Math:

Método Estático Significado

abs() Devuelve el valor absoluto

acos() Devuelve el arcocoseno

asin() Devuelve el arcoseno

atan () Arcotangente entre –PI/2 y PI/2

atan2(,) Arcotangente entre –PI y PI

ceil () Entero más cercano en dirección a infinito

floor () Entero más cercano en dirección a –infinito

round () Entero más cercano al argumento

rint () Entero más próximo

Math.abs(-5)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 37

Page 38: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

cos() Calcula el coseno

Sin() Calcula el seno

tan() Calcula la tangente

exp() Calcula la función exponencial

log() Calcula el logaritmo natural (base e)

max ( , ) Obtiene el máximo de dos argumentos

min( , ) Obtiene el mínimo de dos argumentos

random () Número aleatorio entre 0.0 a 1.0

pow ( , ) Devuelve el primer argumento elevado al segundo

sqrt () Devuelve la raíz cuadrada

toDegrees () Pasa de radianes a grados

toRadians() Pasa de grados a radianes

2. La Clase String. La Clase String es también una de las clases principales de Java, ubicada en el paquete java.lang. Esta clase contiene una serie de métodos estáticos orientados al manejo de las cadenas de caracteres. Recordemos que en Java una cadena de caracteres (String) no es un dato primitivo, sino más bien corresponde a una clase, por lo tanto podemos decir que todas las cadenas son objetos instanciados de la clase String.

Creación de cadenas de texto:

Primera Forma:

String Apellidos;

Apellidos=“Vargas Martínez”;

Segunda Forma:

String Apellidos;

Apellidos=new String(“Vargas Martínez”);

¿Cómo acceder a un método estático de la clase String?

Para acceder a un método estático de la clase String, debemos hacerlo desde uno de los objetos instanciados.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 38

Page 39: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Ejemplo:

int n=Apellidos.length() //Devuelve la longitud de la cadena //apellidos

Métodos estáticos de la Clase String:

Método Estático Significado

length() Devuelve la longitud de una cadena

startsWith Devuelve verdadero si la cadena empieza con …

reverse() Devuelve la cadena en sentido inverso

ValueOf Devuelve la representación como String

IndexOf( , ) Devuelve la posición de un carácter dentro de una cadena

Substring( , ) Extrae una determinada cantidad de caracteres de una

cadena

toLowerCase() Convierte una cadena a mayúsculas

toUpperCase() Convierte una cadena a minúsculas

trim() Elimina espacios en blancos antes y después de la cadena

charAt( ) Devuelve el carácter asociado a una posición.

Otros tipos de conversiones:

Convertir a String:

Esta forma de conversión lo podemos lograr a través del método valueOf de la Clase String

Ejemplo:

int valor=12;

String valorCad=String.valueOf(valor);

Nota: El método valueOf funciona para convertir datos int, double, float, long, y char.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 39

Page 40: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

EJERCICIOS PRÁCTICOS.

//Programa que calcula la suma de las cifras de un #

import javax.swing.*;

public class SumaCifras {

public static void main(String[] args){

//Definiendo variables

String c;long suma=0;

//Obteniendo # como texto

c=JOptionPane.showInputDialog(null,"Ingrese Número de 3 cifras","",1);

//Convirtiendo el número en entero

int n=Integer.parseInt(c);

//Descomponiendo el # en centenas, decenas y unidades

long cen=n/100;

long res=n%100;

long dec=res/10;

long uni=res%10;

//Calculando la suma de las cifras

suma=cen+dec+uni;

//Imprimiendo la suma de las cifras

System.out.println("La suma sus cifras es: "+suma);

}

}

//Programa que determina si un número es primo o no

import javax.swing.*;

public class NumeroPrimo{

public static void main(String[] args) {

//Definiendo variable para el número

String c;

//Ingresando numero como texto

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 40

Page 41: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

c=JOptionPane.showInputDialog(null,"Ingrese número","",1);

//Convirtiendo el numero a entero

int n=Integer.parseInt(c);

//Determinando si el # es primo o no

if (n%1==0 && n%n==0 && n%2!=0){

System.out.println("El # "+n+" es PRIMO");

}else{

System.out.println("El # "+n+" No es PRIMO");

}

}

}

//Programa que determina el revés de un número

import javax.swing.*;

public class NumeroReves {

public static void main(String[] args) {

//Definiendo variable para el número

String c;

//Ingresando numero como texto

c=JOptionPane.showInputDialog(null,"Ingrese número","",1);

//Creando un nuevo objeto de tipo StringBuffer

StringBuffer c1=new StringBuffer(c);

//Aplicando el método reverse para invertir el número

StringBuffer c2=c1.reverse();

//Imprimiendo el número invertido

System.out.println("El número al revés es "+c2);

}

}

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 41

Page 42: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

//Simula el lanzamiento de 3 dados

public class LanzaDados {

public static void main(String[] args){

//Declarando variables

int i=1,c=0;

//Definiendo bucle para generar tiros

while(i<=100) {

//Generando los numeros

long d1=Math.round(Math.random()*5+1);

long d2=Math.round(Math.random()*5+1);

long d3=Math.round(Math.random()*5+1);

//Incrementa en 1 el contador

c++;

//Imprimiendo los tiros de los dados

System.out.print(d1+"\t"+d2+"\t"+d3);

System.out.println("");

//Incrementa 1 al contador

i++;

//continua en la siguiente pagina

//Si los tres dados tinen 6 se termina el programa

if (d1==6 && d2==6 && d3==6){i=101;}

}

System.out.print("Fue necesario tirar "+c+" veces");

}

}

// Genera notas aleatorias con histograma

public class NotasConHistograma {

public static void main(String[] args){

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 42

Page 43: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

//Definiendo variables contador y control de notas

int c=0,i=1;

//Imprimiendo la cabecera

System.out.println("Nota"+"\t"+"Histograma");

System.out.println("======================");

//Bucle para establecer notas

while(i<=50) {

//Generando las notas

double n=Math.round(Math.random()*20);

//Imprime la nota

System.out.print(n+"\t");

//Genera el histograma

for (int j=1;j<=n;j++){

System.out.print("*");

}

//Imprime linea en blanco

System.out.println("");

i++;//Incrementa 1 al control de notas

}

}

}

Ejercicios Aplicativos:

Estructura if…else

1.- Clase: NumeroPrimo

//Programa que determina si un número es primo o no

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 43

Page 44: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Pulse SHIFT + F6 para ejecutar la aplicación. Luego verá un cuadro de diálogo donde debe ingresar un número para determinar si es primo o no.

La ventana de salida de NetBeans mostrará el resultado del proceso.

Estructura while

2.- Clase: Número Primo

//Programa que determina si un número es primo o no

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 44

Page 45: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Pulse SHIFT + F6 para ejecutar la aplicación. Luego verá un cuadro de diálogo donde debe ingresar un número para calcular el factorial del número.

La ventana de salida de NetBeans mostrará el resultado del proceso.

Propuesto con for: 1. Genere números naturales consecutivos del 27 al 79. 2. Digite la cantidad de números naturales que se desean visualizar, muéstrelos en

forma ascendente. 3. Ingrese un número natural y muestre todos números naturales en forma

descendente inferiores al número digitado. 4. Genere y muestre los 50 primeros múltiplos de tres en forma ascendente.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 45

Page 46: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

5. Genere y muestre los 30 primeros números impares positivos pero en forma descendente.

6. Digite un número natural y muestre su factorial, tenga en cuenta que el factorial de 0 y 1 es 1.

7. Ingrese un número natural y muestre todos sus divisores.

Utilizando Estructura while

3.- Clase: NotasConHistograma

//

Programa que genera notas aleatorias con histograma y uso de la clase Math, //métodos round y random.

Pulse SHIFT + F6 para ejecutar la aplicación. La ventana de salida de NetBeans mostrará las notas de 50 alumnos con su respectivo histograma según la nota obtenida por el alumno.

Salida del ejercicio Aplicativo:

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 46

Page 47: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Caso con Math. public class Math1 { public static void main(String[] args) { double operador1=25.5; double operador2=15.21; Math.ceil(operador1); // Devuelve 26.0 Math.floor(operador2); //Devuelve 15.0 Math.pow(operador1, operador2); // Devuelve 2.474435537975361E21 Math.max(operador1, operador2); //Devuelve 25.5 Math.sqrt(operador1); ////Devuelve 5.049752469181039 }

}

Estructura while.

4.- Clase: LanzaDados

//Simula el lanzamiento de 3 dados empleando la clase Math y los métodos round y //random.

Recordando que el método random es aleatorio y el método round redondea una expresión numérica

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 47

Page 48: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Pulse SHIFT + F6 para ejecutar la aplicación. La ventana de salida de NetBeans mostrará los puntajes de los dados y el número de veces que se lanzaron los dados.

Clase String

Clase: Comparación

//Compara si dos objetos son iguales y si tienen el mismo valor

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 48

Page 49: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Pulse SHIFT + F6 para ejecutar la aplicación. La ventana de salida de NetBeans mostrará la comparación entre las cadenas en canto a si son los mismos objetos y si tienen en mismo valor.

Propuestos

1) Crea una aplicación que nos calcule el área de un círculo, cuadrado o triangulo. Pediremos que figura queremos calcular su área y según lo introducido pedirá los valores necesarios para calcular el área. Crea un método por cada figura para calcular cada área, este devolverá un número real. Muestra el resultado por pantalla

2) Crea una aplicación que nos genere una cantidad de números enteros aleatorios

que nosotros le pasaremos por teclado. Crea un método donde pasamos como

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 49

Page 50: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

parámetros entre que números queremos que los genere, podemos pedirlas por teclado antes de generar los números. Este método devolverá un número entero aleatorio. Muestra estos números por pantalla.

3) Crea una aplicación que nos cuente el número de cifras de un número entero

positivo (hay que controlarlo) pedido por teclado. Crea un método que realice esta acción, pasando el número por parámetro, devolverá el número de cifras.

4) Crea una aplicación que permita calcular el factorial de un número pedido por

teclado, lo realizara mediante un método al que le pasamos el número como parámetro. Para calcular el factorial, se multiplica los números anteriores hasta llegar a uno. Por ejemplo, si introducimos un 5, realizara esta operación 5*4*3*2*1=120.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 50

Page 51: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

IV. ARREGLOS EN JAVA. En este capítulo se trataran los siguientes temas:

Arrays. Tipos. Componentes swing (GUI).

Arreglos en Java.

Los Arreglos en Java son agrupaciones de campos de memoria en los cuales podemos almacenar valores de forma “ordenada”, estos valores almacenados pueden ser de tipo primitivo o de objetos (clases), para manipular los datos (agregar, eliminar, buscar) se accede a ellos por medio de su índice, el cual va desde 0 (cero) hasta su valor -1 (n-1), para empezar a entender lo que es un arreglo tenemos la siguiente imagen:

La imagen es de un arreglo de 10 elementos, que en los diferentes campos siempre va un valor del mismo tipo de valor (int, float, double, boolean, etc.). Sabiendo de antemano las características que poseen los arreglos pasamos a la creación de estos. Para la creación de estos es de la siguiente manera:

Declaración de un Arreglo

int numeros[] = new int [5];

TIPOS DE ARRAY.

1. Array Unidimensional. Se le llama también Lineal, vector o lista. El siguiente grafico muestra un arreglo lineal:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 51

Page 52: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Inicialización del Array.

Consiste en darle valores a cada elemento del arreglo, este proceso lo podemos hacer al mismo tiempo que creamos el arreglo

Ejemplos

int x[] = { -3, 5, 56, -23, 45, 67, 3, 7, 14, 22 };

char estCivil[] = { ‘s’, ‘d’, ‘c’, ‘d’, ‘s’, ‘s’ };

String nombre[] = { “Luis”, “Juan”, “Inés”, “Raúl” };

double basicos[] = {790.4, 1050.2, 870.0, 1300.5};

Ejemplo de Aplicación:

//creando el Array

int numeros[] = new int [5];

//Asignando valores al Array

numeros[0] =10;

numeros[1]=15;

numeros[2]=25;

numeros[3]=5;

numeros[4]=17;

//mostrando los valores del Array

for (int p=0; p<numeros.length; p++ ){

System.out.println("Numero : " + numeros[p]);

}

Aplicación 01. Utilizando la clase BufferedReader import java.io.*; BufferedReader teclado;

teclado = new BufferedReader (new InputStreamReader(System.in));

//Declaración de variables

int p;

int a[];

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 52

Page 53: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

//arreglo de 3 posiciones

a = new int[3];

//Carga del arreglo

System.out.println(" Cargando el arreglo ......");

for ( p=0; p<a.length; p++ ){

System.out.print("a[" + p + "]=> ");

a[p]=Integer.parseInt(teclado.readLine());

}

//Muestra del arreglo

System.out.println(" Mostrando el arreglo ......");

for ( p=0; p<a.length; p++ )

System.out.println("a[" + p + "]= " + a[p]);

}

Aplicación 02. Mostrando de manera aleatoria 10 valores en una variable de tipo Array //Declaración de variables int p; int b[];

b = new int[10];

//Carga del arreglo con números aleatorios

for ( p=0; p<b.length; p++ )

b[p]=(int)((99-10+1)*Math.random()+10);

//Muestra del arreglo

System.out.println(" Mostrando el arreglo ......");

for ( p=0; p<b.length; p++ )

System.out.println("b[" + p + "]= " + b[p]);

Aplicación 03.

Array que devuelve de una lista de valores el Mayor y Menor valor encontrado así como su posición y adicionalmente devuelve la suma

//Declaración de variables

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 53

Page 54: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

int num, pos_mayor, pos_menor, mayor, menor, p, suma;

int g[];

g = new int[15];

//Carga del arreglo con números aleatorios

System.out.println("Mostrando el arreglo ........");

for ( p=0; p<g.length; p++ ) {

g[p]=(int)((80-20+1)*Math.random()+20);

System.out.println("g[" + p + "]= " + g[p]); }

pos_mayor=0; pos_menor=0;

mayor=10; menor=10;

//Ubicando el mayor y menor valor

System.out.println("Buscando el mayor y menor ........");

for ( p=0; p<g.length; p++ ){

if (p == 0){

mayor=g[0];

menor=g[0];

}else{

if (g[p] > mayor){

mayor=g[p];

pos_mayor=p;

} if (g[p] < menor){

menor=g[p];

pos_menor=p;

} } }

System.out.println("Mayor : " + mayor + " posicion : " + pos_mayor);

System.out.println("Menor : " + menor + " posicion : " + pos_menor);

//Calculando la suma

System.out.println("Calculando la suma........");

suma = 0;

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 54

Page 55: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

for (p = 0; p < g.length; p++) {

if (p % 2 == 0) {

suma = suma + g[p];

} }

System.out.println("Suma : " + suma);

2. Array Bidimensional.

Los arrays bidimensionales o también denominados Matriz o tablas. La dimensión de un array la determina el número de índices necesarios para acceder a sus elementos.

Una matriz necesita dos índices para acceder a sus elementos. Gráficamente podemos representar una matriz como una tabla de n filas y m columnas cuyos elementos son todos del mismo tipo.

Array m de 3 filas y 5 columnas:

Gráficamente podemos representar la disposición real en memoria del array anterior así:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 55

Page 56: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Ejemplo:

Aplicativo 01. int fil,col; int a[][]= new int[3][2]; //Inicializando los valores a[0][0] = 12; a[0][1] = 11; a[1][0] = 13; a[1][1] = 14; a[2][0] = 15; a[2][1] = 21; System.out.println(" Mostrando la matriz ......"); //creando el bucle for( fil=0; fil<=2; fil++ ){ // recorriendo por las filas for ( col=0; col<=1; col++)// recorriendo por las columnas System.out.print("\t" + a[fil][col]); System.out.println();//realizando el salto de linea } Ventajas de un array:

- Puedes almacenar bastante información en una variable. - Puedes recuperar esa información. - Es más fácil de trabajar. - Trabajas con direcciones. - Si conocemos la posición dentro del arreglo del elemento que queremos

consultar, la consulta toma un tiempo constante. - Pueden ser usados para implementar otras estructuras de datos sofisticadas

como pilas, colas, tablas hash.

Problema 1. Matriz que devuelve 3 filas, 4 columnas y de forma aleatoria valores de un solo digito: int fil,col; int a[][]; a= new int[3][4]; //Carga del arreglo con números aleatorios for ( fil=0; fil<3; fil++ ) for ( col=0; col<4; col++ )

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 56

Page 57: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

a[fil][col]=(int)(Math.random()*10); //Muestra del arreglo System.out.println(" Mostrando la matriz ......"); for ( fil=0; fil<3; fil++ ) { for ( col=0; col<4; col++ ) System.out.print("\t" + a[fil][col]); System.out.println(); } System.out.println();

Salida

Problema 2

int fil,col; int d[][]; d= new int[5][5]; //Carga del arreglo con números aleatorios for ( fil=0; fil<5; fil++ ) for ( col=0; col<5; col++ ) d[fil][col]=(int)((50-20+1)*Math.random()+20); //Muestra del arreglo System.out.println(" Mostrando la matriz ......"); for ( fil=0; fil<5; fil++ ) { for ( col=0; col<5; col++ ) System.out.print("\t" + d[fil][col]); System.out.println(); } //Elementos de la primera fila System.out.print("\n Mostrando elementos de la primera fila ...\n"); for ( col=0; col<5; col++ ) System.out.print("\t" + d[0][col]); System.out.println(); //Elementos de la ultima columna System.out.print("\n Mostrando elementos de la última columna...\n"); for ( fil=0; fil<5; fil++ )

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 57

Page 58: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

System.out.print("\t" + d[fil][4]); System.out.print("\n\n")

Salida

Problema 3

public static void main(String[] args){ int fil,col,suma_fil,suma_col; int e[ ][ ]; e = new int[7][7]; //Carga del arreglo con números aleatorios for ( fil=0; fil<7; fil++ ) for ( col=0; col<7; col++ ) e[fil][col]=(int)((20-10+1)*Math.random()+10); //Muestra del arreglo System.out.println(" Mostrando la matriz ......"); for ( fil=0; fil<7; fil++ ) { for ( col=0; col<7; col++ ) System.out.print("\t" + e[fil][col]); System.out.println(); } //Elementos de la fila central suma_fil=0; for ( col=0; col<7; col++ ) suma_fil=suma_fil+e[3][col]; System.out.print("\n\nSuma elementos, fila central : " + suma_fil); //Elementos de la columna central suma_col=0; for ( fil=0; fil<7; fil++ )

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 58

Page 59: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

suma_col=suma_col+e[fil][3]; System.out.print("\n\nSuma elementos, columna central: "+suma_col+"\n\n"); }

Salida:

Desventajas de un array: - Su tamaño es fijo, por lo que si no se conoce de antemano el número máximo de

elemento a almacenar pueden ocurrir problemas si el espacio reservado es menor del necesario.

- Insertar elementos de manera ordenada es muy lento. - Buscar un elemento en un arreglo desordenado es muy lento.

Ejemplos:

Crear un array de 3 posiciones:

Solución

Crear un array de 2 filas y 3 columnas:

Solución

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 59

Page 60: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Declarar un array de 2 posiciones con valores asignados por defecto:

Solución

Clase: Tridimensional: //Aplicación que permite almacenar notas de tres cursos para tres alumnos //empleando un arreglo tridimensional.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 60

Page 61: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Pulse SHITF + F6 para ejecutar la aplicación. La ventana de salida de NetBeans mostrará las notas más altas de los tres alumnos contenidos en el arreglo.

Arreglos Unidimensionales

1. Crear el arreglo a con 8 elementos de tipo entero, cargarlo con valores que se ingresaran vía teclado, finalizada la carga muestre el arreglo.

2. Construya un arreglo b entero de 10 elementos, cargarlo con números aleatorios de 2 cifras, terminada la carga muestre el arreglo.

3. Crear un arreglo c entero y cárguelo con los siguientes valores -25, 45, 8, 16, 25, 34, 1 ,12. Finalizada la carga muestre el arreglo.

4. Construya un arreglo d entero de 15 elementos, cárguelo con números aleatorios del 35 al 70, terminada la carga muestre: a. El arreglo. b. La suma de los valores de los 5 elementos centrales.

5. Crear un arreglo e entero de 20 elementos y cárguelo con números aleatorios de 2 a 3 cifras, finalizada la carga muestre: c. El arreglo. d. Las posiciones y los valores de los elementos cuyo contenido es par. e. El promedio de los 8 últimos elementos.

6. Construya un arreglo f entero de 12 elementos, cárguelo con números aleatorios del 50 al 150; ahora ingrese un numero entero el cual se buscará en el arreglo, si lo encuentra muestre en qué posición o posiciones se encuentra, de no ubicarlo muestre el mensaje “no se encuentra en el arreglo”.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 61

Page 62: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

7. Crear un arreglo g entero de 15 elementos, cárguelo con números aleatorios del 20 al 80, terminada la carga muestre: a. El mayor y el menor valor que se encuentra en el arreglo, además de mostrar

sus ubicaciones correspondientes.

La suma de los valores de todos los elementos que están en posición par.

UNIDAD DE INTERFACES GRAFICAS (GUI).

Utilizando Formularios (componentes Swing)

Explorador de proyectos

Formulario

Paleta de propiedades Paleta de controles

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 62

Page 63: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

EJERCICIOS DE REFORZAMIENTO – INVESTIGACIÓN. 1) ¿Cuáles son las características principales de Java?

2) ¿Qué extensión tienen los archivos de Java?

3) ¿Qué es el JDK de Java?

4) ¿Cuáles son las principales tecnologías de Java?

5) ¿Qué son variables?

6) ¿Cuántos tipos de datos maneja Java?

7) ¿Cuáles son las sentencias de control de Java?

8) ¿Qué son contadores?

9) ¿Qué son acumuladores?

10) ¿Qué es una clase?

11) ¿Qué es un objeto?

12) ¿Qué es una instancia?

13) ¿Qué es un método?

14) ¿Cuáles son las clases base de Java?

15) ¿Qué método emplea para extraer raíz cuadrada?

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 63

Page 64: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

AUTOEVALUACIÓN – TAREA. 1. Es propietaria de Java:

a) Microsoft b) Sun c) Adobe d) Macromedia

2. Los archivos compilados que generan ceros y unos, se denominan: a) ByteCodes b) Clase c) Intérprete d) Compilador

3. El intérprete que ejecuta la aplicación Java se denomina:

a) Class b) Compiler c) JavaVM d) Ninguno

4. No es una tecnología de Java: a) Servlets b) Applets c) JDBC d) Frames

5. La variable que determina el número de notas ingresadas se denomina: a) Contador b) Operador c) Clase d) Acumulador

6. short, byte, int son tipos de datos: a) Básicos b) Primitivos c) Numéricos d) Referenciales

7. Realiza una acción mientras se cumpla una determinada condición: a) if b) switch c) for d) while

8. Realiza acciones un número determinado de veces controlado por contador: a) while b) for c) if d) switch

9. No es un método de la clase Math: a) pow b) round c) sqrt d) avg

10. Extrae una determinada cantidad de caracteres de una cadena a) length b) valueOf c) substring d) charAt

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 64

Page 65: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Controles de la paleta Swing.

Mostrar nombres de los componentes:

Para mostrar los nombres de los componentes swing de tal modo que pueda identificarlos con facilidad haga lo siguiente:

1. Pulse botón derecho en cualquier componente.

2. Elija la opción Show Component Names:

Estableciendo el estilo de diseño:

Para realizar un diseño libre del formulario active la opción NullLayout, para ello haga lo siguiente:

1. Pulse botón derecho en el formulario.

2. Elija la opción Set Layout.

3. Haga clic en Null Layout.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 65

Page 66: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Agregar componentes en el formulario:

1. Pulse el componente que desea agregar al formulario. 2. Haga clic en el formulario.

Ejemplo de Aplicación No. 1. Como ejemplo desarrollaremos un formulario que permita realizar las cuatro operaciones aritméticas básicas. Para ello agregue los siguientes controles al formulario: • 1 JLabel, para mostrar mensajes descriptivos. • 2 JTextField, Para ingresar datos y mostrar resultados. • 3 JButton. Para ejecutar las operaciones. El formulario debe mostrar el siguiente aspecto:

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 66

Page 67: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Propiedades de los componentes: Las propiedades son las características que se asignan a los componentes con la finalidad de dar una buena presentación al diseño del formulario. Para asignar propiedades a los componentes haga lo siguiente: 1. Seleccione el componente.

2. En el panel de propiedades, pulse sobre la propiedad que desea asignar.

3. Defina el valor correspondiente para la propiedad

Nota cada vez que desea aplicar una propiedad tenga presente en seleccionar el control

Recordando:

¿Para qué nos sirve la clase? Para crear objetos de tipo Taxi. Por eso se dice que en Java una clase define un tipo. Recordamos ahora la definición de clase que habíamos dado previamente: “Clase: conjunto de objetos , métodos y propiedades .”

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 67

Page 68: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Define las siguientes propiedades de los controles:

Redimensionar el tamaño del formulario. En la sección Code del panel de propiedades, elija la opción Generate Resize Code para mostrar el formulario con el tamaño que definió en el diseño. Renombrar componentes. El nombre de los componentes se define para efectos de utilizarlos en el código de la aplicación. Para renombrar componentes haga lo siguiente: 1. Pulse botón derecho en el componente.

2. Elija la opción Rename.

3. Escriba el nombre del componente.

Defina los siguientes nombres de los componentes. Estos nombres serán utilizados en el código de la aplicación.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 68

Page 69: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Cuando haya terminado de definir los nombres y los textos de los componentes, el formulario debe tener el siguiente aspecto.

Cómo obtener datos de un JTextField. Para obtener datos de un componente JTextField y asignarle a una variable, se emplea el método getText(). Cómo establecer datos en un JTextField. Para establecer datos en un componente JTextField, se emplea el método setText(). Para codificar la aplicación, haga doble clic en los botones y escriba el código Java.

Componente Nombre JTextField1 Txt1 JTextField2 Txt2 JTextField3 Txt3 JButton1 BtnSuma JButton2 BtnResta JButton3 BtnMultiplica JButton4 BtnDivide

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 69

Page 70: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Pulse SHIFT + F6 para ejecutar la aplicación, luego ingrese los datos y pulse en los botones para realizar los cálculos correspondientes.

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 70

Page 71: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Aplicación Visual - Array1:

Programando dentro del botón.

private void btnValoresActionPerformed(java.awt.event.ActionEvent evt) {

String[] cursos= {"1. Java","2. Visual Net", "3. C++","4. SQL","5. HTML","6. PHP" }; FrmArray1 a=new FrmArray1(); String n1,n2,n3,n4,n5,n6; int nn1,nn2,nn3,nn4,nn5,nn6; //ingresando numero como texto n1=JOptionPane.showInputDialog(null,"Ingrese Nota1","",1); n2=JOptionPane.showInputDialog(null,"Ingrese Nota2","",1);

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 71

Page 72: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

n3=JOptionPane.showInputDialog(null,"Ingrese Nota3","",1); n4=JOptionPane.showInputDialog(null,"Ingrese Nota4","",1); n5=JOptionPane.showInputDialog(null,"Ingrese Nota5","",1); n6=JOptionPane.showInputDialog(null,"Ingrese Nota6","",1); System.out.println("-------------------------------"); String[] nota= new String[cursos.length]; double[] promedioponderado= new double[1]; nn1=Integer.parseInt(nota[0] = n1); nn2=Integer.parseInt(nota[1] = n2); nn3=Integer.parseInt(nota[2] = n3); nn4=Integer.parseInt(nota[3] = n4); nn5=Integer.parseInt(nota[4] = n5); nn6=Integer.parseInt(nota[5] = n6); promedioponderado[0]=(nn1+nn2+nn3+nn4+nn5+nn6)/6; //salida String salida="Curso Notas"+ "\n"+"---------------------------------------"+ "\n"+cursos[0]+" "+nota[0]+ "\n"+cursos[1]+" "+nota[1]+ "\n"+cursos[2]+" "+nota[2]+ "\n"+cursos[3]+" "+nota[3]+ "\n"+cursos[4]+" "+nota[4]+ "\n"+cursos[5]+" "+nota[5]+ "\n"+"---------------------------------------"+ "\n El promedio ponderado es: "+ promedioponderado[0]; JOptionPane.showMessageDialog(null,salida,"Promedio de Notas ",JOptionPane. INFORMATION_MESSAGE); Caso aplicativo a implementar: Caso 1:

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 72

Page 73: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Caso 2:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 73

Page 74: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Caso 3 (Libre) – Solucionario. Script de las pantallas anteriores. Paso 1 En un archivo Javaclass crear una clase de nombre Operacion public class Operacion { //creacion de una entidad de ambito publico public int suma (int n1, int n2){ int s ; s = n1 + n2 ; return s; } public int resta (int n1, int n2){ int r ; r = n1 - n2 ; return r; } public int multi (int n1, int n2){ int m ; m = n1 * n2 ; return m; } public int divi (int n1, int n2){ int d ; d = n1 * n2 ; return d; } } Paso 2. Crear en el proyecto un Jframe de nombre Aplicacion2 //declaracion a nivel de clase Operacion v = new Operacion(); //variables a nivel de clase int s,r,m,d,num1,num2; String verdis;

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 74

Page 75: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Dentro de la clase void nuevo(){ txtnombre.setText(""); txtape.setText(""); txtcodigo.setText(""); txtdir.setText(""); txtcodigo.requestFocus(); t1.setText(""); t2.setText(""); t3.setText(""); } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { num1 = Integer.parseInt(t1.getText()); num2 = Integer.parseInt(t2.getText()); s = num1 + num2 ; t3.setText(String.valueOf(v.suma(num1, num2))); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { num1 = Integer.parseInt(t1.getText()); num2 = Integer.parseInt(t2.getText()); r = num1 - num2 ; t3.setText(String.valueOf(v.resta(num1, num2))); } private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { num1 = Integer.parseInt(t1.getText()); num2 = Integer.parseInt(t2.getText()); m = num1 * num2 ; t3.setText(String.valueOf(v.multi(num1, num2))); } private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) { String cod,nom,ape,dir ; int dist ; cod = txtcodigo.getText(); nom = txtnombre.getText(); ape= txtape.getText(); dir = txtdir.getText(); dist = cbdis.getSelectedIndex(); switch (dist){ case 0 : verdis = "Cercado";break; ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 75

Page 76: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

case 1 : verdis = "Lince";break; case 2 : verdis = "V.E,S";break; case 3 : verdis = "Callao";break; case 4 : verdis = "Comas";break; } //mostrando los datos JOptionPane.showMessageDialog(null, "El codigo ingresados es : " + cod + "\n" + "El nombre del cliente es : " + nom + "\n" + "El Apellido es : " + ape + "\n" + "La Direccion es : " + dir + "\n" + "El Distrito seleccionado es : " + verdis +"\n" ,"Reporte de clientes",1); } private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) { nuevo(); } Casos resueltos: Promedio De Notas: private void txtpromedioActionPerformed(java.awt.event.ActionEvent evt) {

int practica,cuaderno,exsamen;

double promedio ;

String nombre;

nombre = txtnombre.getText();

practica=Integer.parseInt(txtpractica.getText());

cuaderno=Integer.parseInt(txtcuaderno.getText());

exsamen=Integer.parseInt(txtexsamen.getText());

promedio= (practica+cuaderno+exsamen)/3;

txts.setText("Resultados: es"+"\n");

txts.append("Nombre del Alumno es:"+nombre+"\n");

txts.append("promedio es:"+promedio+"\n");

}

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 76

Page 77: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Caso 2. -Calcular el importe el Igv es 18%, Descuento 0.08% private void txttotalActionPerformed(java.awt.event.ActionEvent evt) { int factura,precio,cantidad;

double calcular = 0.00,dcto = 0,igv = 0,total;

String cliente,articulo;

articulo = txtarticulo.getText();

cliente = txtcliente.getText();

factura=Integer.parseInt(txtfactura.getText());

precio=Integer.parseInt(txtprecio.getText());

cantidad=Integer.parseInt(txtcantidad.getText());

if((cantidad>0)&&(precio>0)){

calcular=cantidad*precio;

igv= calcular *18/100;

dcto =calcular*8/100;

} total = calcular+igv-dcto;

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 77

Page 78: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

txts.setText("Resultados:de la venta es "+"\n");

txts.append("El codigo del Producto es:"+factura+"\n");

txts.append("El Nombre del articulo es :"+precio+"\n");

txts.append("la cantidad del producto es:"+cantidad+"\n");

txts.append(" calcular:"+calcular+"\n");

txts.append("el total es:"+total+"\n");

}

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 78

Page 79: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Caso 3.- importe de ventas en java. import javax.swing.*; public class FrmVentas { public static void main(String[ ] args){ int cantidad,unidad,total;

String out= " ";

for(int i=1;i<=7;i++) {

String articulo,temp;

articulo=JOptionPane.showInputDialog("Ingrese nombre del articulo");

temp=JOptionPane.showInputDialog("Ingrese cantidad del producto"+articulo);

cantidad=Integer.parseInt(temp);

temp=JOptionPane.showInputDialog("Ingrese el importe del producto" + " " + articulo);

unidad=Integer.parseInt(temp);

total=cantidad*unidad;

if(total<100) {

total=cantidad;

} else {

total=unidad*cantidad;

}

out=out+"Nombre:"+articulo+"\n"+"Costo por unidad del producto:"+ unidad+"\n"+" cantidad del producto:"+cantidad+"\n"+" total a pagar es:"+total+"\n"+"\n";

} JOptionPane.showMessageDialog(null,out," Informe de Ventas de Articulos",JOptionPane.PLAIN_MESSAGE); } }

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 79

Page 80: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Casos Aplicativos – Trabajo Solucionario Paso 1 Crear una clase de nombre: Aplicacion01 public class Aplicacion01 { public int promediopracticas(int n1,int n2,int n3,int n4){ int mejor=10000,prom=0; if(n1<mejor) mejor=n1; if(n2<mejor) mejor=n2; if(n3<mejor) mejor=n3; if(n4<mejor) mejor=n4; prom=(n1+n2+n3+n4-mejor)/3; return prom; } public int promediofinal(int n1,int n2,int n3){ int prom1=0; prom1= (n1+n2+n3)/3; return prom1; } public int peor(int n1,int n2,int n3,int n4){ int mejor=10000; if(n1<mejor) mejor=n1; if(n2<mejor) mejor=n2; if(n3<mejor) mejor=n3; if(n4<mejor) mejor=n4; return mejor; } Pasó 2 Implementar el formulario: Programa Promedio Final

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 80

Page 81: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

Aplicacion01 apli=new Aplicacion01(); frm2 obj=new frm2(); //Creación de la variable estática public static int n1,n2,n3,n4,ef,np,pp; private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { n1=Integer.parseInt(jTextField1.getText()); n2=Integer.parseInt(jTextField2.getText()); n3=Integer.parseInt(jTextField3.getText()); n4=Integer.parseInt(jTextField4.getText()); jLabel6.setText(String.valueOf("nota: "+ apli.promediopracticas(n1, n2, n3, n4))); jLabel9.setText(String.valueOf("peor: "+ apli.peor(n1, n2, n3, n4))); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { pp=apli.promediopracticas(n1, n2, n3, n4);

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 81

Page 82: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

ef=Integer.parseInt(jTextField6.getText()); np=Integer.parseInt(jTextField7.getText()); jLabel10.setText(String.valueOf("nota:"+ apli.promediofinal(pp, ef, np))); JOptionPane.showMessageDialog(null,"SU PROMEDIO FINAL ES: " + apli.promediofinal(pp, ef, np)); } private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { obj.setVisible(true); } private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) { int num=(int)evt.getKeyChar(); if(num>=48&&num<=57){ } else { evt.consume(); } } private void jTextField2KeyTyped(java.awt.event.KeyEvent evt) { int num=(int)evt.getKeyChar(); if(num>=48&&num<=57){ }else{ evt.consume(); } } private void jTextField3KeyTyped(java.awt.event.KeyEvent evt) { int num=(int)evt.getKeyChar(); if(num>=48&&num<=57){ } else { evt.consume(); } } private void jTextField4KeyTyped(java.awt.event.KeyEvent evt) { int num=(int)evt.getKeyChar(); if(num>=48&&num<=57){ }else{ evt.consume(); }

ESCUELA DE TECNOLOGÍAS DE INFORMACIÓN 82

Page 83: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PDSD/89001653... · Software Java Sun IDE Netbeans Versión 7.2 – Superior. 1.2. ORDEN

DESARROLLO DE SOFTWARE I

} Paso 3 Implementando en formulario Reporte import Aplicacion01; //programando el evento formWindowActivated private void formWindowActivated(java.awt.event.WindowEvent evt) { FrmEdutec edu=new FrmEdutec(); Aplicacion01 apl=new Aplicacion01(); jLabel5.setText(String.valueOf(apl.promediopracticas(edu.n1, edu.n2, edu.n3, edu.n4))); jLabel6.setText(String.valueOf(apl.promediofinal(edu.pp, edu.ef, edu.np))); int prome; prome=Integer.parseInt(jLabel6.getText()); if(prome>10){ jLabel7.setText("APROBADO : )"); }else{ jLabel7.setText("DESAPROBADO : ("); } }

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 83