Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


FUNCIONES PROCEDIMIENTO METODOS, Apuntes de Lenguajes de Programación

Lenguajes y Automatas II FUNCIONES PROCEDIMIENTO METODOS FUNCIONES PROCEDIMIENTO METODOS FUNCIONES PROCEDIMIENTO METODOS FUNCIONES PROCEDIMIENTO METODOS

Tipo: Apuntes

2020/2021

Subido el 12/01/2021

josh-mahomes
josh-mahomes 🇲🇽

4.8

(6)

5 documentos

1 / 22

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE ECATEPEC
División de Ingeniería en Sistemas Computacionales
Academia de Ciencias de la Ingeniería
EJERCICIOS Y ACTIVIDADES
PERIODO 2020-2
1
FECHA
17/11/2020
GRUPO
5601
LENGUAJES Y AUTÓMATAS II
Actividad No. 20. FUNCIONES, PROCEDIMIENTOS O MÉTODOS.
TRABAJO EN EQUIPO:
El TESE desea: Un reporte con la investigación con por lo menos tres referencias para: Reconocer el manejo de FUNCIONES,
PROCEDIMIENTOS O MÉTODOS., para un metacompilador. Desarrolle la Actividad con Grafos sintácticos (Diagrama de Conway) y
expresiones de la forma BNF.
1. Mencione qué son las FUNCIONES, PROCEDIMIENTOS O MÉTODOS. y las reglas para su construcción.
2. Mencione la estructura sintáctica para la construcción de FUNCIONES, PROCEDIMIENTOS O MÉTODOS
Considere:
Tres diferentes lenguajes de programación.
Elemento
C++
Java
Ruby
CONTESTE INDIVIDUAL:
1. ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos?
2. Conclusiones.
INTEGRANTE(S): EMPEZANDO POR APELLIDO Y EN ORDEN ALFABÉTICO.
FIRMA
1. AGULERA BARAJAS JOSE JOSHUA
JOSHUA
2. GALVAN ESPINOSA DIEGO
DIEGO
3. PRIANTI HERNANDEZ PRISCILA
PRISCILA
4. SOTO VENEGAS DULCE
DULCE
REFERENCIAS EN ESTILO APA:
1. Meza González, J. D. (septiembre de 2020). Funciones, métodos y
procedimientos en C++. Recuperado el 17 de noviembre de 2020, de
https://www.programarya.com/Cursos/C++/Funciones
2. Fernández y Fernández, C. A. (2008, 12 mayo). PROGRAMACIÓN CON C++,
JAVA Y RUBY. Instituto de Electrónica y Computación Universidad
Tecnológica de la Mixteca.
http://www.utm.mx/~caff/doc/Notas_POO_2008.pdf
3. GitBook. (2018, 9 agosto). Métodos. Introducción a Ruby.
https://makeitrealcamp.gitbook.io/ruby-book/metodos
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Vista previa parcial del texto

¡Descarga FUNCIONES PROCEDIMIENTO METODOS y más Apuntes en PDF de Lenguajes de Programación solo en Docsity!

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 FECHA 17/11/ GRUPO 5601 LENGUAJES Y AUTÓMATAS II Actividad No. 20. FUNCIONES, PROCEDIMIENTOS O MÉTODOS. TRABAJO EN EQUIPO: El TESE desea: Un reporte con la investigación con por lo menos tres referencias para: Reconocer el manejo de FUNCIONES, PROCEDIMIENTOS O MÉTODOS. , para un metacompilador. Desarrolle la Actividad con Grafos sintácticos (Diagrama de Conway) y expresiones de la forma BNF.

  1. Mencione qué son las FUNCIONES, PROCEDIMIENTOS O MÉTODOS. y las reglas para su construcción.
  2. Mencione la estructura sintáctica para la construcción de FUNCIONES, PROCEDIMIENTOS O MÉTODOS Considere: Tres diferentes lenguajes de programación. Elemento C++ Java Ruby CONTESTE INDIVIDUAL:
  3. ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos?
  4. Conclusiones. INTEGRANTE(S): EMPEZANDO POR APELLIDO Y EN ORDEN ALFABÉTICO. FIRMA
  5. AGULERA BARAJAS JOSE JOSHUA JOSHUA
  6. GALVAN ESPINOSA DIEGO DIEGO
  7. PRIANTI HERNANDEZ PRISCILA PRISCILA
  8. SOTO VENEGAS DULCE DULCE REFERENCIAS EN ESTILO APA:
  9. Meza González, J. D. (septiembre de 2020). Funciones, métodos y procedimientos en C++. Recuperado el 17 de noviembre de 2020, de https://www.programarya.com/Cursos/C++/Funciones
  10. Fernández y Fernández, C. A. (2008, 12 mayo). PROGRAMACIÓN CON C++, JAVA Y RUBY. Instituto de Electrónica y Computación Universidad Tecnológica de la Mixteca. http://www.utm.mx/~caff/doc/Notas_POO_2008.pdf
  11. GitBook. (2018, 9 agosto). Métodos. Introducción a Ruby. https://makeitrealcamp.gitbook.io/ruby-book/metodos

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2

¿QUÉ SON LAS FUNCIONES, PROCEDIMIENTOS O MÉTODOS Y

LAS REGLAS PARA SU CONSTRUCCIÓN?

FUNCIONES

Una función no es más que un conjunto de líneas de código que hacen una tarea en concreto, y esta función puede retornar un valor. Las funciones tienen la posibilidad de tener parámetros o argumentos, que son variables que modifican su comportamiento. Gracias a las funciones podemos segmentar el código en diferentes partes, haciéndolo de este modo más sencillo. PROCEDIMIENTOS Un procedimiento es un subprograma que realiza una tarea específica. Puede recibir cero o más valores del programa que llama y devolver cero o más valores a dicho programa. Un procedimiento está compuesto de un grupo de sentencias a las que se asigna un nombre (identificador) y constituye una unidad de programa. La tarea determinada al procedimiento se ejecuta siempre que se encuentra el nombre del procedimiento. La declaración indica las instrucciones a ejecutar. Su sintaxis es: procedimiento nombreproc (lista de par) declaraciones locales inicio cuerpo del procedimiento (instrucciones) fin. Un procedimiento es llamado en un programa o dentro de otro procedimiento directamente por su nombre en cualquiera de las dos formas:

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 En código no estructurado, quedaría algo más complejo: 1 coger plato 2 echar jabon 3 pasar el estropajo por el plato 4 si hay suciedad ir a la instrucción 2 5 si el plato no es azul ir a la instrucción 7 6 ponerlo con los azules 7 si hay más platos ir a la instrucción 1 LENGUAJE C++ En C++ es obligatorio usar prototipos. Un prototipo es una declaración de una función. Consiste en una presentación de la función, exactamente con la misma estructura que la definición, pero sin cuerpo y terminada con un ";". La estructura de un prototipo es: [ extern | static ] <tipo_valor_retorno> [] (<lista_parámetros>); En general, el prototipo de una función se compone de las siguientes secciones:

  • Opcionalmente, una palabra que especifique el tipo de almacenamiento, puede ser extern o static. Si no se especifica ninguna, por defecto será extern. No te preocupes de esto todavía, de momento sólo usaremos funciones externas, lo menciono porque es parte de la declaración.
  • El tipo del valor de retorno, que puede ser void, si no necesitamos valor de retorno. En C, si no se establece, será int por defecto, aunque en general se considera una mala técnica de programación omitir el tipo de valor de retorno de una función. En C++ es obligatorio indicar el tipo del valor de retorno.
  • Modificadores opcionales. Tienen un uso muy específico, de momento no entraremos en este particular, lo veremos en capítulos posteriores.
  • El identificador de la función. Es costumbre, muy útil y muy recomendable, poner nombres que indiquen, lo más claramente posible, qué es lo que hace la función, y que permitan interpretar qué hace el programa con sólo leerlos. Cuando se precisen varias palabras para conseguir este efecto se puede usar alguna de las reglas más usuales. Una consiste en separar cada palabra con un "_". Otra, que yo prefiero, consiste en escribir la primera letra de cada palabra en mayúscula y el resto en minúsculas. Por ejemplo, si hacemos una función que busque el número de teléfono de una persona en una base de datos, podríamos llamarla "busca_telefono" o "BuscaTelefono".
  • Una lista de declaraciones de parámetros entre paréntesis. Los parámetros de una función son los valores de entrada (y en ocasiones también de salida). Para la

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 función se comportan exactamente igual que variables, y de hecho cada parámetro se declara igual que una variable. Una lista de parámetros es un conjunto de declaraciones de parámetros separados con comas. Puede tratarse de una lista vacía. En C es preferible usar la forma "func(void)" para listas de parámetros vacías. En C++ este procedimiento se considera obsoleto, se usa simplemente "func()". Acerca de los argumentos o parámetros Hay algunos detalles respecto a los argumentos de una función, veamos:

  • Una función o procedimiento pueden tener una cantidad cualquier de parámetros, es decir pueden tener cero, uno, tres, diez, cien o más parámetros. Aunque habitualmente no suelen tener más de 4 o 5.
  • Si una función tiene más de un parámetro cada uno de ellos debe ir separado por una coma.
  • Los argumentos de una función también tienen un tipo y un nombre que los identifica. El tipo del argumento puede ser cualquiera y no tiene relación con el tipo de la función. JAVA. Los métodos en Java, las funciones y los procedimientos, especialmente en Java, son una herramienta indispensable para programar. Java nos permite crear o hacer nuestros propios métodos y usarlos sencillamente como también nos facilita hacer uso de los métodos de otras librerías. En java una función debe contener la implementación de una utilidad de nuestra aplicación, esto nos pide que por cada utilidad básica (abrir, cerrar, cargar, mover, etc.) sería adecuado tener al menos una función asociada a ésta, pues sería muy complejo usar o crear un método que haga todo de una sola vez, por esto es muy buena idea separar cada tarea en una función o método (según corresponda).

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Los procedimientos son similares a las funciones, aunque más resumidos. Debido a que los procedimientos no retornan valores, no hacen uso de la sentencia return para devolver valores y no tienen tipo específico, sólo void.

RUBY

MÉTODOS

En vez de repetir el mismo código una y otra vez puedes crear un método (también se les conoce como procedimientos o funciones en otros lenguajes de programación) e invocarlo cada vez que necesites ejecutar ese trozo de código.

  1. Crea un archivo llamado methods.rb y escribe lo siguiente:
  2. Si lo ejecutas no debería salir nada. Una característica de los métodos es que no son ejecutados hasta que no los invoquemos. Modifiquemos nuestro programa para invocarlo:
  3. En la última línea lo estamos invocando. Si lo ejecutas ahora si debería aparecer "Hola mundo":

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 PARÁMETROS

  1. Los métodos pueden recibir cero o más parámetros (o argumentos). Modifiquemos nuestro programa para que salude a cualquier persona:
  2. Si lo ejecutamos deberías ver lo siguiente: RETORNANDO UN VALOR En Ruby todas las expresiones retornan un valor. Incluso puts "Hola mundo" retorna un valor, solo que el valor es nil(una forma de decir "nada").
  3. Por defecto, todos los métodos retornan el resultado de la última línea que se ejecute en el método. Vamos a modificar nuestro ejemplo para que en vez de imprimir el saludo, lo retorne:
  4. Ya no hacemos el puts dentro de la función, así que nos toca hacerlo al invocar el método. Pero es mejor práctica así. El problema es que cuando el puts está dentro de la función, esa función solo nos serviría en aplicaciones de consola. Si la queremos usar en una aplicación Web no serviría (el puts es únicamente para imprimir en la consola).
  5. También es posible retornar el valor explícitamente con la palabra reservada return:

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Como puedes ver es un ejemplo sencillo, si ejecutas esto, la función te retornará el valor de suma que es 10 (5+5). Las líneas posteriores no se ejecutarán nunca, aunque no generan error alguno, no tienen utilidad. Puedes notar que para este caso es lo mismo haber escrito return suma que escribir return 5+5. Ambas líneas funcionan equivalentemente. Los procedimientos son similares a las funciones, aunque más resumidos. Debido a que los procedimientos no retornan valores, no hacen uso de la sentencia return para devolver valores y no tienen tipo específico, solo void. Veamos un ejemplo: Ejemplo de procedimientos void procedimiento(int n, string nombre) { if(n == 0) { cout << "hola" << nombre; return; } cout << "adios" << nombre; } De este ejemplo podemos ver que ya no se usa un tipo sino que se pone void, indicando que no retorna valores, también podemos ver que un procedimiento también puede recibir parámetros o argumentos. JAVA Un método es una estructura del lenguaje Java que nos sirve para encapsular cierta funcionalidad, la cual podamos llamar desde diferentes sitios y así no tener que repetir el código. Para la creación de un método en Java debemos conocer la estructura del mismo: En la siguiente sintaxis podemos darnos cuenta la forma en la que se llevan a cabo la creación de una sintaxis para un método en Java. Public void Nombre (argumentos …) { // todo lo que hará

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Return; }

SINTAXIS RUBY

En Variables / Métodos: estudiante, i, epsilon, piso_grande Las variables y los métodos se parecen. Esto es lógico, puesto que una variable se puede sustituir por un método. Las variables y los métodos deben ser escritos en minúsculas, que empiecen por una letra, y que contengan cualquier carácter alfanumérico o el guion bajo. Por ej: piso_grande. Sin embargo, las clases deben empezar por mayúscula. Además, a diferencia de los métodos/variables, no se usa el guion bajo para nombres compuestos. Por ej: PisoGrande. Las clases deben empezar por mayúscula. Además, a diferencia de los métodos/variables, no se usa el guion bajo para nombres compuestos. Constantes: PDF_KEY, R2D2, PERSONA_VIAJE Las constantes sólo se pueden definir una vez. Las constantes deben ser escritas en letras mayúsculas. Variables de objeto: @nombre, @maximo, @hora_comer Las variables de objeto (o variables de instancia) sólo pueden ser leídas/escritas por el propio objeto. Variables de clase: objeto, llave_maestra Las variables de clase no pertenecen a los objetos, si no a la clase. Existen únicamente en la clase, y son compartidas por todos los objetos. Variables globales: $global, $1, $contador El uso de las variables globales ha sido declarado un crimen capital por la escuela del buen diseño. Símbolos: :nombre, :edad, :Clase Los símbolos son identificadores únicos que los encontraremos en varios sitios.

DIAGRAMAS DE CONWAY

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2

EXPRESIONES BNF

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2

TABLA

Elemento C++ Java Ruby FUNCIONES, PROCEDIMIENTOS O MÉTODOS. Y LAS REGLAS PARA SU CONSTRUCCIÓN La declaración de una función tiene el siguiente cuerpo: tipo-de-retorno nombre-de- función(parámetros) { declaraciones proposiciones } Si la función no retorna un valor el tipo de retorno es void. Si la función no tiene parámetros se escribe myfunc(void). La estructura más usual de un programa en C es la siguiente: /* los comentarios comienzan por “/” y acaban con “/” / #include archivo / inclusión archivos cabecera / #define CONST / declaración de constantes/ tipo variable; / declaración de variables globales / tipo funcion (argumentos); / declaración de cabeceras de funciones / main() { tipo variable; / declaración de variables locales / cuerpo del programa } tipo funcion (argumentos) / declaración de funciones */ [acceso] [modificador] tipo nombreFuncion([tipo nombreArgumento,[tipo nombreArgumento]...]) { return valor; } Ejemplo de los métodos. int metodoEntero() { int suma = 5+5; return suma; //Acá termina la ejecución del método //return 5+5;//Este return nunca se ejecutará //Intenta intercambiar la línea 3 con la 5 //int x = 10; //Esta línea nunca se ejecutará } Ejemplo de procedimientos. void procedimiento(int n, String nombre) //Notar el void { if(n > 0 && !nombre.equals(""))//usamos los dos parámetros { System.out.println("hola " + nombre); return; //Si no ponemos este return se mostraría hola y luego adiós } //También podríamos usar un else en vez del return System.out.println("adios"); } MÉTODOS Nacidos <= 1945 - la gran generación Nacidos entre 1946 y 1964

  • baby boomers Nacidos entre 1965 y 1982
  • generación x Nacidos entre 1983 y 2004
  • milenials Nacidos >= 2005 - centenials def generation(year_of_birth) if year_of_birth >= 1996 puts "Eres un centenial" elsif year_of_birth >= 1977 puts "Eres un millenial" elsif year_of_birth >= 1965 puts "Eres generación X" elsif year_of_birth >= 1946 puts "Eres baby boomer" else puts "Eres tradicionalista" end end print "¿Cuál es tu año de nacimiento? " year_of_birth = gets.chomp.to_i generation(year_of_birth) $ ruby generation_method.rb ¿Cuál es tu año de nacimiento? 1982 Eres un millenial

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Nombre: Aguilera Barajas Jose Joshua Grupo 5601 Asignatura Lenguajes y automatas II Fecha 17/11/ Actividad No. 20 firma Joshua Objetivo de la práctica: Realizar investigación sobre funciones, procedimientos o métodos Competencia a desarrollar: Aprender sobre la estructura^ sintáctica de funciones, procedimientos o métodos ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos? La ventaja es que escribimos un pequeño fragmento de código que se puede llamar en diferentes partes del programa en lugar de repetir el mismo código en diferentes lugares del programa. Evitamos copiar / pegar y obtenemos legibilidad y simplificación del código. Además, nos ayuda a reducir el tiempo total de entrega del proyecto. Si el problema está en proceso de ser llamado, entonces podemos encontrar el error una vez y eliminarlo rápidamente. Cuando el mismo código se repite en varios lugares, es difícil depurar los cambios en todo el código. Si hacemos cambios en una parte, pero no repetimos los cambios en otro código, es fácil causar confusión. Conclusión Los procesos son pequeños programas que realizan tareas específicas. Se puede recibir desde cero a más valores en el programa de llamada y este devolverá cero o más valores al programa. Los métodos y funciones son funcionalmente iguales, pero su diferencia radica en el contexto en el que existen. Los métodos también pueden recibir valores, realizar operaciones sobre ellos y devolver valores, sin embargo, en los métodos asociados con objetos, los métodos son básicamente funciones que pertenecen a objetos o clases, y la función en sí existe sin usar un objeto. Y el proceso es básicamente un conjunto de instrucciones que se ejecutan sin devolver ningún valor, algunas personas dicen que el proceso no recibe valores ni parámetros, pero no hay nada en la definición que lo impida. Esta investigación abarco 3 diferentes lenguajes de programación, con lo que me di cuenta de que existen muchas diferencias entre uno y otro lenguaje ya que todos se emplean y generan de una forma diferente, aunque se hable del mismo tema, me voy con un amplio conocimiento de las diferentes sitaxis.

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Nombre_ Galván Espinosa Diego Grupo 5601 Asignatura Lenguajes y autómatas II Fecha 17/11/ Actividad No. 20 firma Diego Objetivo de la práctica: Tener conocimiento del uso de funciones y métodos en la programacion. Competencia a desarrollar: Conocimiento para llevar a cabo dichas tareas.

  1. ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos? La ventaja que tiene el realizar la generación de este código intermedio es demasiada ya que con ello puedes realizar con mayor facilidad y sin estar cambiando de tipo de sintaxis o argumentos las funciones y métodos para su realización. Como desventaja la forma y la manera que se complica a la hora de no tener el conocimiento o llevar a cabo dicha tarea.
  2. Conclusiones.

Como podemos entender los procedimientos son básicamente un

conjunto de instrucciones que se ejecutan sin que nos devuelva ningún

valor. Lo cual es una manera sencilla de llevar a cabo los métodos ya

que con ello pues resulta mas eficiente y conlleva menos procesos.

Como podemos ver también la forma de su elaboración también

llamada sintaxis es muy fácil de realizar o de llevar a cabo, ya que no

cuenta con tanta complicación a la hora de ser construido.

Conocemos también que las funciones son un conjunto de líneas de

código encapsulados en un bloque, usualmente que reciben parámetros,

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Nombre_ PRINTI HERNANDEZ PRISCILA Grupo 5601 Asignatura LENGUAJE Y AUTOMATAS 2 Fecha 17/11/ Actividad No. 20 firma PRIANTI HDEZ PRISCILA Objetivo de la práctica: Realizar investigación sobre funciones, procedimientos o métodos Competencia a desarrollar: Aprender sobre la estructura sintáctica de funciones, procedimientos o métodos

  1. ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos? La ventaja que conlleva la generación de código intermedio es: abstraer la máquina, separar operaciones de alto nivel de su implementación a bajo nivel. La desventaja implica dificultar llevar a cabo optimizaciones específicas de la arquitectura destino.
  2. Conclusiones. En conclusión, al realizar esta práctica núm. 20 sobre el tema de investigación de funciones, procedimientos o métodos para un metacompilador; aprendimos que una función es un conjunto de líneas de código que hacen una tarea en concreto, y esta función puede retornar un valor. Los procedimientos son un subprograma que realiza una tarea específica. Puede recibir cero o más valores del programa que llama y devolver cero o más valores a dicho programa. Al realizar esta investigación consideramos tres lenguajes de programación diferentes (c++, java, Ruby) y desarrollamos la actividad con grafos sintácticos (Diagramas de conway) y expresiones BNF.

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2