terminal

codeando_simple

terminal

menu

terminal

search_module

guest@codeandosimple: ~/system/search $ grep -r "" .

Press [ENTER] to execute search

Status

Engine: Ready

Database: Online

Index: V2.1.0_LATEST

bash — cat logica-funciones.md
guest@codeandosimple: ~/blog/logica $ cat funciones.md

Lógica - Funciones_

// "La manera de empezar es dejar de hablar y comenzar a hacer" - Walt Disney

En este artículo veremos funciones (y también procedimientos). Estos componentes son los ladrillos fundamentales para construir software escalable y mantenible.

# Divide y vencerás (funciones)

Con esta frase “divide y vencerásâ€, atribuida a Julio César, los romanos encontraron una estrategia sumamente efectiva para la política y la guerra.

Esta es una idea que también se aplica a la resolución de problemas. Dado un problema complejo lo dividimos en partes o subproblemas, más simples de resolver.

Diagrama de flujo: Entrada, Proceso y Salida en funciones modulares

Una vez encontrada la solución de cada una de las partes, o subproblemas, las combinamos y resolvemos el problema principal.

Estructura jerárquica de modularización en algoritmos

Llamamos módulo a cada parte, y a todo el proceso, modularización. Cada módulo resuelve algunos de los subproblemas que conforman el problema original.

info Nota técnica: Modularidad y Acoplamiento

La modularización no solo simplifica la lógica, sino que permite gestionar el acoplamiento (la dependencia entre módulos) y la cohesión (qué tan enfocada está una función en una sola tarea). Un buen diseño modular reduce la deuda técnica del proyecto.

# Funciones

Las funciones son bloques de código que realizan tareas específicas. Dividen tareas grandes en varias tareas más pequeñas, y permite reutilizar lo que ya hicimos, o incluso lo que otros hicieron, en lugar de comenzar de cero.

# Estructura de las funciones

Una función tiene la forma:

Sintaxis técnica de una función: Tipo de retorno, nombre y argumentos

El nombre de la función, el tipo de dato que retorna y entre paréntesis los parámetros, separados con “,†cada uno con su tipo.

Finalmente retorna el resultado para el invocador.

# Parámetros y Variables

Los parámetros son variables usadas para meter datos adentro de la función, porque la función no conoce lo que está afuera, solo conoce lo que se declara adentro y los parámetros.

tipo_retorno nombre_funcion()

? Variables globales

Hay variables que se declaran por fuera son variables globales, se pueden usar en cualquier parte del programa. En programación se recomienda no usar, o usar lo menos posible variables globales para evitar efectos colaterales inesperados (Side Effects).

# Procedimientos

Hay funciones que no retornan valor, en ese caso el tipo retorno es void. Son llamados procedimientos, se ocupan de alguna tarea pero no retornan nada.

void nombre_funcion (params)

# Ejemplo: Función Suma

Código de la función suma

Falta armar el programa principal, carga los datos, invoca a la función suma e imprime el resultado.

Código del programa principal

# Pasaje de parámetros

Existen dos tipos de pasaje por parámetros: Valor y Referencia.

Por Valor

Pasaje por valor

// Copia del dato, no afecta original.

Por Referencia

Pasaje por referencia

// Dirección de memoria, modifica original.

# Ejercicios de Práctica

Recursos utilizados