FUNCIONES O MÉTODOS
Algoritmia y Programación
CONTENIDO
 Funciones/métodos
 Definición
 Partes de una función
 Ejemplos
 Ámbito de variables
Variables Locales
Variables Globales

Algoritmia y programación
Universidad del Valle

Slide 2
DEFINICIÓN
Una función ó método es una porción de código
(sub-algoritmo) que forma parte de un algoritmo
principal, el cual se encarga de resolver una tarea
específica.

Algoritmia y programación
Universidad del Valle

Slide 3
DEFINICIÓN
Una función ó método es una porción de código
(sub-algoritmo) que forma parte de un algoritmo
principal, el cual se encarga de resolver una tarea
específica.
 Divide y vencerás: Es una estrategia para
resolver
problemas grandes, dividiéndolo en
problemas más pequeños

Algoritmia y programación
Universidad del Valle

Slide 4
DEFINICIÓN
Los métodos 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
(métodos), ellos realizan una tarea, y cuando
terminan le devuelven el resultado y control al jefe.

Algoritmia y programación
Universidad del Valle

Slide 5
VENTAJAS DE USAR MÉTODOS
 Los problemas pequeños son más fáciles de
entender, de desarrollar y de mantener (localizar
errores).

 Se evita código innecesario, pues los métodos se
escriben una sola vez, y pueden ser utilizados
(llamados) desde diferentes partes del programa,
las veces que sea necesario

Algoritmia y programación
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 programación
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. Análisis del problema
Entrada:

a, b

Algoritmia y programación
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. Análisis del problema
Entrada:

a, b

Salidas :

hipotenusa, mayor

Proceso:

??

Algoritmia y programación
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. Análisis del problema
Entrada:

a, b

Salidas :

hipotenusa, mayor

Proceso:

determinar mayor de 2 números
calcular hipotenusa

Algoritmia y programación
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. Análisis del problema
Entrada:

a, b

Salidas :

hipotenusa, mayor

Proceso:

entero determinarMayor(a, b :entero) {

a y b son datos necesarios
para calcular el mayor de
los dos números

Algoritmia y programación
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. Análisis del problema
Entrada:

a, b

Salidas :

hipotenusa, mayor

Proceso:

entero determinarMayor(a, b :entero) {
m: entero
SI a>b
m= a
SINO
m=b
retornar m

}
Algoritmia y programación
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. Análisis del problema
Entrada:

a, b

Salidas :

hipotenusa, mayor

Proceso:

real calcularHipotenusa(a, b :entero)

Algoritmia y programación
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. Análisis del problema
Entrada:

a, b

Salidas :

hipotenusa, mayor

Proceso:

real calcularHipotenusa(a, b :entero)
a y b son datos necesarios
para calcular la hipotenusa

Algoritmia y programación
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. Análisis del problema
Entrada:

a, b

Salidas :

hipotenusa, mayor

Proceso:

real calcularHipotenusa(a, b :entero) {
h: real

h=√( a2+b2)
retornar h
}
Algoritmia y programación
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. Análisis del problema
Entrada:

a, b

Salidas :

hipotenusa, mayor

Proceso: real calcularHipotenusa(a, b :entero) {
h: real

h= √( a2+b2)
retornar h

¿Cómo se escribe
método en Java?

un

}
Algoritmia y programación
Universidad del Valle

Slide 16
PARTES DE UN MÉTODO
Sintaxis global es:
Modificador_de_acceso Tipo_de_retorno
{
declaración_variables_locales

nombre(parámetros,…)

cuerpo_del_método
valor_de_retorno
}







Tiene un nombre,
Recibe unos parámetros o argumentos (opcionalmente),
Contiene sentencias o instrucciones para realizar algo, y
Devuelve un valor de algún Tipo de dato conocido (opcionalmente).
Tiene un modificador de acceso

Algoritmia y programación
Universidad del Valle

Slide 17
PARTES DE UN MÉTODO
public double calcularHipotenusa(int a, int b)
{
double h;
h= Math.sqrt((a*a)+(b*b));
return h;
}

Algoritmia y programación
Universidad del Valle

Slide 18
PARTES DE UN MÉTODO
public

double calcularHipotenusa(int a, int b)

{
double h;
h= Math.sqrt((a*a+(b*b));

return h;
}

Modificador de acceso:
public – cualquiera puede acceder usar e invocar al
método
private – Sólo puede acceder ó invocarse el método
desde otro método de la clase.
protected - proporciona acceso público para las clases
derivadas y acceso privado (prohibido) para el resto de
clases.
Algoritmia y programación
Universidad del Valle

Slide 19
PARTES DE UN MÉTODO
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 método
debe retornar, que puede ser:
•int, float, double, char, String. etc
•void – Indica que el método no retorna ningún
valor
Algoritmia y programación
Universidad del Valle

Slide 20
PARTES DE UN MÉTODO
public

double

calcularHipotenusa(int a, int b)

{
double h;
h= Math.sqrt((a*a+(b*b));

return h;
}

Tipo de dato del valor que devuelve
Valor que devuelve

Algoritmia y programación
Universidad del Valle

Slide 21
PARTES DE UN MÉTODO
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
método dentro del programa. El cual debe estar
relacionado con las operaciones que va a realizar

Algoritmia y programación
Universidad del Valle

Slide 22
PARTES DE UN MÉTODO
public double calcularHipotenusa(int

a, int b)

{
double h;
h= Math.sqrt((a*a+(b*b));

return h;
}

Parámetros / argumentos
Hay métodos que reciben algunos valores para poder
hacer operaciones con ellos. Si son varios se separan
con comas ,
Algoritmia y programación
Universidad del Valle

Slide 23
PARTES DE UN MÉTODO
public double calcularHipotenusa(int

a, int b)

{
double h;
h= Math.sqrt((a*a+(b*b));

return h;
}

Este método recibe 2
argumentos de tipo
entero

Algoritmia y programación
Universidad del Valle

Slide 24
PARTES DE UN MÉTODO
public double calcularHipotenusa(int

a, int b)

{
double h;
h= Math.sqrt((a*a+(b*b));

return h;
}

¿Cómo llamar a un
método desde el
programa principal?

Algoritmia y programación
Universidad del Valle

Slide 25
LLAMADO DE MÉTODOS
 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. Diseñar el algoritmo y escribirlo en pseudocódigo
Inicio
a,b,mayor : entero
hipotenusa : real

La variable hipotenusa
va a tomar el valor que
le devuelva el método
calcularHipotenusa(a,b)

leer (a)
leer (b)
hipotenusa = calcularHipotenusa(a,b)
mayor = determinarMayor(a,b)
imprimir(hipotenusa, mayor)
Fin
Algoritmia y programación
Universidad del Valle

Slide 26
LLAMADO DE MÉTODOS
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 programación
Universidad del Valle

Slide 27
LLAMADO DE MÉTODOS
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 programación
Universidad del Valle

Slide 28
PROBLEMA
Se desea reforestar un bosque que mide un número n de hectáreas. Si la
superficie del terreno excede a 1’000.000m2, entonces se siembra así:
% superficie

Tipo de árbol

70%

Pino

20%

Oyamel

10%

Cedro

Si la superficie del terreno es menor o igual a 1’000.000m2 entonces se
siembra así:
% superficie

Tipo de árbol

50%

Pino

30%

Oyamel

20%

Cedro

Se desea saber el número 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 programación
Universidad del Valle

Slide 29
EJEMPLO
1. Análisis del problema
Entrada:

n

Salidas :

cant_pinos, cant_oyamel, cant_cedro

Proceso: hallarCantidades

Algoritmia y programación
Universidad del Valle

Slide 30
EJEMPLO
1. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio
n: entero

leer(n)
hallarCantidades( n)

Fin

Algoritmia y programación
Universidad del Valle

Slide 31
EJEMPLO
1. Diseñar el algoritmo y escribirlo en pseudocódigo
hallarCantidades(n: entero){

cant_pino,cant_oyamel,cant_cedro, hectarea=10000 : entero
SI (n*hectarea) > 1000000
cant_pino= (((n*hectarea) *0.7)/10)*8
cant_oyamel = (((n*hectarea) *0.2)/15)*15
cant_cedro= (((n*hectarea) *0.1)/18)*10
SINO
cant_pino= (((n*hectarea) *0.5)/10)*8
cant_oyamel = (((n*hectarea) *0.3)/15)*15
cant_cedro= (((n*hectarea) *0.2)/18)*10
Imprimir (cant_pino, cant_oyamel, cant_cedro);
}
Algoritmia y programación
Universidad del Valle

Slide 32
EJEMPLO
public class Reforestacion{
hallarCantidades(n: entero){

cant_pino,cant_oyamel,cant_cedro: entero

public static void hallarCantidades(int n){
int cant_pino, cant_oyamel, cant_cedro;
final int hectarea=10000;

SI (n*hectarea) > 1000000
cant_pino= (((n*hectarea) *0.7)/10)*8
cant_oyamel = (((n*hectarea) *0.2)/15)*15

if ( (n*hectarea) > 1000000){

cant_cedro= (((n*hectarea) *0.1)/18)*10

cant_pino= (((n*hectarea) *0.7)/10)*8;

SINO

cant_oyamel = (((n*hectarea) *0.2)/15)*15;

cant_pino= (((n*hectarea) *0.5)/10)*8

cant_cedro= (((n*hectarea) *0.1)/18)*10;

cant_oyamel = (((n*hectarea) *0.3)/15)*15

}

cant_cedro= (((n*hectarea) *0.2)/18)*10

else{
cant_pino= (((n*hectarea) *0.5)/10)*8;
cant_oyamel = (((n*hectarea) *0.3)/15)*15;

Imprimir (cant_pino, cant_oyamel, cant_cedro);
}

cant_cedro= (((n*hectarea) *0.2)/18)*10;
}
JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de pinos”+
cant_oyamel+“n cantidad de pinos”+ cant_cedro);
}
Algoritmia y programación
Universidad del Valle

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
método no va a devolver
ningún valor a quién lo
llamó, sino que va a realizar
alguna operación e imprimir
su resultado dentro del
mismo método.

if ( (n*hectarea) > 1000000){
cant_pino= (((n*hectarea) *0.7)/10)*8;
cant_oyamel = (((n*hectarea) *0.2)/15)*15;
cant_cedro= (((n*hectarea) *0.1)/18)*10;
}
else{
cant_pino= (((n*hectarea) *0.5)/10)*8;
cant_oyamel = (((n*hectarea) *0.3)/15)*15;
cant_cedro= (((n*hectarea) *0.2)/18)*10;
}
JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de pinos”+
cant_oyamel+“n cantidad de pinos”+ cant_cedro);
}
Algoritmia y programación
Universidad del Valle

Slide 34
EJEMPLO
public static void main(String args[])
{
int n;
n=Integer.parseInt(JOptionPane.showInputDialog(“Ingrese el número de hectáreas:”));
hallarCantidades(n);

Inicio
}
}

n: entero
leer(n)
hallarCantidades( n)

Fin
Algoritmia y programación
Universidad del Valle

Slide 35
Á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 programación
Universidad del Valle

Slide 36
VARIABLES GLOBALES Y LOCALES
Las variables se clasifican en 2 tipos:
 Variables Locales
 Variables Globales
Variables Locales: Son aquellas variables que se
crean dentro de un método. Estas variables
solamente son reconocidas dentro de ese método
donde fueron creadas, y su valor se pierde al
finalizar la ejecución del mismo.

Algoritmia y programación
Universidad del Valle

Slide 37
VARIABLES GLOBALES Y LOCALES

Variables Globales: Son aquellas variables que se
crean en el programa principal, por fuera de
cualquier método. Éstas son reconocidas en todo
lugar del programa.

Algoritmia y programación
Universidad del Valle

Slide 38
VARIABLES GLOBALES Y LOCALES
x,y : entero
c : entero
Ámbito de c

w,p : real
Ámbito de w,p
Ambito de x,y

Algoritmia y programación
Universidad del Valle

Slide 39
VARIABLES GLOBALES Y LOCALES
public static double calcularHipotenusa(int a, int b)
{
double h;
h= Math.sqrt((a*a)+(b*b));
return h;
}

Variable Local del
calcularHipotenusa

método

Algoritmia y programación
Universidad del Valle

Slide 40
EJEMPLO

Desarrollemos el ejemplo de la reforestación,
usando variables globales y métodos que no
reciben parámetros

Algoritmia y programación
Universidad del Valle

Slide 41
EJEMPLO
public class Reforestacion{

static int n;

n: Variable Global

public static void hallarCantidades(){
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;

cant_cedro= (((n* hectarea) *0.1)/18)*10;
}
else{
cant_pino= (((n* hectarea) *0.5)/10)*8;

cant_oyamel = (((n* hectarea) *0.3)/15)*15;
cant_cedro= (((n* hectarea) *0.2)/18)*10;
}
JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de
pinos”+ cant_oyamel+“n cantidad de pinos”+ cant_cedro);

}

Algoritmia y programación
Universidad del Valle

Slide 42
EJEMPLO
public class Reforestacion{

static int n;

n: Variable Global

public static void hallarCantidades(){
int cant_pino, cant_oyamel, cant_cedro;

final int hectarea=10000;
if ( (n*hectarea) > 1000000){

Método hallarCantidades no
recibe parámetros

cant_pino= (((n* hectarea) *0.7)/10)*8;
cant_oyamel = (((n* hectarea) *0.2)/15)*15;
cant_cedro= (((n* hectarea) *0.1)/18)*10;
}
else{
cant_pino= (((n* hectarea) *0.5)/10)*8;

cant_oyamel = (((n* hectarea) *0.3)/15)*15;
cant_cedro= (((n* hectarea) *0.2)/18)*10;
}
JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de
pinos”+ cant_oyamel+“n cantidad de pinos”+ cant_cedro);

}
Algoritmia y programación
Universidad del Valle

Slide 43
EJEMPLO
public class Reforestacion{

static int n;

n: Variable Global

public static void hallarCantidades(){
int cant_pino, cant_oyamel, cant_cedro;

final int hectarea=10000;
if ( (n*hectarea) > 1000000){

Método hallarCantidades no
recibe parámetros

cant_pino= (((n* hectarea) *0.7)/10)*8;
cant_oyamel = (((n* hectarea) *0.2)/15)*15;
cant_cedro= (((n* hectarea) *0.1)/18)*10;
}
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
método hallarCantidades sin
haber sido pasada como
parámetro

cant_cedro= (((n* hectarea) *0.2)/18)*10;
}
JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de
pinos”+ cant_oyamel+“n cantidad de pinos”+ cant_cedro);

}
Algoritmia y programación
Universidad del Valle

Slide 44
EJEMPLO
public static void main(String args[])
{
n=Integer.parseInt(JOptionPane.showInputDialog(“Ingrese el número de
hectáreas :”));
hallarCantidades();
}
}

Inicio
leer(n)

hallarCantidades()

Fin

Algoritmia y programación
Universidad del Valle

Slide 45
EJERCICIOS
 Usando métodos, 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:

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 o
igual a 1.60, la dosis será la siguiente: 30% de la estatura y 70% de su peso.
Si es mujer, y su estatura es mayor o igual 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 menor

a 65 kilos, será: 35% de la estatura y 65% de su peso.

Algoritmia y programación
Universidad del Valle

Slide 46
EJERCICIOS
 Un comerciante se dedica a la venta de sillas. Vende tres tipos de sillas:
Tipo

Precio

1

$5.000

2

$7.000

3

$10.000

Por cada cinco sillas compradas se obtiene un descuento, de acuerdo a la tabla
Tipo

Descuento

1

3%

2

5%

3

10%

El resto de sillas se cobran a precio normal. Diseñe 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 almacén sólo vende UN tipo de silla a cada cliente.
Algoritmia y programación
Universidad del Valle

Slide 47
CLASE DECIMALFORMAT
import java.text.DecimalFormat;

Se debe importar la clase
DecimalFormat

DecimalFormat formateador = new DecimalFormat("####.####");
double numero= 3.43242383;

Se
debe
declarar
una
variable que contenga el
formato que se le quiera
aplicar al número

