Implementación de funciones libres 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. 1
Implementación de Funciones Libres 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. 2
Actividad 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. 3
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. 4
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]; }; 5
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. 6
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; 7
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. 8
Actividad 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 9
Recursividad como herramienta para 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. 10
Recursividad 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. 11
Recursividad 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. 12
Recursividad 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.
13
Recursividad 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. 14
Actividad Realizar los siguientes programas de forma recursiva:
Factorial Serie de Fibonnaci, Multiplicación de dos
números 15