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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 2 3 [4] 5 6 7 8 9
31  Programación / Programación C/C++ / Enunciado ejercicio en C (no entiendo lo que me piden) en: 27 Marzo 2014, 18:58 pm
Hola compañeros, tengo un ejercicio en C que no se muy bien lo que me pide. Os dejo el enunciado para ver si alguien es tan amable de decirme que es lo que pide  ;D


Citar
Hacer un programa en lenguaje C que pedirá un número entero positivo "n".
Hacer una función: int funcioRe (int n)
  • Si n es 1 escribirá "n" por pantalla y devolverá un 1.
En caso contrario:
  • Si "n" es par, entonces escribirá "n" por pantalla y llamará a funcioRe () con
el valor n / 2, (hay que pensar lo que retornara en este caso)
 
  • Si es impar entonces escribirá "n" por pantalla y llamará a funcioRe () con el
valor 3n +1 (hay que pensar lo que retornara en este caso)
El problema consiste en saber el número de llamadas que se hacen hasta obtener el valor 1.

Ejemplo: si introducimos: 22
El algoritmo escribirá:
22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1
Total: 16 llamadas

Gracias!
32  Programación / Programación C/C++ / Listar secuencia de años hasta encontrar año con cifra repetida en: 12 Marzo 2014, 23:07 pm
Buenas,

Tengo un programa en C que me pide un año y luego me calcula cuantos años tienen que pasar hasta encontrar una cifra que sea repetida, es decir, año 2014 tiene 6 secuencias de años con cifras NO repetidas, ya que 2020 se repite una cifra (el 2).

He logrado que me diga que faltan 6 secuencias, pero ahora me gustaría que me las listará, ejemplo:

- 2014
- 2015
- 2016
- 2017
- 2018
- 2019

¿Se podría hacer?


Mi código actual:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <time.h>
  4.  
  5. #define FALSE 0
  6. #define TRUE 1
  7.  
  8. /******* Declaracion de funcions ******/
  9. int obtenerAnio();
  10. int tipoAnio(int año);
  11. int calcularSec (int año);
  12.  
  13. /******* Variables globales ******/
  14. int obtenerAnioOK=FALSE;  // Para NO acceder a la opción 3 antes
  15. int tipoAnioOK=FALSE;    // Para NO acceder a la opción 3 antes
  16.  
  17. /* MENU PRINCIPAL */
  18. int main(void){
  19.  int opcion=0;
  20.  int año; // Variable año utilizada en las funciones
  21.  do{
  22.    system("cls");
  23.    printf("\n1.- Obtener año");
  24.    printf("\n2.- Tipo de año");
  25.    printf("\n3.- Calcular secuencia");
  26.    printf("\n0.- Salir\n\n");
  27.    printf("\nIntroduce una opcion: ");
  28.    fflush(stdin);
  29.    scanf("%i", &opcion);
  30.    switch (opcion) {
  31.           case 1:
  32.                obtenerAnioOK=FALSE;   // Hacer antes la opción 1 antes que la 3
  33.                tipoAnioOK=FALSE;     // Hacer antes la opción 2 antes que la 3
  34.                año = obtenerAnio();   // Guardaremos en "any" lo que guarde la función obtenirAny
  35.                break;
  36.  
  37.           case 2:
  38.                if (!tipoAnio(año)) printf("\nEl año %i no tiene ninguna cifra repetida\n", año); // Mientras tipusAny no sea igual a "anyo"
  39.                else printf("\nEl año %i tiene cifras repetidas", año);
  40.                break;
  41.  
  42.           case 3:
  43.                if ((obtenerAnioOK)&&(tipoAnioOK)){ // Después de hacerse la opción 1 y 2 TRUE
  44.                                 printf("\nHay %i secuencias de año con cifras no repetidas.", calcularSec(año));
  45.                } // Fin if
  46.                else ("\nDe momento no se ha introducido el año o el tipo de anyo\n");
  47.                break;
  48.  
  49.           case 0:
  50.                break;
  51.  
  52.           default:
  53.                   printf("ERROR, opcion incorrecta!\n");
  54.                   break;
  55.    } // Fin switch
  56.    getch();
  57.  }while (opcion != 0);
  58.  system("pause");
  59.  return 0;
  60. } // Fin main
  61.  
  62.  
  63. /************* OBTENER año ***********/
  64. int obtenerAnio(){
  65.    int año; // Variable "año" para guardar la fecha introducida
  66.    do{
  67.        system("cls");
  68.        printf("\tINTRODUCE EL año\n");
  69.        printf("\nIntroduce un numero de cuatro digitos entre 1000 y 9999: ");
  70.        fflush(stdin);
  71.        scanf("%i", &año); // Guardar
  72.        }while ((año<1000)||(año>9999)); // Hacer mientras anyo sea + pequeño de 1000 y + grande de 9999
  73.  
  74.               obtenerAnioOK=TRUE; // FLAG TRUE
  75.        return año;
  76. } // Fin
  77.  
  78.  
  79. /*** TIPO año ***/
  80. int tipoAnio(int año){
  81.    int cifras[10] = {0,0,0,0,0,0,0,0,0,0}; // Todas las cifras valen 0 por defecto
  82.    int i=0, x=0, cont=0;
  83.  
  84.    while (año > 0) {
  85.          x = año % 10;     // Se queda con la resta, la cifra a tratar
  86.          año = año / 10;   // Quita el ultimo digito a la cifra
  87.          cifras[x] = 1;     // Asigna 1 a la posició de la cifra tratada
  88.    } // Fin while
  89.  
  90.    for (i=0; i<10; i++) cont = cont + cifras[i];
  91.  
  92.    tipoAnioOK=TRUE; // FLAG TRUE
  93.  
  94.    if (cont == 4) return 0; // No hay ninguna cifra repetida
  95.    else return 1; // Alguna cifra esta repetida
  96. } // Fin
  97.  
  98. /*** CALCULAR SECUENCIA ***/
  99. int calcularSec (int año){
  100.    int cont=0;
  101.  
  102.    while (!tipoAnio(año++)) cont++; // Mientras tipusAnio pasando any+1, hasta que la función retorne 0, contador ++
  103.                                     // Osea, retornara el número de veces que se ha ejecutado la función tipuusAny hasta dar 0 pasando una variable +1 todo el rato
  104.    return cont;
  105. } // Fin
  106.  

