Programación en C | Uso de funciones para un mejor código

in #spanish5 years ago

¡Bienvenidos Steemians!


1448288824_102530_1448288919_noticia_normal.jpg

Algo que hace eficiente el código y la construcción de un programa es el uso de funciones. Digamos que tenemos un gran problema para resolver. Si dividimos el gran problema en pequeños problemas posiblemente estemos más cerca de resolverlo.

Una función en programación hace que un gran proceso se divida en pequeños procesos haciendo más eficiente el programa por lo que el tiempo de ejecución podría disminuir. Recordemos que una función contiene un algoritmo que hace tal tarea.

Supongamos los siguientes ejemplos:

  • Una función que imprima una serie de mensajes por pantalla
  • Una función que haga una suma
  • Una función que retorne un valor en un rango específico para luego ser evaluado en una estructura de decisión
  • Una función que busque y recorra un vector para luego devolver su posición

Todo eso es posible hacerlo de manera exclusiva con funciones.

Este es un ejemplo sencillo sobre la implementación de funciones sobre el código fuente principal :

rq.png

Entonces se tiene el área principal y dentro se incluyen las funciones haciendo más chico el proceso principal. ¿Por qué hacer esto? Y porque se trata de como se gestionan las memorias. Una es la memoria principal (MP) y donde están las funciones son memorias secundarias. Esta segunda tiene más capacidad mientras que la principal no conviene saturarla de procesos, por eso se realiza esta acción. Esto sumado a que la MP es de altísima velocidad, con las funciones hechas no tiene que estar procesandolas sino que las recibe y ejecuta directamente.

Antes de dar un ejemplo vamos a mencionar algo muy importante. Existen dos formas de construir una función. Están los parámetros con pasaje de variables por valor y por referencia.

Pasaje por valor: Se trata de pasar una variable la cuál al cambiarla dentro de la función no afecta a la variable original.

Pasaje por referencia: En este caso si modificamos la variable dentro de la función afectará a la variable original.

Usaremos el pasaje por valor porque el otro necesita más profundidad (se utilizan punteros) y es mucho más avanzado.

Hagamos una función que sume dos números. Así se entenderá perfectamente qué sucede.

// Programa con una función de suma

daaaaa.PNG

Explicación breve:

Lo primero que podemos hacer es desarrollar el cuerpo principal del programa (void main( ) con todo lo necesario para su ejecución).

Luego hacemos el prototipo de la función suma. Notamos que en los parámetros aparece (int, int) que quiere decir que le mandaremos dos valores (con pasaje por valor) que justamente serán los que les pasemos en la llamada a la función.

Acto seguido tendremos que crear la declaración de la función. Esta es la parte en donde debemos construir el algoritmo que realice la suma. Para ello crearemos una variable (local a la función) la cuál es "suma" y es entonces en donde a+b se asignan a dicha variable. Por último el return suma lo que hace es devolver el valor de esa operación asignandosela a la variable "resultado" que creamos en la zona principal. También ahí fue donde pedimos los valores ingresados por teclado (A y B). Entonces estamos en condiciones de mostrar ese resultado por pantalla.

Si ingresamos en A = 10 y en B = 15, esos dos valores van hacia f_suma(int a, int b) ... se puede pensar así, que sucede esto:

f_suma(10, 15)
{
int suma;

suma = 10+15;

return suma; // retorna 25
}

¡Para entenderlo mucho más lo pondremos en ejecución!

3222.gif
Nota: Este programa se probó varias veces cerrando y abriendo para poder ingresar otra vez los datos.

Por último hay que dejar algo en claro. Los parámetros de las funciones que están en el prototipo (fuera del main) se llaman parámetros formales mientras que los de la llamada (dentro del main) se llaman parámetros actuales.

Creo que eso es todo. Nos vemos en la próxima.

Si te gustó el post valoralo, recomendalo o comentalo, incluso seguime para ver mis próximos aportes.

Me ayudarás a crecer y te sabré agradecer.

Sort:  

Congratulations @vikvitnik! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 500 upvotes. Your next target is to reach 600 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 61940.19
ETH 2433.78
USDT 1.00
SBD 2.50