Sie sind auf Seite 1von 41

LENGUAJE DE PROGRAMACION C++ CAPITULO V I I

Funciones

FUNCIONES Contenido
Introduccin Funciones Predefinidas Funciones definidas por el usuario Declaracin y definicin de Funciones Lista de parmetros y sus tipos de datos Variables locales y globales Parmetros por defecto, valor Funciones que llaman a funciones Funciones recursivas

INTRODUCCION
Con la finalidad de facilitar la programacin de aplicaciones con un gran nmero de sentencias y/o Instrucciones, utilizaremos la programacin modular. Dicha programacin consiste en dividir un programa en unidades de menor tamao, donde cada fragmento realiza una tarea explcita y nica. Cada uno de esos fragmentos recibe el nombre de mdulo, en el lenguaje de programacin C++ los mdulos se llaman funciones. Dichos mdulos nos permite hacer pequeas porciones de cdigo reutilizable, que pueden ser llamados desde el programa principal sin necesidad de volver a repetirlos.

PROGRAMACION MODULAR

FUNCIONES
El funcionamiento del programa Modular, se basa en que el Programa Principal llama, a una funcin por su nombre, la funcin procesa sus instrucciones y luego devuelve al programa principal la tarea realizada por la funcin. nombre de la funcin (datos transmitidos a la funcin)

Esto identifica a la funcin llamada

Esto transmite datos a la funcin

FUNCIONES
void main() {void Lectura (m); float prom(); void reporte() }

Programa Principal

llama

return void Lectura (int a) { <instrucciones>; }

float prom() {<instrucciones>; Return }


FUNCIONES

void reporte () {<instrucciones>; }

FUNCIONES
Funciones Predefinidas
El lenguaje de programacin borland C++ cuenta con bibliotecas de funciones predefinidas que podemos utilizar para la construccin de nuestros programas. La funcin sin se usa para determinar el seno de un nmero

valor1 = sin(3.14159);
valor2 = sin(x) - cos(y); valor3 = sin(theta)/(sin(delta) - sin(delta-theta));

Funciones Matemticas Predefinidas


FUNCION TIPO PROPOSITO ARCHIVO

sqrt(d) pow(d1,d2) abs(d) labs(d) fabs(d) ceil(d) floor(d)

double double int long double double double

Raz cuadrada de d Potencia de d1^d2 Valor absoluto de int Valor absoluto de long Valor absoluto de double Techo redondeado hacia arriba Techo redondeado hacia abajo

math.h math.h stdlib.h stdlib.h math.h math.h math.h

Funciones de Biblioteca usadas en C++


FUNCION TIPO PROPOSITO

sin(d) acos(d) asin(d) atan(d) atan(d1,d2) atof(s) atoi(s) atol(s) getchar() putchar(c) tolower(c) toupper(c)

double double double double double double int long int int int int

devuelve el seno de d devuelve el arco coseno de d devuelve el arco seno de d devuelve la arco tangente de d devuelve la arco tangente de d1/d2 convierte la cadena s a una cantidad en doble precisin convierte la cadena s a un entero
convierte la cadena s a un entero largo

math.h math.h math.h math.h math.h stdlib.h stdlib.h stdlib.h stdio.h stdio.h ctype.h ctype.h

lee un carcter desde el dispositivo de entrada estndar escribe un carcter en el dispositivo de salida estndar convierte una letra a minscula convierte una letra a mayscula

FUNCIONES DEFINIDAS POR EL USUARIO


Una funcin es un mdulo de programa (segmento de instrucciones) que realiza una tarea especfica. Si la funcin utiliza argumentos, debe declarar variables que acepten los valores de los argumentos. Dichas variables son llamadas parmetros de funcin y son variables locales a la funcin. Una funcin retorna un valor al mdulo que lo llama
Un nombre de la funcin inicia con una letra o un subrayado ( _ ) y contiene letras, nmeros o subrayado.

int mayor (int a, int b, int c);

ESTRUCTURA DE UN PROGRAMA PRINCIPAL Y SUS MODULOS (FUNCIONES)

1. DECLARACIONES DE LIBRERIA

#include <iostream.h>
2. DECLARACIONES DE PROTOTIPO DE FUNCIONES
Tipo_dato_devuelto Nombre_ funcin (lista de parmetros);
DECLARACIONES DE PROTOTIPO DE PROCEDIMIENTOS

Void Nombre_ procedimiento (lista de parmentros);

3. DECLARACION DE VARIABLES GLOBALES 4. DECLARACION DE CONSTANTES GLOBALES

FUNCIONES DEFINIDAS POR EL USUARIO


5. DEFINICION DE LAS FUNCIONES
Tipo_dato_devuelto Nombre_ funcin (lista de parmetros)

{ }

<declaracin de variables locales>; <cuerpo de la funcin>;

6. PROGRAMA PRINCIPAL
Void main() { // llamadas a las funciones por su nombre }
*programa principal se define a continuacin de los prototipos de funciones.

FUNCIONES DEFINIDAS POR EL USUARIO


DECLARACION DE UNA FUNCION: Los Prototipos
Tipo_dato_devuelto Nombre_ funcin (lista de parmetros);

int mayor (int a, int b, int c);

Se declara una funcin para informar al compilador de los atributos de la funcin, que ser definida posteriormente en el programa.

FUNCIONES DEFINIDAS POR EL USUARIO


La declaracin de una funcin consiste en escribir el prototipo de la funcin antes de que dicha funcin sea definida en el programa. Un prototipo de funcin informa al compilador: el tipo de la variable que retorna la funcin, nmero de parmetros que la funcin espera recibir, los tipos de parmetros (no es necesario el nombre de los parmetros) y el orden en el cual se esperan dichos parmetros.
El compilador utiliza los prototipos para verificar las llamadas de funcin.

FUNCIONES DEFINIDAS POR EL USUARIO


Se denomina parmetros a las variables declarados en el prototipo y debe corresponder con la definicin de la funcin en el programa. Los parmetros: son los datos de entrada que necesita la funcin para realizar sus clculos. Los parmetros estn separados por comas y se declaran igual que las variables (tipo nombre). A continuacin de la cabecera se encuentra el cuerpo de la funcin que est entre un par de llaves ( {} ).

FUNCIONES DEFINIDAS POR EL USUARIO


DEFINICION DE UNA FUNCION:

Tipo_dato_devuelto Nombre_ funcin (lista de parmetros) { variables locales <cuerpo de la funcin>; }

Para definir una funcin debemos escribir el conjunto de instrucciones que define la funcin.

FUNCIONES DEFINIDAS POR EL USUARIO


La definicin de una funcin es en s la funcin misma, y est compuesta por:
El encabezado de la funcin Las variables locales y
que debe ser idntico al prototipo de la funcin pero en ste caso no utilizar el punto y coma (;),

El cuerpo de la funcin
La instruccin return forma parte del cuerpo de la funcin y tiene una doble finalidad:
a)Devolver un valor

b)Provocar la salida inmediata de la funcin que la contiene, devolviendo el control de la ejecucin del programa a la lnea de cdigo que llamo a la funcin.

FUNCIONES DEFINIDAS POR EL USUARIO


El Tipo_dato_devuelto: Indica el tipo de valor que la funcin devolver mediante el uso de return, su valor puede ser de cualquier tipo vlido (constante, variable o una expresin). Si no se especifica su valor, entonces la computadora asume por defecto que la funcin devolver un resultado entero. Lista de parmetros: Lista de nombres de variables separadas por comas en la que cada variable va asociada con su tipo. No siempre se debe incluir parmetros en una funcin, la lista de parmetros puede estar vaca.

FUNCIONES DEFINIDAS POR EL USUARIO


float prom( int num1, int num2) // cabecera de funcion { float promed; // declaracin de variable promed = (num1 +num2) / 2.0; return(promed); // valor devuelto } Void main() { int a=20 , b=50 ; float respuesta; respuesta = prom(a,b); gotoxy(5,20); cout<<promedio=<<respuesta; getch(); }

FUNCIONES DEFINIDAS POR EL USUARIO


