clase 7 - diseño descendente y parámetros (con ejercicios tipo parcial) programacion java
TRANSCRIPT
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
1/21
PROGRAMACIN1
Clase 7
Programacin1-TUDAI
1
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
2/21
2
Programacin1-TUDAI
Resolver problemas aplicando un diseo descendente o
programacin modular
Identificar los dos tipos de mtodos: procedimientos y
funciones
Utilizacin de la sentencia return
Objetivos del tema
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
3/21
3
Programacin1-TUDAI
Diseo descendente
Est divisin se hace repetidamente hasta llegar a pequeos
problemas fcilmente solucionables o ya solucionados.
Uno de los mtodos fundamentales para resolver un problema esdividirlo en problemas ms chicos o subproblemas.
Es deseable que cada subproblema sea independiente de los
restantes, y se los denomina mtodos.
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
4/21
4
Programacin1-TUDAI
Un mtodo es un trozo de cdigo que puede ser llamado porel programa principal u otros mtodos para realizar alguna
tarea especfica.
El mtodo es llamado por su nombre seguido por una
secuencia de parmetros o argumentos (datos utilizados por
el propio mtodo para sus clculos) entre parntesis.
Cuando el mtodo finaliza sus operaciones, puede o no
devolver un valor simple al programa que lo llama.
Si un mtodo devuelve un valor lo hace a travs de la
sentencia return y el tipo de dato debe coincidir con el tipo de
dato declarado en la cabecera del mtodo
Mtodos
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
5/21
5
Programacin1-TUDA
I
La primera lnea es la cabecera del mtodo.
Los modificadores especifican cmo puede llamarse al
mtodo.
El tipo de dato indica el valor que devuelve o no la llamada almtodo.
Los parmetros (entre parntesis) introducen informacin
para la ejecucin del mtodo (Se vern ms adelante).
[modificadores] tipoDeDato identificadorMetodo (parametros formales) {
declaraciones de variables locales;
sentencia_1;
sentencia_2;
...
sentencia_n; //se incluye al menos un return
}
Declaracin de mtodos
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
6/21
6
Programacin1-TUDA
I
/**
* Demostracin del mtodo cubo de tres
* Declaracin formal y llamada actual
*/
public class Programa {
public static void main (String [] args){System.out.println("El cubo de 3.0 es: "+ cubodetres() ); // llamada actual
}
//declaracin formal
public static double cubodetres () {
double x = 3.0;
return x*x*x;
}
}
Ejemplo
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
7/21
7
Programacin1-TUDA
I
public y static son los modificadores que hacen al mtodoaccesible al resto. Los mtodos estticos son como los
mtodos de los lenguajes no orientados a objetos
public class Programa {
public static void main (String [] args){System.out.println(factorial10());
}
public static int factorial () {
int aux = 1; // declaracion localfor (int i = 2; i
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
8/21
Procedimientos y funciones
8
Programacin1-TUDA
I
Las funciones devuelven un solo valor a la unidad de programa
que lo referencia. Generalmente son clculos.
Los procedimientos se utilizan para resolver un problema
concreto, que no corresponde con un calculo directo.
//procedimiento imprimir
public static void imprimir(){
System.out.println("El cubo de 3.0 es: "+ cubodetres() ); // llamada actual
return;
}//funcin cubodetres
public static double cubodetres(){
double x = 3.0;
return x*x*x;
}
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
9/21
9
Programacin1-TUDA
I
Funciones:
Calcular promedio, cantidad, operacin compleja
Obtenermayor, menor, un ndice
Siempre retornan un valor de tipo simple
Puede ser parte de una expresin lgica y estar a la derecha de
una asignacin
Procedimiento Obtener datos de entrada vlidos
Generar salida de resultados
Procesar o resolver un problema
Diferencias entre funciones y procedimientos
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
10/21
10
Programacin1-TUDA
I
Facilita el diseo descendente
Se puede ejecutar ms de una vez ahorrando tiempo de
programacin y cantidad de cdigo
Facilita la divisin de tares dentro de un grupo de trabajo
Se puede comprobar individualmente
Hace al programa ms legible y modificable
Ventajas de usar funciones y procedimientos
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
11/21
11
Programacin1-TUDA
I
En java el pasaje de parmetros es por copia, se replica lavariable y dentro del mtodo se trabaja sobre la replica.
Al finalizar el mtodo se pierde la replica y la unidad
invocadora no percibe cambios en la variable utilizada como
parmetro de invocacin.
Parmetros
Un parmetro es una variable cuyo valor es
proporcionado por la unidad invocadora.
La declaracin de un mtodos tiene una lista
de parmetros formales.
Los mtodos sinparmetros
Tarea nica
La llamada a unmtodo
Parmetros actuales
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
12/21
Ejemplo
12
Programacin1-TUDA
I
public class Programa {
public static voidmain (String [] args){
tabla(4); // ejemplo de llamada
//sin return es igual que return al final
}
public static voidtabla (int n) {System.out.println("Tabla del numero " + n);
for (int i=0; i
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
13/21
Error tpico de funciones
13
Programacin1-TUDA
I
public static boolean esPositivo(int x) {
if (x0) return true;
// Error: retorno perdido si x es igual a cero.
}
public static boolean esPositivo(int x) {
if (x
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
14/21
Tipo de variables
14
Programacin1-TUDA
I
public class Programa {
public static int a = 2;//global a todos
public static int b = 2;//global a todos
public static void main(String[] args) {int a = 3;//local a main
System.out.println ("a = "+a);
System.out.println ("b = "+b);
}}
Locales: declarada dentro de un mtodo. Slo est disponiblepara el mismo.
Globales: pueden ser usadas por los distintos mtodos.
Ambas pueden tener el mismo nombre. En ese caso la global
no acta sobre el mtodo.
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
15/21
15
Programacin1-TUDA
I
El mbito o alcance de una variable es la zona accesible.
Variables globales: disponibles a todos.
Variables locales
Estn disponibles desde su declaracin hasta el final del mtodo.
No son visibles desde otros mtodos.
Distintos mtodos pueden contener variables con el mismo nombre.El nombre de una variable local debe ser nico dentro de su mbito.
Variables de bloque
Estn disponibles desde su declaracin hasta el final del bloque.
No son visibles desde otros bloques.
Distintos bloques pueden contener variables con el mismo nombre.Si un bloque de instrucciones contiene dentro otro bloque de
instrucciones, en el bloque interior no se puede declarar una variable
con el mismo nombre que otra del bloque exterior.
En todos los casos las variables no tienen un valor inicial por
defecto. El programador es el encargado de asignarles valores.
mbito o alcance
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
16/21
16
Programacin1-TUDA
I
mbito o alcance
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
17/21
Ejemplo
17
Programacin1-TUDA
I
public static void main(String[] args) {
int suma = 0;
for (int x = 1; x
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
18/21
Observaciones
18
Programacin1-TUDA
I
public static void (int a, int b) {
a = 1;//pierde el valor que tena como parmetro
}
Evitar el uso de variables globales
Un parmetro es una variable local
Comunicacin entremtodos
Parmetros
Una variable nodeclarada localmente
El compilador usa ladeclaracin global
Almacenar
informacin temporalVariables locales
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
19/21
P
rogramacin1-TUDA
I
19
Escribir un mtodo que calcule el mayor de dos nmeros. Usar
ese mtodo para calcular el mximo de una serie de nmeros
ingresados por el usuario.
Escribir un mtodo que multiplique dos nmeros. Usar ese
mtodo para calcular la potencia n de un nmero ingresadopor teclado.
Escribir un programa que pida el ingreso de dos nmeros por
teclado, que chequee si ambos son positivos y que luego
calcule el promedio de ambos.
Escribir un programa que transforme una temperatura dada
en grados Fahrenheit a grados Celsius. Formula C=(F-32)/1,8
Construir una rutina que devuelva el valor central de tres
enteros dados como parmetros.
Prctico
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
20/21
P
rogramacin1-TUDA
I
20
Construir una rutina que devuelva verdadero o falso
dependiendo de si un carcter dado es una letra minscula o
no mayuscula.
Construir una rutina que devuelva la potencia de dos de un
numero dado. Construir una rutina que calcule el valor de la multiplicacin
de dos naturales. Usar slo sumas.
Dados dos enteros A y B, construir un programa que calcule A
elevado a la B, utilizando el procedimiento/funcin del
ejercicio anterior.
Construya un programa que calcule el factorial de un numero
dado. Ej: factorial(4) = 4*3*2*1 = 24.
Prctico
-
7/23/2019 Clase 7 - Diseo Descendente y Parmetros (Con Ejercicios Tipo Parcial) programacion java
21/21
P
rogramacin1-TUDA
I
21
Hacer un programa que incluya un mtodo que devuelve verdadero
o falso dependiendo de si una fecha (dando el da, el mes y el aocomo parmetros) es vlida o no.
El periodo, T (en segundos), de un pndulo que oscila viene dado
por la expresin: T=2 PI (L/g)^0.5 donde L es la longitud del pndulo
en metros y g es la aceleracin de la gravedad en metros porsegundo al cuadrado. Construir una rutina periodo para que calcule
y devuelva el valor de T dado L como parmetro de la funcin y g
como constante del programa. Usar para la raz res = (float)
Math.sqrt(nro)
Escribir un programa que simule el lanzamiento de un dado (1000
veces) y muestre por pantalla la frecuencia de los resultados para
cuando el valor de los dados es 1 o 2. Emplear la rutina predefinida
de Java Math.random() que devuelve un valor aleatorio real entre 0
y 1. Ej: dado1 = (int) (6*Math.random() + 1)
Ejercicios tipo parcial