Gracias
33  Informática / Hardware / Algunas teclas de mi portátil Acer no funcionan en: 26 Enero 2014, 14:07 pm
Buenas,

Tengo un portátil Acer (Aspire 5633WLMi) del año 2007.

Este portátil me venía con Windows Vista, y hace tiempo le puse el Windows 7 y desde que lo formatee no me funcionan algunas teclas que vienen en teclado como son las de subir volumen, bajarlo, reproducir, stop, abrir navegador etc.

Hoy instalé Winwdows 8 y probé estas teclas y tampoco me iban en este Sistema Operativo. ¿Cual puede ser el problema? Rotas no creo que estén ¿no?


Recuerdo una vez que en un Live-CD de ubuntu funcionaban.


Gracias
34  Programación / Programación C/C++ / [help] Acertar un numero en: 23 Enero 2014, 15:48 pm
Buenas,

Tengo un problema en un juego de acertar un número, el usuario primero introduce un vector, luego tiene que acertar un numero del vector, cuando llegas a 3 intentos salta un mensaje diciendo que se te han acabado los intentos.

El problema que tengo es que si acierto si me sale correcto pero hago más de 3 intentos incorrectos y no me sale el aviso.


Código
  1. case 4:
  2.                      system("cls");
  3.                      if (error != 3) {
  4.                                printf("\tJUEGO DE ACERTAR UN NUMERO");
  5.                                printf("\n------------------------------\n");
  6.                                printf("Escribe un numero: ");
  7.                                scanf("%d", &num);
  8.  
  9.                                for (i=0; i<5; i++){
  10.                                    if (num == vector[i]) encontrado=1;
  11.                                }
  12.                                for (i=0; i<5; i++){
  13.                                    if (num != vector[i]) error=error+1;
  14.                                }
  15.  
  16.                                if (encontrado == 1){
  17.                                               printf("ENHORABUENA! Has acertado un numero!");
  18.                                               getch();
  19.                                }// fin if
  20.                      }//fin if
  21.                      else {
  22.                           printf("\nYa has hecho tres intentos");
  23.                           getch();
  24.                           }
  25.                      break;

A ver si me pueden echar un cable, gracias :)
35  Programación / Programación C/C++ / Reserva de asientos en un cine en: 22 Enero 2014, 22:05 pm
Hola compañeros,

Estoy haciendo un programa en C que me haga con una matriz los asientos de un cine, y me ha surgido un problema tonto. Cuando asigno un asiento reservado y muestro por pantalla me aparece así:



Yo escogí reservar fila 3 y columa 3 y me reserva los anteriores, es decir, donde he marcado en rojo debería estar en "0".

Código
  1.                      printf("\nEscribe la fila: ");
  2.                      scanf("%d", &fila);
  3.                      printf("\nEscribe la columna: ");
  4.                      scanf("%d", &columna);
  5.  
  6.                      for (i=0; i<fila; i++) {
  7.                          for (j=0; j<columna; j++) {;}
  8.                          if (mat[i][j] != 1){    
  9.                             mat[i][j] = 1;
  10.                          }
  11.                          else printf("Asiento ocupado");
  12.                      }
  13.  



Gracias!
36  Programación / Programación C/C++ / Suma de matriz + matriz invertida en: 16 Enero 2014, 14:17 pm
Hola,

Estoy haciendo un programa que rellene una matriz y que luego la ponga invertida.

Una vez hecho la invertida sumar la matriz con la matriz invertida pero en el resultado muestra esto:




Aquí dejo el Código:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define FILA 3
  4. #define COLUM 3
  5.  
  6.  
  7. int main(){
  8.    int i=0, j=0, num=0;
  9.    int mat[FILA][COLUM];
  10.    int invert[FILA][COLUM];
  11.    int suma[FILA][COLUM];
  12.  
  13.    // MATRIZ NORMAL
  14.    for(i=0; i<FILA; i++){
  15.             for(j=0; j<COLUM; j++){
  16.                      printf("Rellena la matriz %d %d: ",i,j);
  17.                      scanf("%d", &num);
  18.                      mat[i][j] = num;
  19.             }
  20.    }
  21.  
  22.    // HACER Y MOSTRAR INVERTIDA
  23.    printf("\nMATRIZ INVERTIDA\n\n");
  24.    for(i=0; i<FILA; i++){
  25.             for(j=0; j<COLUM; j++){
  26.                      invert[FILA][COLUM] = mat[FILA - i - 1][COLUM - j - 1];
  27.                      printf("| %d |", invert[FILA][COLUM]);
  28.             }
  29.             printf("\n");
  30.    }
  31.  
  32.    // HACER SUMA
  33.    for(i=0; i<FILA; i++){
  34.             for(j=0; j<COLUM; j++){
  35.                      suma[FILA][COLUM] = mat[FILA][COLUM] + invert[FILA][COLUM];
  36.             }
  37.    }
  38.    // MOSTRAR SUMA
  39.    printf("\nSUMA DE LAS MATRICES\n\n");
  40.    for(i=0; i<FILA; i++){
  41.             for(j=0; j<COLUM; j++){
  42.                      printf("| %d |",suma[FILA][COLUM]);
  43.             }
  44.             printf("\n");
  45.    }    
  46.  
  47.    getch();
  48.    return 0;
  49. }
  50.  


Gracias!
37  Sistemas Operativos / Windows / Cuotas en un RAID con VirtualBox?? en: 27 Diciembre 2013, 13:02 pm
Buenas,

Tengo que hacer un RAID en VirtualBox definiendo cuotas de manera que los usuarios solo pueden guardar 50 MB y que antes de llenar esos 50 MB les aparezca un mensaje de aviso.

Es de un ejercicio que tengo que hacer, pero no tengo mucha idea de como hacerlo, creo que se hará con las directivas de auditoria.

¿Alguien me podría echar una mano?
38  Programación / Programación C/C++ / Decir si un vector es palindromo o no en: 16 Diciembre 2013, 11:04 am
Hola de nuevo,

De nuevo vengo a pedir ayuda, porque no consigo hacer que me diga si un vector es palindromo o no.

Dejo el código entero para que vean que estoy haciendo, pero la parte incorrecta es el palindromo, siempre me dice "No es palindromo".

Ejemplo: 5 6 6 5 -> Si es palindromo




Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include<conio.h>
  5.  
  6. int main(){
  7.    int n, i, num;
  8.  
  9.    do{
  10.        printf("Grandaria del vector: ");
  11.        scanf("%d", &n);
  12.    }while(n<4 || n>20); //Entre 4 y 20
  13.  
  14.    int vector[n];
  15.  
  16.    for (i=0; i<n; i++){
  17.        do{
  18.           printf("Introduce un numero, vector %i: ", i+1);
  19.           scanf("%d",&num);
  20.           vector[i] = num;
  21.        }while(num<0 || num>9); // Entre 0 y 9
  22.    }
  23.  
  24.    // Mostrar vector
  25.    printf("\n\nVector:\n");
  26.    printf("____________________\n\n");
  27.    for (i=0; i<n; i++)
  28.        printf(" %d ", vector[i]);
  29.  
  30.  
  31.    // PALINDROMO
  32.    int temp = vector[i];
  33.    int extraer = 0;
  34.    int nuevonumero = 0;
  35.  
  36.    for(i = 0; temp > 0; i++){
  37.          extraer = temp%10;
  38.          nuevonumero = (nuevonumero*10) + extraer;
  39.          temp = temp/10;
  40.    }
  41.  
  42.    if(temp == nuevonumero){
  43.              printf("\n\nEs palindromo");
  44.    }
  45.    else{
  46.         printf("\n\nNo es palindromo");
  47.    }
  48.  
  49.  
  50.    getch();
  51.    return 0;
  52. }
  53.  

Muchas gracias!
39  Programación / Programación C/C++ / Cómo extraer caracteres en C en: 13 Diciembre 2013, 13:07 pm
Hola,

Estoy haciendo un programa en C y una opción es extraer caracteres comenzando desde la izquierda y otra opción es extraer caracteres comenzando desde la derecha.

He podido printar solo los caracteres que se han extraido pero no consigo printar el resultado de la cadena.

EXTRAER DESDE LA IZQUIERDA
Código
  1.                      printf("Cuantos caracteres quieres extraer? ");
  2.                      scanf("%d", &extraerIzq);
  3.  
  4.                      for (i=0; i<longitud && i<extraerIzq; i++){
  5.                          printf("\nSe ha extraido: %c", cadena[i]);
  6.                      }

EXTRAER DESDE LA DERECHA
Código
  1. printf("Cuantos caracteres quieres extraer? ");
  2.                      scanf("%d", &extraerDer);
  3.  
  4.                      extraerDer = longitud - (extraerDer > longitud?longitud:extraerDer);
  5.                      for (i = longitud - 1; i >= extraerDer; i--)
  6.                          printf("\nSe ha extraido: %c", cadena[i]);
40  Programación / Programación C/C++ / [Help] Programa que calcula sueldos en: 11 Diciembre 2013, 14:00 pm
Hola,

Estoy haciendo un programa en C que al introducir unos sueldos me calcule el sueldo neto, pueda modificar el suelo y también poder subir el sueldo.

Es un menú de 4 opciones, solamente me falla la opción 3 que es la de modificar el sueldo. ¿Podrían echarle un ojo y decirme en que fallo?

Gracias


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main () {
  6.    float sueldo[10], sueldoNeto[10], segSoc, irpf, sueldoNuevo, porcent;
  7.    int opcion=1;
  8.    int i=0;
  9.    bool lleno = false;
  10.    srand(time(NULL));
  11.  
  12.    while (opcion != 0){
  13.          system("cls");
  14.          printf("1.- Introducir sueldos\n");
  15.          printf("2.- Calcular sueldo neto\n");
  16.          printf("3.- Modificar sueldos\n");
  17.          printf("4.- Subir sueldos\n");
  18.          printf("0.- Salir\n");
  19.          printf("\nEscoge una opcion: ");
  20.          fflush(stdin);
  21.          scanf("%d", &opcion);
  22.          switch (opcion){
  23.                 case 1:
  24.                      system("cls");
  25.                      for (i=0; i<10; i++){
  26.                          sueldo[i] = (rand()%4999)+499;
  27.                      }
  28.                      // Mostrar Salario Bruto
  29.                      for (i=0; i<10; i++){
  30.                          printf("%.2f euros\n", sueldo[i]);
  31.                      }
  32.                      printf("\n\n");
  33.                      lleno = true;
  34.                      system("pause");
  35.                      break;
  36.                 case 2:
  37.                      system("cls");
  38.                      if (lleno) {
  39.                                 for (i=0; i<10; i++){
  40.                                     segSoc = sueldo[i] * 0.06;
  41.                                     if (sueldo[i] <= 700) irpf = sueldo[i] * 0.08;
  42.                                     else
  43.                                     if (sueldo[i] <= 1100) irpf = sueldo[i] * 0.11;
  44.                                     else
  45.                                     if (sueldo[i] <= 1500) irpf = sueldo[i] * 0.13;
  46.                                     else
  47.                                     if (sueldo[i] <= 2100) irpf = sueldo[i] * 0.17;
  48.                                     else
  49.                                     if (sueldo[i] <= 3000) irpf = sueldo[i] * 0.20;
  50.                                     else irpf = sueldo[i] * 0.25;
  51.  
  52.                                 sueldoNeto[i] = sueldo[i] - segSoc - irpf;
  53.                                 }
  54.                                 // Visualizar Sueldo Neto
  55.                                 for (i=0; i<10; i++){
  56.                                     printf("\nSueldo neto del empleado %i: %.2f euros\n",i+1, sueldoNeto[i]);
  57.                                 }
  58.                                 printf("\n");
  59.                                 system("pause");
  60.                      }
  61.                      else printf("\nERROR! No se ha introducio ningun sueldo\n");
  62.                      break;
  63.                 case 3:
  64.                      system("cls");
  65.                      if (lleno) {
  66.                                 do{
  67.                                     printf("A que empleado le quieres modificar el sueldo? ");
  68.                                     scanf("%i", &i);
  69.                                 }while((i<0) || (i>11));
  70.                                 do{
  71.                                     printf("Introduce un nuevo sueldo entre %.2f y 5000: ", sueldo[i]);
  72.                                     scanf("%.2f", &sueldoNuevo);
  73.                                     }while ((sueldoNuevo < sueldo[i]) || (sueldoNuevo > 5000));
  74.  
  75.                            printf("\nEl nuevo sueldo es %.2f: ",sueldoNuevo);
  76.                      }
  77.                      else printf("\nERROR! No se ha introducio ningun sueldo\n");
  78.                      break;
  79.                 case 4:
  80.                      system("cls");
  81.                      if (lleno){
  82.                                 printf("Escribe el portencaje para subir los sueldos: ");
  83.                                 scanf("%f", &porcent);
  84.  
  85.                                 for (i=0; i<10; i++){
  86.                                     sueldoNuevo = sueldo[i] + ((sueldo[i] * porcent) / 100);
  87.                                     sueldo[i] = sueldoNuevo;
  88.                                 }
  89.  
  90.                                 // Visualizar sueldos subidos
  91.                                 for (i=0; i<10; i++){
  92.                                     printf("\nSe ha subido el sueldo a: %2.f", sueldo[i]);
  93.                                 }
  94.                          printf("\n\n");
  95.                          system("pause");
  96.                      }
  97.                      else printf("\nERROR! No se ha introducio ningun sueldo\n");
  98.                      break;
  99.                 case 0:
  100.                      printf("\nHas decidido salir, hasta luego!\n\n");
  101.                      system("pause");
  102.                      return 0;
  103.                      break;
  104.                 default:
  105.                         printf ("La opcion es incorrecta, Presiona ENTER");
  106.                 } // Fin switch
  107.    } // Fin While
  108.  
  109.    printf("\n\n");
  110.    system("pause");
  111.    return 0;
  112. }


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