Una funcin tiene un nico nombre, al utilizar este nombre en otras partes del programa se puede ejecutar los enunciados contenidos en la funcin. A esto se conoce como llamar a la funcin. Una funcin puede ser llamada desde otra funcin, esta tcnica se define como el anidamiento de funciones. Para llamar a una funcin se escribe su nombre seguido por los valores o parmetros de entrada que espera la funcin, estos parmetros pasados a la funcin deben coincidir en nmero, tipo y orden con los parmetros indicados en el prototipo de la funcin. Una funcin es independiente, es decir una funcin puede ejecutar sus tareas sin interferencia de otras partes del programa.

FUNCIONES DEFINIDAS POR EL USUARIO


Una funcin devuelve un valor al programa que lo llam. Cundo un programa llama a una funcin se ejecutan los enunciados contenidos en sta y devuelve un valor al programa que lo llam.

Las funciones devuelven tipos de datos simple: entero, real, carcter o lgico.
Tipos devueltos: float, int, double, char, etc.

int factorial (int n)


La funcin factorial (int n), devuelve un tipo de dato entero.

FUNCIONES DEFINIDAS POR EL USUARIO


Funciones con lista de parmetros y su valor devuelto
Declaracin de la funcin
Tipo_dato_devuelto Nombre_ funcin (lista de parmetros);

Definicin de la funcin
Tipo_dato_devuelto Nombre_ funcin (lista de parmetro) { <instrucciones>; return; }

*Lista de parmentros, puede ser: un dato simple, un vector

o matriz, un puntero, cadena, etc.

FUNCIONES DEFINIDAS POR EL USUARIO


Funciones sin lista de parmetros y su valor devuelto
Declaracin de la funcin
Tipo_dato_devuelto Nombre_ funcin ( ); // Sin lista de parmetros

Definicin de la funcin
Tipo_dato_devuelto Nombre_ funcin ( ) { <instrucciones>; return; }

FUNCIONES DEFINIDAS POR EL USUARIO

Problema 1:
Disear un programa que contenga dos funciones:
Resta (param1,param2) : permite calcular la resta de 2 nmeros
enteros

Multiplica (parem1,param2) : permite calcular el producto de dos


nmeros enteros

#include <iostream.h> #include <conio.h> void resta (int, int); int multiplica (int, int); // Prototipo de funciones int num1, num2, resultado; void resta ( int a, int b) { int restan; // variable local restan = a-b; gotoxy(3,7); cout<<"La resta de "<<a<<"-"<<b<< es ="<<restan<<endl;} int multiplica (int a, int b) { int producto; // variable local producto = a*b; return producto; } void main() // Funcion principal { gotoxy(3,2); cout<< "Ingresa dos numeros:" <<endl; gotoxy(3,4); cout<< "Ingrese numero 1 ="; cin>>num1; gotoxy(3,5); cout<< "Ingrese numero 2 ="; cin>>num2; resta (num1, num2); // Llama a la Funcion resta resultado = multiplica (num1,num2); gotoxy(3,9);// Llama a la Funcion resultado cout<<"El producto de "<<num1<< * "<<num2<< es ="<<resultado<<endl; getch();}

FUNCIONES DEFINIDAS POR EL USUARIO


Paso de parmetros por valor y por referencia:
El lenguaje de programacin C++ proporciona dos mtodos para pasar variables (parmetro) entre funciones: a) Parmetros por valor b) Parmetros por referencia Paso por Valor
La forma en que hemos declarado y pasado los parmetros de las funciones hasta ahora es la que normalmente se conoce como "por valor. Cuando los argumentos de llamada se pasan por valor, se efecta una copia del valor argumento y esta se pasa a la funcin llamada. Es decir el parmetro de la funcin slo toma una copia del argumento.

FUNCIONES DEFINIDAS POR EL USUARIO


Paso de parmetros por referencia
Procedimiento que permite modificar el valor de las variables.
Una variable consta, adems de su nombre, tipo y valor, de una direccin de memoria en la que se ubica (valor numrico). Para extraer la direccin de memoria a una variable se utiliza el operador & antes de su nombre. Para extraer el contenido de una direccin de memoria, se usa el operador * antes de su nombre. En la cabecera de la funcin se especifica cada parmetro por referencia con el operador * . Dentro de la funcin, cambiaremos el contenido de cada variable con * , para llamar a la funcin usaremos el operador & para extraer la direccin de las variables,

FUNCIONES DEFINIDAS POR EL USUARIO Problema 2:


Disear un programa que permita leer un nmero entero y luego este debe pasar como parmetro en una funcin sumar() y transformarlo sumando la unidad al valor ingresado.

Favor Ingrese un Numero : 30


Nuevo valor 31

#include <iostream.h> #include <conio.h> void sumar (int*dato) { *dato= *dato + 1; return;}
void main (void) {int valor_inicial; gotoxy (3,3); cout<<Favor Ingrese un nmero: ; cin>>valor_inicial; sumar(&valor_inicial); gotoxy(4,5); cout<<Nuevo Valor<<valor_inicial; getch(); }

FUNCIONES
Paso de parmetros por defecto:
Las funciones en C++ pueden establecer valores por omisin o ausencia (por defecto) para los parmetros.
Se pueden asignar argumentos por defecto a los parmetros de una funcin. Cuando se omite el argumento de un parmetro que es un argumento por defecto, se utiliza automticamente este. Si se pasan valores a los argumentos omitidos, se utiliza ese valor; si no se pasa un valor a un parmetro opcional, se utiliza el valor por defecto como argumento. El valor por defecto debe ser una expresin constante.

FUNCIONES
Paso de parmetros por defecto:
void muestra(int fila, int columna, int numero, char c = *); muestra (4,0,40) bien muestra (4,0,40, # )
* el argumento explcito (# anula el carcter por omisin)

void funcion1(int a, int b=0, int c=1); // Legal

funcion1(12, 10); // el valor para "c" es 1 funcion1(12); // los valores para "b" y "c" son 0 y 1 funcion1(); // el valor para "a" es obligatorio

FUNCIONES DEFINIDAS POR EL USUARIO Problema 3:


Disear un programa usando funciones que permita calcular la suma acumulada de la serie: = + 2/3 + + ..+ n/(n+1)

El usuario ingresa el nmero de trminos de la serie a sumar.

#include <iostream.h> #include <conio.h> void leer(); float sumatoria (); void imprimir(); int n; void leer ( ) gotoxy(2,3); cout<<Ingrese numero de terminos de la serie: ; cin>>n;} float sumatoria ( ) { int i =1; // variable local float s = 0; do { s = S + float (i)/(i+1); i++;} while (i<=n); return (s);} void imprimir ( ) {gotoxy(2,5);cout<<La suma es "<<sumatoria()<<endl;} void main() // Funcion principal { leer ( ); // Llama a la Funcion leer sumatoria ( ); // Llama a la Funcion sumatoria imprimir ( ); //Llama a la funcion imprimir getch();}

FUNCIONES Variables locales y globales


C++ permite declarar variables en cualquier parte del cdigo fuente.
Un identificador es local, cuando se define dentro del cuerpo de una funcin, a este tipo de variable se le denomina locales ya que son tiles dentro del cuerpo de la funcin.

Un identificador es global, cuando estn definidos fuera del cuerpo de cualquier funcin y se declara al principio del programa. Generalmente pueden estar referidas por cualquier funcin en el programa.

FUNCIONES Variables locales y globales


Las variables global, estn disponibles para cualquier funcin del programa, incluyendo a main ().

Las variables locales que tienen el mismo nombre que las variables globales no cambian el valor de las variables globales. Las variables globales, se inicializan automticamente en 0 (cero), las locales no.
*Evitar el uso de variables globales y locales similares.

FUNCIONES Recursividad
Una funcin es recursiva cuando se llama as misma directamente o indirectamente.

La Recursividad directa es el proceso por el cual una funcin se llama as misma desde su propio cuerpo.
La Recursividad indirecta implica ms de una funcin. Se define un programa en trminos recursivos, como una serie de pasos bsicos finito.

FUNCIONES
Recursividad
Durante el proceso de compilacin, es importante resaltar en la recursividad que cuando una funcin se llama as misma, una nueva copia de sta funcin es la que se ejecuta.

Un proceso de recursividad debe tener una condicin para terminar de ejecutar su proceso para generar resultados, de lo contrario nunca terminara produciendo un bucle indefinido.

FUNCIONES

Problema 4:
Disear un programa que permita ingresar la cantidad de nmeros enteros y luego para cada nmero ingresado, mostrar su cantidad de dgitos.

Das könnte Ihnen auch gefallen