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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
Páginas: 1 [2] 3 4
11  Programación / Java / Problema con clase Tokenizer (contar palabras de un archivo de texto) en: 25 Enero 2016, 13:21 pm
RESUELTO
12  Programación / Java / Problema con suma de números por argumentos en: 20 Octubre 2015, 11:30 am
Buenas, tengo éste enunciado: .Realizar un programa en JAVA que realice la suma de varios números que se le pasan como argumentos.

El profesor lo ha hecho de ésta forma:

Código
  1. package ejerciciosR2;
  2.  
  3. public class Ejercicio13 {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. int suma = 0;
  8.  
  9. for(int i = 0;i<args.length;i++){
  10. suma = suma+Integer.parseInt(args[i]);
  11. System.out.println(args[i]);
  12.  
  13. }
  14. System.out.println(suma);
  15. }
  16.  
  17. }

En el bucle entiendo que se inicializa una variable índice (i), la comparamos con la longitud del argumento para contabilizar los argumentos que debemos sumar.

Pero, no entiendo ésto:

                       
Código
  1. suma = suma+Integer.parseInt(args[i]);
  2. System.out.println(args[i]);

Entiendo que la suma se debe hacer así y que el Integer.parseInt es para convertir el argumento a entero, pero...¿por qué ese args tanto en esa expresión como en el Syso?

Gracias de antemano y un saludo
13  Informática / Hardware / ¿Como deshabilitar el S.M.A.R.T de un HDD en mi Bios? en: 10 Enero 2015, 00:18 am
Buenas, hay un HDD que me está dando el coñazo. El programa Intel Rapid de almacenamiento me avisa de que hay un HDD que está en riesgo (evento SMART).



Le doy a suprimir dicho evento pero sigue pasando lo mismo. Al volver a iniciar el PC es cómo si no le hubiera hecho nada.

Me he metido en la BIOS pero no sé dónde deshabilitar el S.M.A.R.T del HDD, me meto en la configuración SATA y me sale ésto:



Sin poder hacer nada. (El HDD que me interesa en cuestión es el del puerto 3, está igual configurado que el que está en el puerto 2).

Mi placa base es una H97M-D3H por si eso ayuda.

El HDD está vacío (es de datos) y le he pasado el Seatools como la comprobación de errores de Windows y me han puesto que el HDD está en buen estado.

Muchas gracias de antemano.

Saludos!
14  Programación / Programación C/C++ / Problema con Paso de Tablas Bidimensionales como parámetro en: 10 Diciembre 2014, 16:07 pm
¿Alguien me puede ayudar con éste ejercicio?, estoy empezando a estudiar C pero aún entiendo muy poco de tablas, pero me exigen entregar unas prácticas para poder presentarme a la convocatoria de Enero, por eso tengo que hacerlo bien sí o sí =/:
 
El enunciado es el siguiente:
 
Paso de Tablas Bidimensionales como Parámetro
 
En este ejercicio se practicarán los diferentes métodos para pasar una tabla multimensional como parámetro a una función. En todos los casos deberá implementar la función imprimeTabla, dependiendo de cómo se declare dicha función.
 
Ejercicio1:
a) En este primer caso se pasan tres parámetros a la función: una tabla multidimensional de la que no es necesario especificar su dimensión más interna (y sólo esa) y las dos dimensiones de la tabla.

Código
  1. /* Includes del sistema */
  2. #include <stdio.h>
  3.  
  4.  
  5. /* Includes de la aplicacion */
  6.  
  7.  
  8. /* Definición de constantes */
  9. #define TAMV  6
  10. #define TAMH  4
  11.  
  12.  
  13. /* Tipos definidos por el usuario */
  14.  
  15.  
  16. /* Declaración de funciones locales. */
  17.  
  18. /*
  19. **   Parámetros:  tabla   tabla bidimensional que se desea imprimir.
  20. **                        En este caso el parámetro es del tipo tabla
  21. **                        bidimensional.
  22. **                tamh    número de columnas de la tabla bidimensional.
  23. **                tamv    número de filas de la tabla bidimensional.
  24. **
  25. **     Devuelve:  Nada
  26. **
  27. **  Descripcion:  Muestra los elementos de una tabla bidimensional que se
  28. **                proporciona como parámetro.
  29. **                Los elementos se muestran por filas
  30. **                mediante el uso de un doble bucle.
  31. */
  32. void imprimeTabla(char tabla[][TAMH], int tamh, int tamv);
  33.  
  34.  
  35. /************************************************************/
  36.  
  37. int main ()
  38. {
  39.  char tabla [ TAMV ][ TAMH ] = {    
  40.    {'A', 'B', 'C', 'D'},
  41.    {'E', 'F', 'G', 'H'},
  42.    {'I', 'J', 'K', 'L'},
  43.    {'M', 'N', 'O', 'P'},
  44.    {'Q', 'R', 'S', 'T'},
  45.    {'U', 'V', 'W', 'X'}
  46.  };
  47.  
  48.  imprimeTabla(tabla, TAMV, TAMH);
  49.  
  50.  return 0;
  51. }
  52.  
  53. void imprimeTabla(char tabla[][TAMH], int tamv, int tamh)
  54. {
  55.  
  56. }

Compile y ejecute el programa. Hágalo también utilizando el makefile proporcionado tecleando:
 
make -f multidimensionales tablasMultdim1

¿Alguien me puede decir como hacerlo?

Muchísimas gracias de antemano y saludos!
15  Informática / Hardware / Ayuda con elección de portátil en: 22 Octubre 2014, 20:10 pm
Buenas, estoy por jubilar a mi viejo portátil que ya va para los 7 años de vida y quisiera pillarme uno nuevo para la universidad y demás.
 
Lo que busco es lo siguiente:
 
- Precio máximo unos 300-350€
- Windows (necesito programas que sólo hay aquí)
- Entre 13-17 pulgadas
- A poder ser buena duración de batería
 
Y para lo que lo voy a usar es:
 
- Programas ofimáticos
- Máquinas virtuales de Linux
- Matlab
- Lo típico: navegar, ver pelis HD y demás
 
Gracias de antemano por las recomendaciones!
 
Saludos!
16  Sistemas Operativos / GNU/Linux / Duda comandos consola Linux en: 20 Octubre 2014, 23:37 pm
Buenas, antes que nada no sé si este tema va aquí, estoy empezando a estudiar C pero tengo unas dudas con unos comandos en consola:

Tengo una práctica para familiarizarme con el uso de los comandos en la consola de Linux, y me piden lo siguiente:

a) Liste las líneas del fichero /etc/pam.d/login que contengan la palabra auth

Estando en el directorio pam.d he puesto el comando "grep auth login"

b) Obtenga las líneas del fichero /etc/pam.d/login que comiencen con la palabra auth

Aquí he usado el comando "grep "^auth" login

c) Haga lo mismo con las líneas que terminen con dicha palabra, indicando además el número de línea correspondiente

Aquí "grep -n "$auth" login

d) Liste todas las líneas del fichero /etc/pam.d/login que no sean comentarios (las líneas de comentarios son las que empiezan con el carácter #)

Aquí "grep -V "^#" login

e) Repita lo anterior, eliminando también las líneas vacías. Para ello ejecute dos comandos grep conectados por una tubería.

f) Determine en cuántas líneas del fichero /etc/pam.d/login aparece la palabra pam, independientemente que sea en mayúsculas o minúsculas

¿Alguien me puede ayudar con los apartados e y f?, y decirme también si los anteriores están bien :S

Muchas gracias de antemano!
17  Programación / Programación C/C++ / Problema simple con programa números primos en: 10 Agosto 2014, 03:00 am
Buenas, aquí estoy empezando con C++ y tengo una duda con un ejercicio de una práctica de la facultad.

Tengo un programa (muy rudimentario) que tengo que ir mejorando poco a poco, el programa me dice si un número no es primo y si sí es primo sale del programa, este es el código:

Código:
#include <stdio.h>

#define RESPUESTANOPRIMO " %d no es primo\n"
#define RESPUESTAPRIMO   " %d es primo\n"

int main()
{
  /* Almacenara el numero leido por teclado */
  int valor;
  /* Servira como indice del bucle for que vamos a utilizar. */
  int i;
  /* Solicitamos el numero que queremos saber si es primo */
     printf("Introduzca un valor: ");
     scanf(" %d", &valor);
     
/* El bucle lo comenzamos en 2: todo numero es divisible por 1
* y lo terminamos antes de valor: todo numero es divisible por si mismo */

for ( i = 2; i < valor; i++ )
     if (0 == (valor % i))
     /* Si el resto es cero, es porque i divide
     * No es primo. */
     printf(RESPUESTANOPRIMO, valor);
 
  return 0;
}

Y me pide que una vez comprobado que el dos no es divisor, probar sólo con los números impares.

Yo creo que debo cambiar ese i++ por un i+=2, para que desde el 3 todas las demás comprobaciones se hagan con números impares, pero no sé como inicializar la variable i en el 3 después de la primera "pasada" del bucle for. Lo que he hecho es esto:

Código:
#include <stdio.h>


#define RESPUESTANOPRIMO    "%d no es primo\n"
#define RESPUESTAPRIMO      "%d es primo\n"



int main()
{
  /* Almacenara el numero leido por teclado */
  int valor;
  /* Servira como indice del bucle for que vamos a utilizar. */
  int i;

  /* Solicitamos el numero que queremos saber si es primo */
  printf("Introduzca un valor: ");
  scanf("%d", &valor);

  if (valor == 2);

  else

    {
      if (0 == (valor % 2))


/* Si el resto es cero, es porque i divide  a numero:
* No es primo. */
        printf(RESPUESTANOPRIMO, valor);
      else
        {
          for (i = 3; i < valor; i += 2)
            if (0 == (valor % i))
              /* Si el resto es cero, es porque i divide a numero:
               * No es primo. */
              printf(RESPUESTANOPRIMO, valor);
        }

    }

  return 0;
}

Que hace lo que quiero pero no creo que deba sacar el 2 "a lo bruto" del bucle for, ¿alguna ayuda?

No hace falta mejorar el programa, sólo hacer dicha modificación para luego poder hacer otros apartados que me piden.

Gracias de antemano y un saludo!
18  Programación / Programación C/C++ / Perdido al crear una función con punteros en: 13 Enero 2014, 18:26 pm
Buenas, tengo el siguiente código que convierte dos caracteres hexadecimales en su correspondiente número decimal, y que al meter la secuencia qq sale del programa:

Código:
#include <stdio.h>

#define NOERROR 1
#define ERROR 0

int hexDec(char c1, char c2);
int main()
{

  /* Declaramos las variables */
  char car1;
  char car2;

  /* Bucle While para que salga con qq */
  do
    {
      printf("Introduzca dos caracteres hexadecimales: ");
      scanf(" %c %c", &car1, &car2);
     
      hexDec(car1, car2);
     
    }
while(car1 != 'q' && car2 != 'q');

  return 0;
}


int hexDec(char c1, char c2)
{

char v1;
char v2;
int cuno = NOERROR;
int cdos = NOERROR;
int resultado;

 if (c1 != 'q' && c2 != 'q')
        {

          if ('0' <= c1 && c1 <= '9')
            v1 = c1 - '0';
          else if ('A' <= c1 && c1 <= 'F')
            v1 = c1 - 'A' + 10;
          else if ('a' <= c1 && c1 <= 'f')
            v1 = c1 - 'a' + 10;
          else
            {
              cuno = ERROR;
              printf("Error en el primer valor introducido\n");

            }
          if ('0' <= c2 && c2 <= '9')
            v2 = c2 - '0';
          else if ('A' <= c2 && c2 <= 'F')
            v2 = c2 - 'A' + 10;
          else if ('a' <= c2 && c2 <= 'f')
            v2 = c2 - 'a' + 10;
          else
            {
              cdos = ERROR;
              printf("Error en el segundo valor introducido\n");

            }

          if (cuno == NOERROR && cdos == NOERROR)
            {
              resultado = 16 * v1 + v2;

              printf("El valor decimal de 0x%c%c es %d\n", c1, c2,
                     resultado);

            }
        }

cuno = NOERROR;
        cdos = NOERROR;


return resultado;

}

Este código lo entiendo, pero ahora me piden lo siguiente:

Modifique el código añadiendo una nueva función leeCaracter que solicite los dos caracteres hexadecimales, y que devuelva:

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

La función también devolverá por referencia los dos caracteres hexadecimales leídos. En el caso de que los caracteres hexadecimales no fuesen correctos, la función deberá volver a solicitarlos. Es decir, la función sólo puede devolver 1 y dos caracteres hexadecimales correctos por referencia, o 0 en caso de que se haya introducido el código qq.

El programa debe quedar así:

salas@318CDCr12: ̃$ ./hexDec7
Introduzca dos caracteres hexadecimales: 22
El valor decimal de 0x22 es 34
Introduzca dos caracteres hexadecimales: 3a
El valor decimal de 0x3a es 58
Introduzca dos caracteres hexadecimales: 3A
El valor decimal de 0x3A es 58
Introduzca dos caracteres hexadecimales: 3G
Error en el segundo valor introducido
Introduzca dos caracteres hexadecimales: -1
Error en el primer valor introducido
Introduzca dos caracteres hexadecimales: tA
Error en el primer valor introducido
Introduzca dos caracteres hexadecimales: qq
salas@318CDCr12: ̃$



Este ejercicio está en el tema de punteros, vamos, que hay que usar punteros en la nueva función, y no sé como meterle mano al problema. Agradecería mucho alguna explicación o modo de actuar.

Gracias de antemano y un saludo!
19  Programación / Programación C/C++ / ¿Cómo hacer el diagrama de flujo de esta función? en: 11 Enero 2014, 17:40 pm
Buenas, tengo este programa que pasa de decimal a binario:

Código:
#include <stdio.h>
#include "decBin.h"

void decBin(int n);
int leeNumero();

int main ()
{

int n;

n = leeNumero();
decBin(n);
printf("\n");
return 0;

}




int leeNumero()

{

int numero;

do{

printf(T_INTRODUZCA_NUMERO);
scanf("%d", &numero);

}
while(numero < 0);


return numero;

}


void decBin (int n)

{

if (n == 0)
    printf("0");
else if (n == 1)
    printf("1");

else
{
decBin (n/2);
printf("%d", n % 2);

}

}

El diagrama de flujo de la función main como de la función leeNumero sé hacerlos, pero no sé como hacer el de la función recursiva decBin, ¿alguna ayuda?

Gracias de antemano y saludos!
20  Programación / Programación C/C++ / Problema con programa conversor de hexadecimal (SOLUCIONADO) en: 9 Enero 2014, 23:06 pm
Buenas, tengo un programa que convierte dos caracteres hexadecimales a su correspondiente número en decimal, admite tanto mayúsculas como minúsculas y si se introduce los caracteres qq el programa termina.

El código es el siguiente:

Código:
#include <stdio.h>

#define NOERROR 1
#define ERROR 0

int hexDec(char c1, char c2);
int main()
{

  /* Declaramos las variables */
  char car1;
  char car2;

  /* Bucle While para que salga con qq */
  do
    {
      printf("Introduzca el numero hexadecimal: ");
      scanf(" %c %c", &car1, &car2);
      
      hexDec(car1, car2);
    
    }
while(car1 != 'q' && car2 != 'q');

  return 0;
}


int hexDec(char c1, char c2)
{

char v1;
char v2;
int cuno = NOERROR;
int cdos = NOERROR;
int resultado;

 if (c1 != 'q' && c2 != 'q')
        {

          if ('0' <= c1 && c1 <= '9')
            v1 = c1 - '0';
          else if ('A' <= c1 && c1 <= 'F')
            v1 = c1 - 'A' + 10;
          else if ('a' <= c1 && c1 <= 'f')
            v1 = c1 - 'a' + 10;
          else
            {
              cuno = ERROR;
              printf("Error en el primer valor introducido\n");

            }
          if ('0' <= c2 && c2 <= '9')
            v2 = c2 - '0';
          else if ('A' <= c2 && c2 <= 'F')
            v2 = c2 - 'A' + 10;
          else if ('a' <= c2 && c2 <= 'f')
            v2 = c2 - 'a' + 10;
          else
            {
              cdos = ERROR;
              printf("Error en el segundo valor introducido\n");

            }

          if (cuno == NOERROR && cdos == NOERROR)
            {
              resultado = 16 * v1 + v2;

              printf("El valor decimal de 0x%c%c es %d\n", c1, c2,
                     resultado);

            }
        }

cuno = NOERROR;
        cdos = NOERROR;


return resultado;

}

Hasta ahí bien, el problema es que me piden una función hexValidos (la función hexDec debe seguir existiendo) que reciba dos caracteres como parámetros, y devuelva una indicación de si los dos caracteres son caracteres hexadecimales válidos o no (con el mensaje "Invalido).

El problema es que no sé muy bien como hacerlo, por ahora he hecho lo siguiente (qué seguro que está mal, pero no se me ocurre otra cosa):

Código:
void hexValidos(char a, char b)
{

int v1;
int v2;
int valor;
int ca = NOERROR;
int cb = NOERROR;

if (a != 'q' && b != 'q')

 {
    if ((('0' <= a && a <= '9') || ('A' <= a && a <= 'F') || ('a' <= a && a <= 'f')) && (('0' <= b && b <= '9') || ('A' <= b && b <= 'F') || ('a' <= b && b <= 'f')))
    
     hexDec(c1,c2);

    else
printf("Invalido\n");

return;

}


¿Alguna ayuda?, no pido que me hagan el código pero si me gustaría al menos tener alguna indicación o consejo sobre como hacerlo.

Gracias de antemano y un saludo!
Páginas: 1 [2] 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines