Programación Estructurada

Anuncio
Programación Estructurada
PROGRAMACIÓN ESTRUCTURADA
Sesión No. 6
Nombre: Funciones
Contextualización
La implementación de funciones en los programas disminuye las líneas de
código y estructuran mejor los datos que realizan tareas especializadas, pero la
implementación de funciones va más allá de sólo repetir un instrucción desde
muchos lugares del programa, que pasaría si en un programa que realiza
operaciones aritméticas siempre sumara los mismos números, podría ser
obsoleto el uso de funciones, sin embargo, existe un tipo de funciones que
permite transformar lo que se le pida, esto, se logra con un paso de parámetros.
Un parámetro es un dato central sobre el cual se ejecutara una tarea específica.
Los parámetros (a los cuales se conocen como argumentos), son los elementos
sobre los que una función ejecuta su código.
Img_ send_data_to_funtion
1
PROGRAMACIÓN ESTRUCTURADA
Introducción al Tema
El manejo de funciones con pasos de parámetros son las más frecuentes a
encontrar, ya que uno de los principales objetivos es lograr que una parte del
código se pueda utilizar repetidamente con diversos datos.
Ya hemos visto que en C, al efectuar la llamada a una función, el valor de los
parámetros actuales se copia en los parámetros formales. Las funciones con
pasos de parámetros podrán ayudar a trabajar con diversos datos y no sólo una
operación de parámetro actual (o variable local de función). Las funciones
pueden ejecutarse pidiéndole examinar cierta información mandada desde otra
fuente del código, también, pueden llamarse así mismas para lograr refinar un
proceso hasta que se obtenga un valor deseado, a esta cualidad se le conoce
como función recursiva.
2
PROGRAMACIÓN ESTRUCTURADA
Explicación
3.2 Funciones con paso de parámetros
Para iniciar con este tema es preciso que se comprenda y se fije bien el
concepto de parámetro. Un parámetro es un dato sobre el cual se desean
realizar protocolos de evaluación y operación con el objetivo de buscar un
resultado, ya sea matemático o lógico que sirva para que el elemento invocador
de la función, pueda proseguir con el objetivo general del programa.
Existen dos formas de paso de parámetros a una función:
Paso de parámetros por valor.
Como su nombre lo indica, los argumentos pasados como argumentos son
valores, que bien pueden ser datos fijos o una variable cuyo valor haya sido
obtenido previamente a la invocación de la función, al listar una variable como
parámetro se creara una variable virtual con el valor copiado de la variable
original, permitiendo mantener el valor de la variable original para su posterior
uso sin que se vea afectada por los procesos de la función invocada.
Paso de parámetros por referencia.
A diferencia del tipo de paso de parámetros por valor, lo que se pasa es la
variable en sí, evidentemente, con su valor. Al ser pasada la variable, si el
contenido del parámetro correspondiente es modificado, entonces la variable
pasada también queda modificada.
En lenguaje C, no existe el paso de parámetros por referencia, todos los
argumentos se pasan por valor, recordando la sintaxis de una función ilustremos
un ejemplo de paso de parámetros:
3
PROGRAMACIÓN ESTRUCTURADA
#include <stdio.h>
Void ejemplo (int parametro)
{
Printf(“parámetro vale %d”, parametro);
Parámetro = 20;
}
Main()
{
Int variable = 5;
ejemplo (variable);
Printf (“variable vale %d”, variable);
}
En el anterior ejemplo se produce un paso de parámetro por valor a la función
ejemplo. Se está pasando una copia del contenido de variable a la función
ejemplo, por ello el primer mensaje que se mostrará en la salida estándar será
parámetro vale 5. Aunque en la segunda línea de la función se modifique el valor
4
PROGRAMACIÓN ESTRUCTURADA
de parámetro, variable sigue conteniendo un 5, con lo que el segundo mensaje
mostrando en la salida estándar será variable vale 5.
3.3 Funciones recursivas
La recursión de una función consiste en la invocación de una función dentro de
sí misma, es decir, que la función invocadora es la misma función invocada. Si la
función se llama a sí misma antes de terminar, la función volverá a empezar. Por
lo tanto, si esto continuará indefinidamente, el programa no tendría fin. La forma
de evitar esto consiste en variar los parámetros que se pasan a la función en
cada llamada y utilizarlos para saber si debe volverse a realizar la llamada o si la
función debe terminar.
Dado su especial relevancia y sus características, este tipo de llamadas se
denominan llamadas recursivas y las funciones que realizan este tipo de
llamadas se denominan funciones recursivas.
La forma de entender cómo funcionan es estudiando la traza de ejecución de
una función recursiva. Todas las funciones recursivas deben de distinguir entre
al menos dos ramas de ejecución:

Salida: en ella se encuentra el final de la función recursiva. Ocurre cuando
los valores de los parámetros alcanzan la condición de salida.

Recursión: esta rama es la que realiza la llamada recursiva. Cada vez que
se realice una llamada recursiva hay que modificar los parámetros que se le
pasan de forma que se aproximen cada vez más a la condición de salida.
Es importante antes de hacer una función recursiva, asegurarse de contar con
una validación o condición que ejecute una salida y que el dato a evaluar cambie
su valor de cualquier forma para evitar que se cicle la función indefinidamente.
5
PROGRAMACIÓN ESTRUCTURADA
Ejemplo de función recursiva:
#include<conio.h>
#include<stdio.h>
int factorial(int dato){
if(1>= dato){
return 1;
 Con este valor aseguramos la salida de la recursión
}
else{
return dato * factorial(dato -1);
 Llamada recursiva a la función factorial.
}
}
int main(){
int valor;
printf(“Introduzca un numero %d”,valor);
printf(“El factorial es %d”, factorial(valor));
getch();
}
En el programa anterior, se le solicita un numero al usuario, posteriormente se pasa ese
número a la variable factorial el cual realizará la multiplicación de ese número hasta que
el valor = 1, una vez que disminuya a 1 la función se terminará, y no se volverá a llamar
a sí misma.
6
PROGRAMACIÓN ESTRUCTURADA
Conclusión
Las funciones facilitan la estructuración de los programas especializando tareas
de un objetivo global para buscar un resultado final, para poder hacer una
función más útil es recomendable utilizar los pasos de parámetros, para poder
analizar diversos valores.
Las funciones recursivas son bastante optimas cuando se trata de realizar una
búsqueda de un valor final sobre un parámetro enviado, sin embargo, se debe
tener cuidado de no ciclar un programa, ya que de lo contrario, es probable que
la misma computadora se bloquee al reservar espacio de memoria para
operaciones infinitas.
7
PROGRAMACIÓN ESTRUCTURADA
Para aprender más
¿Te pareció complicado el uso de la recursividad de una función?
A continuación encontrar un video donde se explica de forma muy clara como
trabaja una función recursiva utilizando nuestro ejemplo para comprender el
orden de ejecución en el que se invoca la recursividad.
https://www.youtube.com/watch?v=iw7Shsl5yC0
8
PROGRAMACIÓN ESTRUCTURADA
Actividad de Aprendizaje
Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta
sesión, ahora tendrás que realizar la siguiente actividad.
Instrucciones
 Escribe un ejemplo de un programa que muestre una función con
parámetros en lenguaje C
 Imprimir la pantalla ya que esté escrito en C
 Convertir en imagen en formato JPG el programa realizado
 Subirlo a la plataforma de la asignatura
Esta actividad te ayudará a comprender cómo funciona la función con parámetro
en lenguaje C, así como su correcta utilización, lo cual te facilitará a entender las
siguientes sesiones.
Esta actividad representa el 5% de tu calificación y se tomará en cuenta lo
siguiente:
 Tus datos generales.
 Título.
 El ejemplo de un programa con una función con parámetros en lenguaje C
 Ortografía y redacción.
 Referencias bibliográficas
9
PROGRAMACIÓN ESTRUCTURADA
Bibliografía
 Badenas, J; (2001), Curso práctico de programación en C y C++, Castelló de la
Plana: Universidad Jaume.
 Jordá, P; (s/f). Diseño e implementación de programas en lenguaje C, Valencia:
Libro Docente.
 Cobo A; (s/f). Programar C desde un punto de vista científico, Madrid: Visión
Libros
 Harvey, M; (2004), C / C++ y Java cómo programar, México: Pearson Educación.
10
Descargar