Está en la página 1de 41

Ing.

Alexis Jurez
Ing. Emir Girn
Ing. Giovanni Ruano
2
Definicin:
Las funciones son los bloques de construccin
bsicos de C++. Dentro de ellas se da toda la
actividad del programa. La diferencia entre funcion y
procedimiento es que la funcion devuelve un valor y
el procedimiento NO.
Criterios para crearlas:
Se usa la estrategia de Dividir y Conquistar, en
otras palabras, es realizar la particin de la tarea en
subtareas ms fciles de abordar.
Todo problema se puede resolver con funciones o sin
ellas, pero su uso adecuado hace que el programa
sea ms eficiente, fcil de leer y probar.
3
1.- Facilita el diseo descendente.
2.- Los procedimientos dentro de ellas se pueden
ejecutar varias veces.
3.- Facilita la divisin de tareas.
4.- Se pueden probar individualmente
5.- Con funciones apropiadamente diseadas, es
posible ignorar como se realiza una tarea, sabiendo
qu es lo que hacen.
4
tipo : especifica el tipo de valor que devuelve la
funcin. Si no se especifica tipo, el compilador
asume que es entero (int).
lista de parmetros : es la lista de nombres de
variables separados por comas con sus tipos
asociados que reciben los valores de los argumentos
actuales de la llamada a la funcin.
tipo nombre_funcion(lista de parmetros){
cuerpo de la funcin
}
5
Fuerza la salida inmediata de la funcin en que se
encuentra.
Se puede utilizar para devolver un valor.
6
Las funciones terminan su ejecucin ya sea a travs
de la ejecucin de la ltima instruccin o utilizando la
sentencia return.
Un funcin puede retornar valor slo cuando el tipo
de retorno no es void.
Las funciones que son de tipos distintos de void
pueden ser utilizadas como operandos en otras
expresiones del lenguaje.
7
1.- Funciones diseadas para realizar
operaciones a partir de sus argumentos y
devolver un valor basado en sus clculos.
2.- Funciones que no reciben argumentos,
realizan un proceso y devuelven un valor .
3.- Funciones que no tienen argumentos ni valor
de retorno explcito, operan sobre el entorno de
variables globales o atributos del sistema
operativo.
8
Mediante la sentencia return, el programa
puede devolver un cdigo de terminacin al
proceso de llamada (Ej.: entero a Shell de
comandos en Unix).
El valor devuelto puede ser 0 que indica
terminacin normal o un valor que identifica un
error detectado por el programa.
El valor devuelto puede ser usado para
ejecucin condicional de comandos en shell en
Unix.
9
Variables Locales:
Se declaran dentro de la funcin y slo estn
disponibles durante su ejecucin.
Se crean cuando se entra en ejecucin una funcin y
se destruyen cuando se termina.
Variables globales:
Se declaran fuera de las funciones. Pueden ser
utilizadas por todas las funciones.
Existen durante toda la vida del programa.
10
Son variables locales conocidas como parmetros
formales y se utilizan como un medio para
entregarle informacin a la funcin.
Los parmetros formales reciben sus valores
iniciales desde los parmetros reales, es decir desde
los valores que se les pasan a trave de la llamada.
Ejemplo:
mai n( ) {
i mpr i meEnt er o( 5) ;
}
voi d i mpr i meEnt er o( i nt x) {
cout <<x; / * x val e 5 */
}
Parmetro real (llamada)
Parmetro formal (declaracin)
11
por valor: copia el valor de un argumento de la
llamada en el parmetro formal de la funcin. Por lo
tanto, los cambios en los parmetros de la funcin no
afectan a las variables que se usan en la llamada.
por referencia: se copia la direccin del argumento
en el parmetro. Los cambios hechos a los
parmetros afectan a las variables usadas en la
llamada a la funcin.
12
Construya un programa que calcule el
cuadrado de los 10 primeros nmeros enteros.
13
#include <stdio.h>
int cuadrado(int x){
int r;
r=x*x;
return r;
}
main(){
int i,resultado;
for (i=0;i<10;i++){
resultado = cuadrado (i);
cout<<"Cuadrado de <<i<<es..: <<resultado;
}
return 0;
}
14
Construya una funcin que calcule la suma de
los k primeros nmeros enteros impares.
15
#include <stdio.h>
int sumaImpares(-------){
------------------
return r;
}
16
Construya una funcin que realice intercambio
de los valores entre 2 variables.
Ejemplo
17
#include <stdio.h>
void intercambio(int x, int y){
int temp;
temp=x;
x=y;
y=temp;
cout<<x<<y<<temp;
}
int main(){
int a=1,b=2;
cout<<a << b;
intercambio (a,b);
cout<<a << b;
return 0;
}
18
Realizar una funcin, en el cual se ingresa un
nmero entero de varias cifras y un entero
con una posicin y se retorna el dgito de
dicha posicin.
Ejemplo:
Entrada: 987 2
Salida : 8
Ejemplo
19
#include <stdio.h>
int buscar(int x,int k){
int i,n;
if (k<=0 || x<0) return -1;
for (i=0;i<k-1;i++)
x=x/10;
return (x%10);
}
void main(){
int n,k,digito;
cout<<"Ingrese numero y posicion:<<endl;
cin>>(n);
cin>>(k);
digito=buscar(n,k);
if (digito<0) cout<<"No encontrado")
else cout<< "El digito encontrado es: <<digito;
return 0;
}
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Existen una serie de propuestas metodolgicas
orientadas a la resolucin de problemas.
Una de las ms populares es la denominada Diseo
Descendente. Otros nombres relacionados son:
Top Down
Divide y Vencers
Refinera de Soluciones
De lo general a lo especfico
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Tcnica que permite disear la solucin de un
problema con base en la modularizacin o
segmentacin.
Su enfoque es de arriba haca abajo (Top Down)
Todos los mdulos se organizan y relacionan
jerrquicamente como en un organigrama.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
El proceso de modularizacin
consiste en hacer una
abstraccin de un problema.
Consiste desmenuzar o
dividir el problema en partes
pequeas y simples
denominadas mdulos.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Un mdulo es un segmento, rutina, subrutina,
subprograma que puede ser definido dentro de un
programa.
Ejecuta una tarea especfica.
Puede ser llamado o invocado desde el programa
principal cuando se requiera.
En C++ se manejan dos tipos: funciones y
procedimientos.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Las principales razones de la estructura de
mdulos se deben a que los programas son
ms fciles de:
Escribir,
Comprender,
Modificar,
De Usar.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Esta tcnica considera que la solucin final a
un problema es el producto de varias
aproximaciones realizadas consecutivamente.
Se le puede llamar Solucin de Problemas por
aproximacin.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
El algoritmo principal es el nivel ms alto en la
particin de una solucin.
Es una solucin macro.
Es la expresin de la solucin en trminos de otras
soluciones parciales que sern detalladas en
subalgoritmos.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Son un conjunto de instrucciones que resuelven un
problema especfico.
Tambin se les llama rutinas: procedimientos y
funciones.
La uso de subalgoritmos permite la reutilizacin de
cdigo.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Suponga que se desea sumar dos nmeros
enteros tres veces seguidas en un mismo
algoritmo. Disee convenientemente una
solucin a este problema.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
INICIO
a, b a, b
a, b
cSuma(a,b)
cSuma(a,b)
cSuma(a,b)
FIN
Suma(x,y)
Resultadox+y
Retornar(Resultado)
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Los subalgoritmos ms efectivos son aquellos que
son independientes.
Para que los subalgoritmos sean independientes se
requiere que stos pueden comunicarse
adecuadamente con otros algoritmos y
subalgoritmos.
Dicha comunicacin se logra por medio del uso de
parmetros.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Los parmetros que se declaran en el encabezado de un
subalgoritmo se llaman parmetros formales.
A los valores que se pasan como parmetros a un
subalgoritmo, en el momento de una llamada al mismo, se
denominan parmetros actuales.
Los parmetros de tipo formal pueden subdividirse en dos
tipos bsicos:
Parmetros por valor
Parmetros por referencia.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Cuando se declara una variable, se reserva en la
memoria un espacio adecuado para el tipo de dato que
albergar.
Este espacio tiene una direccin fsica y se le etiqueta
con el identificador de la variable declarada.
Al momento de recibir los valores por teclado y llamar
al procedimiento y pasar los parmetros, stos pasan
por valor.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Pasar los parmetros por valor
significa que los valores de las
variables enviadas son copiados a
otra direccin de memoria con la
etiqueta indicada en el parmetro
formal.
Al hablar de parmetros por
referencia, estamos pasando la
direccin, o referencia, en donde
se encuentra el valor.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Los cambios realizados en un parmetro por valor
son vlidos nicamente en el subalgortmo donde
se realizan.
Un parmetro por referencia permite cambios
permanentes en la variable original.
El uso de determinados tipos de parmetros
depende de la aplicacin que estemos realizando.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Una funcin que se llama a s misma se denomina recursiva.
Cuando la solucin de un problema se puede expresar en
trminos de la resolucin de un problema de la misma
naturaleza, aunque de menor complejidad se denomina
recursiva.
Slo tenemos que conocer la solucin no recursiva para algn
caso sencillo (denominado caso base) y hacer que la divisin
de nuestro problema acabe recurriendo a los casos base que
hayamos definido.
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Por ejemplo:
Asumimos tenemos resuelto el
problema ms simple para
resolver el problema ms
complejo (sin tener que definir la
secuencia exacta de pasos
necesarios para resolver el
problema).
ALGORITMOS UMG - REU
Ing. Alexis A. J urez
Son un conjunto de instrucciones que resuelven un
problema especfico.
Tambin se les llama rutinas: procedimientos y
funciones.
La uso de subalgoritmos permite la reutilizacin de
cdigo.

También podría gustarte