Documente Academic
Documente Profesional
Documente Cultură
UNIDAD 2
Nombre de la FUNCIONES
Unidad
Introduccin
En la segunda Unidad: Funciones, correspondiente a la utilizacin de
funciones para optimizar los programas en Lenguaje C++, se debe
tener en cuenta que al desarrollar programas en un lenguaje de
programacin, la forma como se estructura las tareas a cumplir es
fundamental para lograr procesos eficientes y efectivos. Es aqu donde
se evidencia la importancia de la utilizacin de funciones en los
programas, para evitar la repeticin de cdigo, facilitar la depuracin de
errores y propiciar el desarrollo de lgicas creativas y pertinentes para
la solucin de problemas de informacin.
Intencionalidades
Formativas Desarrollar destrezas para implementar funciones diseadas por el
programador, con miras a optimizar los programas desarrollados en
lenguaje C++.
Propsitos de la unidad
1
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
un problema.
Objetivos de la unidad
Competencias de la unidad
Metas de aprendizaje
FUNCIONES
El trabajar con funciones en C++ tiene muchas ventajas, entre ellas posibilitar la
depuracin de programas de manera ms rpida, puesto que en lugar de revisar
todo el cdigo de una solucin, se puede identificar exactamente que tarea tiene
inconvenientes y trabajar sobre ella. Adems su reutilizacin en diferentes partes
del programa hace que la cantidad de cdigo total sea menor.
El lenguaje C++ utiliza como mnimo la funcin principal main( ), que no puede
faltar en ningn programa, tambin se cuenta con una serie de funciones ya
definidas que realizan tareas importantes y muy tiles, y finalmente pero no menos
importante se encuentran las funciones diseadas por el programador que se
desarrollan de acuerdo a las tareas que se deban cumplir.
2
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
void CentrarTexto();
int ValidarNumero();
void Ecuacion();
int main()
{
CentrarTexto(); //llamada a la funcin para centrar texto
ValidarNumero(); //llamada a la funcin para validar un nmero
Ecuacion(); //llamada a la funcin para realizar una ecuacin de primer grado
return 0;
}
void CentrarTexto()
{
// Cdigo para centrar texto
}
int ValidarNumero()
{
// Cdigo para validar numero
}
void Ecuacion()
{
// Cdigo para realizar una ecuacin de primer grado
}
3
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
Escritura de funciones
Una funcin se puede ubicar en cualquier lugar del cdigo fuente, o puede
estar en un archivo diferente.
La funcin principal main ( ) generalmente se ubica al inicio del programa,
pero no hay inconveniente si se escribe despus de otras funciones.
Todas las funciones deben ser declaradas antes de ser utilizadas, esto
implica que se utilice prototipos de funciones o se defina la funcin antes
de ser invocada.
Tipo de dato que devuelve la funcin: el tipo debe ser uno de los tipos simples
de C++ (int, char, float, un puntero, un tipo struct)
Ejemplos:
int Funcion1 (int a, int b) //devuelve un tipo int
double Funcion2 (double c, double d) //devuelve un tipo double
float Funcion3 ( ) //devuelve un tipo float
char Funcion4 ( ) //devueve un tipo char
int *Funcion5 ( ) //devuelve un puntero a int
char *Funcion6 ( ) //devuelve un puntero a un arreglo char
void Funcion7 ( ) //no retorna ningn valor
Cada funcin puede devolver un nico valor y se expresa con la palabra reservada
return (valor a devolver).
Ejemplos:
return (expresion);
4
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
return (a + b + c);
return 0;
Lista de parmetros: corresponde a los datos que recibe la funcin para ser
procesados. Pueden ser varios, de diferentes tipos o no tener parmetros
5
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
Algunos ejemplos :
El primer trmino del prototipo indica el tipo de dato retornado por la funcin; en
caso de obviarse el mismo, se toma por omisin el tipo int. Sin embargo, aunque
la funcin devuelva este tipo de dato, para evitar malas interpretaciones es
conveniente explicitarlo.Ya que el "default" del tipo de retorno es el int, se debe
indicar cuando la funcin NO retorna nada, esto se realiza por medio de la
palabra void (sin valor). Cuando no se envan argumentos, el parntesis
correspondiente queda vacio.
NOTA: no confundir definicin con llamada; una funcin puede llamar a tantas
otras como desee.
Ejemplos:
6
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
double otra_funcion(void)
{
//Codificacin de la funcin otra_funcion;
return ();
}
otra_mas(long p)
{
//Codificacin de la funcin otra_mas;
return 0;
}
7
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
8
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
Recursividad
Es importante notar que cuando una funcin se llama a s misma, una nueva
copia de esta funcin es la que se ejecuta. Las variables locales de la segunda
funcin no interfieren con las variables locales de la primera, as mismo, las
variables locales no se pueden afectar mutuamente.
9
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
entero introducido por el usuario. El factorial est definido como el producto del
nmero en cuestin por todos los nmeros enteros menores que l, de tal
manera que el factorial de 5=5*4*3*2*1 = 120. El cdigo puede quedar as:
#include <iostream>
#include <stdlib.h>
using namespace std;
1. La funcin se declara de tipo doble, puesto que los valores que retorna la
funcin pueden ser demasiado grandes.
2. Tambin se utiliza una variable global (K), que sirve de contador, para
determinar el nmero de iteraciones que la funcin se repite
10
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
PASO DE PARMETROS
En C++ hay dos mtodos para realizar el paso de parmetros a una funcin, estos
son: paso por valor y paso por referencia.
El paso por valor implica que se realiza una copia de los argumentos, antes de
que stos pasen realmente a la funcin.
Esta tcnica funciona muy bien cuando se est utilizando variables simples, por
ejemplo nmeros o caracteres.
Ejemplo:
void Fun_paso_valor(int x, char y, int z)
{
}
Ejemplo:
void fun_por_referencia(int *x, int *y)
{
11
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
El operador & en C++ indica la direccin de una variable, dicho en otros trminos
lo que se est enviando es la direccin de memoria donde se encuentra
almacenada la variable.
Diferencia entre parmetros por valor y por referencia: para aclarar estas
diferencias, es necesario tener en cuenta:
Ejemplos:
Programa que utiliza 2 variables a=10 y b=20
Se utilizar una funcin para adicionarles el valor de 1 a cada variable y luego se
imprimen.
#include <iostream>
using namespace std;
12
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
b = b+1;
}
El resultado es:
#include <iostream>
using namespace std;
int main()
{ int a=10, b=20;
TIPOS DE FUNCIONES
Cabe recordar que void significa vacio, por lo tanto las funciones que utilizan este
tipo no retornan valores. Si la funcin no devuelve nada, entonces no se debe
incluir en su codificacin la sentencia return, aunque su uso es opcional.
Para llamar una funcin que devuelve un tipo void, slo se necesita digitar su
nombre en una sentencia, e incluir parmetros si as fue diseada.
14
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
15
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
Tambin se encuentran las funciones que retornan valores que pueden ser de tipo
char, int, float, etc.
16
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
}
cout<<endl <<endl;
system("pause");
return 0;
}
17
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION
cout<<endl <<endl;
system("pause");
return 0;
}
18