Beruflich Dokumente
Kultur Dokumente
Algoritmia y Programacin
CONTENIDO
Funciones/mtodos Definicin Partes de una funcin
Ejemplos
Algoritmia y programacin
Universidad del Valle Slide 2
DEFINICIN
Una funcin mtodo es una porcin de cdigo (subalgoritmo) que forma parte de un algoritmo principal y el cual se encarga de resolver una tarea especfica.
Algoritmia y programacin
Universidad del Valle Slide 3
DEFINICIN
Una funcin mtodo es una porcin de cdigo (subalgoritmo) que forma parte de un algoritmo principal y el cual se encarga de resolver una tarea especfica. Divide y vencers: Es una estrategia para resolver problemas grandes, dividindolo en problemas ms pequeos
Algoritmia y programacin
Universidad del Valle Slide 4
DEFINICIN
Los mtodos reciben datos del programa principal, realizan operaciones y le devuelven los resultados.
Es como una oficina: El programa principal es el jefe, que da instrucciones a sus subordinados (mtodos), ellos realizan una tarea, y cuando terminan le devuelven el resultado y control al jefe.
Algoritmia y programacin
Universidad del Valle Slide 5
Se evita cdigo innecesario, pues los mtodos se escriben una sola vez, y pueden ser utilizados (llamados) desde diferentes partes del programa, las veces que sea necesario
Algoritmia y programacin
Universidad del Valle Slide 6
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
Algoritmia y programacin
Universidad del Valle Slide 7
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
1. Anlisis del problema Entrada: a, b
Algoritmia y programacin
Universidad del Valle Slide 8
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
1. Anlisis del problema Entrada: Salidas : Proceso: a, b hipotenusa, mayor ??
Algoritmia y programacin
Universidad del Valle Slide 9
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
1. Anlisis del problema Entrada: Salidas : Proceso: a, b hipotenusa, mayor calcular hipotenusa determinar mayor de 2 nmeros
Algoritmia y programacin
Universidad del Valle Slide 10
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
1. Anlisis del problema Entrada: Salidas : Proceso: a, b hipotenusa, mayor real calcularHipotenusa(a, b :entero)
Algoritmia y programacin
Universidad del Valle Slide 11
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
1. Anlisis del problema Entrada: Salidas : Proceso: a, b hipotenusa, mayor real calcularHipotenusa(a, b :entero) a y b son datos necesarios para calcular la hipotenusa
Algoritmia y programacin
Universidad del Valle Slide 12
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
1. Anlisis del problema Entrada: Salidas : Proceso: a, b hipotenusa, mayor real calcularHipotenusa(a, b :entero) { h: real h=( a2+b2) }
Algoritmia y programacin
Universidad del Valle Slide 13
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
1. Anlisis del problema
Entrada: Salidas : a, b hipotenusa, mayor
Proceso:
m=b }
Algoritmia y programacin
Universidad del Valle Slide 14
PROBLEMA
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa.
1. Anlisis del problema Entrada: a, b Salidas : hipotenusa, mayor h: real h= ( a2+b2) }
Algoritmia y programacin
Universidad del Valle Slide 15
PARTES DE UN MTODO
Sintaxis global es:
Modificador_de_acceso Tipo_de_retorno { declaracin_variables_locales
cuerpo_del_mtodo valor_de_retorno
nombre(parmetros,)
Tiene un nombre, Recibe unos parmetros o argumentos (opcionalmente), Contiene sentencias o instrucciones para realizar algo, y Devuelve un valor de algn Tipo de dato conocido (opcionalmente). Tiene un modificador de acceso
Slide 16
Algoritmia y programacin
Universidad del Valle
PARTES DE UN MTODO
public static double calcularHipotenusa(int a, int b)
{ double calculo;
Algoritmia y programacin
Universidad del Valle Slide 17
PARTES DE UN MTODO
public
{ double calculo; calculo = Math.sqrt((a*a+(b*b)); static double calcularHipotenusa(int a, int b)
return calculo; }
Modificador de acceso: public cualquiera puede acceder usar e invocar al mtodo private Slo puede acceder invocarse el mtodo desde otro mtodo de la clase. protected - proporciona acceso pblico para las clases derivadas y acceso privado (prohibido) para el resto de clases.
Algoritmia y programacin
Universidad del Valle Slide 18
PARTES DE UN MTODO
public static { double calculo; calculo = Math.sqrt((a*a+(b*b));
double
calcularHipotenusa(int a, int b)
return calculo; }
Tipo de Retorno
Corresponde al tipo de dato del valor que el mtodo debe retornar, que puede ser: int, float, double, char, String. etc void Indica que el mtodo no retorna ningn valor
Algoritmia y programacin
Universidad del Valle Slide 19
PARTES DE UN MTODO
public static { double calculo; calculo = Math.sqrt((a*a+(b*b));
double
calcularHipotenusa(int a, int b)
return calculo; }
Algoritmia y programacin
Universidad del Valle Slide 20
PARTES DE UN MTODO
public static double { double calculo; calculo = Math.sqrt((a*a+(b*b));
calcularHipotenusa(int
a, int b)
return calculo; }
Nombre
Es el nombre con el que se har referencia al mtodo dentro del programa. El cual debe estar relacionado con las operaciones que va a realizar
Algoritmia y programacin
Universidad del Valle Slide 21
PARTES DE UN MTODO
public static double calcularHipotenusa(int { double calculo; calculo = Math.sqrt((a*a+(b*b));
a, int b)
return calculo; }
Parmetros / argumentos
Hay mtodos que reciben algunos valores para poder hacer operaciones con ellos. Si son varios se separan con comas ,
Algoritmia y programacin
Universidad del Valle Slide 22
PARTES DE UN MTODO
public static double calcularHipotenusa(int { double calculo; calculo = Math.sqrt((a*a+(b*b));
a, int b)
return calculo; }
Algoritmia y programacin
Universidad del Valle Slide 23
PARTES DE UN MTODO
public static double calcularHipotenusa(int { double calculo; calculo = Math.sqrt((a*a+(b*b));
a, int b)
return calculo; }
Algoritmia y programacin
Universidad del Valle Slide 24
LLAMADO
DE MTODOS
Desarrolle un programa que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio a,b,mayor : entero hipotenusa : real
leer (a) leer (b)
Fin
Algoritmia y programacin
Universidad del Valle Slide 25
LLAMADO
DE MTODOS
import javax.swing.JOptionPane;
public class Hipotenusa{ public static double calcularHipotenusa(int a, int b){ double h; h= Math.sqrt((a*a)+(b*b)); return h; } public static int determinarMayor(int a,int b){ int m; if(a>b){ m=a;} else{ m=b;} return m; }
Algoritmia y programacin
Universidad del Valle Slide 26
LLAMADO
DE MTODOS
Inicio a,b,mayor : entero hipotenusa : real
Fin
} }
Algoritmia y programacin
Universidad del Valle Slide 27
EJEMPLO
Desarrollar una aplicacin en Java (usando mtodos), que reciba un entero correspondiente a una categora y el total de ventas de un empleado y retorne la comisin que recibe. Tome en cuenta la siguiente tabla.
categora
1 2
Comisin
10% 20%
3
4
35%
45%
5
6
Algoritmia y programacin
Universidad del Valle
50%
60%
Slide 28
EJEMPLO
1. Anlisis del problema
Algoritmia y programacin
Universidad del Valle Slide 29
EJEMPLO
2. Disear el algoritmo y escribirlo en pseudocdigo real determinarComision(int cat, real ven){
com: real; Segn sea cat opcion 1: com = ven * 0.1 opcion 2: com = ven * 0.2 opcion 3: com= ven * 0.35 opcion 4: com= ven * 0.45 opcion 5: com = ven * 0.5 opcion 6: com = ven * 0.6
} inicio
categoria: entero ventas, comision: real leer(categoria) leer(ventas)
comision = determinarComision(categoria, ventas) Imprimir (comision)
Fin
Algoritmia y programacin
Universidad del Valle Slide 30
EJEMPLO
public class ComisionEmpleado{
public static double determinarComision(int cat, double ven){
double com =0; switch(cat) { case 1: com = ven * 0.1; break; case 2: com = ven * 0.2; break; case 3: com = ven * 0.35; break; case 4: com = ven * 0.45; break; case 5: com= ven * 0.5; break; case 6: comi= ven * 0.6; break; } return com; }
Algoritmia y programacin
Universidad del Valle Slide 31
EJEMPLO
public static void main(String args[]) { int categoria; double ventas, comision; categoria =Integer.parseInt(JOptionPane.showInputDialog(Ingrese categora:)); ventas =Double.parseDouble(JOptionPane.showInputDialog(Ingrese venta:)); comision= determinarComision(categoria, ventas); JOptionPane.showMessageDialog( null,la comision es + comision); } }
inicio categoria: entero ventas, comision: real leer(categoria) leer(ventas) comision = determinarComision(categoria, ventas) Imprimir (comision) Fin
Algoritmia y programacin
Universidad del Valle Slide 32
PROBLEMA
Se dese reforestar un bosque que mide un nmero n de hectreas. Si la superficie del terreno excede a 1000.000m2, entonces se siembra as:
% superficie Tipo de rbol
70% 20%
Pino Oyamel
10%
Cedro
50%
30% 20%
Pino
Oyamel Cedro
Se desea saber el nmero de pinos, oyameles y cedros que se deben sembrar, si se sabe que en 10m2 caben 8 pinos; en 15m2 caben 15 oyameles, y en 18m2 caben 10 cedros.
Algoritmia y programacin
Universidad del Valle Slide 33
EJEMPLO
1. Anlisis del problema
Entrada: Salidas : n cantidad_pinos, cantidad_oyameles, cantidad_cedros
Proceso: hallarCantidades
Algoritmia y programacin
Universidad del Valle Slide 34
EJEMPLO
1. Disear el algoritmo y escribirlo en pseudocdigo hallarCantidades(n: entero){
cant_pino,cant_oyamel,cant_cedro, hectarea=10000 : entero SI (n*hectarea) > 1000000 cant_pino= (((n*hectarea) *0.7)/10)*8
EJEMPLO
1. Disear el algoritmo y escribirlo en pseudocdigo
Inicio
n: entero leer(n) hallarCantidades( n)
Fin
Algoritmia y programacin
Universidad del Valle Slide 36
EJEMPLO
public class Reforestacion{
hallarCantidades(n: entero){
public static void hallarCantidades(int n){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; if ( (n*hectarea) > 1000000){
cant_pino= (((n*hectarea) *0.7)/10)*8;
cant_pino,cant_oyamel,cant_cedro: entero
EJEMPLO
public class Reforestacion{ public static void hallarCantidades(int n){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; if ( (n*hectarea) > 1000000){
cant_pino= (((n*hectarea) *0.7)/10)*8; cant_oyamel = (((n*hectarea) *0.2)/15)*15;
void especifica que el mtodo no va a devolver ningn valor a quin lo llam, sino que va a realizar alguna operacin e imprimir su resultado dentro del mismo mtodo.
}
JOptionPane.showMessageDialog(null, cantidad de pinos+ cant_pino+ \n cantidad de pinos+ cant_oyamel+\n cantidad de pinos+ cant_cedro); }
Algoritmia y programacin
Universidad del Valle Slide 38
EJEMPLO
public static void main(String args[]) { int n; n=Integer.parseInt(JOptionPane.showInputDialog(Ingrese el nmero de hectreas:)); hallarCantidades(n);
Inicio
} }
Fin
Algoritmia y programacin
Universidad del Valle Slide 39
MBITO
DE
VARIABLES
El mbito de una variable es el contexto (espacio) dentro del programa en donde ella puede ser utilizada y reconocida.
Algoritmia y programacin
Universidad del Valle Slide 40
VARIABLES GLOBALES
LOCALES
Las variables se clasifican en 2 tipos: Variables Locales Variables Globales Variables Locales: Son aquellas variables que se crean dentro de un mtodo. Estas variables solamente son reconocidas dentro de ese mtodo donde fueron creadas, y su valor se pierde al finalizar la ejecucin del mismo.
Algoritmia y programacin
Universidad del Valle Slide 41
VARIABLES GLOBALES
LOCALES
Variables Globales: Son aquellas variables que se crean en el programa principal, por fuera de cualquier mtodo. stas son reconocidas en todo lugar del programa.
Algoritmia y programacin
Universidad del Valle Slide 42
VARIABLES GLOBALES
x,y : entero
c : entero
LOCALES
mbito de c
w,p : real
mbito de w,p
Ambito de x,y
Algoritmia y programacin
Universidad del Valle Slide 43
VARIABLES GLOBALES
LOCALES
mtodo
Algoritmia y programacin
Universidad del Valle Slide 44
EJEMPLO
Desarrollemos el ejemplo de la reforestacin, usando variables globales y mtodos que no reciben parmetros
Algoritmia y programacin
Universidad del Valle Slide 45
EJEMPLO
public class Reforestacion{
static int n;
public static void hallarCantidades(){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; if ( (n*hectarea) > 1000000){
n: Variable Global
}
else{ cant_pino= (((n* hectarea) *0.5)/10)*8;
EJEMPLO
public class Reforestacion{
static int n;
public static void hallarCantidades(){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; if ( (n*hectarea) > 1000000){
n: Variable Global
}
else{ cant_pino= (((n* hectarea) *0.5)/10)*8; cant_oyamel = (((n* hectarea) *0.3)/15)*15;
EJEMPLO
public class Reforestacion{
static int n;
public static void hallarCantidades(){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; if ( (n*hectarea) > 1000000){
n: Variable Global
}
else{ cant_pino= (((n* hectarea) *0.5)/10)*8; cant_oyamel = (((n* hectarea) *0.3)/15)*15;
Como n es global es reconocida dentro del mtodo hallarCantidades sin haber sido pasada como parmetro
EJEMPLO
public static void main(String args[]) { n=Integer.parseInt(JOptionPane.showInputDialog(Ingrese el nmero de hectreas:));
hallarCantidades();
} }
Inicio
leer(n) hallarCantidades()
Fin
Algoritmia y programacin
Universidad del Valle Slide 49
EJERCICIOS
Usando mtodos, desarrollar un programa que dado el peso, la altura y el sexo, de un estudiante. Determine la cantidad de vitaminas que
Si es hombre, y su estatura es mayor a 1.60, y su peso es mayor o igual a 75 kilos, su dosis, ser: 20% de la estatura y 80% de su peso, si la estatura es menor de 1.60, la dosis ser la siguiente: 30% de la
estatura y 70% de su peso. Si es mujer, y su estatura es mayor de a 1.55 y su peso es mayor o igual a 65 kilos, su dosis ser: 25% de la estatura y 75% de su peso. Si
el peso es mayor a 65 kilos, ser: 35% de la estatura y 65% de su peso.
Algoritmia y programacin
Universidad del Valle Slide 50
EJERCICIOS
Un comerciante se dedica a la venta de sillas. Vende tres tipos de sillas:
Tipo
1 2
Precio
$5.000 $7.000
$10.000
2
3
5%
10%
El resto de sillas se cobran a precio normal. Disee un programa que lea el tipo de silla y la cantidad a comprar e imprima la cantidad, el precio unitario, el descuento y el precio total, de lo que debe cancelar el cliente por la compra.
Algoritmia y programacin
Universidad del Valle Slide 51