1 programación procedural y recursiva en c++ m.c. juan carlos olivares rojas
Post on 24-Jan-2016
226 Views
Preview:
TRANSCRIPT
11
Programación Programación Procedural y Recursiva Procedural y Recursiva
en C++en C++
M.C. Juan Carlos Olivares Rojas
AgendaAgenda
Implementación de funciones libres.
Uso del typedef y el struct en C++.
Recursividad como herramienta para el control de ciclos.
22
Implementación de funciones Implementación de funciones libreslibres
• C++ es un lenguaje híbrido que permite mezclar POO y Programación Estructurada.
• Por este motivo se pueden tener funciones sin necesidad de agruparlas en clases.
• Las funciones pueden recibir y devolver apuntadores como argumentos.
33
Implementación de Funciones Implementación de Funciones LibresLibres
• Cuando se utilizan parámetros del tipo puntero se dicen que los argumentos se pasan por referencia, de este modo se pueden modificar directamente.
• Cuando se omiten punteros, los argumentos son por valor y sólo se copia en la función el valor de los argumentos. 44
ActividadActividad
• Realizar un programa que dado diferentes arreglos de distintos tamaños encuentre el mayor de n números. El código de mayor debe de ser una función.
• Modificar el programa anterior para que el arreglo pueda ser dinámico de acuerdo al tamaño que indique el usuario.
55
Uso del typedef y el struct en C+Uso del typedef y el struct en C+++
• Una estructura es un tipo de datos complejos que puede contener diversos tipos de datos simples formando una unidad.
• En otros lenguajes reciben el nombre de registros. Las estructuras se manejan en programación estructurada.
66
Uso del typedef y struct en C++Uso del typedef y struct en C++• Las estructuras en C/C++ se crean con la
palabra clave struct seguida del nombre de la estructura:
struct paciente { unsigned int ID; unsigned short edad; char nombre[40];};
77
Uso del typedef y struct en C++Uso del typedef y struct en C++
• Una estructura se asemeja mucho a una clase en lo que respecta a los atributos de los objetos.
• De hecho en C++ (pero no en C) las estructuras pueden anidar funciones. El modificador por default en una estructura es public, mientras que en una clase es private.
88
Uso del typedef y struct en C++Uso del typedef y struct en C++
• Una vez declarada la estructura (se recomienda realizarla fuera de cualquier función de manera global y en un archivo de encabezado .h) se pueden crear variables de este nuevo ADT:
• struct paciente p;99
Uso del typedef y struct en C++Uso del typedef y struct en C++
• Para evitar el repetir varias veces la palabra struct y el nombre de la estructura se puede crear un alias mas simple utilizando la palabra reservada typedef que significa definición de tipo.
• typedef struct paciente P; //alias• P p; //Declara una variable de tipo
paciente.1010
ActividadActividad
• Realizar un programa que pida los datos de un artículo de cómputo: nombre, precio, descripción, número de identificación.
• Guardar esos datos en un arreglo de estructuras.
• Leer y escribir dichos valores en un archivo
1111
Recursividad como herramienta Recursividad como herramienta para el control de ciclospara el control de ciclos
• La recursividad es una manera elegante de resolver problemas.
• Una función se dice que es recursiva cuando se invoca así misma. Ejemplo el factorial de un número, las torres de hannoi, la serie de fibonacci, etc.
1212
RecursividadRecursividad
• N! = N * (N-1)!• 5! = 5 * 4!
• Fibo(5) = Fibo(4) + Fibo(3)
• La recursividad nos permite resolver problemas que parecen ser muy complejos de manera sencilla. 1313
RecursividadRecursividad
• Todo programa recursivo puede ser resuelto a través de ciclos pero puede que esta solución sea muy compleja.
• Toda función recursiva debe de tener dos características básicas: un caso base y el caso recursivo.
1414
RecursividadRecursividad
• Ojo: si no se cuenta con un caso base el programa se puede ciclar de manera indefinida provocando que el programa o el sistema operativo colapsen.
• La recursividad de manera interna trabaja con memoria dinámica, se utilizan pilas para guardar los valores anteriores de las funciones recursivas.
1515
RecursividadRecursividad
• La gran desventaja de las funciones recursivas es que son ampliamente consumidoras de memoria.
• Todo programa recursivo puede implementarse con pilas. La recursividad trata de sacar provecho al principio de divide y vencerás.
1616
ActividadActividad
• Realizar los siguientes programas de forma recursiva:
• Factorial• Serie de Fibonnaci,• Multiplicación de dos números
1717
1818
¿Preguntas, dudas y ¿Preguntas, dudas y comentarios?comentarios?
top related