Tema: Funciones, Procedimientos y Recursividad en C#.

Documentos relacionados
GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Tema: Clases y Objetos en C#. Parte II.

Guia#12: Tema: Archivos en C#.

Tema: Entorno a C# y Estructuras Secuenciales.

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Actividad colaborativa Ejercicios de programación Programación básica C++

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Programación Estructurada

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

PROGRAMACIÓN UNIDADES

8. Sentencia return y métodos

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Estructuras de Repetición (Repita para)

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Universidad de Managua

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Programación I. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Programa Educativo: Área de Formación : Carácter de la asignatura

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I

ESTRUCTURAS DE CONTROL Y DE SELECCIÓN

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Prof. Dr. Paul Bustamante

El concepto de función en programación se fundamenta en el concepto de función matemática 1

Funciones en Lenguaje C

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Resultado de Aprendizaje:

Guía - Taller # 2 (JAVA)

Asignatura: Estructuras de Datos. Año Escolar: Grado y Sección: 6to INF A-B Docente: Ing. Yesika Medina

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Java para programadores

Tema: Tipos de datos y conversiones

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Estructuras de Repetición (Hacer-Mientras)

5. Sentencias selectivas o condicionales

Algoritmos glotones. mat-151

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Metodología y Tecnología de la Programación

Diagramas de secuencia

Carrera: Participantes Miembros de la academia de Metal- Mecánica

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Guía práctica de estudio 05: Diagramas de flujo

Braulio Ricardo Alvarez Gonzaga. Aplicaciones en consola

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO

Introducción al Lenguaje de Programación C

Tema: Introducción al IDE de Microsoft Visual C#.

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Funciones. Parámetros por valor

Introducción a la programación

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:

Bloque 4. La descomposición funcional y el diseño descendente

ESCUELA DE INFORMÁTICA

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java para no Programadores

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote METODOS CONSTRUCTORES Y LA REFERENCIA THIS

4. Operadores Operador asignación

EXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Sucesiones y Progresiones. Guía de Ejercicios

Java Básico. Métodos estáticos

Tema 7.- Fundamentos de la Programación Orientada a Objetos

La resolución de un problema

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

Funciones como Subprogramas en C++

SILABO DEL CURSO FUNDAMENTOS DE PROGRAMACIÓN

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

Elementos de un programa en C

Estatutos de Control C# Estatutos de Decisión (Selección)

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

C# para no Programadores

Análisis de algoritmos

Hoja de ejercicios del Tema 3

RADIO =? R AREA = : πr 2 < CIRC = : 2 πr

Crear una Nueva Solución Vacía:

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

Materia: Matemática de Tercer Año Tema: Pendiente

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN

Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A)

4.- Leer tres números y escribirlos en orden decreciente

Tema 6: Generación de código (parte 2)

Lenguaje de programación C. Introducción

TEMA 4. ESTRUCTURAS DE CONTROL

Pero nos están faltando otros operadores imprescindibles:

Transcripción:

Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 7 1 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar la diferencia entre una función y un procedimiento. Aplicar los conceptos de funciones y procedimientos aplicándolo a la recursividad. Hacer uso de recursividad, tomando como base el uso de funciones y procedimientos. Introducción Un problema complejo se puede dividir en pequeños subproblemas más sencillos. Estos subproblemas se conocen como módulos y su implementación en un lenguaje se llama subprograma (procedimientos y funciones). Un subprograma realiza las mismas acciones que un programa, sin embargo, vamos a utilizar el subprograma o módulo para una acción u operación específica. Un subprograma recibe datos de un programa y le devuelve resultados (el programa llama o invoca al subprograma, éste ejecuta una tarea específica y devuelve el control al programa que lo llamó). En C# a las funciones o procedimientos se le conocen con el nombre de métodos. Métodos en C# Función Procedimiento Funciones (Retornan un valor) En el ámbito de la programación, una función es un tipo de subalgoritmo, es el término para describir una secuencia de órdenes que hacen una tarea específica de una aplicación más grande. Las declaraciones de las funciones, generalmente son especificadas por: Un nombre único en el ámbito. Nombre de la función con el que se identifica y se distingue de otras. No podrá ser otra función o procedimiento con ese nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos). Un tipo de dato de retorno. Tipo de dato del valor que la función devolverá al terminar su ejecución. Una lista de parámetros. Especificación del conjunto de argumentos (pueden ser cero uno o más) que la función debe recibir para realizar su tarea.

