Un Poco Sobre Programación Recursiva

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Un Poco Sobre Programación Recursiva"

Transcripción

1 Un Poco Sobre Programación Recursiva Tradicionalmente estamos acostumbrados a programar computadoras bajo el viejo (pero no por eso malo) esquema de arriba a abajo (top-down, dirían los de habla inglesa). Han surgido variantes que ayudan a mejorar el entendimiento y mantenimiento de programas so sólo aquellos hechos por otros, sino por uno mismo, como la programación estructurada y otros esquemas que rompen la linealidad en cuanto al seguimiento del flujo de programa, y hace que ese flujo dependa de eventos, como clics de ratón, pulsar una tecla, cumplimiento de un temporizador, etc., que se conoce como Programación Orientada a Objetos. En cualquiera de esos esquemas de programación puede insertarse en forma incidental la llamada Programación Recursiva, que consiste en sunciones que pueden invocarse a si mismas hasta alcanzar un criterio de parada. El ejemplo clásico de este tipo de programas lo constituye sin dudas, el cálculo del factorial de un número entero mayor o igual a cero (es decir, perteneciente al conjunto Z, que incluye a los positivos más el cero), ya que: n! = n *( n 1)! 0! = 1 Teniendo por criterio de parada la convención de que 0! = 1. En programación tradicional, resolvemos fácilmente el problema de la siguiente manera: #Leer n F = n Repita para i = 1,n-1 F = F*(n-i) Fin RP. Imprimir F Figura 1. Versión procedimental para el cálculo de factorial Pero, utilizando el hecho de que El factorial de n depende del factorial de sus predecesores (recursividad), en el orden natural de los números enteros, podemos utilizar (si el lenguaje de programación que estamos utilizando lo permite, como ocurre con C/C++) un esquema más elegante como el que aparece a continuación: #include <iostream> using namespace std; int fr(int x) if (x == 0) return(1); else return (x*fr(x-1)); int main () Cosme Rafael Marcano Gamero. 1

2 int n; cout << "Introduzca valor de n: " ; cin >> n; cout << fr(n) << endl; Figura 3. Versión recursiva para el cálculo de factorial Nótese que lo primero que chequea el código reentrante de la función fr() es el criterio de parada, es decir, si el argumento es igual a cero, en cuyo caso retorna 1, de acuerdo a lo establecido en la definición del factorial. De lo contrario, procede a invocarse a sí misma con el valor del argumento decrementando en uno. El proceso se repite hasta que el argumento se haga igual a cero, en cuyo caso fr() retornará 1 y el programa podrá realizar en forma inversa los cálculos necesarios para resolver el factorial del número originalmente pasado como argumento. Muchos métodos de cálculo de raíces de funciones algebraicas, así como de búsqueda de datos dentro de bases de datos muy extensas se pueden resolver utilizando la recursividad. Así, por ejemplo, el método numérico de cálculo aproximado de una raíz de una función real de una sola variable real, como es el conocido Método de Bisección, es susceptible de ser codificado en forma recursiva. A continuación se muestran dos implementaciones de ese método de cálculo de raíces: uno en forma tradicional y el otro en forma recursiva. #include <stdio.h> float x2,y2; float f(float x) return (x*x-2); float biseccion(float a, float b, float error) float x1, x2, y0, y1; y0 = f(a); y1 = f(b); while (fabs(y2) > error) if (y0*y2<0) b = x2; y1 = y2; else a = x2; y0 = y2; Cosme Rafael Marcano Gamero. 2

3 return (x2); int main() float x0,x1,y0,y1,x0o,x1o,xi; printf("introduzca valor de x0: "); scanf("%f",&x0); y0 = f(x0); printf("introduzca valor de x1: "); scanf("%f",&x1); y1 = f(x1); X0o = x0; // para preservar el valor original default:x0 X1o = x1; // para preservar el valor original default:x1 printf("introduzca valor de Xi (error permitido): "); scanf("%f",&xi); if (y0*y1 > 0) printf("\naparentemente no hay ra\241ces en el intervalo [%f, %f]", x0, x1 ); else x2 = biseccion(x0,x1,xi); printf("\n\nvalor aproximado de la ra\241z dentro de [%7.3f, %7.3f] = %7.3f, +/- %7.3f",X0o,X1o,x2,Xi); Figura 3. Versión procedimental para el Método de Bisección. (bisec.cpp) #include <stdio.h> float x2,y2; float f(float x) return (x*x-2); float biseccion(float a, float b, float error) float x1, x2, y0, y1; // x0 = a; y0 = f(a); y1 = f(b); if (y0*y2<0) b = x2; y1 = y2; else a = x2; y0 = y2; if (fabs(y2) < error) return (x2); // se alcanzó la precisión deseada else return(biseccion(a, b, error)); Cosme Rafael Marcano Gamero. 3

