Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Unidad 08 Funciones

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 36

UNIVERSIDAD MILITAR NUEVA GRANADA

DEPARTAMENTO DE TECNOLOGÍAS DEL


CONOCIMIENTO
UNIDAD 8: FUNCIONES

8. PROGRAMACIÓN MODULAR

Hasta este punto la gran mayoría de los programas que se han desarrollado, son
mucho más largos de lo realmente necesario, ya que la mejor forma de
escribirlos y mantenerlos es a partir de segmentos menores o módulos,
denominados funciones de usuario; siendo cada una de ellas más fáciles de
manipular, al contrario de los programas que contienen la totalidad de su código
en una sola función.
 
Utilizar funciones en la elaboración de un programa en el lenguaje C++, facilita
el diseño, implementación, operación y mantenimiento de programas con gran
cantidad de código.
UNIDAD 8: FUNCIONES
8. PROGRAMACIÓN MODULAR

La programación modular, también llamada programación estructurada, se


realiza cuando el programador define funciones de usuario, donde cada una
realiza una tarea sencilla.
 
En el siguiente diagrama la función principal o main se comunica con varias
funciones en forma jerárquica y estas a su vez se relacionan con otras funciones.

Función
Función 11

Main
Main Función
Función 22 Función
Función AA

Función
Función 33 Función
Función BB

Función
Función CC
UNIDAD 8: FUNCIONES

Para aplicar el concepto de funciones en un programa, se sugiere seguir los


siguientes pasos:

 Declaración: es la instrucción que se realiza antes de su usar la función, y la


cual se le denomina prototipo.

 Llamado: es la instrucción que permite invocar el uso de la función, la cual


puede retornar o no valores.

 Definición: es la estructura que define el conjunto de instrucciones


necesarias para que la función cumpla con su cometido.
UNIDAD 8: FUNCIONES

A continuación se muestra un programa que usa una función definida por el


programador para calcular el cuadrado de un número. Observe las tres partes que
conforman la función:
Código en C++
UNIDAD 8: FUNCIONES

A continuación se muestra un programa que usa una función definida por el


programador para calcular el cuadrado de un número. Observe las tres partes que
conforman la función:
Salida en C++
UNIDAD 8: FUNCIONES
8.1 PROTOTIPO DE LA FUNCIÓN:

C++ requiere que una función se declare antes de su uso. La declaración de la función se denomina
prototipo. Los prototipos se sitúan en las instrucciones de preprocesador.
 
Sintaxis de la instrucción:
Tipo_de_retorno nombre_función (lista_de _parámetros);
 
 Tipo de retorno: Tipo de dato que retorna la función, una función solo retorna un dato a la vez,
en caso de que la función no tenga que retornar nada, se escribe la palabra reservada void.
 
 Nombre de la función: Identificador apropiado de la función.
 
 Lista de parámetros: son los datos que recibe la función para llevar a cabo su tarea. En el
prototipo solo se describe el tipo de dato de cada uno de los parámetros, en caso de que sean
varios se deben separar con comas.
UNIDAD 8: FUNCIONES
8.1 PROTOTIPO DE LA FUNCIÓN:

Como el prototipo es una instrucción, se debe finalizar con un punto y coma.

Ejemplos:

int cuadrado(int);
float radianes(float);
double area(float,float);
void imprimir(int,long int,float);
void titulos(void);
UNIDAD 8: FUNCIONES

8.2 LLAMADA DE LA FUNCIÓN:

Como se ha abordado en unidades anteriores, el proceso de compilación de un


programa o proyecto en el lenguaje C++, inicia por la función main(), por
ende, se le cataloga como la función principal.
 
Una de las características principales de una función es que puede ser
invocada desde cualquier parte del programa y reutilizarse si así se requiere.
En el caso de las funciones de usuario, existe la opción de incluir dentro de
sus paréntesis uno o más argumentos, los cuales son sencillamente variables
con datos para ser enviados al desarrollo de la función.
UNIDAD 8: FUNCIONES
Sintaxis de la instrucción:

Nombre_de_la_función(argumentos);

Ejemplos:

z=ecuacion(x,y);
cout<<Area_del_circulo(x);
cout<<x<<" "<<cuadrado(x)<<endl;
imprimir(a,b,c);
titulos();

El llamado de la función conlleva a su ejecución, y podrá retornar o no algún


valor. Si en el proceso de llamado de la función no se desea enviar datos, el
paréntesis no contendrá argumentos, como se observa en la función titulos(),
de los ejemplos anteriores.
UNIDAD 8: FUNCIONES

Las funciones de programador no se pueden anidar, esto significa que una


función no se puede declarar dentro de otra función.
 
En el ejemplo, la función de nombre ecuación proporciona los datos
almacenados en x y y, para que se realice la tarea y retorne el resultado para
almacenarlo en la variable z.
 
En la segunda línea del ejemplo, se llama la función Area_del_circulo y se le
proporciona el dato almacenado en el argumento x, para que el resultado que
retorne sea impreso.
 
En C++ todas las funciones son externas o globales, es decir, pueden ser
llamadas desde cualquier punto del programa, ya sea desde la función
principal o desde otra función.
UNIDAD 8: FUNCIONES

8.3 DEFINICIÓN DE LA FUNCIÓN (ESTRUCTURA)

La estructura de la función es la que contiene las sentencias o el código para


realizar la tarea para la cual fue creada. Se puede escribir antes o después de la
función main().
 
Sintaxis de la instrucción:
 
Tipo_de_retorno nombre_función (lista_de _parámetros)
{
cuerpo de la función
return expresión;
}
UNIDAD 8: FUNCIONES

8.3 DEFINICIÓN DE LA FUNCIÓN (ESTRUCTURA)

La primera línea se llama la cabecera de la función y encerrado entre llaves, se


escribe el cuerpo de la función
 
 Tipo de retorno: Tipo de dato que retorna la función, debe coincidir
con lo escrito en el prototipo.
 
 Nombre de la función: Escriba el identificador escogido para el prototipo.
 
 Lista de parámetros: A diferencia del prototipo, además del tipo de dato a
utilizar, se debe declarar las variables locales a la función que se está
definiendo.

 { }: Las llaves encierran el cuerpo de la función.


UNIDAD 8: FUNCIONES

Ejemplos:
 
int cuadrado(int y)
{
return y * y;
}
 
void imprimir(int a,long int b,float c)
{
cout<<"EDAD: "<<a<<endl;
cout<<"IDENTIFICACION: "<<b<<endl; cout<<"SUELDO BASICO: "<<c<<endl;
cout<<"SUELDO A PAGAR: "<<c*0.88<<endl;
}
UNIDAD 8: FUNCIONES

8.4 RETORNO DE LA FUNCIÓN


 
El retorno de la función se escribe como última línea en la estructura de la función.
Una función retorna un valor único del tipo que se defina en el prototipo.
 
Ejemplo:
 
return y * y;
 
Al tomar como referencia el ejemplo del apartado anterior, se observa una
instrucción que retorna un entero, producto de obtener el cuadrado del número a la
llamada de la función. Las funciones que no devuelven valores, se denominan de
tipo void o procedimientos.
UNIDAD 8: FUNCIONES

8.5 ÁMBITO DE LAS VARIABLES


 
C++ reconoce el ámbito de una variable, según haya sido declarada como local o
global.
 
El ámbito de la variable es la parte del programa en que el compilador la
reconoce. Si una función reconoce una variable, se dice que es visible en esa
función.
 
Las variables globales pueden ser referenciadas por cualquier función en el
programa, mientras que las variables locales tienen ámbito solo en la función.
 
UNIDAD 8: FUNCIONES

8.5 ÁMBITO DE LAS VARIABLES


 
Las variables globales tienen ámbito de programa, por lo que suelen definirse
en las declaraciones globales del programa. Las variables locales, tienen
ámbito de función, es decir, se pueden referenciar desde cualquier parte de la
función, pero por fuera de esta no se pueden utilizar, y se definen casi
siempre como primeras instrucciones en los cuerpos de las funciones.
Código en C++
/*Programa que muestra variables globales y locales*/
 
#include<iostream>
double z;
int cuadrado(int);
void imprimir(void);
using namespace std;
 
int main()
{
int x;
cout<<"Ingrese un valor para x:"<<endl;
cin>>x; z=cuadrado(x); imprimir();
system("pause");
return 0;
}
int cuadrado(int y) {
return y*y;
}
void imprimir(void){
cout<<"El cuadrado es: "<<z<<endl;
return;
}
Salida en C++

La variable global z, es visible en todo el programa, por lo que es referenciada en la


función main y en la función imprimir. Las variables x y y, son locales y solo son
visibles en la función en la cual fueron declaradas.
 
En caso de que una variable global y una local tengan el mismo nombre, el
programa reconocerá el ámbito de la variable local. Si el programador requiere el
dato de la variable global, deberá utilizar un juego de doble dos puntos (::), antes de
la variable para utilizarla.
Código en C++
/*Programa que muestra variables globales y locales*/
#include<iostream>
double a = 8;
using namespace std;
 
int main()
{
double a = 5;
double b= a + a;
double c=::a + ::a;
cout << "Local a: " << a << endl;
cout << "Local b: " << b << endl;
cout << "Global a: " << ::a << endl;
cout << "Local c: " << c << endl;
system("pause");
return 0;
}
Salida en C++
UNIDAD 8: FUNCIONES

8.6 PASO DE PARAMETROS POR VALOR

Cada vez que se llama una función se establece automáticamente una


correspondencia entre los parámetros formales de la función y los argumentos
en el programa principal; es decir, a cada parámetro de la función, se le asigna
el valor real en su correspondiente argumento. A esto se le denomina
parámetros por valor o llamada por valor.
 
Cuando C++ compila la función y el código llama a la función, esta recibe una
copia de los valores de los argumentos que deben corresponder exactamente
en cantidad y tipo a los parámetros declarados.
UNIDAD 8: FUNCIONES

La siguiente ilustración muestra como es esta correspondencia:


 
float calculo(float, float, float);

int main()
{
cout<<calculo(numero, años, tasa);
}

En este caso se establece una correspondencia entre los tres parámetros de la


función cálculo y los argumentos en la llamada de la función desde el
programa principal.
Ejercicio 1 Código en C++
#include<iostream>
En el siguiente ejemplo se muestra un int maximo(int,int,int);
using namespace std;
programa que contiene una función de  
usuario que recibe tres parámetros y int main()
retorna el mayor de los tres números {
proporcionados: int a,b,c;
cout<<"Digite tres enteros: ";
cin>>a>>b>>c;
cout<<"El Maximo es: "<< maximo(a,b,c)<<endl;
system("pause");
return 0;
}
 
int maximo(int x,int y,int z)
{
int max=z;
if (x>y&&x>z)
max=x;
if (y>x&&y>z)
max=y;
return max;
}
UNIDAD 8: FUNCIONES

Salida en C++
UNIDAD 8: FUNCIONES

El prototipo de la función, es declarado en las instrucciones de preprocesador. Declara la función


entera de nombre máximo y la lista de los parámetros, en este caso son tres enteros.
 
En la función principal, se hace la llamada de la función desde el flujo de salida, esto es se invoca la
función maximo, con sus argumentos. Una vez la función retorna el valor, estará listo el programa para
la impresión.
  
A continuación del programa principal se encuentra la estructura de la función, en el encabezado, se
indica el tipo de dato que regresa, el nombre de la función y los argumentos, así esta función recibe
tres parámetros enteros en las variables x, y, z y retorna un valor entero.
  
En la función se declara la variable entera local max para el cálculo del máximo de tres números
enteros. La instrucción de retorno a su punto de referencia, devuelve el valor que contiene la variable
max.
Ejercicio 2 Código en C++
#include<iostream>
En el siguiente ejemplo se muestra un void intercambio(int);
using namespace std;
programa, donde se utilizan  
procedimientos para imprimir int main()
{
resultados: int a;
cout<<"Entre UN NUMERO ENTRE 10 Y 99: "<<endl;
Programa que intercambia los dígitos cin>>a;
if (a>=10 && a<=99)
para números entre 10 y 99 utiliza un intercambio(a);
procedimiento para imprimir else
cout<<"\n DATO INVALIDO: ";
cout<<"\n FIN DEL PROGRAMA ";
system("pause");
return 0;
}
void intercambio(int x)
{
int z, y;
z=x%10;
y=x-z;
y=y/10;
cout<<x<<"invertido es: "<<z*10+y;
}
UNIDAD 8: FUNCIONES

Salida en C++
UNIDAD 8: FUNCIONES

Como el prototipo de la función intercambio inicia con void, indica que no


hay retorno de valor en esta función o procedimiento; así mismo, se le
declara un parámetro de tipo entero.
 
En caso de que se cumpla la condición se hace el llamado a la función
intercambio, con el argumento a, de lo contrario cuando no se cumple la
condición llama el flujo de salida: DATO INVALIDO.
 
En la definición del procedimiento, se encuentra el encabezado void, el
nombre de la función y el argumento, así esta función recibe el valor en el
parámetro x. La Instrucción de retorno es sin parámetros.
Ejercicio 3: Programa de Juegos de Azar
#include<iostream>
#include<time.h>
#include<stdlib.h>
int ALEATORIO(int);
using namespace std;
int main() {
int n,a,A=0,b,c,opcion=1;
while (opcion!=9) {
cout<<endl<<"===================== "<<endl<<endl;
cout<<" CASINO "<<endl<<endl;
cout<<"1. Cara o Sello"<<endl;
cout<<"2. Juego del Dado"<<endl;
cout<<"3. Numero magico"<<endl;
cout<<"oprima la tecla 9 para salir del programa"<<endl<<endl;
cout<<"seleccione la opcion:";
cin>>opcion;
switch(opcion) {
case 1:
n=2;
cout<<"Elija 1 para cara -0 para sello"<<endl;
cin>>c; a=ALEATORIO(n);
if(c==a)
cout<<"====GANO==== salio "<<a;
else
Ejercicio 3: Continuación
cout<<"====PERDIO==== salio"<<a;
break;
case 2:
n=6;
cout<<"Adivine el numero que saca el dado "<<endl;
cin>>c;
a=ALEATORIO(n);
if(c==a+1)
cout<<"====GANO==== salio "<<a+1;
else
cout<<"====PERDIO==== salio"<<a+1;
break;
case 3:
n=99;
cout<<"adivine el numero magico"<<endl;
a=ALEATORIO(n);
while(a!=c) {
A=A+1;
cin>>c;
if(a<c)
cout<<"mas pequeño"<<endl;
else
if (a>c)
Ejercicio 3: Continuación
cout<<"mas grande"<<endl;
else
cout<<"ha ganado en "<<A<<" intentos"<<endl;
break;
}
break;
case 9:
cout<<"Gracias por usar nuestros juegos "<<endl;
break;
default:
cout<<"opcion fuera del menu"<<endl;
}
 
}
system("pause");
return 0;
}
int ALEATORIO (int x) {
srand(time(NULL));
return rand()%x;
}
Salida en C++

La función generará los números aleatorios, necesarios para cada uno de


los juegos. El programa se desarrolla mediante un menú de opciones que
hace en cada juego la llamada a la función.
UNIDAD 8: FUNCIONES
RESUMEN
 
 El lenguaje de Programación C++ permite realizar programas estructurados o
modulares, con el uso de funciones.

 Las funciones de usuario es un conjunto de instrucciones que cumple con una


labor específica, que puede ser utilizada una o varias veces en el programa.

 Los programas en C++ poseen varios tipos de funciones, unas predefinidas


por el lenguaje como la función main, y funciones de biblioteca y otras
funciones definidas por el programador.

 Las funciones no se pueden anidar, esto significa que una función no se


puede declarar dentro de otra función.
UNIDAD 8: FUNCIONES
RESUMEN
 
 Para utilizar funciones en un programa, se sugiere seguir estos pasos: Que la
función se defina antes de su uso (prototipo), que se haga la llamada de la
función y finalmente que se defina o escriba la función (estructura).

 La estructura de una función se puede escribir antes o después de la función


main().

 El llamado a una función se realiza mediante su nombre y los argumentos


que proporcionan la información necesaria, para llevar a cabo la tarea
designada.

 Un procedimiento a diferencia de las funciones, no devuelve valores, por lo


tanto inician con la palabra void.
UNIDAD 8: FUNCIONES
RESUMEN
 
 Los procedimientos siguen las mismas reglas que las funciones: Se debe
definir antes de su uso (prototipo), se hace la llamada del procedimiento y
finalmente se define o escribe el procedimiento (estructura).

 El lenguaje de programación C++ reconoce el ámbito de una variable, es


decir, que su uso puede ser local o global, dependiendo como haya sido
declarada.

 Cuando una función tiene un parámetro por valor recibe una copia de los
valores de los argumentos.

También podría gustarte