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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11
71  Programación / Programación C/C++ / Cambiar una sentencia if else if por un if else en: 11 Noviembre 2013, 22:32 pm
Buenas, tengo el siguiente programa básico para pasar de número decimal a hexadecimal:

Código:
#include <stdio.h>

int main()
{

  /* Declaramos las variables */
  char car1;
  char car2;
  char valor1;
  char valor2;
  int valor;
 
  printf("Introduzca el numero hexadecimal: ");
  scanf("\n%c%c", &car1, &car2);

  /* Condiciones para el primer caracter*/
  if ('0' <= car1 && car1 <= '9')
    valor1 = car1 - '0';
  else if ('A' <= car1 && car1 <= 'F')
    valor1 = car1 - 'A' + 10;

  /* Condiciones para el segundo caracter*/
  if ('0' <= car2 && car2 <= '9')
    valor2 = car2 - '0';
  else if ('A' <= car2 && car2 <= 'F')
    valor2 = car2 - 'A' + 10;


  valor = 16 * valor1 + valor2;

  printf("El valor decimal de 0x%c%c es %d\n", car1, car2, valor);

  return 0;
}

Me pide el profesor que cambie cada sentencia "if else if" por una "if else", pero he probado y siempre me da error al compilar, ¿alguna ayuda?

Saludos!
72  Seguridad Informática / Seguridad / Re: ¿Qué me puede pasar? en: 22 Agosto 2012, 02:12 am
No creo que vaya a pasar nada si no has hecho nada pero en todo caso:

Si lo hice, puse en el post que dije que fui yo, y me delaté por que pensaban denunciarme. Yo lo que hice fue ver una conversación de chat y poco más, ¿creeís que la policia se lo tomaría en serio?

Saludos
73  Seguridad Informática / Seguridad / ¿Qué me puede pasar? en: 21 Agosto 2012, 20:57 pm
Buenas, hace unas semanas me enfadé con una persona que conozco y cometí el error de meterme en su tuenti, la forma en la que lo hice fue averiguando la respuesta a la pregunta secreta de su hotmail y después dando a olvidar contraseña en tuenti.

Me arrepentí y admití mi culpa y le pedí perdón a la persona en cuestión, sé que estuvo bastante mal, pero aun así dicha persona dice que va a denunciarme.

Si conoceís algún caso así, ¿que me puede pasar?, ¿qué le dirá la policia?

Gracias y un saludo
74  Programación / Programación C/C++ / Errores con programa (punteros) en: 10 Diciembre 2011, 18:59 pm
Buenas, me han dado el enunciado siguiente: Modifique el programa hexdec4 (que os pongo a continuación), añadiendo una función que solicite los dos carácteres hexadecimales, y que devuelva:

-0 si se ha introducido el código qq de salida
-1 si se han introducido dos carácteres hexadecimales correctos.

En este último caso, también devolverá los dos caracteres hexadecimales convertidos.


Una aclaración, si introducimos un caracter que no sea hexadecimal, por ejemplo el mm, el programa nos debe pedir de nuevo que introduzcamos dos nuevos carácteres hexadecimales, así hasta que metamos uno correcto.

El programa lo que hace es una conversión de hexadecimal a decimal.
El programa que hay que modificar es el siguiente:

Código
  1. #include <stdio.h>
  2.  
  3. int hexadecimal (char car1, char car2); //Declaramos la funcion hexadecimal
  4.  
  5. int main ()
  6. {
  7.   //Declaramos las variables
  8.   char car1;
  9.   char car2;
  10.   int valor;
  11.  
  12.   //Iniciamos el bucle while
  13.   while (1){
  14.      printf("Introduzca un valor hexadecimal:");
  15.      scanf(" %c%c", &car1, &car2);
  16.      if (car1 == 'q' && car2 == 'q'){
  17.         printf ("Presione enter para salir\n");
  18.         while (getchar() != '\n');  
  19.         getchar();
  20.         break;
  21.      }if ((valor = hexadecimal (car1, car2)))  //Llamamos a la funcion hexadecimal
  22.  
  23.         printf("El valor decimal de 0x%c%c es %d\n", car1, car2, valor);
  24.   }
  25.  
  26.   return 0;
  27. }
  28.  
  29. int hexadecimal(char car1, char car2)   //Funcion hexadecimal
  30. {
  31.   char valor1;
  32.   char valor2;
  33.  
  34.   if ('0' <= car1 && car1 <= '9')
  35.      valor1 = car1 - '0';
  36.   else if ('A' <= car1 && car1 <= 'F')
  37.      valor1 = car1 - 'A' + 10;
  38.   else if ('a' <= car1 && car1 <= 'f')
  39.      valor1 = car1 - 'a' + 10;
  40.   else
  41.      return -1;
  42.  
  43.   if ('0' <= car2 && car2 <= '9')
  44.      valor2 = car2 - '0';
  45.   else if ('A' <= car2 && car2 <= 'F')
  46.      valor2 = car2 - 'A' + 10;
  47.   else if ('a' <= car2 && car2 <= 'f')
  48.      valor2 = car2 - 'a' + 10;
  49.   else
  50.      return -1;
  51.  
  52.   return valor1 * 16 + valor2;
  53. }
  54.  

Y lo he modificado de tal forma:

Código
  1. #include <stdio.h>
  2.  
  3. int* hexadecimal (char car1, char car2); //Declaramos la funcion hexadecimal
  4.  
  5. int main ()
  6. {
  7.   //Declaramos las variables
  8.  
  9.   char car1;
  10.   char car2;
  11.   int valor, valor1,valor2;
  12.   int*v;
  13.  
  14.  
  15.  
  16.   //Iniciamos el bucle while
  17.   while (1)
  18.   {
  19.      printf("Introduzca un valor hexadecimal:");
  20.      scanf("%c%c", &car1, &car2);
  21.  
  22.      v = hexadecimal (car1, car2);  //Llamamos a la funcion hexadecimal
  23.  
  24.      if(v==0) printf("Presione enter para salir\n");
  25.      else
  26.           v= hexadecimal (car1, car2);
  27.  
  28.  
  29.         printf("El valor decimal de 0x%c%c es %d\n", car1, car2, valor);
  30.  
  31.   }
  32.   return (0);
  33. }
  34.  
  35. int* hexadecimal(char car1, char car2)   //Funcion hexadecimal
  36. {
  37.   char valor1;
  38.   char valor2;
  39.   int*p;
  40.   p=NULL;
  41.   p=(int*)malloc(2*sizeof(int));
  42.   if(!p) printf("Error en la reserva dinamica de memoria:");
  43.   else
  44.   {
  45.   if (car1 == 'q' && car2 == 'q')
  46.   {
  47.   *p=0;
  48.   }
  49.   return(p);
  50.  
  51.   else ((('0' <= car1 && car1 <= '9')||('A' <= car1 && car1 <= 'F')||('a' <= car1 && car1 <= 'f'))&&(('0' <= car2 && car2 <= '9')||('A' <= car2 && car2 <= 'F')||('a' <= car2 && car2 <= 'f')))   {
  52.    {
  53.    valor=valor1 * 16 + valor2;
  54.    return(valor);    
  55.    }
  56.   }
  57. }
  58.  


Me da errores y no hace lo que busco, ¿alguna ayuda?

Saludos!
75  Programación / Programación C/C++ / Re: Duda funcíon potencia en: 3 Diciembre 2011, 18:51 pm
Sé que hay una función potencia en la biblioteca math.h, pero en el ejercicio nos piden que realicemos una de cero

Saludos
76  Programación / Programación C/C++ / Re: Duda funcíon potencia en: 3 Diciembre 2011, 17:18 pm
Muchas gracias, llevaba mucho tiempo viendo a ver cual era el fallo pero no caía

Saludos!
77  Programación / Programación C/C++ / Re: Duda funcíon potencia en: 3 Diciembre 2011, 17:12 pm
Ah disculpa lo de a*=a no funcionaria porque a se esta alterando, vuelve a poner tu variable valor pero inicializala con el valor de a y ve multiplicándola por a.

Lo he hecho, aun así sigue dando error ;S, me sale que 2 elevado a 3 da 32

Código
  1. #include <stdio.h>
  2.  
  3. float potencia (float a, float b);
  4. int main ()
  5.  
  6. {
  7.  
  8. float base;
  9. float exponente;
  10. float valor;
  11.  
  12. printf("Introduce la base de la potencia\n");
  13. scanf("%f", &base);
  14. printf("Indique el exponente\n");
  15. scanf("%f",&exponente);
  16.  
  17. valor = potencia(base,exponente);
  18. printf("La potencia de base %f y exponente %f es %f\n", base, exponente, valor);
  19. return (0);
  20.  
  21. }
  22.  
  23. float potencia (float a, float b)
  24.  
  25. {
  26. int i=1;
  27. float valor=a;
  28. for(i=0; i<=b;i++)
  29. {
  30. valor*=a;
  31. }
  32.  
  33. return (valor);
  34. }

78  Programación / Programación C/C++ / Re: Duda funcíon potencia en: 3 Diciembre 2011, 16:56 pm
El problema está en la función ya que no inicializas la variable valor, pero esa variable está demás porque simplemente podrías hacer a*=a y retornas a y en tu for revisa la condición de parada ya que si pones 2 a la 3 tu función hará 2 a la 4.

Gracias, lo he editado de la siguiente manera:

Código
  1. #include <stdio.h>
  2.  
  3. float potencia (float a, float b);
  4. int main ()
  5.  
  6. {
  7.  
  8. float base;
  9. float exponente;
  10. float valor;
  11.  
  12. printf("Introduce la base de la potencia\n");
  13. scanf("%f", &base);
  14. printf("Indique el exponente\n");
  15. scanf("%f",&exponente);
  16.  
  17. valor = potencia(base,exponente);
  18. printf("La potencia de base %f y exponente %f es %f\n", base, exponente, valor);
  19. return (0);
  20.  
  21. }
  22.  
  23. float potencia (float a, float b)
  24.  
  25. {
  26. int i=1;
  27. for(i=0; i<=b;i++)
  28. {
  29. a*=a;
  30. }
  31.  
  32. return (a);
  33. }

Pero le he puesto una base 2 y elevado a 3 y me sale 65536 :S
79  Programación / Programación C/C++ / Duda funcíon potencia en: 3 Diciembre 2011, 16:23 pm
Buenas, me piden que realice un programa que use la función que calcula la potencia de un número, la función potencia la tengo que crear yo, el programa compila pero no me da el resultado bien, y quisiera saber donde me equivoco, el código es el siguiente:

Código
  1. #include <stdio.h>
  2.  
  3. float potencia (float a, float b);
  4. int main ()
  5.  
  6. {
  7.  
  8. float base;
  9. float exponente;
  10. float valor;
  11.  
  12. printf("Introduce la base de la potencia\n");
  13. scanf("%f", &base);
  14. printf("Indique el exponente\n");
  15. scanf("%f",&exponente);
  16.  
  17. valor = potencia(base,exponente);
  18. printf("La potencia de base %f y exponente %f es %f\n", base, exponente, valor);
  19. return (0);
  20.  
  21. }
  22.  
  23. float potencia (float a, float b)
  24.  
  25. {
  26. int i=1;
  27. float valor;
  28. for(i=0; i<=b;i++)
  29. {
  30. valor=valor*a;
  31. }
  32.  
  33. return (valor);
  34. }

Saludos
80  Programación / Programación C/C++ / Re: Problema al crear una función a partir de un programa en: 1 Diciembre 2011, 16:16 pm
Gracias por la aclaración, ahora lo he ampliado para que convierta 4 digitos hexadecimales en un numero decimal, pero el orden del resultado sale alterado, por ejemplo, si pongo 25BC me sale que en decimal es 48165, cuando este número en hexadecimal es el BC25, es decir, justo al reves, este es el codigo:

EDITO POR QUE LO ACABO DE SOLUCIONAR

Un saludo!
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines