Funciones psedocódigo

pseint_base_web

Hola a todos, hoy os explicare a como utilizar las funciones en pseudocódigo.

Como hemos visto hasta ahora, los algoritmos son cortos, pero los programas tienen muchas líneas, por lo que se utilizan las funciones, para dividir el problema en partes, pueden haber tantas funciones como nosotros queramos.

Estas funciones utilizan el mismo código que hemos visto hasta ahora.

El algoritmo principal llama o invoca a la función, se ejecuta y devuelve un resultado. Se puede usar en varios programas.

Una función es un subprograma que acepta parámetros y devuelve un único resultado Los parámetros serán los datos de entrada para realizar la función.

En la cabecera de la función se debe indicar los parámetros formales, indicando su tipo, y el tipo de valor que devolverá la función. También debemos declarar las variables que se vayan a usar y devolver un valor, que corresponda al tipo de variable.

Esta es su sintaxis en papel:

Función nombre (lista parámetros formales):tipo
Var: declaración de variables
Inicio
   Instrucciones
   devolver valor
Fin-Función

Veamos un ejemplo practico, para saber el doble de un numero:

Función doble (numero: numerica):numerica
Var: resultado: numerica
Inicio
    resultado<-numero*2
    devolver resultado
Fin-Función

Ya tenemos la función, ahora para poder usarlo, debemos invocarlo en el algoritmo principal, para que tenga efecto, debemos guardarlo en alguna variable. Esto seria su sintaxis:


variable<-nombreFuncion (parámetros reales)

Vamos a invocar la funcion de antes, en un algoritmo:

Var numero, resultado: numerica
Inicio
   Leer numero
   resultado<-doble(numero)
   Escribir resultado
Fin

Si os dais cuenta, tanto en la función como en el algoritmo principal, hemos usado una variable resultado. Las variables son totalmente independientes.

También, si os fijáis  en la función los parámetros formales es una variable del algoritmo principal . Puede ser mas de un parámetro formal, se separan mediante una coma.

Si usamos PseInt, la sintaxis es distinta que en papel:

SubProceso variable_de_retorno <- Nombre ( Argumentos )
   Intrucciones
FinSubProceso

Tenemos varias diferencias, no es necesario escribir la operación devolver y debemos escribir que variable de dentro de la función contiene el resultado que queremos devolver. La forma de llamar a la función es exactamente igual que en papel.

Veamos el mismo ejemplo de doblar un numero pero en PSeInt.

SubProceso resultado <- doble ( numero )
    resultado<-numero*2
FinSubProceso

Proceso
    leer numero
    resultado<-doble(numero)
    escribir resultado
FinProceso

Los parámetros, tanto formales como reales, no es necesario que sean variables, pueden ser constantes o números.

Recuerda que si el parámetro real y el formal no son de tipos compatibles, se producirá un error en la llamada. También fallara la llamada, si devolvemos una variable de tipo distinto a la que debe devolver (el tipo de variable de aparece después del paréntesis donde se encuentran los parámetros formales).

En las funciones, hemos visto que hay una operación llamada devolver, normalmente se suele usar una por función  pero se puede usar mas de uno siempre y cuando solo se pueda ejecutar uno, por ejemplo, en una estructura condicional según un valor devuelva un valor u otro.

Por ultimo, veremos un ejemplo completo y sencillo, tanto en papel como en PSeInt.

Escribe una función en pseudocódigo que devuelva el área de un rectángulo dada su base y su altura, llama a la función en el algoritmo principal.

Papel:

Funcion area_rectangulo (base: numerica, altura: numerica):numerica
Var area: numerica
Inicio
  area<-base*altura
  devolver area
Fin-Funcion

algoritmo principal
Var base, altura: numerica
Inicio
   Escribir "Introduce la base"
   leer base
   Escribir "Introduce la altura"
   Leer altura
   area<-area_rectangulo(base, altura)
   escribir area
Fin

PSeInt:

SubProceso area <- area_rectangulo ( base, altura )
   area<-base*altura
FinSubProceso

Proceso ejemplo
  Escribir "Introduce la base"
  leer base
  Escribir "Introduce la altura"
  Leer altura
  area<-area_rectangulo(base, altura)
  escribir area
FinProceso

Si tenéis alguna duda, podéis comentar vuestra duda.

Espero que os sea de ayuda.

Etiquetas

11 comments

  1. Podrias ayudarme con un código en PSeInt tengo escrito un código de un trabajo pero hay una opción que no me funciona
    Escribir ‘ ‘;
    Escribir ‘ Eliminar de empleado ‘;
    Escribir ‘ ‘;
    Escribir ‘ ‘;
    Escribir ‘Digite codigo de empleado a Eliminar ‘;
    Escribir ‘ ‘;
    Leer cod;
    Para i<-0 Hasta 2 Con Paso 1 Hacer
    Si codigo(i)=cod Entonces
    codigo(i)<-(0);
    nomb(i)<-(' ');
    FinSi
    FinPara

  2. Hola, antes de nada agradecerte tu comentario. Lo primero que veo es que i< -0 en un arreglo no es posible ya que en pseudocodigo el primer valor esta en 1 no en 0, después veo que el limite es hasta 2, no se es todo el programa, pero en caso de que sea un empleado después de la posición 2 no te hará nada. También debes declarar los arrays o arreglos, aunque como he dicho no se si es todo el programa. Yo te recomendaría que la parte del bucle lo metieras en un subproceso y le pases por parámetro el código del empleado y los arreglos creados(para que pueda operar con ellos). Si tienes alguna duda mas no dudes en preguntarme por aquí o por e-mail administrador@discoduroderoer.es
    Un saludo

  3. como puedo resolver estos ejercicios, por favor alguien que me ayude, no entiendo casi.
    1-hallar la raíz cubica de un numero entero positivo
    2-convertir un numero natural en una fracción
    3- intercambiar los elementos de la fila 1 y la fila 3 en una matrix 4×4
    4- hallar el minimo común múltiplo de un numero entero positivo
    5- convertir un numero positivo en numero romano
    6- comprobar si un numero entero positivo es un numero primo
    les agradeciera su ayuda

  4. Hola,

    Te respondo por email.

    Un saludo

  5. quisiera que me ayudaran con tres pequeños programas, quisiera que me manden el codigo a mi correo en pseint:
    1. Escribir una función salario que calcule los salarios de un trabajador para un número
    dado de horas trabajadas y un salario hora. Las horas que superen las 40 horas
    semanales se pagarán como extras con un salario hora 1.5 veces el salario ordinario.
    2. Escriba programa que llame a una función puntosCalidad que tome el promedio de
    un estudiante y devuelva 4 si el promedio está entre 90-100, 3 si está entre 80-89, 2 si es
    entre 70-79, 1 si es entre 60-69 y 0 si el promedio es menor que 60.
    3. Escribir una función que obtenga el valor mínimo de 3 números. Escribir el programa
    principal desde donde se utiliza.

  6. Por favor elaboren programas en Pseint:
    Horario de Clases de Centro de Estudios de Secundaria
    Cálculo de Superficie de un país
    Cálculo de Superficie de 2 Triángulos + Área Fuera del Trapecio
    Proceso Paso a Paso de Binomios, Trinomios, Polinomios de Cuadrado Perfecto

  7. Hola necesito ayuda no entiendo como resolver estos ejercicios con función para:
    1- dado un numero N declarado entero positivo se pide calcular su factoreal.
    2-se ingresan 100 números reales el programa devuelve el mayor de los números ingresados.

  8. hola me dejaron un trabajo de investigacion UN TRABAJO AUTONOMO DONDE ME PIDE Q  Escoja 4 funciones matemáticas y describa cada una de ellas.

     Realice un algoritmo de ejemplo por cada función matemática escogida.

     Determine en que se puede aplicar cada función matemática dentro del algoritmo con un ejemplo práctico.

    POR FAVOR AYUDAME

  9. Agreganos a skype y te daremos atencion personalizada gracias.

  10. Hola, tengo una duda con respecto a las funciones
    ¿En una función se puede introducir una estructura, como por ejemplo un SEGÚN?
    Estoy haciendo un programa en Pseint y tengo 4 veces el según pero con 4 variables distintas, quisiera ponerla en una función fuera del proceso principal para ahorrar código

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *