Está en la página 1de 41

Ing.

Alexis Jurez
Ing. Emir Girn
Ing. Giovanni Ruano

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.
2

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.

tipo nombre_funcion(lista de parmetros){


cuerpo de la funcin
}

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.

Fuerza la salida inmediata de la funcin en que se


encuentra.
Se puede utilizar para devolver un valor.

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.

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.

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.
8

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.

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:
Parmetro real (llamada)
main( ){
Parmetro formal (declaracin)
imprimeEntero(5);
}
void imprimeEntero(int x){
cout<<x; /* x vale 5 */
}
10

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.

11

Construya un programa que calcule el


cuadrado de los 10 primeros nmeros enteros.

12

#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;
}
13

Construya una funcin que calcule la suma de


los k primeros nmeros enteros impares.

14

#include <stdio.h>
int sumaImpares(-------){
-----------------return r;
}

15

Ejemplo

Construya una funcin que realice intercambio


de los valores entre 2 variables.

16

#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;
}
17

Ejemplo
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

18

#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;
}
19

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. Jurez

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. Jurez

ALGORITMOS UMG - REU


Ing. Alexis A. Jurez

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. Jurez

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. Jurez

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. Jurez

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. Jurez

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. Jurez

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. Jurez

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. Jurez

INICIO

a, b

a, b

Suma(x,y)

cSuma(a,b)

cSuma(a,b)

Resultadox+y

a, b

cSuma(a,b)

FIN

Retornar(Resultado

ALGORITMOS UMG - REU


Ing. Alexis A. Jurez

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. Jurez

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. Jurez

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. Jurez

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. Jurez

ALGORITMOS UMG - REU


Ing. Alexis A. Jurez

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. Jurez

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. Jurez

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. Jurez

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. Jurez

También podría gustarte