Sie sind auf Seite 1von 19

Universidad Tcnica de Ambato

Facultad de Ciencias Humanas y de la Educacin Gabriel Flores

Funciones

Funciones con Vectores y Matrices en C++

Qu son?Para qu sirven?
Son un grupo de sentencias bajo el mismo nombre que realizan una tarea especfica. Una funcin sirve para que un programa sea mucho ms fcil de hacer pues se hace un proceso en un subprograma y llamarlo las veces que sean necesarias para el programa genera.

Diferencia entre El Programa y las Funciones


Las funciones y los programas se parecen mucho, pero difieren:

Los programas son usados por un usuario externo. Las funciones son utilizadas por un programador. El usuario del programa Hola no conoce que es la funcin printf. El programador que usa printf no siempre conocer explcitamente como sta hace para mostrar informacin en pantalla. El programador que escribi printf conoce exactamente su funcionamiento interno.

Conceptos Bsicos
Funcin

Grupo de sentencias bajo el mismo nombre que realizan una tarea especfica.
Llamada a una funcin

Ejecuta el grupo de sentencias de una funcin.


Retorno

Una vez llamada la funcin, esta hace su trabajo, y regresa al mismo punto donde fue llamada.

Funciones
Vamos a conocer tres cosas muy importantes sobre las funciones:
Cmo se declaran? Cmo se implementan?, y Cmo se usan?

Declaracin de Funciones
De forma similar a las variables, las funciones deben ser declaradas: La forma de declarar una funcin es siguiendo la forma predefinida:
tipoDatoRetorno nombreFuncion(lista parmetros);

Por ejemplo:
int potencia(int base, int exponente); float farenheitACelsius(double celsius);

Implementacin de Funciones
int elevacion(int base, int exponente) { procesos; }

La primera lnea se escribe igual que en la declaracin, pero sin el punto y coma.

float parimpar(par) { procesos; }

Entre llaves se escriben las sentencias que ejecutan lo que debe realizar la funcin

Cmo Retornar?
Si la funcin debe generar un valor, lo retornar usando la sentencia return dentro del cuerpo de la funcin. La forma de usarla es: return (variable o expresin que se debe retornar); Esto especifica que la funcin debe terminar, retornando el valor calculado. Hay funciones que no retornan datos, en este caso, se puede usar return, pero sin mencionar una expresin. return;

Uso de Funciones
Como las funciones siempre retornan un valor, el uso de una funcin consiste en utilizar el valor de retorno. Se lo puede hacer de dos formas:
Almacenar el valor de retorno en una variable que deber ser del mismo tipo de dato que el tipo de dato de retorno de la funcin. Utilizar el valor de retorno en una expresin.

Uso de las Funciones


Ejemplo:
void main( ) { int x; . x = elevacion(a,b); } void main( ) { . printf(%d, elevacon(a,b)); } void main( ) { float c; . c = tabla(f); } void main( ) { . printf(%f, tabla(f)); }

Ejemplo:
Generacin de Nmeros Aleatorios

Generacin de Nmeros Aleatorios


Funcin rand
Cargar <stdlib.h> Returnar nmeros aleatorios entre 0 y RAND_MAX (por lo menos 32767)
i = rand();

Nmeros Pseudoaleatorios
Secuencia pre-establecida de nmeros aleatorios La misma secuencia para cada llamada a la funcin

Para obtener un nmero aleatorio entre 1 y n:


1 + ( rand() % n );

rand() % n returna un nmero entre 0 y n - 1 Agregando 1 genera nmeros aleatorios entre 1 y n

1 + ( rand() % 6); //Nmero entre 1 y 6

Factorial de un nmero
#include <stdio.h> #include <simpio.h> //Declaracin de funciones int Factorial (int n); void main() { int i; for (i = 0; i < 10; i ++) printf( %d , Factorial(i)); } int Factorial (int n) { int fact, i; fact = 1; for(i = 1; i <=n; i++) fact = fact * i; return (fact); }

Pasos para llamar a una Funcin


Se evalan las expresiones enviadas como argumentos. El valor de cada argumento es copiado en orden en cada parmetro correspondiente de la funcin llamada. Se ejecutan una a una las sentencias del cuerpo de la funcin hasta que aparece la sentencia return. Se evala la expresin de la sentencia return. El programa que llam a la funcin contina, remplazando en el lugar de la llamada, el valor retornado
#include <stdio.h> int Factorial(int n); void main() { int i; for (i = 0; i < 10; i ++) { printf( %d , Factorial(i)); } }

1 2 5

Factorial(5) Factorial(2) Factorial(1) Factorial(0)


int Factorial(int n) { int fact, i; fact = 1; for(i = 1; i <=n; i++) { fact = fact * i; } return (fact); }

fact n 125 2 1 0

Variables Locales
En la funcin Factorial se usa una variable i, y en el programa principal se usa otra variable i, pero no parece que se usaran para lo mismo, son diferentes?. De hecho, si son diferentes. Cada funcin puede usar sus propias variables, y estas slo sern vlidas dentro de la funcin, se conocen como variables locales.
main i
La variable i es local a la funcin main

fact

Al llamar a la funcin Factorial, se crean 3 variables locales a Factorial, pueden tener cualquier nombre, en este caso: n, fact e i. Factorial Las variables locales del main aun existen, pero, no se pueden ver mientras Factorial este activa. i Cuando todo Factorial termina, retorna el 1 valor, y las variables locales al main permanecen iguales como antes de la llamada.

Funciones con Vectores y Matrices


Para programar vectores con funciones, es necesario utilizar los paso anteriores para que podamos elaborarlo de modo que para cada proceso usamos una funcin diferente si lo queremos.

Funciones con vectores


DISEE UN PROGRAMA USANDO VECTORES Y FUNCIONES QUE ME PERMITA INGRESAR N ELEMENTOS EN UN VECTOR Y ENCUENTRE LOS ELEMENTOS PARES.
#include<stdio.h> #include<conio.h> #include<stdlib.h> int n,vt[24],v[24],i,x,f,j,op,f1; void pares() { f=15; j=1; for(i=1;i<=n;i++) { x=v[i]%2; if(x==0) { vt[j]=v[i]; j=j+1; } } } void main() { clrscr(); do{ gotoxy(10,10);printf("Ingrese un Lmite: ");scanf("%d",&n); f=15; j=1; gotoxy(4,14);printf("<<<Vector>>>"); for(i=1;i<=n;i++) { gotoxy(10,f);scanf("%d",&v[i]); f=f+1; } pares(); gotoxy(20,45);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); } while(op==1); getch(); }

Funciones con matrices


Ingrese un vector por teclado y multiplquelo por un factor tambin ingresado por teclado.
#include<stdio.h> #include<conio.h> #include<stdlib.h> int n,mt[24][24],m[24][24],i,x,f,j,op,f1,fac; void mult() { f=15; c=2; j=1; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { mt[i][j]=m[i][j]*fac; j=j+1; } c=c+1; } } void main() { clrscr(); do{ gotoxy(10,10);printf("Ingrese un Lmite: ");scanf("%d",&n); gotoxy(10,10);printf("Ingrese un factor: ");scanf("%d",&fac); f=15; c=20; j=1; gotoxy(4,14);printf("<<<MATRIZ>>>"); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { gotoxy(10,f);scanf("%d",&m[i][j]); f=f+1; } c=c+1; } mult(); gotoxy(20,45);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); } while(op==1); getch(); }

Das könnte Ihnen auch gefallen