Facultad de Ingeniería
Algorítmica 1
MÉTODOS (funciones y procedimientos)
Programación Modular
Uno de los métodos más conocidos
para resolver un problema es dividirlo
en problemas más pequeños, llamados
subproblemas. De esta manera, en
lugar de resolver una tarea compleja y
tediosa, resolvemos otras más
sencillas y a partir de ellas llegamos a
la solución.
Esta técnica se usa mucho en
programación ya que programar no es
más que resolver problemas, y se le
suele llamar diseño descendente,
metodología del divide y vencerás o
programación top-down (de arriba
hacia abajo).
EJEMPLO
Es evidente que si esta Funciones
metodología nos lleva a tratar con
subproblemas, entonces también
tengamos la necesidad de poder
crear y trabajar con
subprogramas para resolverlos. A
estos subprogramas se les suele
llamar módulos, de ahí viene el
nombre de programación
modular.
En Java disponemos de dos tipos Procedimientos
de módulos:
•Método con valor de retorno
(funciones).
•Método sin valor de retorno
(procedimientos).
Ejemplo: Supongamos que un profesor quiere crear un programa
para gestionar las notas de sus alumnos. Quiere que dicho
programa le permita realizar tareas tales como asignar notas,
cambiar notas, ver las notas según distintas calificaciones, etc. A
continuación tienes un esquema que representa una de las
posibles divisiones del problema en módulos.
METODO SIN VALOR DE RETORNO O PROCEDIMIENTO
Un método sin valor de retorno o procedimiento es un subprograma
que realiza una tarea específica. Para hacer que se ejecute, basta
con escribir su nombre en el cuerpo de otro procedimiento o en el
programa principal y enviar los parámetros que el necesite.
Su declaración debe hacerse antes de que sea llamado por otro
módulo.
Su formato en pseudocódigo es:
procedimiento nombre_procedimiento (lista de parámetros)
declaraciones de variables locales
cuerpo del procedimiento (instrucciones)
fin
EJEMPLO DE CODIFICACION DE UN MÉTODO SIN VALOR DE RETORNO
Nombre Lista
del de
Procedimiento Parámetros
Private void PromedioP ( int nota1 , int nota2)
{
// declaración de variables locales
double suma,promedio; La palabra
// proceso void indica que no va
suma=(nota1+nota2); a retornar ningún valor
promedio= suma/2.0; especifico
// salida
jtxtProm.setText(String.valueOf(promedio));
}
PARÁMETROS
A los parámetros también se les conoce como argumentos y
tienen la misión de comunicar al procedimiento con el
programa que lo llama.
Por ejemplo, si quieres hacer un subprograma que
multiplique dos números, lo más cómodo es que al llamar al
procedimiento le pases los valores que participarán en la
operación.
En Java tenemos 2 tipos de parámetros:
• Parámetros por valor.
• Parámetros por referencia.
PASO DE PARÁMETRO POR VALOR
La diferencia de pasar
parámetros por referencia
respecto a parámetros por
valor radica en que en estos
últimos se guarda en memoria
una copia temporal de la
variable, dentro del
procedimiento solo se utiliza
la copia, cuando se modifica
el valor del parámetro solo
afecta al almacenamiento
temporal, la variable actual
fuera del procedimiento nunca
se toca.
PASO DE PARÁMETRO POR REFERENCIA
Para modificar directamente
los datos que se reciben
como parámetros, se usa la
llamada por referencia.
EJEMPLO DE PROCEDIMIENTO Y FUNCIONES DE PARÁMETROS POR REFERENCIA
EJEMPLO
jtxtNota1
jtxtNota2
Construya un aplicativo que
permita leer las tres notas de
un estudiante y permita
visualizar la información de su
promedio y su Condición
Académica si aprobó o jtxtNota3
desaprobó. El aplicativo
también verificara si las notas
son datos correctos entre 0 y
20.
Llamada a un
Procedimiento o método
sin valor de retorno.
MÉTODOS CON VALOR DE RETORNO O FUNCIÓN
Las funciones son, al igual que los procedimientos, un
conjunto de sentencias que se ejecutan constantemente,
la diferencia entre estas y los procedimientos es que las
funciones retornan un valor.
Su formato en pseudocódigo es:
función nombre_funcion (lista de parámetros)
declaraciones de variables locales
cuerpo de la función (instrucciones)
retornar valor;
fin
EJEMPLO DE CODIFICACION DE UNA FUNCIÓN
Nombre Lista
de la de
Función Parámetros por valor
Private double PromedioF ( int nota1, int nota2, int nota3)
{
En vez de la
// Declaración de variables locales palabra función
double promedio; se coloca el
tipo de dato
//proceso que va a retornar
la función
promedio = (nota1 + nota2 + nota3)/3.0;
// Valor de retorno Se retorna la variable
que tiene la
return promedio; información
}
Llamada a una
función
El ejercicio 1, utiliza el
método potencia.
El ejercicio 2, utiliza los
métodos: suma, resta,
multiplicación y division.
El ejercicio 3, reutiliza los
métodos: suma, resta,
multiplicación y division.
El ejercicio 4 utiliza los
métodos: mprom,
maprom y meprom.
El ejercicio 4 utiliza los
métodos: mprom,
maprom y meprom.