Sei sulla pagina 1di 7

Funciones (subprocesos) en PSeInt

A partir de la versión 20121010 (10/Octubre/2012) PSeInt permite la posibilidad de


definir funciones al que el creador del mismo bautizó como subprocesos, en esta Guia
explicaremos brevemente cómo se tratan dichas funciones.

Para empezar una función no es más que un bloque de código con un determinado fin o
propósito, podemos definir más de una y nos permiten ahorrar líneas código si nuestros
programas son muy extensos o hay codificación redundante.

Las funciones en PSeInt se identifican por un nombre, comienzan con la palabra


reservada Funcion y terminan con FinFuncion. Tambien podemos utilizar SubProceso
- FinSubProceso que sería lo mismo. Siempre se declaran afuera del proceso principal
para ser llamados o invocados en éste. Tambien opcionalmente pueden retornar un valor
o recibir cierta cantidad de argumentos.

A continuación se muestran una serie de ejemplos para comprender mejor esta temática.

Ejemplo 1. Funcion sin parámetros y sin retorno.

En la línea 2 definimos una funcion que se llama mensaje, el fin de ésta es imprimir en
pantalla el mensaje ¡Hola Mundo! (línea 4). Si nos fijamos está declarada fuera del
proceso principal, para ser llamada (ejecutada) dentro de éste (línea 10). Esta funcion
no tiene argumentos, porque no hay nada dentro de los paréntesis y no devuelve un
valor.
Ejemplo 2. Funcion con 1 parámetro y sin retorno.

En este otro ejemplo la función mensaje recibe como parámetro (argumento) un valor
en este caso una cadena de texto para visualizarla en pantalla. Cuando se llama en el
proceso principal (línea 10), obligatoriamente deberemos ingresar un texto ya que sí no
lo hacemos generará un error.

Ejemplo 3. Funcion sin parámetros y con retorno.

La estructura de una funcion que retorna un valor es la siguiente:

Funcion variable<-nombre()
instrucciones...
FinFuncion

En el ejemplo 3 se crea una funcion que suma dos números y el resultado se lo vamos a
asignar a la variable res. Ésta entonces contendrá un valor y lo va a retornar. En la línea
10 se llama a la funcion e imprimimos un mensaje para visualizar el resultado. La salida
que imprime es: "El resultado es: 10".

Ejemplo 4. Funcion con parámetros y con retorno.

En este ejemplo la funcion suma recibe dos parámetros, en este caso dos números que se
van a sumar y guardar el resultado en la variable res. Vemos que en la línea 9 se llama a
la función con dos valores (5 y 3), si no se ingresan o por el contrario se agregan más
valores el programa generará error. Finalmente el programa imprime: "El resultado es:
8".

Como vimos en los anteriores ejemplos, una función puede tener muchas variantes,
dependiendo del caso o del problema a resolver una funcion puede o no llevar
parámetros, como tambien puede o no devolver un valor, por eso es importante tener
claro estos conceptos para saber cuando utilizarlos o aplicarlos en nuestros programas.

Funciones con pasaje por valor y por referencia

En PSeInt se le pasan argumentos a una funcion de dos formas por valor o por
referencia. Hasta ahora en los anteriores ejemplos las funciones que recibieron
argumentos fueron por valor ya veremos por que.

Cuando decimos pasaje por valor nos referimos a que los argumentos de la funcion
opera con una copia de la variable o el valor que recibió en la llamada de la funcion, por
lo que las acciones que se hagan dentro de ésta no afectarán al resto del programa.

La sintaxis para utilizar argumentos por valor es la siguiente:

Forma 1

Sin la palabra clave Por Valor.


Forma que utilizamos en los ejemplos.
Forma 2

Con la palabra clave Por Valor.

Ambas son válidas, depende del programador que forma quiera utilizar. Recomiendo la
forma 1.

Realizaremos un ejemplo más completo para entender mejor el pasaje por valor.

Ejemplo 5. Funcion con pasaje por valor.

En la línea 1 declaramos una función llamada miFuncion que recibe un argumento. Lo


que hará esta funcion simplemente es sumarle 5 al valor que reciba en el argumento
(línea 3) e imprimirlo (línea 5).

En el proceso principal declaramos una variable llamada i inicializada en 20. En la línea


14 invocamos a la funcion miFuncion y le pasamos como parámetro nuestra variable i.
La línea 16 imprime el valor de i.

Cuando ejecutamos el programa, la salida que produce es:


25
El valor de i es: 20

El primer valor 25 se debe a que a la funcion le estamos pasando una variable cuyo
valor es 20, dentro de la funcion este valor cambia a 25 pues hace la siguiente operacion
a<-20+5 e imprime el valor de a osea 25.

En la otra salida ("El valor de i es: 20"), simplemente estamos imprimiendo el valor de i
para poder entender el pasaje por valor, podemos observar que conserva el mismo valor
a pesar de que la funcion miFuncion lo haya modificado a 25, esto porque cómo
expresamos anteriormente, las funciones que reciben argumentos por valor los cambios
que ocurren dentro de ella no afectan al resto del programa. La variable i le está pasando
una copia de su valor a la variable a, para que i no se vea afectada en las operaciones
que se hagan con a, de manera que i siempre conservará su valor original.

Los pasajes por referencia es lo contrario a los pasajes por valor. Su sintaxis es la
siguiente:

A los argumentos se le agrega la palabra clave Por Referencia.

Para comprender el pasaje por referencia realizaremos un ejemplo.

Ejemplo 6. Funcion con pasaje por referencia.

Básicamente emplearemos el mismo ejemplo que el anterior sólo que el argumento será
por referencia. Reiterémos:

En la línea 1 declaramos una función llamada miFuncion que recibe un argumento. Lo


que hará esta funcion simplemente es sumarle 5 al valor que reciba en el argumento
(línea 3) e imprimirlo (línea 5).

En el proceso principal declaramos una variable llamada i inicializada en 20. En la línea


14 invocamos a la funcion miFuncion y le pasamos como parámetro nuestra variable i.
La línea 16 imprime el valor de i.

Cuando ejecutamos el programa, la salida que produce es la siguiente:

25
El valor de i es: 25

El primer valor 25 se debe a que a la funcion le estamos pasando una variable cuyo
valor es 20, dentro de la funcion este valor cambia a 25 pues hace la siguiente operacion
a<-20+5 e imprime el valor de a osea 25.

En la otra salida ("El valor de i es: 25"), estamos imprimiendo el valor de i para poder
captar el pasaje por referencia, podemos observar que el valor ya no es el mismo porque
la funcion miFuncion lo ha modificado a 25, las funciones que reciben argumentos por
referencia los cambios que ocurren dentro de ella afectan al resto del programa. De
manera que i pierde por completo su valor original.

Funcion que recibe como parámetro un arreglo:

No sólo podemos pasarle parámetros númericos o cadenas de texto a una funcion,


tambien podemos pasarle arreglos.

Ejemplo 7. Funcion que retorna un valor y recibe como parámetro un arreglo.


El ejemplo consiste en sumar dos números que estan almacenados en un arreglo.

Creamos la funcion suma que recibe como parámetro un arreglo y retorna un valor
(línea 2).
Se crea un acumulador inicializado en cero para sumar los dos números, éste contendrá
el resultado y es lo que vamos a retornar.
En la línea 5 se recorre el arreglo con un ciclo para y se suman los dos datos
ingresados.
En el proceso principal es donde se crea el arreglo con un tamaño de 2 (línea 15).
En la línea 17 - 24 a través del ciclo para pedimos los dos números al usuario y lo
guardamos en el arreglo.
Finalmente en la línea 26 se imprime el resultado y se invoca a la funcion pasandole
como parámetro el arreglo

Potrebbero piacerti anche