You are on page 1of 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. 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

Criterios para crearlas:

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. Se declaran fuera de las funciones. Pueden ser utilizadas por todas las funciones. Existen durante toda la vida del programa.

Variables globales:

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

cSuma(a,b)

a, b

cSuma(a,b)

a, b

cSuma(a,b)

FIN

Suma(x,y)

Resultadox+y

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

You might also like