metodologia para resolver problemas

Anuncio
Javadoc
Javadoc
Se puede encontrar la documentación de todas las clases
en Java en la dirección:
http://java.sun.com/j2se/1.4.2/docs/api/
Javadoc
Es posible documentar un programa y generar de forma
automática un archivo html con tal documentación en un
formato estándar
import javax.swing.*;
public class Ejemplo1 {
public static void main(String a[]){
JOptionPane.showMessageDialog(null,"Bienvenido a Java");
System.exit(0);
}
}
import javax.swing.*;
/**
Aca se coloca la descripción general de la clase
@author Oscar
@version 1.0
*/
public class Ejemplo1 {
Los comentarios aceptados
por Javadoc comienzan con
/** y terminan con */
/** Antes del método se describe qué hace, por ejemplo, muestra un
mensaje de bienvenida a Java
@param a es el arreglo de String
@return void
*/
public static void main(String a[]){
}
}
JOptionPane.showMessageDialog(null,"Bienvenido a Java");
System.exit(0);
Javadoc
El código Javadoc se puede colocar en tres lugares:
1. Al principio del código de la clase
2. Antes de cada método
3. Antes de cada atributo
Javadoc
1. Al principio del código de la clase
@author: autor del documento
@version: versión de la aplicación
@see: se indican referencias a otro código java
@since: desde cuándo está disponible el código
@deprecated: indica que la clase está obsoleta
Javadoc
2. Antes de cada método
@see
@ param: cada parámetro tiene una sentencia
param. Después de la cual debe aparece el
identificador del mismo
@return: qué tipo de dato retorna el método
@since
@deprecated
Javadoc
3. Antes de cada atributo
@since
@deprecated
Javadoc
Para generar el archivo html con la documentación se
utiliza el comando
javadoc Ejemplo1.java
Tipos de datos primitivos
Tipos de datos primitivos
•Para el manejo de cantidades enteras:
byte, short, int, long
•Para cantidades decimales (punto flotante)
float, double
•Para valores lógicos, falso o verdadero
boolean
•Para caracteres
char
•Para texto (cadenas)
String
Tipos de datos primitivos
•Enteros
Tipo de
dato
byte
-128 a 127
short
-32768 a 32767
int
-2147483648 a
2147483647
9223372036954775808 a
9223372036854775807
long
Rango de valores permitido
Esta ventana permite la entrada de
datos a un programa
nombre = JOptionPane.showInputDialog(“Digite su nombre”);
Clase
Método que permite desplegar
una ventana para la entrada de
datos
import javax.swing.*;
public class Ejemplo18{
public static void main(String a[]){
int edad;
edad=Integer.parseInt(JOptionPane.showInputDialog(“Digite su edad”));
JOptionPane.showMessageDialog(null,“La edad digitada fue " + edad);
System.exit(0);
}
}
import javax.swing.*;
public class Ejemplo18{
public static void main(String a[]){
float estatura;
estatura=Float.parseFloat(JOptionPane.showInputDialog(“Digite su estatura”));
JOptionPane.showMessageDialog(null,“Su estatura es " + estatura);
System.exit(0);
}
}
import javax.swing.*;
public class Ejemplo18{
public static void main(String a[]){
double estatura;
estatura=Double.parseDouble(JOptionPane.showInputDialog(“Digite su estatura”));
JOptionPane.showMessageDialog(null,“Su estatura es " + estatura);
System.exit(0);
}
}
Operadores en Java
Operadores Aritméticos
• Un operador es un símbolo que representa una
operación
Operador
Resultado
+
*
/
%
Suma
Resta
Producto
División
Módulo
Operadores relacionales
Operador
Resultado
==
!=
>
<
>=
<=
Igualdad lógica
Diferente
Mayor que
Menor que
Mayor o igual que
Menor o igual que
Operadores lógicos
Operador
Resultado
||
&&
!
OR
AND
Negación
Metodología para
resolver problemas
Metodología para resolver problemas
1. Entender el problema
2. Identificar los objetos del dominio del problema
3. Crear el diagrama de clases
4. Desarrollar los algoritmos para cada uno de los
métodos de las clases
5. Programar cada clase en Java
6. Editar y compilar las clases desarrolladas
7. Ejecutar la clase principal
Metodología para resolver problemas
Problema: Encontrar el área y el perímetro de un
rectángulo de dimensiones alto X ancho
alto
ancho
Metodología para resolver problemas
1. Entender el problema
•
El perímetro de un rectángulo es la suma de sus lados
•
El área de un rectángulo es base X altura
Metodología para resolver problemas
2. Identificar los objetos del dominio del problema
El objeto del dominio del problema es un rectángulo
de dimensiones altoXancho
miRectángulo1
4
2
miRectángulo2
3
9
Rectángulo
int alto;
int ancho;
Rectángulo
int alto;
int ancho;
Qué operaciones
debe tener la
clase Rectángulo
para resolver el
problema
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
obtenerArea();
obtenerPerimetro()
Clase Rectángulo
miRectángulo1
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
obtenerArea();
obtenerPerimetro()
Clase Rectángulo
miRectángulo2
4
2
8
12
3
9
27
24
obtenerArea();
obtenerPerimetro()
obtenerArea();
obtenerPerimetro()
miRectángulo1
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
obtenerArea();
obtenerPerimetro()
Clase Rectángulo
miRectángulo2
4
2
8
12
3
9
27
24
obtenerArea();
obtenerPerimetro()
obtenerArea();
obtenerPerimetro()
Además de la clase
Rectángulo, se necesita
una clase con un método
main, que maneje y
controle la clase
Rectángulo
Calculadora
sumar();
restar();
multiplicar();
dividir();
calcularRaiz()
calcularSeno()
calcularCoseno()
Se necesita de otra clase
que Use la calculadora
Metodología para resolver problemas
3. Crear el diagrama de clases
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
obtenerArea();
obtenerPerimetro()
UsoRectangulo
usa
main()
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
obtenerArea();
obtenerPerimetro()
Clase Base o
provedor
UsoRectangulo
usa
main()
Clase Principal o
cliente
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
obtenerArea();
obtenerPerimetro()
UsoRectangulo
usa
main()
JOptionPane
showMessageDialog()
showInputDialog()
usa
Metodología para resolver problemas
4. Desarrollar los algoritmos para cada uno de los
métodos de las clases
obtenerArea()
Inicio
Multiplicar la base y la altura
Mostrar ese valor
Fin

Metodología para resolver problemas
4. Desarrollar los algoritmos para cada uno de los
métodos de las clases
obtenerPerimetro()
Inicio
Sumar: 2 veces la base y 2 veces la altura
Mostrar ese valor
Fin

Metodología para resolver problemas
5. Programar cada clase en Java
6. Editar y compilar las clases desarrolladas
7. Ejecutar la clase principal
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
obtenerArea();
obtenerPerimetro()
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
obtenerArea()
obtenerPerimetro()
establecerAlto()
establecerAncho()
Rectángulo
int alto;
int ancho;
int area;
int perimetro;
ingresarDatos()
obtenerArea()
obtenerPerimetro()
establecerAlto()
establecerAncho()
import javax.swing.*;
public class Rectangulo{
Clase
Base
int alto, ancho, area, perimetro;
public void obtenerArea(){
area = alto*ancho;
JOptionPane.showMessageDialog(null,“Area:” + area);
}
public void obtenerPerimetro(){
perimetro = 2*alto + 2*ancho;
JOptionPane.showMessageDialog(null, “Per.:” + perimetro);
}
public void establecerAlto(int x){
alto=x;
}
public void establecerAncho(int y){
ancho=y;
}
}
Clase
Base
import javax.swing.*;
public class UsoRectangulo{
public static void main(String a[ ]){
Rectangulo miRectangulo=new Rectangulo();
miRectangulo.establecerAlto(4);
miRectangulo.estableceAncho(8);
miRectangulo.obtenerArea();
}
}
import javax.swing.*;
public class UsoRectangulo{
public static void main(String a[ ]){
Rectangulo miRectangulo1=new Rectangulo();
miRectangulo1.establecerAlto(4);
miRectangulo1.estableceAncho(8);
miRectangulo1.obtenerArea();
Rectangulo miRectangulo2=new Rectangulo();
miRectangulo2.establecerAlto(20);
miRectangulo2.estableceAncho(13);
miRectangulo2.obtenerArea();
}
}
Metodología para resolver problemas
Problema: Desarrollar una aplicación Java que permita
calcular el área para un rectángulo, donde el alto y el
ancho son valores digitados por el usuario
Metodología para resolver problemas
Problema: Desarrollar una aplicación Java que permita
encontrar el área de un círculo de radio r (de tipo real)
digitado por el usuario
r
Circulo
double radio;
double area;
obtenerArea();
establecerRadio();
UsoCirculo
usa
main()
JOptionPane
usa
showMessageDialog()
Metodología para resolver problemas
Problema: Desarrollar una aplicación Java que permita
crear un objeto Rectángulo y uno Circulo
Metodología para resolver problemas
Problema: Modifique la clase Rectangulo, de tal manera
que tenga un método esCuadrado() que muestra un
mensaje indicando si el rectángulo es también un
cuadrado
Instrucciones de control de flujo:
Selección if - else
if (condición) {
conjunto de instrucciones que se deben realizar si se
cumple la condición
}
else {
conjunto de instrucciones que se deben realizar si no
se cumple la condición
}
Instrucciones de control de flujo:
Selección if - else
if (condición) {
conjunto de instrucciones que se deben realizar si se
cumple la condición
}
else if (otraCondición){
conjunto de instrucciones que se deben realizar si se
cumple otraCondicion
}
Instrucciones de control de flujo:
Selección if - else
[V]
condición
[f]
Instrucción if
Instrucciones de control de flujo:
Selección if - else
[f]
[V]
condición
Instrucción if-else
Instrucciones de control de flujo:
Selección if - else
Se tiene un método abreviado para la instrucción ifelse
((condición) ?
valor si se cumple condición
:
valor si no)
Instrucciones de control de flujo:
Selección if - else
Se tiene un método abreviado para la instrucción ifelse
…
System.out.println((edad<18)? “Menor de edad” : “Mayor de
edad”);
Instrucciones de control de flujo:
Selección if - else
Se tiene un método abreviado para la instrucción ifelse
…
int resultado = ((x!=10000)? 1 : 0);
Instrucciones de control de flujo:
Selección switch- case
switch (variable) {
case valor1: instrucciones
break;
case valor2: instrucciones
break;
. . .
default: instrucciones
}
Instrucciones de control de flujo:
Selección switch- case
[V]
break
[V]
break
[f]
[f]
...
default
<
Instrucción switch
public class MiniCalculadora{
int a, b, op;
public void calcular(){
switch ( op ) {
case '+': System.out.println( a + b );
break;
case '-': System.out.println( a - b );
break;
case '*': System.out.println( a * b );
break;
case '/': System.out.println( a / b );
break;
default: System.out.println("error" );
break;
}
}
}
public class ManejoDias{
int diasemana;
public boolean calcularDiasLaborales(){
boolean laboral;
switch ( diasemana ) {
case 1:
case 2:
case 3:
case 4:
case 5: laboral = true;
break;
case 6:
case 7: laboral = false;
break;
}
return laboral;
}
Metodología para resolver problemas
Problema: Modifique la clase UsoRectangulo, de tal
manera que el programa permita analizar N rectángulos,
donde N es un valor dado por el usuario
Estructura for
for(expresion1 ; expresion2 ; expresion3){
//instrucciones a repetir
}
Se establece el
valor inicial de la
variable de
control
Condición sobre la
variable de control
para continuar
iterando
Aumento o
decremento de la
variable de
control
import javax.swing.*;
public class Ejemplo62{
public static void main(String a[]){
int x=0;
for(int i=5; i<=10;i=i+1){
x++;
}
JOptionPane.showMessageDialog( null ,“El valor de X es " + x);
System.exit(0);
}}
¿Qué valor se
muestra?
import javax.swing.*;
public class Ejemplo{
public static void main(String a[]){
int x=0;
for(int i=1; i<=10;i=i+1){
if(i%2==0)
x++;
else
x = x + 2;
¿Qué valor se
muestra?
}
JOptionPane.showMessageDialog( null ,“El valor de x es " + x);
System.exit(0);
}}
import javax.swing.*;
public class Ejemplo63{
public static void main(String a[]){
int x=0;
for(int i=10; i<=21; i=i+1){
if(i%3==0){
x=x+1;
}
}
JOptionPane.showMessageDialog(null,“X es“ + x);
System.exit(0);
}}
¿Qué valor se muestra?
import javax.swing.*;
public class Ejemplo63{
public static void main(String a[]){
int x=0;
for(int i=5; i<=15; i=i+2){
if(i%2==0 || i<8){
x=x+1;
}
}
JOptionPane.showMessageDialog(null, "X es“ + x);
System.exit(0);
}}
¿Qué valor se muestra?
Metodología para resolver problemas
Problema: Modifique la clase UsoRectangulo, de tal
manera que los valores ingresados para el alto, el ancho y
N sean todos positivos
do{
instrucciones que se deben repetir
}while(condición de error);
import javax.swing.*;
public class Ejemplo54{
public static void main(String a[]){
El do-while se utiliza para
asegurar que los datos de entrada
cumplan ciertas condiciones
int lado;
do{
lado=Integer.parseInt(JOptionPane.showInputDialog("Entre el lado "));
}while(lado<=0);
JOptionPane.showMessageDialog(null, "El lado es " + lado);
System.exit(0);
}
}
Método showConfirmDialog
de la clase JOptionPane
import javax.swing.*;
public class UsoRectangulo{
public static void main(String a[]){
do{
Rectangulo miRectangulo=new Rectangulo();
miRectangulo.establecerAlto(Integer.parseInt(JOptionPane.showInputDialog("Digite el alto")));
miRectangulo.establecerAncho(Integer.parseInt(JOptionPane.showInputDialog("Digite el ancho")));
miRectangulo.obtenerArea();
}while(JOptionPane.showConfirmDialog(null, "¿Desea analizar otro rectángulo?")
==JOptionPane.YES_OPTION);
System.exit(0);
}
}
Metodología para resolver problemas
Problema: Desarrollar una aplicación Java que registre
el ingreso de 4 notas por cada estudiante. Al final del
ingreso de cada 4 notas, se muestra su definitiva
(suponga que todas las notas tienen el mismo
porcentaje).
Después de ingresar los datos de un estudiante, se debe
preguntar al usuario si desea registrar las notas de otro.
Al final, se debe mostrar un mensaje indicando el total
de estudiantes que registraron sus notas, la nota
definitiva mayor y la menor, la cantidad que perdieron y
la cantidad que ganaron
Metodología para resolver problemas
Problema: Desarrollar un método
public long factorial(int n)
que devuelve n!=n*(n-1)*…*1
Descargar