UNI VERSIDAD TECNOLOGICA DE CAMPECHE
CARRERA:
T.S.U. EN DESARROLLO DE SOFTWARE
MULTIPLATAFORMA
ACTIVIDAD:
INVESTIGACIÓN
ALUMNO:
RUTH ZURISADAI ZAPATA TUT
ASIGNATURA:
PROGRAMACIÓN ESTRUCTURADA
NOMBRE DE LA UNIDAD:
UIII. FUNCIONES Y PROCEDIMIENTOS RECURSIVIDAD
DOCENTE:
MARTIN ALCOCER AVILA
GRADO Y GRUPO:
2 º “B”
PERIODO:
06 - MARZO - 2025
INTRODUCCIÓN
La recursividad es un concepto fundamental en la programación y las matemáticas. Una función o
procedimiento recursivo es aquel que se llama a sí mismo en su propia definición. Esto puede parecer
confuso al principio, pero es una herramienta poderosa para resolver problemas complejos.
Este enfoque es especialmente útil para resolver problemas complejos que pueden dividirse en
subproblemas más pequeños y de la misma naturaleza. Para entender la recursividad, primero es
necesario tener una comprensión básica de lo que son las funciones y los procedimientos en
programación.
La recursividad es una técnica en la que una función o procedimiento se llama a sí misma para resolver
un problema. Esto se hace dividiendo el problema en subproblemas.
TEMA 1: LAS CARACTERÍSTICAS DE LOS TIPOS DE SUBPROGRAMAS:
FUNCIONES
Matemáticamente una función es una operación que toma uno o más valores llamados argumentos y
produce un valor denominado resultado. Así, por ejemplo:
𝑥
𝑓 𝑥 =
1 + 𝑥2
donde 𝑓 es el nombre de la función y 𝑥 es el argumento. Para evaluar 𝑓 se debe dar un valor a 𝑥 para
poder calcular el resultado. Por ejemplo, con 𝑥 = 3 se obtiene el valor 0.3 para 𝑓. Una función puede
tener varios argumentos. Por consiguiente:
𝑥−𝑦
𝑓 𝑥 =
𝑥− 𝑦
Es una función de varios argumentos, sin embargo, solo proporciona como resultado un único valor.
Hay dos tipos de funciones las internas que son las incorporadas al lenguaje de programación y las
funciones externas el cual son definidas por el usuario, las cuales son creadas por el usuario cuando
las funciones internas no permiten realizar el tipo de cálculo deseado.
FUNCIONES INTERNAS
Cada lenguaje de programación tiene sus propias funciones incorporadas, que se utilizan escribiendo
sus nombres con los argumentos adecuados en expresiones como:
𝑓 ← 𝒔𝒒𝒓𝒕(𝐴 + 𝒄𝒐𝒔 𝑥 )
Funciones internas más usuales son las siguientes:
FUNCIÓN DESCRIPCIÓN TIP DE RESULTAD
ARGUMENT
abs(x) Valor absoluto de x Entero o real Real
Arctan(x) Arco tangente de x Entero o real Real
Cos(x) Coseno de x Entero o real Real
Exp(x) Exponencial de x Entero o real Real
In(x) Logaritmo neperiano de x Entero o real Real
Log10(x) Logaritmo decimal de x Entero o real Real
Redondeo (x), round(x) Redondeo de x Real Entero
Seno(x), sin(x) Seno de x Entero o real Real
Cuadrado(x), sqr(x) Cuadrado de x Entero o real Igual que argumento
Raiz2(x), sqrt(x) Raíz cuadrada de x Entero o real Real
Trunc(x) Truncamiento de x Real Entero
FUNCIONES EXTERNAS
La declaración de una función requiere de una serie de pasos que la definen. Una función al ser
subprograma tiene una forma similar a los programas, por consiguiente, constará de una cabecera
que comenzará con la palabra función, seguida del nombre y el argumento de dicha función encerrado
entre paréntesis y finalmente el tipo de dato simple que devuelve dicha función. La declaración de la
función en algoritmo será:
Función <nombre de la función> (lista de argumentos): <tipo de datos simple>
Var
[declaraciones de las variables que usa la función]
Inici
<instrucciones> //cuerpo de la función
N mbre de la función ← resultado de final de los cálculos
Fin_función
PROCEDIMIENTOS
Un procedimiento es un subprograma que ejecuta un proceso específico. Ningún valor está asociado
con el nombre del procedimiento, por consiguiente, no se puede utilizar en una expresión o instrucción.
Un procedimiento se invoca escribiendo su nombre, por ejemplo, BUSQUEDA, para indicar que dicho
procedimiento se va a utilizar y la lista de los parámetros actuales. Cuando se invoca el procedimiento,
los pasos que lo definen se ejecutan y a continuación se devuelve el control al programa que le llamó.
La declaración de un procedimiento es:
Pr cedimient <nombre del procedimiento> (lista de parámetros ficticios)
Var
[declaraciones de las variables que usa el procedimiento]
Inici
<instrucciones> //cuerpo del procedimiento
Fin_pr cedimient
TEMA 2. EXPLICAR LA SINTAXIS DE LOS TIPOS DE SUBPROGRAMAS EN
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADA.
La sintaxis de los subprogramas en un lenguaje de programación estructurada depende del
lenguaje. La sintaxis es el conjunto de reglas que define cómo se combinan los símbolos para formar
expresiones o declaraciones válidas.
Subpr gramas en Visual Basic
Para llamar a un subprograma Sub, se usa una instrucción de llamada independiente.
Se deben proporcionar valores para todos los argumentos que no son opcionales.
Los argumentos se incluyen entre paréntesis.
Se puede omitir el uso de paréntesis si no se proporciona ningún argumento.
Subpr gramas en lenguajes estructurad s en bl ques
Se utilizan bloques para tratar grupos de declaraciones como si fueran una sola declaración.
En ALGOL 68, se usa if...fi para encerrar estructuras.
En PL/I y Pascal, se usa BEGIN...END para encerrar secciones de código.
En Python, se usa sangría de espacio en blanco.
En C y otros lenguajes posteriores, se usan las llaves {...}.
Los subprogramas son fragmentos de código que se comportan de manera independiente dentro de
un programa. Se pueden invocar varias veces desde otras partes del programa.
TEMA 3. CONCEPTO DE RECURSIVIDAD
La recursividad es un concepto que se indica cuando un método se llama a sí mismo. Cuando creamos
un método recursivo debemos tener en cuenta que este tiene que terminar por lo que dentro del
método debemos asegurarnos de que no se está llamando a si mismo todo el rato, Lo que quiere decir
que el ciclo es finito. Debemos tener mucho cuidado cuando realizamos llamadas recursivas ya que
si la utilizamos sin control podríamos desbordar la memoria del ordenador, causando que el programa
se rompa.
Podemos utilizar recursividad para reemplazar cualquier tipo de bucle. A pesar de ello en el mundo
laboral no se utiliza demasiado, debido a que un error puede ser trágico en la memoria, así como tener
una lista con millones de datos, puede hacer que utiliza mucha memoria. Aun así, la gran mayoría de
las veces, utilizamos recursividad para algoritmos de búsqueda u ordenación. Se denomina caso base
a la condición de terminación de la recursividad.
Ejempl 1. calcular la factorial de un número. *multiplicar todos los números entre dos enteros. ¡En
matemáticas se expresa con n! donde n es el último número a comprobar. Debemos empezar desde
el 1.
Ejemplo utilizando un método iterativo
public static int FactorialIterativo(int numero)
{
int i, resultado = 1;
for(i=1; i <= numero; i++)
{
resultado = resultado * i;
}
return resultado;
}
El ejemplo utilizando método recursivo
public static int FactorialRecursivo(int numero)
{
if (numero == 0) return 1;
return numero * FactorialRecursivo(numero - 1);
}
TEMA 4. CARACTERÍSTICAS DE LOS PROCESOS RECURSIVOS
Los procesos recursivos en programación son funciones que se llaman a sí mismas. Son una forma
de expresar un gran número de funciones y procedimientos.
Características
Permiten dividir un problema en subproblemas más pequeños y similares.
Son útiles para recorrer estructuras anidadas, como árboles.
Se pueden utilizar para reemplazar cualquier tipo de bucle.
Se utilizan principalmente para algoritmos de búsqueda u ordenación.
Ventajas
Permiten escribir código más claro, conciso y fácil de entender.
La lógica del programa se vuelve más intuitiva y manejable.
Desventajas
Pueden tener un coste espacial y temporal elevado.
Pueden consumir mucha memoria, especialmente en casos profundos.
Pueden ser menos eficientes que las soluciones iterativas.
La depuración de funciones recursivas puede ser complicada.
CONCLUSIÓN
En la programación, una función es un bloque de código diseñado para realizar una tarea específica
y devolver un valor. Las funciones pueden tomar uno o más parámetros (entradas) y devolver un único
valor (salida). Los procedimientos, por otro lado, son bloques de código que realizan una acción, pero
no retornan un valor. Ambos, funciones y procedimientos, son componentes clave en cualquier
lenguaje de programación estructurado, ya que permiten organizar el código de manera modular,
facilitando la reutilización y el mantenimiento.
Función: Bloque de código que toma una o más entradas, realiza una operación y devuelve un
resultado.
Pr cedimient : Bloque de código que realiza una operación pero no devuelve ningún
resultado.
A medida que los programadores se familiarizan con la recursividad, descubren que este enfoque es
adecuado para una amplia variedad de problemas y, a menudo, resulta ser una de las soluciones más
elegantes y concisas.
REFERENCIAS
[Link]
[Link]
features/procedures/sub-procedures
[Link]