Created
August 24, 2011 21:37
-
-
Save leostera/1169317 to your computer and use it in GitHub Desktop.
Funciones
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
/* | |
Hola nabos (excepto Maca, que es la única aplicada, junto con Ale), | |
ahora les voy a explicar en este único archivo, qué joracas son las | |
funciones y como se declaran, implementan y usan en C. | |
Para declarar una función, siempre se hace de la siguiente forma: | |
tipodedato nombredefuncion ( [parametros1, paramtro2, ...] ); | |
Como veran, tipodedato es justamente el nombre del tipo de dato que | |
la funcion devuelve. Por ejemplo: | |
int dameDiez() { return 10; } | |
Esta funcion dameDiez, devuelve un valor entero, que en este caso es 10. | |
Puede ser tanto un valor entero literal (o sea, que vos escribis el numero | |
que devuelve) o puede ser una variable de tipo entero, como en el sig ej: | |
int dameDiezNoLiteral() { | |
int a = 10; | |
return a; | |
} | |
Ambas funciones devuelven exactamente el mismo valor de tipo entero. Ahora | |
declaremos alguns funciones: | |
*/ | |
int dameDiez() { return 10; } | |
int dameDos() { return 2; } | |
int dameQuinientosNoventa() { return 590; } //jauj que al pedo | |
/* | |
Bueno, como veran ,aqui tenemos una funcion por cada valor de retorno posible, | |
y eso que son todos enteros! Mejor sería hacer una funcion que nos devuelva | |
un valor que no tengamos y que necesitemos, o simplemente el mismo valor que | |
le pasamos como parametro. Por lo menos con esta ultima opcion nos ahorramos | |
tener infinitas funciones para cada valor de retorno: | |
*/ | |
int dame(int a) { return a; } | |
/* | |
esta funcion dame te pide un valor entero (que dentro de la funcion se llama "a") | |
y te devuelve el mismo valor. ahora podriamos darle un poco más de magia al asunto | |
y hacer una funcion que sea util, como calcular el cuadrado de un numero por ejemplo: | |
*/ | |
int cuadrado(int a) { return a*a; } | |
/* | |
si, podriamos haber hecho la funcion de la siguiente manera: | |
*/ | |
int otroCuadrado(int a) { | |
int b = a*a; //esto es un producto, que ningun salame diga que esta usando punteros | |
return b; | |
} | |
/* | |
pero me pareció al pedo usar una variable temporal...y es mucho más lento. | |
Como siempre, las funciones pueden devolver tipos de datos de cualquier clase, | |
ya sea los del lenguaje básicos como int, char, float, long, double, short, etc | |
como direcciones de memoria o referencias a variables, o incluso estructuras | |
completas tanto estandar como definidas por el usuario! Lo mismo pasa con los parametros. | |
Si tuvieran que hacer una funcion que toma como parametros un numero y el grado | |
de la potencia, y que use valores de coma flotante, haría algo como esto: | |
*/ | |
float power(float number, int pow = 2) { | |
if(pow > 1) | |
for(int i=0; i<pow; ++i, number*=number); | |
return number; | |
} | |
/* QUÉ CARAJOS ACABA DE HACER? QUÉ ES ESE FOR? bueno bueno, la version facil sería esta: | |
*/ | |
float powerFacil(float number, int pow) { | |
if( pow > 1) //la potencia es mayor que 1 | |
{ | |
float productoria = 1; | |
for(int i = 0; i<pow; i++) | |
{ | |
productoria = productoria * number; | |
} | |
} | |
return number; | |
} | |
/* | |
ahi esta más claro, no? jaja, pero bueno, resulta que a veces el codigo claro no | |
es especialmente EFICIENTE...de todos modos estas funciones son a modo de ejmplo | |
y realmente no ven afectado su rendimiento (si es que funcionan, porque no me fije) | |
Ah, un detalle, en la primera version de power, puse el segundo parametro como | |
int pow = 2 | |
eso quiere decir que por defecto pow es igual a 2...por lo tanto si pongo power(2) | |
el resultado va a ser 4...del mismo modo power(2,2) resulta en 4. | |
Bueno, esto fue Funciones de C para Nintendo 64 espero que les haya gustado. | |
Chau*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
yo sigo en o.O