// Esto sale en pantalla con cuatro decimales, es decir, 3,4324
System.out.println (formateador.format (numero));
En el momento de imprimir,
se coloca la variable a la que
se le quiere dar el formato
dentro del método format
Algoritmia y programación
Universidad del Valle

Slide 48

Métodos y Funciones - Java - Algoritmia

  • 1.
  • 2.
    CONTENIDO  Funciones/métodos  Definición Partes de una función  Ejemplos  Ámbito de variables Variables Locales Variables Globales Algoritmia y programación Universidad del Valle Slide 2
  • 3.
    DEFINICIÓN Una función ómétodo es una porción de código (sub-algoritmo) que forma parte de un algoritmo principal, el cual se encarga de resolver una tarea específica. Algoritmia y programación Universidad del Valle Slide 3
  • 4.
    DEFINICIÓN Una función ómétodo es una porción de código (sub-algoritmo) que forma parte de un algoritmo principal, el cual se encarga de resolver una tarea específica.  Divide y vencerás: Es una estrategia para resolver problemas grandes, dividiéndolo en problemas más pequeños Algoritmia y programación Universidad del Valle Slide 4
  • 5.
    DEFINICIÓN Los métodos recibendatos 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 (métodos), ellos realizan una tarea, y cuando terminan le devuelven el resultado y control al jefe. Algoritmia y programación Universidad del Valle Slide 5
  • 6.
    VENTAJAS DE USARMÉTODOS  Los problemas pequeños son más fáciles de entender, de desarrollar y de mantener (localizar errores).  Se evita código innecesario, pues los métodos se escriben una sola vez, y pueden ser utilizados (llamados) desde diferentes partes del programa, las veces que sea necesario Algoritmia y programación Universidad del Valle Slide 6
  • 7.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. Algoritmia y programación Universidad del Valle Slide 7
  • 8.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Algoritmia y programación Universidad del Valle Slide 8
  • 9.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Salidas : hipotenusa, mayor Proceso: ?? Algoritmia y programación Universidad del Valle Slide 9
  • 10.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Salidas : hipotenusa, mayor Proceso: determinar mayor de 2 números calcular hipotenusa Algoritmia y programación Universidad del Valle Slide 10
  • 11.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Salidas : hipotenusa, mayor Proceso: entero determinarMayor(a, b :entero) { a y b son datos necesarios para calcular el mayor de los dos números Algoritmia y programación Universidad del Valle Slide 11
  • 12.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Salidas : hipotenusa, mayor Proceso: entero determinarMayor(a, b :entero) { m: entero SI a>b m= a SINO m=b retornar m } Algoritmia y programación Universidad del Valle Slide 12
  • 13.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Salidas : hipotenusa, mayor Proceso: real calcularHipotenusa(a, b :entero) Algoritmia y programación Universidad del Valle Slide 13
  • 14.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Salidas : hipotenusa, mayor Proceso: real calcularHipotenusa(a, b :entero) a y b son datos necesarios para calcular la hipotenusa Algoritmia y programación Universidad del Valle Slide 14
  • 15.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Salidas : hipotenusa, mayor Proceso: real calcularHipotenusa(a, b :entero) { h: real h=√( a2+b2) retornar h } Algoritmia y programación Universidad del Valle Slide 15
  • 16.
    PROBLEMA  Desarrolle unprograma que lea los datos de 2 catetos (a,b) y determine cual de los 2 es mayor y muestre su hipotenusa. 1. Análisis del problema Entrada: a, b Salidas : hipotenusa, mayor Proceso: real calcularHipotenusa(a, b :entero) { h: real h= √( a2+b2) retornar h ¿Cómo se escribe método en Java? un } Algoritmia y programación Universidad del Valle Slide 16
  • 17.
    PARTES DE UNMÉTODO Sintaxis global es: Modificador_de_acceso Tipo_de_retorno { declaración_variables_locales nombre(parámetros,…) cuerpo_del_método valor_de_retorno }      Tiene un nombre, Recibe unos parámetros o argumentos (opcionalmente), Contiene sentencias o instrucciones para realizar algo, y Devuelve un valor de algún Tipo de dato conocido (opcionalmente). Tiene un modificador de acceso Algoritmia y programación Universidad del Valle Slide 17
  • 18.
    PARTES DE UNMÉTODO public double calcularHipotenusa(int a, int b) { double h; h= Math.sqrt((a*a)+(b*b)); return h; } Algoritmia y programación Universidad del Valle Slide 18
  • 19.
    PARTES DE UNMÉTODO public double calcularHipotenusa(int a, int b) { double h; h= Math.sqrt((a*a+(b*b)); return h; } Modificador de acceso: public – cualquiera puede acceder usar e invocar al método private – Sólo puede acceder ó invocarse el método desde otro método de la clase. protected - proporciona acceso público para las clases derivadas y acceso privado (prohibido) para el resto de clases. Algoritmia y programación Universidad del Valle Slide 19
  • 20.
    PARTES DE UNMÉTODO 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 método debe retornar, que puede ser: •int, float, double, char, String. etc •void – Indica que el método no retorna ningún valor Algoritmia y programación Universidad del Valle Slide 20
  • 21.
    PARTES DE UNMÉTODO public double calcularHipotenusa(int a, int b) { double h; h= Math.sqrt((a*a+(b*b)); return h; } Tipo de dato del valor que devuelve Valor que devuelve Algoritmia y programación Universidad del Valle Slide 21
  • 22.
    PARTES DE UNMÉTODO 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 método dentro del programa. El cual debe estar relacionado con las operaciones que va a realizar Algoritmia y programación Universidad del Valle Slide 22
  • 23.
    PARTES DE UNMÉTODO public double calcularHipotenusa(int a, int b) { double h; h= Math.sqrt((a*a+(b*b)); return h; } Parámetros / argumentos Hay métodos que reciben algunos valores para poder hacer operaciones con ellos. Si son varios se separan con comas , Algoritmia y programación Universidad del Valle Slide 23
  • 24.
    PARTES DE UNMÉTODO public double calcularHipotenusa(int a, int b) { double h; h= Math.sqrt((a*a+(b*b)); return h; } Este método recibe 2 argumentos de tipo entero Algoritmia y programación Universidad del Valle Slide 24
  • 25.
    PARTES DE UNMÉTODO public double calcularHipotenusa(int a, int b) { double h; h= Math.sqrt((a*a+(b*b)); return h; } ¿Cómo llamar a un método desde el programa principal? Algoritmia y programación Universidad del Valle Slide 25
  • 26.
    LLAMADO DE MÉTODOS 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. Diseñar el algoritmo y escribirlo en pseudocódigo Inicio a,b,mayor : entero hipotenusa : real La variable hipotenusa va a tomar el valor que le devuelva el método calcularHipotenusa(a,b) leer (a) leer (b) hipotenusa = calcularHipotenusa(a,b) mayor = determinarMayor(a,b) imprimir(hipotenusa, mayor) Fin Algoritmia y programación Universidad del Valle Slide 26
  • 27.
    LLAMADO DE MÉTODOS importjavax.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 programación Universidad del Valle Slide 27
  • 28.
    LLAMADO DE MÉTODOS publicstatic 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 programación Universidad del Valle Slide 28
  • 29.
    PROBLEMA Se desea reforestarun bosque que mide un número n de hectáreas. Si la superficie del terreno excede a 1’000.000m2, entonces se siembra así: % superficie Tipo de árbol 70% Pino 20% Oyamel 10% Cedro Si la superficie del terreno es menor o igual a 1’000.000m2 entonces se siembra así: % superficie Tipo de árbol 50% Pino 30% Oyamel 20% Cedro Se desea saber el número 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 programación Universidad del Valle Slide 29
  • 30.
    EJEMPLO 1. Análisis delproblema Entrada: n Salidas : cant_pinos, cant_oyamel, cant_cedro Proceso: hallarCantidades Algoritmia y programación Universidad del Valle Slide 30
  • 31.
    EJEMPLO 1. Diseñar elalgoritmo y escribirlo en pseudocódigo Inicio n: entero leer(n) hallarCantidades( n) Fin Algoritmia y programación Universidad del Valle Slide 31
  • 32.
    EJEMPLO 1. Diseñar elalgoritmo y escribirlo en pseudocódigo hallarCantidades(n: entero){ cant_pino,cant_oyamel,cant_cedro, hectarea=10000 : entero SI (n*hectarea) > 1000000 cant_pino= (((n*hectarea) *0.7)/10)*8 cant_oyamel = (((n*hectarea) *0.2)/15)*15 cant_cedro= (((n*hectarea) *0.1)/18)*10 SINO cant_pino= (((n*hectarea) *0.5)/10)*8 cant_oyamel = (((n*hectarea) *0.3)/15)*15 cant_cedro= (((n*hectarea) *0.2)/18)*10 Imprimir (cant_pino, cant_oyamel, cant_cedro); } Algoritmia y programación Universidad del Valle Slide 32
  • 33.
    EJEMPLO public class Reforestacion{ hallarCantidades(n:entero){ cant_pino,cant_oyamel,cant_cedro: entero public static void hallarCantidades(int n){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; SI (n*hectarea) > 1000000 cant_pino= (((n*hectarea) *0.7)/10)*8 cant_oyamel = (((n*hectarea) *0.2)/15)*15 if ( (n*hectarea) > 1000000){ cant_cedro= (((n*hectarea) *0.1)/18)*10 cant_pino= (((n*hectarea) *0.7)/10)*8; SINO cant_oyamel = (((n*hectarea) *0.2)/15)*15; cant_pino= (((n*hectarea) *0.5)/10)*8 cant_cedro= (((n*hectarea) *0.1)/18)*10; cant_oyamel = (((n*hectarea) *0.3)/15)*15 } cant_cedro= (((n*hectarea) *0.2)/18)*10 else{ cant_pino= (((n*hectarea) *0.5)/10)*8; cant_oyamel = (((n*hectarea) *0.3)/15)*15; Imprimir (cant_pino, cant_oyamel, cant_cedro); } cant_cedro= (((n*hectarea) *0.2)/18)*10; } JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de pinos”+ cant_oyamel+“n cantidad de pinos”+ cant_cedro); } Algoritmia y programación Universidad del Valle Slide 33
  • 34.
    EJEMPLO public class Reforestacion{ publicstatic void hallarCantidades(int n){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; void especifica que el método no va a devolver ningún valor a quién lo llamó, sino que va a realizar alguna operación e imprimir su resultado dentro del mismo método. if ( (n*hectarea) > 1000000){ cant_pino= (((n*hectarea) *0.7)/10)*8; cant_oyamel = (((n*hectarea) *0.2)/15)*15; cant_cedro= (((n*hectarea) *0.1)/18)*10; } else{ cant_pino= (((n*hectarea) *0.5)/10)*8; cant_oyamel = (((n*hectarea) *0.3)/15)*15; cant_cedro= (((n*hectarea) *0.2)/18)*10; } JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de pinos”+ cant_oyamel+“n cantidad de pinos”+ cant_cedro); } Algoritmia y programación Universidad del Valle Slide 34
  • 35.
    EJEMPLO public static voidmain(String args[]) { int n; n=Integer.parseInt(JOptionPane.showInputDialog(“Ingrese el número de hectáreas:”)); hallarCantidades(n); Inicio } } n: entero leer(n) hallarCantidades( n) Fin Algoritmia y programación Universidad del Valle Slide 35
  • 36.
    Á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 programación Universidad del Valle Slide 36
  • 37.
    VARIABLES GLOBALES YLOCALES Las variables se clasifican en 2 tipos:  Variables Locales  Variables Globales Variables Locales: Son aquellas variables que se crean dentro de un método. Estas variables solamente son reconocidas dentro de ese método donde fueron creadas, y su valor se pierde al finalizar la ejecución del mismo. Algoritmia y programación Universidad del Valle Slide 37
  • 38.
    VARIABLES GLOBALES YLOCALES Variables Globales: Son aquellas variables que se crean en el programa principal, por fuera de cualquier método. Éstas son reconocidas en todo lugar del programa. Algoritmia y programación Universidad del Valle Slide 38
  • 39.
    VARIABLES GLOBALES YLOCALES x,y : entero c : entero Ámbito de c w,p : real Ámbito de w,p Ambito de x,y Algoritmia y programación Universidad del Valle Slide 39
  • 40.
    VARIABLES GLOBALES YLOCALES public static double calcularHipotenusa(int a, int b) { double h; h= Math.sqrt((a*a)+(b*b)); return h; } Variable Local del calcularHipotenusa método Algoritmia y programación Universidad del Valle Slide 40
  • 41.
    EJEMPLO Desarrollemos el ejemplode la reforestación, usando variables globales y métodos que no reciben parámetros Algoritmia y programación Universidad del Valle Slide 41
  • 42.
    EJEMPLO public class Reforestacion{ staticint n; n: Variable Global public static void hallarCantidades(){ 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; cant_cedro= (((n* hectarea) *0.1)/18)*10; } else{ cant_pino= (((n* hectarea) *0.5)/10)*8; cant_oyamel = (((n* hectarea) *0.3)/15)*15; cant_cedro= (((n* hectarea) *0.2)/18)*10; } JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de pinos”+ cant_oyamel+“n cantidad de pinos”+ cant_cedro); } Algoritmia y programación Universidad del Valle Slide 42
  • 43.
    EJEMPLO public class Reforestacion{ staticint n; n: Variable Global public static void hallarCantidades(){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; if ( (n*hectarea) > 1000000){ Método hallarCantidades no recibe parámetros cant_pino= (((n* hectarea) *0.7)/10)*8; cant_oyamel = (((n* hectarea) *0.2)/15)*15; cant_cedro= (((n* hectarea) *0.1)/18)*10; } else{ cant_pino= (((n* hectarea) *0.5)/10)*8; cant_oyamel = (((n* hectarea) *0.3)/15)*15; cant_cedro= (((n* hectarea) *0.2)/18)*10; } JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de pinos”+ cant_oyamel+“n cantidad de pinos”+ cant_cedro); } Algoritmia y programación Universidad del Valle Slide 43
  • 44.
    EJEMPLO public class Reforestacion{ staticint n; n: Variable Global public static void hallarCantidades(){ int cant_pino, cant_oyamel, cant_cedro; final int hectarea=10000; if ( (n*hectarea) > 1000000){ Método hallarCantidades no recibe parámetros cant_pino= (((n* hectarea) *0.7)/10)*8; cant_oyamel = (((n* hectarea) *0.2)/15)*15; cant_cedro= (((n* hectarea) *0.1)/18)*10; } 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 método hallarCantidades sin haber sido pasada como parámetro cant_cedro= (((n* hectarea) *0.2)/18)*10; } JOptionPane.showMessageDialog(null, “cantidad de pinos”+ cant_pino+ “n cantidad de pinos”+ cant_oyamel+“n cantidad de pinos”+ cant_cedro); } Algoritmia y programación Universidad del Valle Slide 44
  • 45.
    EJEMPLO public static voidmain(String args[]) { n=Integer.parseInt(JOptionPane.showInputDialog(“Ingrese el número de hectáreas :”)); hallarCantidades(); } } Inicio leer(n) hallarCantidades() Fin Algoritmia y programación Universidad del Valle Slide 45
  • 46.
    EJERCICIOS  Usando métodos,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: 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 o igual a 1.60, la dosis será la siguiente: 30% de la estatura y 70% de su peso. Si es mujer, y su estatura es mayor o igual 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 menor a 65 kilos, será: 35% de la estatura y 65% de su peso. Algoritmia y programación Universidad del Valle Slide 46
  • 47.
    EJERCICIOS  Un comerciantese dedica a la venta de sillas. Vende tres tipos de sillas: Tipo Precio 1 $5.000 2 $7.000 3 $10.000 Por cada cinco sillas compradas se obtiene un descuento, de acuerdo a la tabla Tipo Descuento 1 3% 2 5% 3 10% El resto de sillas se cobran a precio normal. Diseñe 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 almacén sólo vende UN tipo de silla a cada cliente. Algoritmia y programación Universidad del Valle Slide 47
  • 48.
    CLASE DECIMALFORMAT import java.text.DecimalFormat; Sedebe importar la clase DecimalFormat DecimalFormat formateador = new DecimalFormat("####.####"); double numero= 3.43242383; Se debe declarar una variable que contenga el formato que se le quiera aplicar al número // Esto sale en pantalla con cuatro decimales, es decir, 3,4324 System.out.println (formateador.format (numero)); En el momento de imprimir, se coloca la variable a la que se le quiere dar el formato dentro del método format Algoritmia y programación Universidad del Valle Slide 48