elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 00:56  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

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

Desconectado Desconectado

Mensajes: 122


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

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
 
#include <stdio.h>
 
int atonum (int numero);
 
void main(void)
{
 
char c;
int numero;
 
printf("\n \t \t ingrese un numero o caracter \n \n \n \t \t");
scanf("%c",&c);
 
printf("\n \t \t ingreso el numero o caracter %c que en ASCII es %d  \n \n \t \t",c,c);
 
numero=atonum(c);
 
if (numero!=-1)
{
printf("ahora el numero  %c lo pasamos a entero en la variable numero  \n \n \t \t",c);
printf("la varible numero contiene el numero %d \n \n \t \t",numero);
}
 
if (numero==-1) {printf ("se ingreso un caracter \n \n \t \t");}
 
 
return (0);
 
}
 
int atonum (int numero)
{
  int n;
  if ( (numero-48)>=0 && (numero-48)<=9  ) {n=numero-48;}
  if ((numero-48)<0 && (numero-48)>9) {n=-1;}
  return (n);
}


potencia.cpp

Código
 
#include <stdio.h>
 
 
 
int pot (int base, int exp);
 
 
void main(void)
{
 
int p,exp,base;
 
 
printf("ingrese la base \n \n \t \t");
 
scanf("%d",&base);
 
printf("ingrese el exponenete \n \n \t \t");
 
scanf("%d",&exp);
 
p=pot(base,exp);
 
printf ("el numero %d elevado a la %d es %d \n \n \t \t",base,exp,p);
 
 
 
 return (0);
 
 
 
}
 
int pot (int base, int exp)
{
  int p=1;
 
  if (exp==0){p=1;}
 
  while (exp>0)
  {
  p*=base;
  exp=exp-1;
  }
 
  printf("\n \n \t \t %d \n \n \n ",p);
  return (p);
 
 
 
}
 

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

Código
 
#include <stdio.h>
 
 
 
int pot (int base, int exp);
 
 
void main(void)
{
 
int p,exp,base;
 
 
printf("ingrese la base \n \n \t \t");
 
scanf("%d",&base);
 
printf("ingrese el exponenete \n \n \t \t");
 
scanf("%d",&exp);
 
p=pot(base,exp);
 
printf ("el numero %d elevado a la %d es %d \n \n \t \t",base,exp,p);
 
 
 
 return (0);
 
 
 
}
 
int pot(int base, int exp)
{
  if (exp > 0)
  return base * pot(base, exp - 1);
 
  else
  return 1;
}
 
 
 
 


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

A esta le puse esnum.cpp


Código
 
 
#include <stdio.h>
 
int esnum (int numero);
 
void main(void)
 
{
int numero;
 
printf("ingrese un numero del 0 al 9 \n \n \t \t");
scanf("%c",&numero);
 
printf ("La funcion esnum dio %d", esnum(numero));
 
    return (0);
}
 
int esnum (int numero)
{
 
  int r;
 
  if (0<=(numero-48)<=9)
  r=1;
  r=-1;
 
  return (r);
 
}
 
 
 
 


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 por Leon8086x » En línea
Alien-Z

Desconectado Desconectado

Mensajes: 103


C++ Programmer


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

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: 122


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

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

Desconectado Desconectado

Mensajes: 122


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

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
 
#include <stdio.h>
 
int esnum (char numero);
 
void main(void)
 
{
int numero, varaux;
 
printf("ingrese un numero del 0 al 9 \n \n \t \t");
scanf("%c",&numero);
 
varaux=esnum(numero);
 
printf ("La funcion esnum dio %d", varaux);
 
    return (0);
}
 
int esnum (char numero)
{
 
  if ( (numero-48)>=0 && (numero-48)<=9  )
 
  {return (1);}
 
  else {return(-1);}
 
}
 
 
 
« Última modificación: 25 Septiembre 2011, 09:43 por Leon8086x » En línea
El_Java

Desconectado Desconectado

Mensajes: 132



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

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
#include <stdio.h>
 
int esnum (char numero);
 
void main(void)
 
{
int numero, varaux;
 
printf("ingrese un numero del 0 al 9 \n \n \t \t");
scanf("%c",&numero);
 
varaux=esnum(numero);
 
printf ("La funcion esnum dio %d", varaux);
 
    return (0);
}
 
int esnum (char numero)
{
 
  if ( (numero-48)>=0 && (numero-48)<=9  )
 
  {return (1);}
 
  else {return(-1);}
 
}
 
 

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
int esnum(char numero){
  if ((numero-48) >= 0 && (numero-48)<=9 ) return 1;
  return -1;
}
 
En línea
LearningSpanishProgrammer

Desconectado Desconectado

Mensajes: 67


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

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 por LearningSpanishProgrammer » En línea

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


Desconectado Desconectado

Mensajes: 382


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

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
int esnum(char numero)
{
  return numero >= '0' && numero <= '9';
}

Un saludo
En línea

The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
LearningSpanishProgrammer

Desconectado Desconectado

Mensajes: 67


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

Gracias, rir3760

=)
En línea

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

Desconectado Desconectado

Mensajes: 122


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

Al parecer acá se usa el numero como tal

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

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

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

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 por Leon8086x » En línea
El_Java

Desconectado Desconectado

Mensajes: 132



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

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


Desconectado Desconectado

Mensajes: 382


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #10 en: 27 Septiembre 2011, 23:07 »

En una sentencia de retorno como esta:
Código
return N;
"N" debe ser del tipo indicado en la declaración de la funcion (siguiendo tu ejemplo debe ser "signed int") y puede ser cualquier expresión.

Esto es una expresión:
Código
numero >= '0' && numero <= '9'

La prioridad de los operadores es, utilizando paréntesis:
Código
(numero >= '0') && (numero <= '9')
1) Primero se aplican los operadores ">=" y "<=", el resultado de estos es 1 o 0 (Verdadero o Falso).

2) Despues se aplica el operador "&&" en el caso de '5' tenemos:
Código
(1) && (1)
El operador "&&" resulta en 1 o 0 si se cumple con el operador lógico AND (Verdadero si ambos operandos son distintos de cero, Falso en caso contrario).

Para el tema de expresiones no hay nada mejor que un libro de calidad, si no tienes uno consiguelo (empieza revisando los temas fijos de este foro para recomendaciones).

Un saludo
En línea

The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Leon8086x

Desconectado Desconectado

Mensajes: 122


Ver Perfil
Re: Ejemplos de funciones en c
« Respuesta #11 en: 28 Septiembre 2011, 21:09 »

Genial, muchas gracias.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejemplos php
Desarrollo Web
Rey11 6 717 Último mensaje 24 Agosto 2005, 23:37
por Rey11
Ejemplos de C#
.NET
aca_brond 3 2,360 Último mensaje 18 Octubre 2005, 19:02
por Kpax
Ejemplos C++
Programación C/C++
Superplay 2 1,976 Último mensaje 7 Abril 2006, 04:52
por Gangrel
ejemplos de funciones y procedimientos?
Chats; IRC y Messengers
jhon li 0 1,264 Último mensaje 26 Octubre 2008, 04:22
por jhon li
[C] Problema con Struct en funciones que llaman a otras funciones
Programación C/C++
‭lipman 9 2,008 Último mensaje 19 Mayo 2011, 23:39
por Littlehorse
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines