Antes que nada una disculpa por haber tardado tanto en publicar otra entrada de nuestros tutoriales de C (el tiempo es un desgraciado :P). En esta entrega vamos a echar un vistazo (tal vez un poco más que eso) al trabajo con funciones de C. Su uso es tan común como importante; nos ayudan a tener un código más legible y estructurado y hasta reducir centenares de líneas inútiles (entre otros menesteres).
Una función es una estructura que almacena pedazos de código y que puede ser utilizada cuantas veces se desee en cualquier parte de nuestro programa. Hasta aquí al teoría, no creo que se requiera más; inicia tu IDE preferido y comienza un nuevo archivo.
/*Funciones*/ #include <stdio.h> int numero = 0; int texto() { if (numero >= 0 && numero < 10) { printf("Feliz "); } if (numero >= 10 && numero < 20) { printf("Navidad "); } if (numero >= 20 && numero < 30) { printf("A "); } if (numero >= 30) { printf("Scenebeta.com."); } return 0; } int main() { texto(); getchar(); numero = 10; texto(); getchar(); numero = 20; texto(); getchar(); numero = 30; texto(); getchar(); return 0; }
¿Recuerdas que main es una función? (Si no regresa a los primeros tutoriales o date un baño de agua fría para refrescar la memoria.) Pues no hay diferencia en las funciones que estamos tratando en este tutorial (a excepción de que las últimas no son imprescindibles).
¿También recuerdas los tipos de datos? Para declarar una función basta con anteponer a su nombre el tipo de dato al que pertenecerá la función, posteriormente escribir paréntesis y continuar con el código de la función entre corchetes {}. Aségurate de no elegir nombres con espacios y/o con palabras reservadas (int,while,if,return) o caracteres extraños,
En el ejempĺo estamos usando el tipo int; siempre, de ser así, la función debe de devolver un valor, es por eso que la finalizar nuestro código escribimos el return 0;. Si quieres evitar poner esta última línea puedes usar el tipo personalizado void. Void e Int son los más comunes.
Ahora que sabes cómo declarar una función te debes de estar preguntando cómo ponerla en acción (bueno, seré sincero: seguramente ya descubriste cómo). Para hacerlo basta con poner el nombre de la función seguido de sus respectivos paréntesis(). Cuidado con el punto y coma.
Como mencionaba en la introducción puede llamar a una función las veces que quieras. Sólo echa un vistazo al ejemplo.
Felicidades, ya sabes usar funciones. Pero antes de finalizar quisiera entrar en un subtema que seguramente hubiera dado muchos dolores de cabeza a los poco experimentados: Las variables locales y globales.
Una variable global es aquella que puede ser utilizada en cualquier parte del código de principio a fin.
Por otro lado una variable local es aquella cuyo uso queda restringido a la región del código en donde fue declarada.
Cómo mencioné para hacer distinción entre una variable local y una global basta con declararlas en ciertas zonas del código. Vamos a echar un vistazo a la estructura ideal (en la mayoría de los casos):
Para declarar una variable global basta con iniciarla en el apartado dos (Variables y Constantes). Por el contrario si queremos que una variable sea de uso restringido debemos iniciarla en la función en donde actuará. Vamos a poner esto en práctica.
/*Globalización :P*/ #include <stdio.h> int numero = 0; int texto() { int a; if (numero >= 0 && numero < 10) { printf("Feliz "); } if (numero >= 10 && numero < 20) { printf("Navidad "); } if (numero >= 20 && numero < 30) { printf("A "); } if (numero >= 30) { printf("Scenebeta.com.\n"); for (a=0; a<70; a++) { printf("*"); } } return 0; } int main() { int a; for (a=0; a<30; a++) { printf("~"); } texto(); getchar(); for (a=0; a<30; a++) { printf("~"); } numero = 10; texto(); getchar(); for (a=0; a<30; a++) { printf("~"); } numero = 20; texto(); getchar(); for (a=0; a<30; a++) { printf("~"); } numero = 30; texto(); getchar(); return 0; }
Doy por hecho que entiendes perfectamente el 95% del programa, por eso me limito a explicar lo que realmente nos interesa.
Empecemos por identificar las variables locales y globales:
numero es global por no estar dentro de ninguna función. Fíjate cómo usamos la variable numero tanto en main() como en texto().
a es una variable local por estar dentro de las funciones. Fíjate que hemos declarado dos variables con el mismo nombre (una en main() y otra en texto()). En situaciones diferentes esto hubiera ocasionado un error grave; pero estamos ante variables locales, su funcionamiento no "se cruza" por esta simple razón
Como siempre, no te quedes con lo único que viene en este tutorial. La programación es muy amplia (me aventuraría a decir que es casi infinita); experimenta, juega con todo lo que has aprendido, ponlo en práctica. Nos leemos en el siguiente tutorial.
Comentarios
a
No me queda claro como la variable "a" consigue llevar su valor a mas de 30, y cual sería su conexión con "numero" si es que la hay
no me da bien
Hola oye escribi el codigo, lo compilo y hasta ahy todo bien pero cuando lo ejecuto solo me imprime "Feliz A Scenebeta.com" te dejo el codigo para que lo cheques
/* Funciones*/
#include <stdio.h>
int numero=0;
int texto()
{
if(numero>=0&&numero<10)
{
printf("Feliz ");
}
if(numero>=10&&numero<20)
{
printf("Navidad ");
}
if(numero>=20&&numero<30);
{
printf("A ");
}
if(numero>=30);
{
printf("Scenebeta.com");
}
return 0;
}
int main()
{
texto();
getchar();
numero=10;
texto();
getchar();
numero=20;
texto();
getchar();
numero=30;
texto();
getchar();
return 0;
}
Ps3 Slim 500GB OFW 4.00
Psp Slim 8GB CFW 5.00 m33-6
ID: exer.slash
Hola soy nuevo en esto y
Hola soy nuevo en esto y estoy mirandome estos dias los tutoriales, muy buenos por cierto.
y tengo algunas preguntas,Como podria hacer un menu por ejemplo,
pondre un ejemplo para que entendais mejor mi pregunta que si no,.. xD
Pues bien, como podria hacer para que al iniciar el programa me saliese directamente:
Seleccione una opcion:
Pulsa 1 para primera opcion
Pulsa 2 para segunda opcion
(de golpe... sin tener que darle a ENTER 2 veces para desplgarlo.. no se si me explico.)
y si le quito el getchar(); de entremedias, sale de golpe pero tambien sale todo escrito seguido en un solo renglon, u.U
(asi: Seleccione una opcion: Pulsa 1 para primera opcion Pulsa 2 para segunda opcion)
alguien me puede ayudar? muchas gracias! y saludos ;)
De hecho, tal y como lo
De hecho, tal y como lo tienes podría funcionar, cosa de hacer unas pequeñas correcciones:
\n produce un salto de línea al imprimir la cadena de caracteres (equivale a presionar la tecla intro cuando escribes en un editor de texto)
Considera usar la función switch en lugar de una cadena de if's, queda más limpio el code ;)
aaaa valee valee xD muchismas
aaaa valee valee xD muchismas gracias!
y otra pregunta por que cuando escribo un numero para elegir una de las dos opciones si escribo una letra coje como opcion elegida la segunda¿
Quizá sea por el scanf, en
Quizá sea por el scanf, en lugar de poner %i, pon %d
Que bien^^ aunque esto lo
Que bien^^ aunque esto lo sepa me servirá de referencia para mis programas. Cabe destacar que las funciones también sirven para programación de Nintendo DS.(Excepto todas las funciones de C/C++
Que
Que bien!!!!!!!!!!!!!!!
Llevaba mucho tiempo esperandolo