Realize los siguientes ejercicios aplicacion recursion
1 Maximo Comun Divisor
El máximo común divisor de dos números por el algoritmo de Euclides es:
mcd(a, b) = mcd(b, a) si a < b
mcd(a, b) = mcd(a - b, b) si a > b
mcd(a, b) = a si a = b
Cree un metodo para esta funcion
2 Función de Morris
Se define de la siguiente manera:
morris(m, n) = m...
jueves, 6 de mayo de 2010
Ejercicio sobre atributos en java (02.07.01)
1. Cree la clase Cliente con los atributos código, nombre, dirección, teléfono, encapsulados (métodos set y get).
2. Agregue a la clase Cliente el método toString que retorne todos los atributos de la clase Cliente.
3. Cree la clase Pelicula con los atributos privados código, titulo, tipo, precio de alquiler. Incluya el método toString, get y set.
4....
Paso de variables a métodos en java (02.06.01)
1. Cuando el argumento es una primitva, se genera una copia de la variable para el método.
Laboratorio
TestPrimitivas.java
public class TestPrimitivas {
public static void main (String[] args)
{
int numero = 150;
unMetodo(numero);
System.out.println(numero);
}
private static void unMetodo(int numero) {
numero = 0;
System.out.println(numero);
}
}
Que...
Paquetes en java (02.05.04)
Un paquete es un contenedor (agrupador) de clases que estan relacionadas lógicamente.
Un paquete tiene sus clases en un mismo directorio
Varias clases pueden tener el mismo nombre pero en diferente paquete.
Para el problema de los alquileres se encuentran las clases:
Clase Pelicula
...
Modificadores de acceso en java (02.05.03)
Java controla el acceso a las variables y métodos a través de modificadores de acceso como: private, public y protected
Un elemento publico puede invocarse en cualquier clase.
Un elemento sin modificador solo se puede invocar desde la misma clase.
Un...
Encapsulamiento en java (02.05.01)
1. Las variables de instancia de una clase deberían ser declaradas como privadas
Solo un método debería acceder a las variables privadas.
No se debe acceder a las variables de instancia directamente, sino a través de un método.
Pelicula pelicula1 = new Pelicula();
if (pelicula1.titulo.equals("Los doce del patibulo")) {
pelicula1.setTipo("Accion");
}
Cual...
Invocando métodos en java (02.04.01)
Se utiliza el operador punto para invocar el método de una clase, si el método es de la misma clase, no se requiere el calificador de la clase.
Laboratorio
Pelicula.java
public class Pelicula {
private String titulo,tipo;
//...
public String getTipo () {
return tipo;
}
public void setTipo (String nuevoTipo) {
tipo = nuevoTipo;
}
}
PruebaPeliculas.java
public...
Funcion Ackerman en java (02.03.06)
La fusión de Ackerman se define como:
Ackerman(m, n) = n + 1 si m = 0
Ackerman(m, n) = Ackerman(m - 1, 1) si m > 0 y n = 0
Ackerman(m, n) = Ackerman(m - 1, Ackerman(m, n - 1)) si m > 0 y n > 0
Con ello se tiene que Ackermann(1, 2) = 4 y Ackermann(3, 2) = 29
//
public static long ackerman (int n, int m) {
if (n == 0)
return ( m+1 );
else...
Fibonaci en java (02.03.05)
La función Fibonaci se define como:
Fibonaci (0) = 1
Fibonaci (1) = 1
Fibonaci (N) = Fibonaci (N - 1) + Fibonaci (N - 2) // si N > 1
//
public static long fibonaci (int n) {
if (n == 0)
return 1 ;
else if ( n == 1 )
return 1 ;
else
return ( fibonaci ( n-1) + fibonaci ( n-2 ) )...
Recursividad en java (02.03.04)
Un método recursivo es aquel que directa o indirectamente se llama a si mismo.
Como ejemplo útil se puede presentar el cálculo de factorial y sumatorias
Factorial de 0 = 1
Factorial de N = N * Factorial de N - 1
Sumatoria de 0 = 0
Sumatoria de N = N + Sumatoria de N - 1
Un método recursivo debe tener al menos un caso no recursivo y otros casos recursivos...
Valores de retorno en java (02.03.03)
Se usa la sentencia return para salir del método retornando un valor .
No se requiere return si el tipo de retorno es void.
public class pelicula {
private String tipo;
//...
public String obtenerTipo () {
return tipo;
...
Argumentos en metodos en java (02.03.02)
En la definición del método se indica el tipo y el nombre de los argumentos del método.
public void setTipo (String nuevoTipo) {
tipo = nuevoTipo;
}
Si el método tiene varios argumentos, estos se separan por comas.
public void setDatos (String nuevoTitulo, String nuevoTipo) {
tipo = nuevoTipo;
titulo = nuevoTitulo;
}
Si el método no tiene argumentos,...
Laboratorio. Uso de Objetos en java (02.02.08)
Complete y realice el siguiente programa.
Pelicula.java
public class Pelicula {
public String titulo;
public String tipo;
}
PruebaPeliculas.java
public class PruebaPeliculas {
public static void main (String[] args) {
Pelicula pelicula1, pelicula2;
...
pelicula1.titulo = "Los sueños de Akira Kurosawa";
pelicula2.titulo = "Día de entrenamiento";
System.out.println("La...
Variables de instancia en java (02.02.07)
Las variables publicas de instancia se acceden con el operador punto.
Pelicula pelicula1 = new Pelicula();
pelicula1.titulo = "Kramer vs Kramer";
if (pelicula1.titulo.equals("El planeta de los simios")
pelicula1.tipo = "Ciencia Ficcion...
Variables de instancia en java (02.02.06)
Las variables de instancia se declaran en la clase. Estos son atributos de la clase.
public class Pelicula {
public String titulo;
public String tipo;
...
Asignando referencias en java (02.02.05)
Se puede asignar una variable referencia a otra resultado en dos referencias al mismo objeto.
Pelicula pelicula1 = new Pelicula("Betty Blue");
Película pelicula2 = pelicul...
La referencia null en java (02.02.04)
- Los objetos inician en null
- Se puede comparar un objeto con null
- Se puede liberar la referencia con null.
Pelicula pelicula1 = null;
if (pelicula1 == null)
pelicula1 = new Pelicula();
pelicula1 = nu...
Acciones del new en java (02.02.03)
El operador new realiza las siguientes acciones:
- Separa memoria para el nuevo objeto
- Invoca el método de inicio de la clase llamado constructor.
- Retorna la referencia a un nuevo objeto.
Pelicula pelicula1 =
new Pelicula();
pelicula1
...
Los objetos se crean con new en java (02.02.02)
Los objetos se crean con el operador new en java (02.02.02)
Película pelicula1 = new Película();
Película pelicula2 = new Película...
Creación de objetos en java (02.02.01)
Una clase es un molde para crear múltiples objetos que encapsula datos y comportamiento.
1.Cada objeto es una instancia de alguna clase.
...
Polimorfismo y clases
Polimorfismo (02.01.08)
Significa que la misma operación se realiza en las clases de diferente forma.
Estas operaciones tienen el mismo significado, comportamiento.
Internamente cada operación se realiza de diferente forma.
Abordar pasajeros
Barco
...
La Herencia de clases (02.01.07)
Entre diferentes clases pueden haber similitudes
La herencia es una relación entre clases donde una es padre de otra.
Las propiedades comunes definen la superclase. Clase padre.
Las subclases heredan estas propiedades. Clase hijo.
Un objeto hijo es un-tipo-de...
Identificación de clases (02.01.06)
Reconocer una estructura y comportamiento comunes entre varios objetos.
Objeto
Operaciones
Atributos
Lapicero rojo
Escribir
Recargar
Cantidad de tinta
Color de tinta
Pluma y tinta
Escribir
Recargar
Cantidad de tinta
Color...
Clases y objetos (02.01.05)
Una clase es una molde para crear objetos.
Para definir una clase se tiene que indicar las operaciones y atributos
Los objetos son instancias de la clase.
Cuando se cree un cajero automático P3 no se requiere indicar sus operaciones y atributos.
Solo se requiere indicar a que clase pertenece.
Clase
Atributos
Métodos
...
Composición de objetos (02.01.04)
Los objetos están compuestos de otros objetos.
Los objetos son partes de otros objetos.
Esta relación entre objetos se conoce como Agregación
El Banco de la Nación es un objeto
El cajero automático P5 es un objeto.
El cajero es del Banco de la Nación.
El cajero automático P5 esta compuesto por objetos como:
El teclado
El...
Relaciones entre objetos (02.01.03)
Mensajes entre objetos.
Los objetos se comunican unos con otros enviando mensajes.
El trasmisor del mensaje pide que el receptor realice una operación.
El receptor ejecuta el método correspondiente.
En programación estructurada se invocan funciones o...
Operaciones y Atributos (02.01.02)
El encapsulamiento (02.01.02)
El encapsulamiento oculta como las cosas funcionan dentro de un objeto
Solo nos comunicamos con el objeto a través sus métodos
Los métodos son una interfaz que permite ignorar como están implementados.
No es posible evadir el encapsulamiento en OO
El cajero automático P5 es un objeto que entrega dinero.
El cajero encapsula...
Definicion de objeto (02.01.01)
OO es un paradigma de diseño y programación
OO se basa en modelar objetos del mundo real
OO crea programas reusables
Los objetos contienen en si mismo información y comportamiento.
Que es un objeto?
Definición filosófica: Es una entidad que se puede reconocer.
Para la tecnología de objetos : Es una abstracción de un objeto del mundo real.
En términos...
Laboratorio sobre clases en java (03.08.01)
Cree la clase Vendedor con los siguientes atributos nombre, edad, ventas, sueldoFijo. La clase también contara con un atributo estático para contar la cantidad de vendedores que se vayan creando. La clase cuenta con un constructor que recibe nombre, edad, ventas, sueldoFijo como argumentos. En este constructor se incrementara el contador de vendedores...
Ejercicio sobre Clases en java (03.07.01)
Cree la clase Cliente que tendrá los siguiente datos id (int) nombre, dirección, teléfono (String)
La clase debe contar con dos constructores.
Uno sin argumentos para autogenerar el código (que inicia en 2000).
Otro que aceptara los datos nombre, dirección, teléfono.
El código del cliente debe ser automático e incrementarse en uno cada vez...
Métodos de clase en java (03.06.01)
Estos métodos son compartidos por todas las instancias.
Se usan estos métodos principalmente en manipular variables de instancia.
Se les declara con el calificador static
Se invoca a este método de clase con el nombre de la clase o con el nombre de una instancia.
Laboratorio
Pelicula.java
public class Pelicula {
private static float...
Variables de clase en java (03.05.01)
Las variables de clase comparte un único valor entre todos las instancias de la clase.
Se declaran con el calificador static.
public Class Pelicula {
// iniciación por defecto
private static double precioMinimo;
private String titulo, tipo;
}
Las variables de clase se pueden iniciar en la declaración.
La iniciación ocurre cuando se...
La referencia this en java (03.04.01)
Los métodos de instancia reciben el argumento this implícitamente que se refiere al mismo objeto.
public class Pelicula {
private String titulo;
public void setTitulo(String titulo) {
this.titulo = titulo;
}
}
Se puede compartir código entre constructores usando la referencia this. Un constructor invoca a otro pasandole los argumento...
Constructores en java (03.03.01)
Para una adecuada iniciación de variables de instancia, la clase debe tener un constructor.
Un constructor se invoca automáticamente cuando se crea un objeto.
Se declaran de forma pública.
Tiene el mismo nombre que la clase.
No retorna ningún valor.
Si no se codifica un constructor, el compilador crea uno por defecto sin argumentos que solo...
Iniciación de variables de instancia en java (03.02.01)
Las variables de instancia se pueden iniciar en la declaración.
Esta iniciación ocurre cuando se crea un objeto.
public class Pelicula {
private String titulo; // implicito
private String tipo = "Drama"; // explicito
private int numeroDeOscares; // implicito
}
Las primitivas se inician implícitamente como:
char
byte,...
Sobrecarga de métodos en java (03.01.01)
El encapsulamiento se basa en los métodos de instancia.
La sobrecarga de métodos nos brinda una interfase mas legible.
Los constructores aseguran una consistente creación de objetos
El Garbage Collector libera espacio en memoria.
Algunos métodos en una clase pueden tener el mismo nombre.
Estos métodos deben contar con diferentes argumentos....