4 int main() float x0,x1,y0,y1,x0o,x1o,xi; printf("introduzca valor de x0: "); scanf("%f",&x0); y0 = f(x0); printf("introduzca valor de x1: "); scanf("%f",&x1); y1 = f(x1); X0o = x0; // para preservar el valor original default:x0 X1o = x1; // para preservar el valor original default:x1 printf("introduzca valor de Xi (error permitido): "); scanf("%f",&xi); if (y0*y1 > 0) printf("\naparentemente no hay ra\241ces en el intervalo [%f, %f]", x0, x1 ); else x2 = biseccion(x0,x1,xi); printf("\n\nvalor aproximado de la ra\241z dentro de [%6.3f, %6.3f] = %8.5f, +/- %8.5f",X0o,X1o,x2,Xi); Figura 4. Versión recursiva para el Método de Bisección. (biserec.cpp) Obviamente, hay una serie de condiciones que debe cumplir la función sometida a este método, en este caso f ( x) = x 2 2. La función devbe ser continua en todo el intervalo [ x, x 0 1], el cual debe contener una y sólo una raíz. En caso de raíces múltiples de la función dentro de ese intervalo, el método dirá, o bien que no hay ninguna, en caso de raíces pares (ya que y 0 * y 1 ] > 0), o bien dará resultados impredecibles, dependiendo de los extremos del intervalo, en caso de raíces múltiples impares. En este caso, la función es una parábola que abre hacia arriba y corta al eje vertical en y = 2 y tiene dos raíces en x = ± 2 = Además cumple 1,2 ± perfectamente con las condiciones exigidas por el método. Otros métodos numéricos son susceptibles de ser implementados en forma recursiva. Por ejemplo, como ejercicio se puede codificar el método de la secante. La Figura 5 muestra la gráfica de f(x). Figura5 Gráfica de f(x) Cosme Rafael Marcano Gamero. 4

5 A continuación se muestran los resultados que arrojan las dos versiones del método, los cuales coinciden perfectamente. Figura 6. Resultados arrojados por bisec.exe y biserec.exe Por analogía inmediata, el método de bisección (casi continuo) se asemeja al de Búsqueda Binaria (caso discreto), que se utiliza para buscar un elemento de un arreglos de datos. Los datos dentro del arreglo deben estar ordenados (ascendente o descendentemente). La idea es dividir recursivamente el arreglo en dos partes, e ir desechando el segmento que contiene las claves mayores a la que se busca, y proseguir la búsqueda seccionado en dos partes, no necesariamente iguales en tamaño. La recursividad es particularmente útil en el manejo de Estructuras de Datos Dinámicas, desde pilas, hasta Árboles Binarios de Búsqueda (ABB). Esto se debe a la propia definición recursiva de estas estructuras de datos, lo cual será tratado en otro material de estudio. Notas: 1. Los segmentos de código que se muestran aquí están compilados utilizando el compilador g++ de Twilight Dragon Media (TDM), versión 4.4,1 el cual está disponible gratuitamente en Internet. Este compilador es compatible con aquellos pertenecientes a la familia de compiladores conocidos genéricamente como gcc, o Gnu C Compilers, del proyecto GNU, también de distribución gratuita a través de Internet. Sin embargo, pueden ser transportados a casi cualquier otra implementación de C++, como Borland C/C++ Builderversión 6.0 o Microsoft Visual Studio 10 Express. 2. La gráfica contenida en la Figura 5 se obtuvo utilizando la librería OpenCV (Open source Computer Vision), de Intel Corporation, la cual es una poderosa herramienta de distribución gratuita, que se puede utilizar para aplicaciones que manejan gráficos, imágenes y videos, por lo que es especialmente útil en proyectos de Visión por Computadora. Estas librerías serán introducidas en orto material, actualmente en preparación. Cosme Rafael Marcano Gamero. 5

Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos

Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente

Más detalles

Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos

Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente

Más detalles

Funciones: Pasos por Referencia Recursividad

Funciones: Pasos por Referencia Recursividad Funciones: Pasos por Referencia Recursividad Fundamentos de Programación Fundamentos de Programación I Parámetros por referencia Con la instrucción return sólo se puede devolver un valor calculado. A veces

Más detalles

Ámbito y Funciones. Lenguaje de Programación Estructurado. Siempre imaginé el Paraíso como algún tipo de biblioteca.

Ámbito y Funciones. Lenguaje de Programación Estructurado. Siempre imaginé el Paraíso como algún tipo de biblioteca. Ámbito y Funciones Lenguaje de Programación Estructurado Siempre imaginé el Paraíso como algún tipo de biblioteca. Jorge Luis Borges 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 1 Recordando

Más detalles

Introduccion a C++ y Fortran 90/95

Introduccion a C++ y Fortran 90/95 Universidad Nacional de Ingeniería Facultad de Ciencias Física Computacional CC063 Introduccion a C++ y Fortran 90/95 Prof: J. Solano 2012-I Declaracion de variables para C/C++ y Fortran 90/95 2 Tipos

Más detalles

Programación 1 Tema 5. Instrucciones simples y estructuradas

Programación 1 Tema 5. Instrucciones simples y estructuradas Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas Instrucción ::= Instrucciones.

Más detalles

Programación 1 Tema 5. Instrucciones simples y estructuradas

Programación 1 Tema 5. Instrucciones simples y estructuradas Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas 2 Instrucción ::= 3 Instrucciones.

Más detalles

Arboles Binarios de Búsqueda en C++

Arboles Binarios de Búsqueda en C++ Arboles Binarios de Búsqueda en C++ por CCG/Mayo-2014 Tema de Arboles Binarios de Búsqueda, como un poco de teoría para su mejor entendimiento seguidamente mostrare la implementación en lenguaje de programación

Más detalles

Ejercicios De Programación De C++ Algoritmos. Lenguaje De Programación C++:

Ejercicios De Programación De C++ Algoritmos. Lenguaje De Programación C++: Ejercicios De Programación De C++ 1. Muestre en pantalla el mensaje Bienvenido. Algoritmos 1. Inicio 2. muestrer en pantalla el mensaje Bienvenido 3. Fin Lenguaje De Programación C++: #include

Más detalles

Cédula : Nombre : 2.- Qué es un algoritmo? Describa tres (3) propiedades o características de un algoritmo [2] Respuesta:

Cédula : Nombre : 2.- Qué es un algoritmo? Describa tres (3) propiedades o características de un algoritmo [2] Respuesta: Cédula : Nombre : Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I - Semestre 2012-1 (Sección G ) Profesor: Jaime Soto Examen #1 - Fecha:

Más detalles

Programación 1 Tema 7. Desarrollo modular y descendente de programas

Programación 1 Tema 7. Desarrollo modular y descendente de programas Programación 1 Tema 7 Desarrollo modular y descendente de programas Índice Programas dirigidos por menú Diseño modular Módulos de biblioteca en C++ Programa dirigido por menú MENÚ DE OPERACIONES ===================

Más detalles

Parte 1. Input. Output. Input. Output

Parte 1. Input. Output. Input. Output Parte 1 A continuación se presenta un problema a resolver y se entrega el pseudocódigo (instrucciones paso a paso) a la izquierda. Se pide escribir el código en c++ a la derecha y comprobar su funcionamiento

Más detalles

Introducción rápida a la programación (estructurada ) con C++

Introducción rápida a la programación (estructurada ) con C++ Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de

Más detalles

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ C++ es un lenguaje de programación diseñado por Bjarne Stroustrup a partir de 1979. La intención de su creación fue ampliar al exitoso lenguaje

Más detalles

Cédula : Nombre : 2.- Qué es un algoritmo? Describa tres (3) propiedades o características de un algoritmo [2] Respuesta:

Cédula : Nombre : 2.- Qué es un algoritmo? Describa tres (3) propiedades o características de un algoritmo [2] Respuesta: Cédula : Nombre : Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I - Semestre 2012-1 (Sección E ) Profesor: Jaime Soto Examen #1 - Fecha:

Más detalles

Introducción a los Computadores ITTELSI. Curso

Introducción a los Computadores ITTELSI. Curso Introducción a los Computadores ITTELSI. Curso 2004-2005 PRÁCTICA 2: ESTRUCTURAS DE CONTROL Y SUBPROGRAMAS (I) Hoy vamos a practicar más conceptos sencillos del lenguaje, que nos permitan decidir qué sentencias

Más detalles

Tema: Plantillas en C++.

Tema: Plantillas en C++. Programación II. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Plantillas en C++. Objetivos Específicos Conocer los tipos de plantillas Utilizar las plantillas de

Más detalles

Fundamentos de la programación

Fundamentos de la programación Fundamentos de la programación 3E Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Recorridos 404 Un

Más detalles

7.3. Estructura de un programa

7.3. Estructura de un programa TEMA 7 ALGORITMOS Y PROGRAMAS. ESTRUCTURA DE UN PROGRAMA 7.1. Algoritmos 7.2. Compilación 7.3. Estructura de un programa 7.1. Algoritmos Objetivo: Resolver problemas mediante computadoras (usando el lenguaje

Más detalles

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C

Más detalles

Fundamentos de la programación

Fundamentos de la programación Fundamentos de la programación 2 Grado en Ingeniería Electrónica y Comunicaciones Pilar Sancho Thomas Luis Hernández Yáñez Facultad de Informática Universidad Complutense Fundamentos de la programación:

Más detalles

Nociones básicas sobre C++ Agustín J. González Patricio Olivares ELO-329

Nociones básicas sobre C++ Agustín J. González Patricio Olivares ELO-329 Nociones básicas sobre C++ Agustín J. González Patricio Olivares ELO-329 1 C++ vs C C++ es un lenguaje más actual que C C++ mantiene todo el poder de C agregando características que facilitan la programación.

Más detalles

SESIÓN DE EJERCICIOS E1

SESIÓN DE EJERCICIOS E1 SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a) #define N=25; b) #define N 25 c) int N=25; d) int N 25 Ejercicio 2 La expresión

Más detalles

26 de Octubre del 2013

26 de Octubre del 2013 Hernánz Hernánz OMIJAL 26 Octubre l 2013 Contenidos Hernánz 1 2 3 4 ++ 5 6 7 Hernánz Concepto Un concepto es una ia, algo abstracto. No existe en la naturaleza. Palabras Herramientas que utilizamos para

Más detalles

Funciones II. Fundamentos de Programación Fundamentos de Programación I

Funciones II. Fundamentos de Programación Fundamentos de Programación I Funciones II Fundamentos de Programación Fundamentos de Programación I Ejercicio 1: Escribe una función que transforme un punto en coordenadas polares a cartesianas Entradas: Un punto como coordenadas

Más detalles

Fundamentos de la programación

Fundamentos de la programación Fundamentos de la programación 4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Archivos como parámetros

Más detalles

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

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO Recursividad: La recursividad es una técnica de programación

Más detalles

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones.

Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones. Programación II. Guía 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones. Objetivos Diferenciar sobrecarga de operadores

Más detalles

Cátedra I Informática Autor I Carlos Bartó

Cátedra I Informática Autor I Carlos Bartó FCEFyN Departamento de Computación Informática Examen - 07-07-2008 Apellido y Nombres: Matrícula: Carrera: PROBLEMAS: 1) Especifique en el lenguaje C++ una función denominada calc_fecha() que tenga como

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio PROGRAMA PLAN DE CLAVE DE UNIDAD DE NOMBRE DE LA UNIDAD DE EDUCATIVO ESTUDIO APRENDIZAJE APRENDIZAJE Ing. En Mecatrónica 2009-2 11892 Programación Orientada a Objetos PRÁCTICA No. 3 LABORATORIO DE NOMBRE

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011

Más detalles

Estructuras Enlazadas AyED UTN-BA

Estructuras Enlazadas AyED UTN-BA Funciones para estructuras enlazadas Sin Plantilla El Nodo Con plantilla para un dato genérico en info El Nodo struct Nodo1 int info; Nodo* sig; ; Nodo1* p1 = new Nodo1(); struct Nodo2 string info; Nodo*

Más detalles

Examen de prácticas de Programación 1

Examen de prácticas de Programación 1 Examen de prácticas de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Tiempo para realizar el trabajo de programación propuesto:

Más detalles

UNIVERSIDAD POLITÉCNICA DE MADRID. Actividad 1. Manejo del entorno de desarrollo (IDE).

UNIVERSIDAD POLITÉCNICA DE MADRID. Actividad 1. Manejo del entorno de desarrollo (IDE). Objetivos: UNIVERSIDAD POLITÉCNICA DE MADRID Actividad 1. Manejo del entorno de desarrollo (IDE). Adquirir soltura en el manejo del entorno de desarrollo (IDE Integrated Development Environment) Eclipse

Más detalles

Programación 1 Problemas del Composición condicional

Programación 1 Problemas del Composición condicional Programación 1 Problemas del 6-10-2016 Composición condicional Un problema Programa que indique si un año es o no bisiesto Escriba un año: 2016 El año 2016 es bisiesto Escriba un año: 2017 El año 2017

Más detalles

Programación 1 Problemas 3. Composición condicional

Programación 1 Problemas 3. Composición condicional Programación 1 Problemas 3 Composición condicional Un problema Programa que indique si un año es o no bisiesto Escriba un año: 2016 El año 2016 es bisiesto Escriba un año: 2017 El año 2017 no es bisiesto

Más detalles

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 7 de septiembre de 2017 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

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

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION CICLO: 01/ 2013 Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: GUIA DE LABORATORIO #11 Funciones recursivas

Más detalles

Unidad 2. La lógica de programación. Tema 4. Estructuras de decisión

Unidad 2. La lógica de programación. Tema 4. Estructuras de decisión Unidad 2. La lógica de programación Tema 4. Estructuras de decisión Contenido: Estructuras de decisión simple y doble Conceptos básicos Tipos: Simple Doble Múltiple varias condiciones una única condición

Más detalles

Informática PRÀCTICA 2 Curs

Informática PRÀCTICA 2 Curs Práctica Nº 2: Estructura general de un programa en C/C++. Introducción a las funciones de Entrada y salida en C++ (cin y cout) sin formato. Objetivos de la práctica: - Presentar la estructura general

Más detalles

Hoja de ejercicios del Tema 3

Hoja de ejercicios del Tema 3 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Escribe un programa que lea un número entero positivo del teclado y muestre

Más detalles

Hoja de ejercicios del Tema 3

Hoja de ejercicios del Tema 3 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia

Más detalles

Unidad 2. La lógica de programación. Tema 4. Arreglos y estructuras de repetición

Unidad 2. La lógica de programación. Tema 4. Arreglos y estructuras de repetición Unidad 2. La lógica de programación Tema 4. Arreglos y estructuras de repetición Arreglos y estructuras de repetición Contenido: Introducción Arreglos Vectores Matrices De más de 2 dimensiones Estructura

Más detalles

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I Laboratorio - Semestre 2012-1 (Sección C ) Profesor: Jaime Soto Examen #1 - Fecha: 07-03-2012

Más detalles

Preliminares: programación con C++

Preliminares: programación con C++ Preliminares: programación con C++ JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Archivos y Comentarios Todo programa en lenguaje C++ debe tener la siguiente extensión: file.c, file.cc file.cpp

Más detalles

Lenguaje de Programación: C++ Repaso de Material C++

Lenguaje de Programación: C++ Repaso de Material C++ UG Lenguaje de Programación: C++ Repaso de Material C++ Universidad de Guanajuato Octubre 2010 Variables Tipos de Variables Operadores Variable Para poder leer algo, necesitamos un lugar donde poner lo

Más detalles

Sentencias de Procesamiento Iterativo: while y do-while

Sentencias de Procesamiento Iterativo: while y do-while ESTRUCTURAS CÍCLICAS Se discuten en este documento las sentencias que se utilizan en el lenguaje C++ para representar la tercera de las estructuras utilizadas en la programación estructurada: La Estructura

Más detalles

Clase 2: Problemas Propuestos - Soluciones

Clase 2: Problemas Propuestos - Soluciones Clase 2: Problemas Propuestos - Soluciones Problema 1: Convertir grados Celsius a Fahrenheit Programe un convertidor de grados celsius a Fahrenheit dada la siguiente fórmula: F = C * 9/5 + 32 La entrada

Más detalles

Introducción a c++ Introducción a la programación EIS Informática III

Introducción a c++ Introducción a la programación EIS Informática III Introducción a c++ Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas

Más detalles

SESIÓN DE EJERCICIOS E1

SESIÓN DE EJERCICIOS E1 SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test (soluciones al final) A resolver antes de comenzar la sesión en el aula Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a)

Más detalles

Algunas ideas básicas de C++ Agustín J. González ELO-329

Algunas ideas básicas de C++ Agustín J. González ELO-329 Algunas ideas básicas de C++ Agustín J. González ELO-329 1 Archivos de encabezado Son necesarios para hacer uso de constantes predefinidas. Son incluidos con la directiva del pre-procesador #include Ejemplo:

Más detalles

Programación 1. Tema II. Diseño de los primeros programas. Lección 4. Diseño de algunos programas elementales

Programación 1. Tema II. Diseño de los primeros programas. Lección 4. Diseño de algunos programas elementales Programación 1 Tema II. Diseño de los primeros programas Lección 4. Diseño de algunos programas elementales 1 Objetivos de la lección: Aprender, paso a paso, una metodología de programación descendente

Más detalles

2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I Laboratorio - Semestre 2012-1 (Sección E ) Profesor: Jaime Soto Examen #1 - Fecha: 08-03-2012

Más detalles

Fundamentos de programación

Fundamentos de programación Fundamentos de programación 4 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Material de la Prof.ª Versión revisada y ampliada del material del Prof.

Más detalles

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Trayecto II Desarrollo de Software

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Trayecto II Desarrollo de Software República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Trayecto II Desarrollo de Software Prof. Elías Cisneros Introducción a lenguaje C++ Parte IV Contenido 1.Introducción a

Más detalles

Tema: Programación Dinámica.

Tema: Programación Dinámica. 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir brevemente el concepto de programación dinámica. Interpretar un algoritmo

Más detalles

TEMA 5: Subprogramas, programación modular

TEMA 5: Subprogramas, programación modular TEMA 5: Subprogramas, programación modular 5.1.-Definición de módulo. Programación modular La programación modular está basada en la técnica de diseño descendente, que como ya vimos consiste en dividir

Más detalles

Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO

Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO Macros tipo objeto #define IDENTIFICADOR VALOR Permiten definir identificadores que son automáticamente reemplazados por un fragmento de código. Son especialmente

Más detalles

SOLUCIÓN NUMÉRICA DE ECUACIONES ALGEBRAICAS Y TRASCENDENTES

SOLUCIÓN NUMÉRICA DE ECUACIONES ALGEBRAICAS Y TRASCENDENTES SOLUCIÓN NUMÉRICA DE ECUACIONES ALGEBRAICAS Y TRASCENDENTES EL PROBLEMA DE OBTENER LOS CEROS O RAÍCES DE UNA ECUACIÓN ALGEBRAICA O TRASCENDENTE, ES UNO DE LOS REQUERIDOS MAS FRECUENTEMENTE, DEBIDO A ELLO

Más detalles

Capitulo 2. Programación Modular

Capitulo 2. Programación Modular Capitulo 2. Programación Modular Consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la programación

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 6 Nombre: Funciones Contextualización La implementación de funciones en los programas disminuye las líneas de código y estructuran mejor

Más detalles

Qué es la recursividad?

Qué es la recursividad? Recursividad 1 Ejemplo Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Esta muñeca, también contiene otra muñeca dentro.

Más detalles

Apuntadores en C/C++ INTRODUCTION TO PROGRAMMING

Apuntadores en C/C++ INTRODUCTION TO PROGRAMMING Apuntadores en C/C++ JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Memoria de la Computadora La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden

Más detalles

Algunas ideas básicas de C++ Agustín J. González ELO-329

Algunas ideas básicas de C++ Agustín J. González ELO-329 Algunas ideas básicas de C++ Agustín J. González ELO-329 1 Archivos de encabezado Son necesarios para hacer uso de constantes predefinidas. Son incluidos con la directiva de l procesador #include Ejemplo:

Más detalles

Lenguaje de Programación: C++ ARCHIVOS I/O

Lenguaje de Programación: C++ ARCHIVOS I/O UG C++ Lenguaje de Programación: C++ ARCHIVOS I/O Universidad de Guanajuato Octubre 2010 Como abrir un archivo Antes de poder escribir datos en un archivo, debemos abrirlo, esto significa que debemos decirle

Más detalles

Subrutinas o Funciones

Subrutinas o Funciones Subrutinas o Funciones JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Objetivos Conocer las características estructurales de una función. Entender la importancia y las ventajas del uso de funciones

Más detalles

Introducción a la Computación

Introducción a la Computación Introducción a la Computación Primer Cuatrimestre de 2012 Organización de Computadoras (Brevísima Introducción) 1 Mapa de la materia Programas simples en C. Especificación de problemas. Corrección de algoritmos.

Más detalles

Capítulo 12 INSTRUCCIONES DE CONTROL ALTERNATIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Capítulo 12 INSTRUCCIONES DE CONTROL ALTERNATIVAS. Presentación resumen del libro: EMPEZAR DE CERO A PROGRAMAR EN lenguaje C Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 12 INSTRUCCIONES DE CONTROL ALTERNATIVAS 1 OBJETIVOS Conocer las

Más detalles

Capítulo 4. Control de flujo. Continuar

Capítulo 4. Control de flujo. Continuar Capítulo 4 Control de flujo Continuar Introducción El control de flujo permite encausar a la computadora sobre la ruta que debe seguir al momento de la ejecución de un programa, para ello se apoya en las

Más detalles

Lista de Cotejo. Práctica # 21 Calculo de Volumen de Figuras Geométricas

Lista de Cotejo. Práctica # 21 Calculo de Volumen de Figuras Geométricas Lista de Cotejo Práctica # 21 Calculo de Volumen de Figuras Geométricas Nombre de la Materia: Programación Orientada a Objetos Instructor: Ing. Sergio González Pérez Plantel: Conalep Juárez I Grupo: 402

Más detalles

Cátedra I Informática Autor I Carlos Bartó

Cátedra I Informática Autor I Carlos Bartó Cátedra I Informática Autor I Carlos Bartó FCEFyN Departamento de Computación Informática Examen - 11-02-2008 Apellido y Nombres: Matrícula: Carrera: ESPECIFICACION: Desarrollar un programa en lenguaje

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos

Más detalles

SUBPROGRAMAS FUNCIONES

SUBPROGRAMAS FUNCIONES SUBPROGRAMAS FUNCIONES 1 INTRODUCCIÓN En la mayoría de los casos, un determinado problema complejo lo podemos (y debemos) dividir en problemas más sencillos. (Módulos o Subprogramas) TÉCNICA DE DISEÑO

Más detalles

Herramientas de Desarrollo en Informática (Especialización en Telemática) Ing. Grabiel Guzmán

Herramientas de Desarrollo en Informática (Especialización en Telemática) Ing. Grabiel Guzmán Ing. Grabiel Guzmán Tabla de contenidos: 1.- Que es PYTHON? 2.- Un poco de historia 3.- Principales Características 4.- Instalación (Linux) 5.- Editores para Python 6.- Entorno integrado de desarrollo

Más detalles

Ejercicios con OpenCV

Ejercicios con OpenCV Ejercicios con OpenCV Dr. Alfonso Alba Cadena Facultad de Ciencias, UASLP fac@fc.uaslp.mx Septiembre 2011 1 Sobre OpenCV OpenCV (Open Source Computer Vision) es una librería de funciones escritas en C/C++

Más detalles

6. Visualizar error, ingrese un numero que no sea cero

6. Visualizar error, ingrese un numero que no sea cero 11.- Pida al usuario dos numeros enteros (que se guardaran en la variables num 1 y num 2). si dato 2 es cero, debera mostrar un mensaje de error, y en caso contrario mostrara en pantalla el resto de la

Más detalles

Unidad IV: Funciones

Unidad IV: Funciones Definición de Función: Unidad IV: Funciones Una función es un miniprograma dentro de un programa. Es un conjunto de líneas de código bajo un solo nombre, que realizan una tarea específica y puede retornar

Más detalles

UTN FRBA Algoritmos y Estructura de Datos Examen Final 13/02/2015. Apellido y nombre: Legajo: Cursó con Prof:

UTN FRBA Algoritmos y Estructura de Datos Examen Final 13/02/2015. Apellido y nombre: Legajo: Cursó con Prof: Sistema para el Seguimiento de Jugadores de Fútbol Temas evaluados: Resolución de problemas, estructuras de datos, archivos, listas, y lenguaje de programación. Contexto Usted es parte de un equipo que

Más detalles

Entrada y salida de datos en C y C++

Entrada y salida de datos en C y C++ Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Cátedra de Informática II Entrada y salida de datos en C y C++ Informática II Entrada/Salida

Más detalles

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados

Más detalles

Resolución de problemas mediante algoritmos

Resolución de problemas mediante algoritmos Resolución de problemas mediante algoritmos Algoritmo Conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite llevar a cabo una actividad mediante pasos sucesivos que

Más detalles

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas Programación 1 Tema II. Diseño de programas elementales Lección 7. Diseño modular y descendente de programas 1 Objetivos de la lección : En esta lección se aprende: a dotar a un programa C++ de una estructura

Más detalles

Programación de Computadores 7 Objetos y Clases. Prof. Javier Cañas R. Universidad Técnica Federico Santa María Departamento de Informática.

Programación de Computadores 7 Objetos y Clases. Prof. Javier Cañas R. Universidad Técnica Federico Santa María Departamento de Informática. Programación de Computadores 7 Objetos y Clases Prof. Javier Cañas R. Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Elementos de Programación Orientada

Más detalles

Estructuración del programa en partes más pequeñas y sencillas

Estructuración del programa en partes más pequeñas y sencillas Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías

Más detalles

Laboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros

Laboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros Laboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros Procedimientos El paradigma de programación basado en procedimientos se basa en la posibilidad de crear procedimientos computacionales

Más detalles

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez Objetivo N 2 Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez * Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer

Más detalles

Programación I Recursividad.

Programación I Recursividad. Programación I Recursividad http://proguno.unsl.edu.ar proguno@unsl.edu.ar Recursividad Técnica de resolución de problemas particulares. La definición de un concepto es recursiva si el concepto es definido

Más detalles

Estructura de Datos. Recursividad. Primer Semestre, Indice

Estructura de Datos. Recursividad. Primer Semestre, Indice Estructura de Datos Recursividad Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2 Indice Introducción Definición Condiciones para la Recursividad Tipos de Recursividad Aplicaciones Ejemplo

Más detalles

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Programación 1 Tema 3. Información, datos, operaciones y expresiones Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información

Más detalles

EJERCICIOS CON FUNCIONES EN C. EJEMPLO CALCULAR SERIES NUMÉRICAS. REFACTORIZAR. (CU00552F)

EJERCICIOS CON FUNCIONES EN C. EJEMPLO CALCULAR SERIES NUMÉRICAS. REFACTORIZAR. (CU00552F) APRENDERAPROGRAMAR.COM EJERCICIOS CON FUNCIONES EN C. EJEMPLO CALCULAR SERIES NUMÉRICAS. REFACTORIZAR. (CU00552F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero Fecha

Más detalles

PROGRAMACIÓN UNIDADES

PROGRAMACIÓN UNIDADES PROGRAMACIÓN Semestre: Segundo Horas: 90 horas Hrs/sem: 4.5 Créditos: 9 Clave: AI-02 DESCRIPCIÓN DE LA ASIGNATURA Al finalizar el curso el alumno tendrá el conocimiento y la capacidad de implementar programas

Más detalles

República Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI. Introducción a lenguaje C++. Parte IV Ciclos iterativos

República Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI. Introducción a lenguaje C++. Parte IV Ciclos iterativos http://aldeafraypedrodeagreda.wordpress.com Elaborado por Prof. Elías Cisneros cisneros.elias@gmail.com 23/12/09 República Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI Introducción

Más detalles

Programación Orientada o Objetos

Programación Orientada o Objetos Programación Orientada o Objetos Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz Programación Orientada a Objetos En 1970 Dennis Ritchie y Brian Kernigan crearon

Más detalles

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 1. Problemas de tratamiento de información, algoritmos y programas

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 1. Problemas de tratamiento de información, algoritmos y programas Programación 1 Tema I. Conceptos y elementos básicos de Programación Lección 1. Problemas de tratamiento de información, algoritmos y programas 1 Problemas, algoritmos y programas Problemas de tratamiento

Más detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo. Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.

Más detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo. Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar

Más detalles