• Lunes 1 de Julio de 2024, 09:05

Autor Tema:  Re: funciones  (Leído 1402 veces)

dadevil_g

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: funciones
« en: Domingo 16 de Noviembre de 2003, 07:40 »
0
:angry: Joder.... no entiendo las funciones, si alguien es tan amable de ayudarme se lo agradezco de antemano con este problema que aqueja mi mente desde hace tiempo y nomas no puedo utilizar funciobnes :ayuda:

Escribe un programa que pida un número entero y mande llamar a una función que reciba ese número y regrese su cuadrado sin utilizar la multiplicación; asigne al valor que regrese la función a la variable resultado.
Imprime el valor de la variable resultado.

Funciones... que es eso ????? ayudenme :question: porfis :hippi:
Salu2....  \"UN PROBLEMA A LA VEZ\"; empieza por lo sencillo, luego te verás haciendo lo imposible.

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: funciones
« Respuesta #1 en: Domingo 16 de Noviembre de 2003, 21:44 »
0
Aki tienes un ejemplo... espero que te ayude a entender el uso de las funciones:
Ten en cuenta que sobre las funciones hay mucho más de lo que aqui te expongo... Intenta buscar un manual donde encontrarás todas las posibilidades que se le pueden dar:

void main()
{
int num, resultado;
int calcula_cuadrado(int);  //(*)
printf("Introduce un numero");
scanf("%d",&num);
resultado=calcula_cuadrado(num);
printf("nEl resultado es: %d",resultado);
}

int calcula_cuadrado(int a)
{
int devolver;
devolver=pow(a,2); //math.h
return(devolver);
}

(*)Como la función se encuentra debajo de la  main, he tenido que definir un prototipo de la funcion dentro de la main para que el compilador no diga nada. Una opción válida es crear las funciones antes de la main o de aquellos sitios desde los que haces referencia a ellas... de tal manera que cuando el compilador encuentre una llamada a esa función ya sepa que esa función existe:

int calcula_cuadrado(int a)
{
int devolver;
devolver=pow(a,2);
return(devolver);
}

void main()
{
int num,resultado;
printf("Introduce un numero");
scanf("%d",&num);
resultado=calcula_cuadrado(num);
printf("nEl resultado es: %d",resultado);
}

También se pueden realizar las funciones para que reciban las variables por referencia y no por valor, esto es, enviar la direccion de la variable a manipular y  no una copia de ella, además de ahorrar espacio en memoria, nos permitirá modificar tantas variables como queramos desde la función, no hay que olvidar que una función sólo puede devolver una variable:

void calcula_cuadrado(int *a) //recibimos la direccion de un entero
{           // y no devolvemosnada
*a=pow(*a,2); //guardamos en lo apuntado por a (num) a al cuadrado
}

void main()
{
int num,resultado;
printf("Introduce...");
scanf("%d", &num);
calcula_cuadrado(&num); //pasamos la direccion de num
resultado=num;
printf("%d",resultado);
}

Espero que te sirva de ejemplo para empezar, Un saludo
No hay tonto más molesto que el ingenioso.

dadevil_g

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: funciones
« Respuesta #2 en: Domingo 16 de Noviembre de 2003, 23:14 »
0
Eso si que fue heavy :guitar:, ahora ya capeo acerca de las funciones, y tomare en cuenta lo que me dices de buscar un manual de C para funciones, gracias carmamezo por la ayuda. :hippi:
Salu2....  \"UN PROBLEMA A LA VEZ\"; empieza por lo sencillo, luego te verás haciendo lo imposible.

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: funciones
« Respuesta #3 en: Viernes 21 de Noviembre de 2003, 01:15 »
0
:good:

El codigo esta perfecto, pero para mejorarlo aun mas con funciones puedes utilizar recursividad, aqui te doy algunas paginas con este tema, la recursividad para la mayoria parece algo enredante, pero este es el metodo mas rápido y que consume pocos recursos de sistema, parecera una tonteria ponerce a pensar en ahorrar unos bytes de memoria pero es una buena comstrumbre de programacion, ademas te ayudara en programas grandes y complejos, aqui te doy algunas direcciones del tema:

http://www.unav.es/cti/curso-c/tema6.html#rec

//Aqui hay un PDF
http://www.unizar.es/sicuz/siscen/doc/ccuz28.pdf

http://www.geocities.com/gudonoso/int_c ... ividad.htm


Espero te sirva
Salu2


Kev:beer:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

dadevil_g

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
funciones
« Respuesta #4 en: Viernes 21 de Noviembre de 2003, 22:32 »
0
Gracias Kev, esas paginas me han ayudao un poc mas de lo esperao gracias tio... :comp:
:hippi:
Salu2....  \"UN PROBLEMA A LA VEZ\"; empieza por lo sencillo, luego te verás haciendo lo imposible.