elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ejemplos de funciones en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ejemplos de funciones en c  (Leído 21,176 veces)
Leon8086x

Desconectado Desconectado

Mensajes: 125


Ver Perfil
Ejemplos de funciones en c
« en: 18 Septiembre 2011, 18:35 pm »

Bueno de un ejercicio de la cátedra terminaron saliendo las siguientes funciones en c, son bastante simples pero de todas maneras las comparto, espero criticas y opiniones, o sea cualquier aporte u ocurrencia que tengan.


Bueno sin dar mas lata e aquí los códigos.


ASCII to number      

atonum.cpp

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int atonum (int numero);
  5.  
  6. void main(void)
  7. {
  8.  
  9. char c;
  10. int numero;
  11.  
  12. printf("\n \t \t ingrese un numero o caracter \n \n \n \t \t");
  13. scanf("%c",&c);
  14.  
  15. printf("\n \t \t ingreso el numero o caracter %c que en ASCII es %d  \n \n \t \t",c,c);
  16.  
  17. numero=atonum(c);
  18.  
  19. if (numero!=-1)
  20. {
  21. printf("ahora el numero  %c lo pasamos a entero en la variable numero  \n \n \t \t",c);
  22. printf("la varible numero contiene el numero %d \n \n \t \t",numero);
  23. }
  24.  
  25. if (numero==-1) {printf ("se ingreso un caracter \n \n \t \t");}
  26.  
  27.  
  28. return (0);
  29.  
  30. }
  31.  
  32. int atonum (int numero)
  33. {
  34.   int n;
  35.   if ( (numero-48)>=0 && (numero-48)<=9  ) {n=numero-48;}
  36.   if ((numero-48)<0 && (numero-48)>9) {n=-1;}
  37.   return (n);
  38. }


potencia.cpp

Código
  1.  
  2. #include <stdio.h>
  3.  
  4.  
  5.  
  6. int pot (int base, int exp);
  7.  
  8.  
  9. void main(void)
  10. {
  11.  
  12. int p,exp,base;
  13.  
  14.  
  15. printf("ingrese la base \n \n \t \t");
  16.  
  17. scanf("%d",&base);
  18.  
  19. printf("ingrese el exponenete \n \n \t \t");
  20.  
  21. scanf("%d",&exp);
  22.  
  23. p=pot(base,exp);
  24.  
  25. printf ("el numero %d elevado a la %d es %d \n \n \t \t",base,exp,p);
  26.  
  27.  
  28.  
  29.  return (0);
  30.  
  31.  
  32.  
  33. }
  34.  
  35. int pot (int base, int exp)
  36. {
  37.   int p=1;
  38.  
  39.   if (exp==0){p=1;}
  40.  
  41.   while (exp>0)
  42.   {
  43.   p*=base;
  44.   exp=exp-1;
  45.   }
  46.  
  47.   printf("\n \n \t \t %d \n \n \n ",p);
  48.   return (p);
  49.  
  50.  
  51.  
  52. }
  53.  

Otra forma de hacer la potencia de manera recursiva (Cortesía de rir3760)

Código
  1.  
  2. #include <stdio.h>
  3.  
  4.  
  5.  
  6. int pot (int base, int exp);
  7.  
  8.  
  9. void main(void)
  10. {
  11.  
  12. int p,exp,base;
  13.  
  14.  
  15. printf("ingrese la base \n \n \t \t");
  16.  
  17. scanf("%d",&base);
  18.  
  19. printf("ingrese el exponenete \n \n \t \t");
  20.  
  21. scanf("%d",&exp);
  22.  
  23. p=pot(base,exp);
  24.  
  25. printf ("el numero %d elevado a la %d es %d \n \n \t \t",base,exp,p);
  26.  
  27.  
  28.  
  29.  return (0);
  30.  
  31.  
  32.  
  33. }
  34.  
  35. int pot(int base, int exp)
  36. {
  37.   if (exp > 0)
  38.   return base * pot(base, exp - 1);
  39.  
  40.   else
  41.   return 1;
  42. }
  43.  
  44.  
  45.  
  46.  


Una función para saber si un numero entrado como caracter es numero u otra cosa.

A esta le puse esnum.cpp


Código
  1.  
  2.  
  3. #include <stdio.h>
  4.  
  5. int esnum (int numero);
  6.  
  7. void main(void)
  8.  
  9. {
  10. int numero;
  11.  
  12. printf("ingrese un numero del 0 al 9 \n \n \t \t");
  13. scanf("%c",&numero);
  14.  
  15. printf ("La funcion esnum dio %d", esnum(numero));
  16.  
  17.     return (0);
  18. }
  19.  
  20. int esnum (int numero)
  21. {
  22.  
  23.   int r;
  24.  
  25.   if (0<=(numero-48)<=9)
  26.   r=1;
  27.   r=-1;
  28.  
  29.   return (r);
  30.  
  31. }
  32.  
  33.  
  34.  
  35.  


Bueno saludos a todos y desde ya gracias, que esto me salio con la ayuda del foro.

Por cierto la resolución de funciones recursivas es un dolor de ....cabeza.  

Bueno saludos y suerte.


« Última modificación: 22 Septiembre 2011, 04:33 am por Leon8086x » En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #1 en: 19 Septiembre 2011, 09:38 am »

Buen aporte, seguro que le servirá a más de uno, pero te aconsejo para la próxima vez que uses la etiqueta "code".

Saludos.


En línea

Leon8086x

Desconectado Desconectado

Mensajes: 125


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #2 en: 22 Septiembre 2011, 04:35 am »

Gracias. Y desde ahora usare
Código:
 code 
ya que queda mucho mas legible.
En línea

Leon8086x

Desconectado Desconectado

Mensajes: 125


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #3 en: 25 Septiembre 2011, 09:41 am »

Vean que la función esnum tiene varios errores; aquí la corrección funcional.

Función esnum compilada en lenguaje c con Dev c++

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int esnum (char numero);
  5.  
  6. void main(void)
  7.  
  8. {
  9. int numero, varaux;
  10.  
  11. printf("ingrese un numero del 0 al 9 \n \n \t \t");
  12. scanf("%c",&numero);
  13.  
  14. varaux=esnum(numero);
  15.  
  16. printf ("La funcion esnum dio %d", varaux);
  17.  
  18.     return (0);
  19. }
  20.  
  21. int esnum (char numero)
  22. {
  23.  
  24.   if ( (numero-48)>=0 && (numero-48)<=9  )
  25.  
  26.   {return (1);}
  27.  
  28.   else {return(-1);}
  29.  
  30. }
  31.  
  32.  
  33.  
« Última modificación: 25 Septiembre 2011, 09:43 am por Leon8086x » En línea

El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Ejemplos de funciones en c
« Respuesta #4 en: 25 Septiembre 2011, 19:47 pm »

Vean que la función esnum tiene varios errores; aquí la corrección funcional.

Función esnum compilada en lenguaje c con Dev c++

Código
  1. #include <stdio.h>
  2.  
  3. int esnum (char numero);
  4.  
  5. void main(void)
  6.  
  7. {
  8. int numero, varaux;
  9.  
  10. printf("ingrese un numero del 0 al 9 \n \n \t \t");
  11. scanf("%c",&numero);
  12.  
  13. varaux=esnum(numero);
  14.  
  15. printf ("La funcion esnum dio %d", varaux);
  16.  
  17.     return (0);
  18. }
  19.  
  20. int esnum (char numero)
  21. {
  22.  
  23.   if ( (numero-48)>=0 && (numero-48)<=9  )
  24.  
  25.   {return (1);}
  26.  
  27.   else {return(-1);}
  28.  
  29. }
  30.  
  31.  

Tu último código de esnum tampoco está del todo bien, funcionalmente sí, pero semanticamente tiene un fallo que a mi personalmente no me gusta nada nada.
Si haces una funcion con un if y dentro del if un return, no tienes la necesidad de poner un else en el otro return, porque si el if es true, retornará 1 y parará la funcion.
Tampoco es necesario los parentesis en los returns  ;)
Código
  1. int esnum(char numero){
  2.   if ((numero-48) >= 0 && (numero-48)<=9 ) return 1;
  3.   return -1;
  4. }
  5.  
En línea

LearningSpanishProgrammer

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #5 en: 25 Septiembre 2011, 20:39 pm »

El_Java, no entiendo por qué tu usa números mágicos en su codigo

Código:
int esnum(char numero)
{
   if (numero >= '0' && numero <= '9' )
      return 1;
   else
      return -1;
}

tambien no entiendo por qué el OP no usa cero en lugar de menos uno.

Código:
int esnum(char numero)
{
   if (numero >= '0' && numero <= '9' )
      return 1;
   else
      return 0;
}

Así, puede usar en el 'if' directamente.
« Última modificación: 25 Septiembre 2011, 20:43 pm por LearningSpanishProgrammer » En línea

Estoy aprendiendo español, y tu estas aprendiendo programación
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #6 en: 26 Septiembre 2011, 01:18 am »

El_Java, no entiendo por qué tu usa números mágicos en su codigo
Supongo querias decir: "El_Java, no entiendo por qué el (Leon8086x) usa números mágicos en su codigo".

tambien no entiendo por qué el OP no usa cero en lugar de menos uno.

...

Así, puede usar en el 'if' directamente.
Si se retorna uno en caso de coincidencia y cero en caso contrario no hay porque utilizar un "if", en su lugar se utiliza directamente el resultado del operador "&&":
Código
  1. int esnum(char numero)
  2. {
  3.   return numero >= '0' && numero <= '9';
  4. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
LearningSpanishProgrammer

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #7 en: 26 Septiembre 2011, 01:45 am »

Gracias, rir3760

=)
En línea

Estoy aprendiendo español, y tu estas aprendiendo programación
Leon8086x

Desconectado Desconectado

Mensajes: 125


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #8 en: 27 Septiembre 2011, 21:12 pm »

Al parecer acá se usa el numero como tal

Código
  1.  
  2.  
  3. int esnum(char numero)
  4.  
  5. {
  6.   if ((numero-48) >= 0 && (numero-48)<=9 ) return 1;
  7.   return -1;
  8. }
  9.  
  10.  

Mientras que acá se usa el carácter y se lo compara como carácter.

Código
  1.  
  2. int esnum(char numero)
  3. {
  4.   return numero >= '0' && numero <= '9';
  5. }
  6.  
  7.  

Por cierto; esta forma de utilizar el return no la conocía y la verdad no lo entiendo.  :huh:



« Última modificación: 27 Septiembre 2011, 21:15 pm por Leon8086x » En línea

El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Ejemplos de funciones en c
« Respuesta #9 en: 27 Septiembre 2011, 22:54 pm »

Ese modo de usar return lo unico que hace es que realiza las comparaciones que se le pide:
Código
  1. numero >= '0' && numero <= '9'
y devuelve el valor booleano resultante de dicha comparacion (true o false).
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejemplos de C#
.NET (C#, VB.NET, ASP)
aca_brond 3 7,236 Último mensaje 18 Octubre 2005, 19:02 pm
por Kpax
Ejemplos de crackmes
Ingeniería Inversa
XPLOIT80 7 3,294 Último mensaje 18 Febrero 2006, 06:46 am
por XPLOIT80
Uso del fotoshop con ejemplos
Diseño Gráfico
[:: MoRoCHio ::] 1 1,933 Último mensaje 12 Junio 2006, 18:57 pm
por ka0s
[C] Problema con Struct en funciones que llaman a otras funciones
Programación C/C++
‭lipman 9 24,008 Último mensaje 19 Mayo 2011, 23:39 pm
por Littlehorse
[Haskell] Ejemplos de funciones: tail, reverse, zip, etc.
Programación General
GGZ 0 2,309 Último mensaje 24 Diciembre 2015, 03:33 am
por GGZ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines