Está en la página 1de 15

FUNCIONES

 ¿Qué es una función?


 Razones para el uso de funciones
 Declaración/Definición de Funciones
 Estructura de un programa
 Ámbito de variables
¿Qué es una función?

Es un grupo de instrucciones que conforman


un programa mas pequeño y hace parte del
programa principal que la invoca cuantas
veces sea necesario para realizar una
determinada acción o tarea y retornar un valor .

También se le denomina subprograma,


subrutina, procedimiento, módulo, etc..
Razones para el uso de funciones

1. Reutilización de código.
No se repiten instrucciones dentro del
programa y se usan cuantas veces sea
necesario.

2. Organizar y simplificar.
Al dividir el programa en secciones más
pequeñas hay claridad en el proyecto y su
depuración es más sencilla.
Declaración y definición de funciones -1
Las provistas por el
Las funciones sistema operativo.
pueden ser
suministradas al
usuario. Las provistas por el
lenguaje C++.
Funciones de librería
..ó también las
funciones..

Para crear y usar una función se debe


declarar o informar al compilador los datos
referentes a ella. Esta información incluye
..son escritas por el nombre de la función, datos de entrada de
usuario. la función y datos sobre el resultados del
procesamiento.

La definición de la función la constituyen la


declaración de la función y el cuerpo de la
función.
Declaración y definición de funciones -2
Parametros
Datos

PROGRAMA
FUNCION
<tipo> <nombre> (parámetros formales)

ValorResultados
retorno

tipo – Especifica el tipo de variable que devuelve la función (Valor


Retorno).Se puede definir cualquier tipo de dato que posea el lenguaje. Si no
se especifica se asume tipo int.
nombre – Nombre de la función.
parámetros formales – Son las variables que se declaran en la definición de
la función y deben corresponder con los valores que recibe la función cada
vez que se invoca.
<tipo> <nombre> (parámetros formales)
{
<cuerpo de la función> Los parámetros se deben declarar o sea
que se debe indicar el tipo de variable que
}
se esta pasando a la función, esta
declaración va en la lista de argumentos:

int sumar(int x, int y) int sumar(int x, int y) int par(int x)


{ int z; { { if(x%2) return 1;
z=x+y return (x + y); else return 0;
return (z); } }
}

• return (devolver) termina la función devolviendo el control al programa que la


invoco y retorna un valor acorde con el tipo elegido al declarar la función.
• El valor devuelto puede ser una variable, una constante o una expresión.
• Una función puede tener varios o ningún “return”, en este ultimo caso
terminará cuando se ejecute la ultima instrucción y devuelve el valor cero (0).
• Cuando no se devuelve nada, se indica el tipo del valor de retorno, como void.
#include<iostream.h> PROTOTIPO
#include<conio.h> Ejemplo
int may_abc(int A, int B, int C);
void main()
{ int X,Y,Z,K;
La función aparece en el
cout<<"Valor X= “, cin>>X;
cout<<"Valor Y= “, cin>>Y; PROTOTIPO, en la LLAMADA
cout<<"Valor Z= “, cin>>Z; y en la DEFINICION.
K=may_abc(X,Y,Z); LLAMADA Se denominan parámetros
cout<<“El mayor es ” los tipos declarados en el
if(K==X) cout<<“X”; prototipo (que deben co-
else if(K==Y) cout<<“Y”; rresponder con los decla-
else cout<<“Z”; DEFINICION rados en la definición).
}
Cuando se realiza una
int may_abc(int A, int B, int C)
llamada a la función, los
{ int MAY; "valores" pasados se
if(A>B) denominan argumentos.
{ if(A>C) MAY=A;
else MAY=C; Un argumento representa el
} valor que se transfiere a un
else parámetro del procedi-
{ if(B>C)MAY=B; miento cuando se llama al
else MAY=C;
}
procedimiento.
return(MAY);
}
Ámbito de las variables
include

int M, N, P;
global Variables Locales. Estas se declaran
dentro de la función y solo existen
main
mientras se esta ejecutando la función
{ int i; y desparecen cuando la función
termina. Estas variables son ocultas
para otra función diferente a donde
están definidas.
Ejemplo i, j, k
} Variables Globales. Se definen fuera
de cualquier función y son accesibles
Fa()
{ int i; desde todas las funciones del modulo.
Ejemplo: M, N, P;
}

Fb()
{ int j,k;

}
include Ejecución del programa
global

void main(void) Fa()


main { Inst 1 { Inst 1
Inst 2 Inst 2
Fa() }
ccc 3
Inst
Fb()
Inst 4 Fb()
Inst 5 { Inst 1
Inst 6 Inst 2
Fa() }
inst 7
Fa() }

Fb()

Fn()
Ejercicio No.1
Dados los datos que aparecen en la tabla siguiente y que contiene nombre, cédula y
la nota de cuatro evaluaciones, para 10 estudiantes, se pide:
 Promedio por estudiante
 Promedio por evaluación
 Buscar y mostrar alumno con mejor promedio
Elaborar un programa en C++ usando arreglos y funciones

nombre cedula n[1] n[2] n[3] n[4] prom


Se van a crear dos(2) funciones dentro del proceso de datos.
Una para hallar los promedios por estudiante y por evaluación.
La otra función para buscar el mayor.

Procesar Notas

Definir/Declarar Procesar Mostrar


Leer Datos
Variables Datos resultados

Calcular Calcular Buscar Máximo


Promedio x Est Promedio x Eval Promedio
inicio
La estructura del programa será
la siguiente:

Declarar variables

Calcular Promedio
"Calcular_ Promedio"
(por estudiante)

Calcular Promedio
(por evaluación)

Buscar Promedio
Maximo

Mostrar Tabla fin


inicio

Declarar variables

Llamar "Calcular_ Promedio"


Calcular Promedio

Llamar "Calcular_ Promedio"

Buscar Promedio
Máximo

Mostrar Tabla fin


inicio

Declarar variables

Llamar "Calcular_ Promedio"


Calcular Promedio

Llamar "Calcular_ Promedio"

Buscar Promedio
Máximo

Mostrar Tabla fin


#include<iostream.h> //MOSTRAR RESULTADOS
#include<conio.h> for(i=0;i<n_est;i++)
#include<iomanip.h> { cout<<setw(15)<<nombre[i];
int n_est=10; cout<<setw(8)<<ced[i];
int n_eva=4; for(j=0;j<n_eva;j++)
float CalcularPromedio(float V[],int n); { cout<<setw(6)<<nota[i][j];
int BuscaMaximo(float V[]); }
void main(void) cout<<setw(10)<<pro[i]<<endl;
{ int i,j,ced_may,imax; }
char n_may[15]; cout<<"Promedios por evaluacion";
float V[10]; for(i=0;i<4;i++)
float nota[10][4]={{12,12,13,12}, { cout<<setw(6)<<pro_eva[i];
{10,12,10,12},{10,12,15,10}, }
{10,10,13,11},{8,12,10,9}, cout<<endl<<"MAYOR PROMEDIO = ";
{11,12,11,12},{15,15,15,12}, cout<<pro[imax]<<endl;
{13,12,13,10},{11,11,11,11}, cout<<"de "<<nombre[imax]<<" C.I. ";
{12,12,12,12}}; cout<<ced[imax];
int ced[10]={789,123,555,666,987, getch();
222,111,333,444,212}; }
float pro[10],pro_eva[4],sum,may; float CalcularPromedio(float V[],int n)
char nombre[10][15]={"ANA GIL", { int i;
"BETY PAZ","JUAN LARA","ZOILA PIÑA", float sum=0;
"SARA BAEZ","PEDRO SOSA","SOL MORA", for(i=0;i<n;i++)
"RAUL ROCA","RENE PEREZ", { sum=sum+V[i];
"JUAN BRAVO"}; }
//PROM X ESTUDIANTE return(sum/n);
for(i=0;i<n_est;i++) }
{ for(j=0;j<n_eva;j++) V[j]=nota[i][j]; int BuscaMaximo(float V[])
pro[i]=CalcularPromedio(V,n_eva); { float may=0;
} int i,imax;
//PROM X EVALUACION for(i=0;i<10;i++)
for(i=0;i<n_eva;i++) { if(V[i]>may)
{ for(j=0;j<n_est;j++) V[j]=nota[j][i]; { may=V[i];
pro_eva[i]=CalcularPromedio(V,n_est); imax=i;
} }
//BUSQUEDA MAYOR }
imax=BuscaMaximo(pro); return imax;
}

También podría gustarte