2 Programación I, Guía 7 Procedimientos (No retornan valor) Fragmento de código (subprograma) que realiza una tarea específica y es relativamente independiente del resto del código. Los procedimientos suelen utilizarse para reducir la duplicación de códigos en un programa. Los procedimientos pueden recibir parámetros, pero no necesitan devolver un valor como es el caso de las funciones. Sintaxis Función. Modificador_de_acceso Tipo_Devuelto Nombre_Función(tipo(s)_argunmento(s) nombres) { //declaración de datos y cuerpo de la función. return (valor) } Sintaxis Procedimiento Modificador_de_acceso void Nombre_procedimiento(tipo(s)_argunmento(s) nombres) { //declaración de datos y cuerpo de la función. } Recursividad Una función recursiva es una función que se llama a sí misma directa o indirectamente. La recursividad o recursividad directa es el proceso por el que una función se llama a sí misma desde el propio cuerpo de la función. La recursividad indirecta implica más de una función. La recursividad indirecta implica, por ejemplo, la existencia de dos funciones: uno() y dos(). Suponga que la función principal llama a uno() una segunda llamada a uno()-. Esta acción es recursión indirecta, pero es recursiva, ya que uno() ha sido llamado dos veces, sin retornar ninguna su llamada. Un proceso recursivo debe tener una condición de terminación, ya que de lo contrario va a continuar indefinidamente. Un algoritmo típico que conduce a una implementación recursiva es el cálculo del factorial de un número. El factorial de n (n!). n! = n*(n-1)*(n-2)* *3*2*1 Material y Equipo Guía de laboratorio No. 7. Computadora con Visual Studio 2013 o superior. Dispositivo de almacenamiento (USB).

Programación I. Guía 7 3 Procedimiento G6 Ejemplo1: En nuestro primer ejemplo, vamos a implementar un procedimiento que sea capaz de realizar una simple suma. Esta sencilla implementación es con el objetivo de conocer la sintaxis y la lógica de los procedimientos. 3 Console.Title = "Trabajando con Funciones"; 4 // llamando a la funcion suma 5 suma(); 6 Console.ReadKey(); 7 } 8 static void suma() 9 { 10 Double r, n1, n2; 11 Console.WriteLine("Digitar primera cantidad"); 12 n1 = Double.Parse(Console.ReadLine()); 13 Console.WriteLine("Digitar segunda cantidad"); 14 n2 = Double.Parse(Console.ReadLine()); 15 r = n1 + n2; 16 Console.WriteLine("El resultado de la suma es: " + r); 17 } Corrida del programa G6 Ejemplo2: Vamos a calcular el cuadrado de los números del 1 al 10 utilizando funciones: 3 Console.Title = "Ejemplo de una funcion"; 4 Double x; 5 // Llamada a la funcion 6 for (x = 1; x <= 10; x = x + 1) 7 { 8 Console.WriteLine("\nElcuadrado de " + x + " es: " + Potencia(x)); 9 } 10 Console.ReadKey(); 11 } 12 // Prototipo de la funcion 13 static Double Potencia(double x) 14 { 15 return x * x; 16 }

4 Programación I, Guía 7 Corrida del programa G6 Ejemplo3: Ahora, el mismo ejemplo anterior con la diferencia de que vamos a utilizar un procedimiento para hacer el cálculo de los cuadrados y además utilizaremos una función predeterminada para el mimo. 3 Console.Title = "Tercer Ejemplo"; 4 //Ahora desde aquí Llamamos o invocamos el procedimiento así: 5 Potencia(); 6 Console.ReadKey(); 7 } 8 static void Potencia() 9 { 10 int i; 11 Console.WriteLine("Calculando cuadrados"); 12 for (i = 1; i <= 10; i = i + 1) 13 { 14 Console.WriteLine("\nEl cuadrado de " + i + " es: " + Math.Pow(i, 2)); 15 } 16 } Corrida del programa

Programación I. Guía 7 5 G6 Ejemplo4: Bueno compañeros, en este ejemplo vamos a aplicar la recursividad con una de las aplicaciones más conocidas: el factorial de un número. Caben mencionar, que por definición conocemos lo siguiente: 0! = 1 y 1! = 0; por tal motivo tenemos estas dos soluciones triviales que significa que si es ingresado un 0 ó 1 el resultado será 1. Veamos el ejemplo: 3 int x; 4 String Respuesta; 5 Console.Title = "Factorial con recursividad"; 6 do 7 { 8 Console.Clear(); 9 Console.WriteLine("\tEscribe un numero entero: "); 10 x = int.parse(console.readline()); 11 Console.WriteLine("\tRespuesta = " + x + "! = " + Factorial(x)); 12 Console.WriteLine("\t Quieres calcular otro factorial? ( s/n )"); 13 Respuesta = Console.ReadLine(); 14 } while (Respuesta == "S" Respuesta == "s"); 15 Console.ReadKey(); 16 } 17 static int Factorial(int x) 18 { 19 if (x == 0 x == 1) 20 { 21 return 1; 22 } 23 else 24 { 25 return x * Factorial(x - 1); 26 } 27 }

6 Programación I, Guía 7 Análisis de Resultados 1. Crear un programa que solicite el año de nacimiento de una persona y retorne la edad haciendo uso de funciones o procedimientos. 2. Escribir un programa utilizando procedimientos que permita pedir 2 números enteros y que me de cómo respuesta si el primer número es múltiplo del segundo. Tomar en cuenta que el primer número debe ser mayor que el segundo y no ser tampoco (0). 3. Cree un programa que contenga el siguiente menú: a) Dividir. b) Obtener cubo. c) Cálculo de IMC (Índice de Masa Corporal). d) Salir. Consideraciones: El menú debe permanecer disponible hasta que el usuario elija la opción d. Utilizar una función o procedimiento para cada opción. Para la opción d, utilice la fórmula: IMC = Peso[Kg] / Altura 2 [Metros]. Investigación Complementaria 1. Escribir un programa que lea dos números desde teclado (x y n) e implemente una función para calcular la siguiente progresión: 1 + X + X 2 + X 3 + + X n 2. Aplicando recursividad: investigar en qué consiste la serie Fibonacci y desarrollar una aplicación para determinar el resultado de la misma. El usuario debe ingresar desde teclado el límite de la serie. 3. Escribir un programa que permita al usuario elegir el cálculo del área de cualquiera de las figuras geométricas: circulo, cuadrado, rectángulo o triangulo, mediante funciones. No se le olvide presentarlo en un menú. 4. Desarrollar un programa que implemente una función para convertir coordenadas polares a rectangulares. Debe tener en cuenta lo siguiente: x = rcos(θ) ; y = rsen(θ) 5. Desarrolle un programa en C# haciendo uso de un procedimiento para determinar el resultado de la siguiente serie: 1 2 2 2 2 + 3 n + 2 3 2 n Bibliografía Deitel, Harvey M. y Paul J. Deitel, Cómo Programar en C#, Segunda Edición, México, 2007.