Update PR2

This commit is contained in:
Manuel Vergara 2024-05-04 20:30:21 +02:00
parent c3956427d2
commit 8ac29e55c8

View File

@ -44,7 +44,6 @@ algorithm almuerzo
segundoPlato:= encargarPescado(bacalao, ajoaceite, 5); segundoPlato:= encargarPescado(bacalao, ajoaceite, 5);
postres:= encargarPostres(pastel, chocolate, velas, 5); postres:= encargarPostres(pastel, chocolate, velas, 5);
end algorithm end algorithm
``` ```
Podemos ver cómo nuestro algoritmo, a base de solicitar a expertos que hagan el trabajo, se convierte en un algoritmo simple y fácil de entender. Lo único que hemos tenido que hacer son peticiones en las que hemos añadido valores, a los que llamamos **parámetros**, que indican exactamente cómo queremos cada plato. Podemos ver cómo nuestro algoritmo, a base de solicitar a expertos que hagan el trabajo, se convierte en un algoritmo simple y fácil de entender. Lo único que hemos tenido que hacer son peticiones en las que hemos añadido valores, a los que llamamos **parámetros**, que indican exactamente cómo queremos cada plato.
@ -124,7 +123,6 @@ int main() {
} }
return 0; return 0;
} }
``` ```
Si incorporamos este código en el algoritmo anterior, el código se complica y se hace menos legible. Deberíamos repetir el código cada vez que necesitaramos el cálculo. La solución es encapsular este código en una **acción** o **función** que se encargue de calcular el factorial de un número cada vez que se necesite con una llamada que pase el parámetro. De esta forma, el algoritmo principal quedaría más limpio y fácil de entender. Si incorporamos este código en el algoritmo anterior, el código se complica y se hace menos legible. Deberíamos repetir el código cada vez que necesitaramos el cálculo. La solución es encapsular este código en una **acción** o **función** que se encargue de calcular el factorial de un número cada vez que se necesite con una llamada que pase el parámetro. De esta forma, el algoritmo principal quedaría más limpio y fácil de entender.
@ -151,14 +149,12 @@ function name(param1: type1 , param2: type2, ..., paramn: typen): returnType
return expression; return expression;
end function end function
returnType name(type1 param1, type2 param2, ..., typen paramn) { returnType name(type1 param1, type2 param2, ..., typen paramn) {
... ...
... ...
/* returnValue es el valor que calcula la función */ /* returnValue es el valor que calcula la función */
return returnValue; return returnValue;
} }
``` ```
La **cabecera** es la parte que describe cómo debe llamarse a una función. Indica su nombre, los parámetros que espera y el tipo que retorna. La estructura de la cabecera es la siguiente: La **cabecera** es la parte que describe cómo debe llamarse a una función. Indica su nombre, los parámetros que espera y el tipo que retorna. La estructura de la cabecera es la siguiente:
@ -205,7 +201,6 @@ int factorial(int number) {
} }
return fact; return fact;
} }
``` ```
Aquí vemos: Aquí vemos:
@ -304,7 +299,6 @@ n:= factorial(5); /* utilizando una constante como parámetro actual*/
n:= factorial(p) /* utilizando una variable como parámetro actual */ n:= factorial(p) /* utilizando una variable como parámetro actual */
n:= factorial(m+2) /* utilizando una expresión como parámetro actual */ n:= factorial(m+2) /* utilizando una expresión como parámetro actual */
``` ```
Ahora ya podemos ver el algoritmo completo del factorial: Ahora ya podemos ver el algoritmo completo del factorial:
@ -376,7 +370,6 @@ int main() {
return 0; return 0;
} }
``` ```
@ -410,7 +403,6 @@ char c;
//La manera de llamar a la acción en C sería: //La manera de llamar a la acción en C sería:
name(a, b, c); name(a, b, c);
//Las variables a, b y c son los parámetros actuales de la acción //Las variables a, b y c son los parámetros actuales de la acción
``` ```
@ -490,7 +482,6 @@ int main() {
return 0; return 0;
} }
``` ```
Comentarios: Comentarios: