Professional Documents
Culture Documents
Algoritmia y Programacin
CONTENIDO
Funciones/mtodos
Definicin
Partes de una funcin
Ejemplos
mbito de variables
Variables Locales
Variables Globales
Algoritmia y programacin
Universidad del Valle
Slide 2
DEFINICIN
Una funcin mtodo es una porcin de cdigo
(sub-algoritmo) que forma parte de un algoritmo
principal, 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
(sub-algoritmo) que forma parte de un algoritmo
principal, 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
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:
a, b
Salidas :
hipotenusa, mayor
Proceso:
??
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:
a, b
Salidas :
hipotenusa, mayor
Proceso:
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:
a, b
Salidas :
hipotenusa, mayor
Proceso:
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:
a, b
Salidas :
hipotenusa, mayor
Proceso:
}
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:
a, b
Salidas :
hipotenusa, mayor
Proceso:
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:
a, b
Salidas :
hipotenusa, mayor
Proceso:
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
Proceso:
h=( a2+b2)
retornar h
}
Algoritmia y programacin
Universidad del Valle
Slide 15
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= ( a2+b2)
retornar h
Cmo se escribe
mtodo en Java?
un
}
Algoritmia y programacin
Universidad del Valle
Slide 16
PARTES DE UN MTODO
Sintaxis global es:
Modificador_de_acceso Tipo_de_retorno
{
declaracin_variables_locales
nombre(parmetros,)
cuerpo_del_mtodo
valor_de_retorno
}
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
Algoritmia y programacin
Universidad del Valle
Slide 17
PARTES DE UN MTODO
public double calcularHipotenusa(int a, int b)
{
double h;
h= Math.sqrt((a*a)+(b*b));
return h;
}
Algoritmia y programacin
Universidad del Valle
Slide 18
PARTES DE UN MTODO
public
{
double h;
h= Math.sqrt((a*a+(b*b));
return h;
}
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 19
PARTES DE UN MTODO
public
double
calcularHipotenusa(int a, int b)
{
double h;
h= Math.sqrt((a*a+(b*b));
return h;
}
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 20
PARTES DE UN MTODO
public
double
calcularHipotenusa(int a, int b)
{
double h;
h= Math.sqrt((a*a+(b*b));
return h;
}
Algoritmia y programacin
Universidad del Valle
Slide 21
PARTES DE UN MTODO
public double
calcularHipotenusa(int
a, int b)
{
double h;
h= Math.sqrt((a*a+(b*b));
return h;
}
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 22
PARTES DE UN MTODO
public double calcularHipotenusa(int
a, int b)
{
double h;
h= Math.sqrt((a*a+(b*b));
return h;
}
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 23
PARTES DE UN MTODO
public double calcularHipotenusa(int
a, int b)
{
double h;
h= Math.sqrt((a*a+(b*b));
return h;
}
Algoritmia y programacin
Universidad del Valle
Slide 24
PARTES DE UN MTODO
public double calcularHipotenusa(int
a, int b)
{
double h;
h= Math.sqrt((a*a+(b*b));
return h;
}
Cmo llamar a un
mtodo desde el
programa principal?
Algoritmia y programacin
Universidad del Valle
Slide 25
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
La variable hipotenusa
va a tomar el valor que
le devuelva el mtodo
calcularHipotenusa(a,b)
leer (a)
leer (b)
hipotenusa = calcularHipotenusa(a,b)
mayor = determinarMayor(a,b)
imprimir(hipotenusa, mayor)
Fin
Algoritmia y programacin
Universidad del Valle
Slide 26
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 27
LLAMADO DE MTODOS
public static void main (String args[]){
Inicio
a,b,mayor : entero
hipotenusa : real
leer (a)
leer (b)
int a, b, mayor;
double hipotenusa;
hipotenusa = calcularHipotenusa(a,b)
mayor = determinarMayor(a,b)
imprimir(hipotenusa, mayor)
Fin
a=Integer.parseInt(JOptionPane.showInputDialog(
Digite el valor de a: ));
b=Integer.parseInt(JOptionPane.showInputDialog(
Digite el valor de b: ));
hipotenusa = calcularHipotenusa(a,b);
mayor= determinarMayor(a,b);
JOptionPane.showMessageDialog(null,Hipotenusa: + hipotenusa +
\n Mayor: + mayor );
}
}
Algoritmia y programacin
Universidad del Valle
Slide 28
PROBLEMA
Se desea 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%
Pino
20%
Oyamel
10%
Cedro
Tipo de rbol
50%
Pino
30%
Oyamel
20%
Cedro
Algoritmia y programacin
Universidad del Valle
Slide 29
EJEMPLO
1. Anlisis del problema
Entrada:
Salidas :
Proceso: hallarCantidades
Algoritmia y programacin
Universidad del Valle
Slide 30
EJEMPLO
1. Disear el algoritmo y escribirlo en pseudocdigo
Inicio
n: entero
leer(n)
hallarCantidades( n)
Fin
Algoritmia y programacin
Universidad del Valle
Slide 31
EJEMPLO
1. Disear el algoritmo y escribirlo en pseudocdigo
hallarCantidades(n: entero){
Slide 32
EJEMPLO
public class Reforestacion{
hallarCantidades(n: entero){
cant_pino,cant_oyamel,cant_cedro: entero
SINO
else{
cant_pino= (((n*hectarea) *0.5)/10)*8;
cant_oyamel = (((n*hectarea) *0.3)/15)*15;
Slide 33
EJEMPLO
public class Reforestacion{
public static void hallarCantidades(int n){
int cant_pino, cant_oyamel, cant_cedro;
final int hectarea=10000;
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.
Slide 34
EJEMPLO
public static void main(String args[])
{
int n;
n=Integer.parseInt(JOptionPane.showInputDialog(Ingrese el nmero de hectreas:));
hallarCantidades(n);
Inicio
}
}
n: entero
leer(n)
hallarCantidades( n)
Fin
Algoritmia y programacin
Universidad del Valle
Slide 35
MBITO DE VARIABLES
Algoritmia y programacin
Universidad del Valle
Slide 36
Algoritmia y programacin
Universidad del Valle
Slide 37
Algoritmia y programacin
Universidad del Valle
Slide 38
w,p : real
mbito de w,p
Ambito de x,y
Algoritmia y programacin
Universidad del Valle
Slide 39
mtodo
Algoritmia y programacin
Universidad del Valle
Slide 40
EJEMPLO
Algoritmia y programacin
Universidad del Valle
Slide 41
EJEMPLO
public class Reforestacion{
static int n;
n: Variable Global
Algoritmia y programacin
Universidad del Valle
Slide 42
EJEMPLO
public class Reforestacion{
static int n;
n: Variable Global
Mtodo hallarCantidades no
recibe parmetros
}
Algoritmia
y programacin
Universidad del Valle
Slide 43
EJEMPLO
public class Reforestacion{
static int n;
n: Variable Global
Mtodo hallarCantidades no
recibe parmetros
Como
n
es
global
es
reconocida
dentro
del
mtodo hallarCantidades sin
haber sido pasada como
parmetro
}
Algoritmia
y programacin
Universidad del Valle
Slide 44
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 45
EJERCICIOS
Usando mtodos, desarrollar un programa que dado el peso, la altura
y el sexo de un estudiante. Determine la cantidad de vitaminas que debe
consumir, con base en los siguientes criterios:
Algoritmia y programacin
Universidad del Valle
Slide 46
EJERCICIOS
Un comerciante se dedica a la venta de sillas. Vende tres tipos de sillas:
Tipo
Precio
$5.000
$7.000
$10.000
Descuento
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.
Nota: El almacn slo vende UN tipo de silla a cada cliente.
Algoritmia y programacin
Universidad del Valle
Slide 47
CLASE DECIMALFORMAT
import java.text.DecimalFormat;
Se
debe
declarar
una
variable que contenga el
formato que se le quiera
aplicar al nmero
Slide 48