Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivos:
Recordar que son las funciones, cómo se gestiona la memoria para ellas, cual es el ámbito de sus variables, cuales tipos de
funciones podemos configurar, que ventajas nos ofrece la programación al aplicar funciones en nuestros programas en que
consiste la sobrecarga de funciones, cuando es útil aplicar la sobrecarga de funciones.
Preguntas inicializadoras
Pregunta Respuesta
1
2
3
4
Introducción
Las funciones es uno de los temas más importantes que estudiamos en el curso del semestre anterior en la materia de Programación
Estructurada. En este curso seguiremos aplicando funciones, pero ahora las podemos llamar métodos, son muy útiles porque nos permiten
dividir el trabajo que hace un programa muy grande, en tareas más pequeñas separadas de la parte principal.
Una función puede estar diseñada para realizar cualquier tipo de tareas desde un cálculo sencillo como una suma, hasta un cálculo matemático
más complicado o procesos que se aplique a datos como por ejemplo para relacionarlos, ordenarlos, compararlos, clasificarlos, etc.. Estas
funciones o métodos pueden ser usada de forma independiente en diferentes partes del programa.
En programación Estructurada diseñamos programas con funciones independientes como se muestra en la imagen de la tabla
El bloque de código
Estas instrucciones son las tareas que hacen que la función tenga
sentido.
Para pasar argumentos o parámetros a las funciones pueden ser invocadas desde otro método, con una lista de
una función argumentos.
las funciones pueden devolver un valor para ser usado como resultado.
Muchos de los métodos que declaras o usas desde la biblioteca que te ofrece el
compilador del lenguaje también aceptan argumentos.
Pasa pasar argumentos desde un método a otro, se hace desde los paréntesis de la
llamada al método.
Al llamar a un método, se deben listar los argumentos en el mismo orden que
dichos argumentos están declarados en la definición del método, además que
deben pasarse todos los argumentos requeridos. El compilador verificará si el tipo y
cantidad de argumentos pasados concuerda con el tipo, el orden y cantidad de
parámetros que acepta el método llamado.
Para devolver un valor con return se utiliza la palabra clave return. Por ejemplo, el siguiente código devuelve el valor
que tiene actualmente la variable result.
Para recibir valores Si se invoca un método que devuelve un valor, como en el caso anterior, se puede
utilizar el valor devuelto en el método desde dónde se ha llamado
Hace que los programas sean más legibles y fáciles de mantener. Por ejemplo, es fácil saber lo que un programa hace si el código
está dividido en varios métodos diferentes con nombres que describan el comportamiento de los mismos.
El desarrollo y el mantenimiento es más rápido. Por ejemplo, puedes elegir crear y probar un método por vez cada para asegurar
que el programa, en su totalidad, funciona bien cuando se ha finalizado.
Son utilizados para que el software sea reusable. Por ejemplo, las bibliotecas de cualquier compilador tiene muchas clases con
métodos que pueden ser usados una y otra vez en los programas.
Se puede crear métodos para que otros programadores puedan usar.
Los métodos permiten separar los objetos para comunicar y distribuir el trabajo realizado por el programa.
El ámbito de las variables de las funciones
En programación, el ámbito de una variable es la parte del código desde donde se puede acceder a una variable. Básicamente
una variable puede ser global (se puede acceder desde cualquier parte del código) o local (sólo se puede acceder desde una
porción del código) O ( public, protected, private) en una clase
El ámbito de una variable (llamado "scope" en inglés) es la zona del programa en la que se define la variable.
Deducir:
Tipo de dato parámetro:
Tipo de función:
Tipo de retorno:
Ámbito de las variables del a función:
Codigo:
Si se define una función y no ponemos return que pasa? : el valor devuelto es cero. No
da error de compilación pero no olvidar que depende del compilador
Notas
Espacio en memoria de una funcion
Sobrecarga de funciones
En nuestro lenguaje natural del español, así como en un lenguaje de programación aparecen los problemas de que una misma
palabra expresa diversos significados dependiendo del contexto. Y sabemos que una palabra tiene múltiples significados, es
decir, está sobrecargada (polisemia).. Ejemplos
Otros ejemplos
Una de las características más importantes en cualquier lenguaje de programación es la utilización adecuada de los nombres de
cómo se identifican los datos por medio de variables, contantes, estructuras, arreglos, funciones etc.
En el caso para darles nombre a las funciones sabemos que se pueden seguir las reglas sintácticas de las variables ser en
minúscula, o mayúscula, no palaras reservadas del lenguaje, soportan un guion bajo, aplicándose éstos tanto como sea
necesario para mejorar la legibilidad. Y lo mas importante es que en lenguaje C no podíamos repetir nombres de funciones
En lenguaje C++ se permite especificar más de una función del mismo nombre en el mismo ámbito a estas funciones se
denominan funciones sobre cargadas.
Las funciones sobrecargadas permiten proporcionar una semántica diferente para una función, en función de los tipos y el
número de argumentos.
En C++ hay otro factor que fuerza la sobrecarga de los nombres de función: el constructor.
Como el nombre del constructor está predeterminado por el nombre de la clase, podría parecer que sólo puede haber un
constructor. Pero ¿qué ocurre si desea crear un objeto de diferentes maneras? Por eso la sobrecarga de funciones es esencial
para permitir el mismo nombre de función (el constructor en este caso) se utilice con diferentes argumentos.
El concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. Así nacen los conceptos de funciones y
tipos polimórficos.
Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los
tipos polimórficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está
especificado.
Clasificación de polimorfismo
• Polimorfismo estático () es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados
uno por uno antes de poder ser utilizados.
• Polimorfismo dinámico (o polimorfismo paramétrico) es aquél en el que el código no incluye ningún tipo de especificación
sobre el tipo de datos sobre el que se trabaja. Así, puede ser utilizado a todo tipo de datos compatible.
El polimorfismo dinámico unido a la herencia es lo que en ocasiones se conoce como programación genérica.
Polimorfismo de sobrecarga
El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre existen, con funcionalidad similar, en clases que
son completamente independientes una de otra
Como introducción veremos cómo C++ permite especificar más de una función del mismo nombre en el mismo ámbito, con
diferente estructura y que tengan el mismo nombre, aunque las funciones compartan el mismo nombre en el texto fuente, el
compilador de C++ implementa las acciones usando nombres diferentes internamente a esto se le llama 'name mangling'.
Las funciones sobrecargadas permiten a los programadores proporcionar una semántica diferente para una función,
dependiendo de los tipos y el número de argumentos.
La sobrecarga permite usar una nomenclatura uniforme y evita que los programadores tengan que inventarse nombres para
distinguir entre grupos de funciones con el mismo nombre en el mismo ámbito.
Elemento de declaración de
¿Se usa para la sobrecarga?
función
Número de argumentos Si
Tipo de argumentos Si
Uso de nombres typedef No
const o volatile Si
#include <iostream>
#include <iomanip>
// Prototipos
int imprimir( char * );
int imprimir( double );
int imprimir( double , int );
int main( )
{
double d = 893094.2987;
int entero=4;
imprimir( "Esta funcion requiere de un argumento." );
imprimir( "El argumento es una cadena" );
imprimir( d );
imprimir( d, entero );
return 0;
}
Actividades
Actividad 1
Actividad 2
Código 1 Código 2
#include <iostream> #include <iostream>
using namespace std; using namespace std;
return 0; return 0;
} }
Explique Explique
Actividad 3
Actividad 4
Completar programas
Actividad 5
Analice los programas de la tabla y conteste las preguntas
Prog 1 Prog 2
#include <iostream> #include <iostream>
using namespace std; using namespace std;
int main()
{
int Cuadrado;
cout <<"Ingrese el lado del cuadrado: ";
cin >>Cuadrado;
Crecuadro objeto1;
objeto1.obtenerCuadrado(Cuadrado);
return 0;
}
Actividad 6
Actividad 7
Conclusiones
Actividad 8
Fuentes y Referencias
Liga contenido
http://conclase.net/c/curso/cap21
https://www.youtube.com/watch?v=j2RPI2TQkfs