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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
71  Programación / Programación C/C++ / Re: Función en recursividad en: 8 Abril 2014, 22:42 pm
Gracias por la ayuda "NikNitro!", te lo agradezco!

El código lo llevo así:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define FALSE 0
  5. #define TRUE 1
  6. int numLlamadas = 0; //CAMBIADO
  7.  
  8. /* Declaracion de las funciones */
  9. unsigned int f2x3 (int);
  10.  
  11. /* Menu principal */
  12. int main(void){
  13.    unsigned int n; // Variable "n" donde se guarda el numero y que utilizará la funcion
  14.  
  15.    printf("Escribe un numero: ");
  16.    fflush(stdin);
  17.    scanf("%d", &n); // guardamos el numero introducido
  18.  
  19.    printf("\nTotal de llamadas: %d \n", numLlamadas); // Mostramos el total de llamadas de la funcion //CAMBIADO
  20.  
  21.    getch();        
  22.    return 0;
  23. } // Fin main
  24.  
  25. /* Funcion */
  26. unsigned int f2x3 (int n) {
  27.    int i = 0;      //El siguiente número que usaremos  //CAMBIADO
  28.    printf("%i ", n); // Listamos los numeros que va llamando la funcion
  29.  
  30.    if (n == 1) return 1; // Primer caso, si el valor es igual a 1 entonces retornará 1
  31.    else { //CAMBIADO
  32.      (n % 2 == 0) && (n % 3 == 0) i=n+5; // Caso II //CAMBIADO
  33.      (n % 2 == 0) && (n % 3 != 0) i=n/2; // Caso III //CAMBIADO
  34.      (n % 2 != 0) && (n % 3 == 0) i=n+2; // Caso IV //CAMBIADO
  35.      (n % 2 != 0) && (n % 3 != 0) i=n-1; // Caso V //CAMBIADO
  36.    } //CAMBIADO
  37.  
  38.    numLlamadas++; //CAMBIADO
  39.    return f2x3(i); //CAMBIADO
  40. } // Fin de la funcion
  41.  
  42.  


El error que me da es el siguiente:

In function `f2x3':
syntax error before "i"
72  Programación / Programación C/C++ / Re: Función en recursividad en: 7 Abril 2014, 23:08 pm
Me esta dando un error y llevo un rato intentando ver que es y no lo encuentro.


En esta parte:

Código
  1.    if (n == 1) return 1; // Primer caso, si el valor es igual a 1 entonces retornará 1
  2.    else { //CAMBIADO
  3.      (n % 2 == 0) && (n % 3 == 0) i=n+5; // Caso II //CAMBIADO
  4.      (n % 2 == 0) && (n % 3 != 0) i=n/2; // Caso III //CAMBIADO
  5.      (n % 2 != 0) && (n % 3 == 0) i=n+2; // Caso IV //CAMBIADO
  6.      (n % 2 != 0) && (n % 3 != 0) i=n-1; // Caso V //CAMBIADO
  7.    } //CAMBIADO
  8.  
  9.    numLlamadas++; //CAMBIADO

Error: syntax error before "i"
73  Programación / Programación C/C++ / Re: Función en recursividad en: 7 Abril 2014, 22:44 pm
Muchas gracias!

Tenía ya la variable "n" para el total de llamadas.
74  Programación / Programación C/C++ / Re: Función en recursividad en: 7 Abril 2014, 22:05 pm
En el ejemplo que he dado si pongo 18 me dice que el total de llamadas es "1" cuando en verdad son 9.


Saludos
75  Programación / Programación C/C++ / Función en recursividad en: 7 Abril 2014, 21:46 pm
Hola, a ver si me pueden corregir este programa en C jeje

Programa que pedirá un número entero y hace una función int f2x3 con:

1) Si "n" es 1 escribirá "n" por pantalla y devolverá un 1.
2) Si "n" no es 1 y si es múltiplo de 2 y es múltiplo de 3 escribirá "n" por pantalla y
llamará a f2x3 con el valor n+5.
3) Si "n" no es 1 y es múltiplo de 2 pero no es múltiplo de 3 escribirá "n" por
pantalla y llamará a f2x3 con el valor n/2.
4) Si "n" no es 1 y es múltiplo de 3 pero no es múltiplo de 2 escribirá "n" por
pantalla y llamará a f2x3 con el valor n+2.
5) Si "n" no es 1 y no es múltiplo de 2 ni múltiplo de 3 escribirá "n" por pantalla
y llamará a f2x3 con el valor n-1.

Ejemplo: Si introducimos un 18

Escribirá por pantalla: 18,23,22,11,10,5,4,2,1 Total: 9 llamadas


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define FALSE 0
  5. #define TRUE 1
  6.  
  7. /* Declaracion de las funciones */
  8. unsigned int f2x3 (int);
  9.  
  10. /* Menu principal */
  11. int main(void){
  12.    unsigned int n; // Variable "n" donde se guarda el numero y que utilizará la funcion
  13.  
  14.    printf("Escribe un numero: ");
  15.    fflush(stdin);
  16.    scanf("%d", &n); // guardamos el numero introducido
  17.  
  18.    printf("\nTotal de llamadas: %d \n", f2x3(n)); // Mostramos el total de llamadas de la funcion
  19.  
  20.    getch();        
  21.    return 0;
  22. } // Fin main
  23.  
  24. /* Funcion */
  25. unsigned int f2x3 (int n) {
  26.  
  27.    printf("%i ", n); // Listamos los numeros que va llamando la funcion
  28.  
  29.    if (n == 1) return 1; // Primer caso, si el valor es igual a 1 entonces retornará 1
  30.    if ((n != 1) && (n % 2 == 0) && (n % 3 == 0)) return f2x3(n+5); // Caso II
  31.    if ((n != 1) && (n % 2 == 0) && (n % 3 != 0)) return f2x3(n/2); // Caso III
  32.    if ((n != 1) && (n % 2 != 0) && (n % 3 == 0)) return f2x3(n+2); // Caso IV
  33.    if ((n != 1) && (n % 2 != 0) && (n % 3 != 0)) return f2x3(n-1); // Caso V
  34.  
  35. } // Fin de la funcion


Gracias y un saludo
76  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!
77  Programación / Programación C/C++ / Re: Listar secuencia de años hasta encontrar año con cifra repetida en: 13 Marzo 2014, 21:19 pm
jajaja muchas gracias por las molestias, te estoy muy agradecido!


Un saludo
78  Programación / Programación C/C++ / Re: Listar secuencia de años hasta encontrar año con cifra repetida en: 13 Marzo 2014, 17:06 pm
El código es la solución de un ejercicio de la escuela   ;D

Gracias por tu ayuda, eso era lo que quería, pero he tenido que cambiar la variable "año" por "año" de nuevo porque sino peta por todos los lados, si que lo he mantenido en los "printf".


Saludos
79  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
80  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
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines