Funciones y Procedimientos

Programación estructurada y modular


La programación estructurada es un estilo de programación que organiza el código utilizando solo tres tipos de estructuras básicas:

  • Secuencias (instrucciones que se ejecutan una tras otra).
  • Alternativas (decisiones como Si...Entonces...Sino).
  • Repetitivas (bucles como Mientras, Para, o Repetir).

Este enfoque mejora la claridad, calidad y tiempo de desarrollo de los algoritmos y programas.

Por otro lado, la programación modular divide los programas en pequeñas partes llamadas subprogramas (o subrutinas), como funciones y procedimientos. Estas pequeñas partes resuelven tareas específicas, haciendo el código más fácil de leer, probar y reutilizar.

La idea es dividir un problema complejo en varios problemas más simples hasta que cada uno sea fácil de resolver de manera individual (estrategia de "divide y vencerás").


¿Qué es una subrutina?

En PSeInt, una subrutina es un bloque de instrucciones que realiza una tarea específica de manera independiente del resto del programa.

Se utiliza para organizar mejor el código, evitar repeticiones y hacerlo más fácil de entender y mantener.


Tipos de subrutinas en PSeInt:

Tipo Característica principal
Función Subrutinas que devuelven un valor después de ejecutarse.
Procedimiento Subrutinas que no devuelven ningún valor, solo realizan acciones.

¿Por qué usar subrutinas?

  • Permiten dividir un problema grande en partes pequeñas y manejables.
  • Facilitan la reutilización de código: si necesitas realizar la misma tarea varias veces, puedes llamar a la subrutina en vez de repetir todo el código.
  • Mejoran la legibilidad y el orden de tus programas.
  • Reducen errores, ya que puedes probar y corregir cada subrutina por separado.

¿Cómo se define una función o procedimiento?

Sintaxis básica:
  Funcion [VariableDeRetorno <-] NombreDeLaFuncion ( Argumentos )
      // Instrucciones
  FinFuncion
  • Si es función: Indica qué variable se devuelve usando <-.
  • Si es procedimiento: No es necesario devolver ningún valor.

También se puede usar SubProceso o SubAlgoritmo en vez de Funcion.

Ejemplo:
  Funcion mayor <- ObtenerMayor(num1, num2)
      Definir mayor Como Entero;
							
      Si num1 > num2 Entonces
          mayor <- num1;
      Sino
          mayor <- num2;
      FinSi
  FinFuncion
Y en el programa principal:
  Proceso Principal
      Definir a, b, resultado Como Entero;
							
      Escribir "Ingrese el primer número:";
      Leer a;
      Escribir "Ingrese el segundo número:";
      Leer b;
							
      resultado <- ObtenerMayor(a, b);
							
      Escribir "El número mayor es: ", resultado;
  FinProceso