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 Mensajes
Páginas: 1 ... 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 [121] 122 123 124 125 126 127 128 129 130 131 132
1201  Programación / Programación C/C++ / Re: ejercicio en C en: 29 Octubre 2012, 23:28 pm
muchas gracias!! ya he visto mis fallos que son bastantes, aun me queda por aprender, pero dicen que de los fallos se aprende :P
Muy bien, eso es aptitud positiva.
Saludos!.
1202  Programación / Programación C/C++ / Re: ejercicio en C en: 29 Octubre 2012, 21:53 pm
Tienes que pasar a la función menú la variable opción por referencia, para luego usar el valor adecuado en la función main.
Por otro lado en los for puedes poner la condición terminar de leer frase al llegar al carácter nulo='\0'. Más o menos te quedaría así:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.    int menu(int *opcion);
  4.    void mayus(char*);
  5.    void minus(char*);
  6.    int main()
  7.    {       char frase[80];
  8.            int opcion=0,op;
  9.            printf("Introduce una frase \n");
  10.            gets(frase);
  11.            op=menu(&opcion);
  12.            if (op==1)
  13.                mayus(frase);
  14.            if (op==2)
  15.                minus(frase);
  16.            return 0;
  17.    }
  18.  
  19.    int menu(int *opcion)
  20.    {
  21.            printf("1.Pasar a mayusculas\n");
  22.            printf("2.Pasar a minusculas\n");
  23.            do
  24.            {
  25.            printf("Introduce opcion: \n");
  26.                        scanf("%d",&opcion);
  27.            }while(opcion<1 || opcion>2);
  28.            return opcion;
  29.    }
  30.  
  31.    void mayus(char *frase)
  32.    {
  33.           int t;
  34.            for(t=0;frase[t]!='\0';t++)
  35.                    frase[t]=toupper(frase[t]);
  36.            printf("%s",frase);
  37.    }
  38.  
  39.    void minus(char *frase)
  40.    {
  41.            int t;
  42.            for(t=0;frase[t]!='\0';t++)
  43.                    frase[t]=tolower(frase[t]);
  44.            printf("%s",frase);
  45.        }
  46.  
Saludos!.
1203  Programación / Programación C/C++ / Re: Ayuda con un programa muy facil en: 28 Octubre 2012, 20:25 pm
Quedaría por "ajustar "cositas" en el código, pero para que salgas de la duda y variando lo mínimo tu código, sería:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char** argv)
  4. {
  5.    int empresa_particular_pensionista;
  6.    float precio_de_la_factura;
  7.    float consumo;
  8.    printf("Introduzca la cantidad (en m^3):");
  9.    scanf("%f", &consumo);
  10.    if (consumo < 50.0)
  11.        precio_de_la_factura = 0.50 * consumo;
  12.    else if (consumo > 50.0)
  13.        precio_de_la_factura = 0.75 * consumo;
  14.    printf("Empresa (1),particular (2),pensionista (3): ");
  15.    scanf("%d", &empresa_particular_pensionista);
  16.  
  17.    if(empresa_particular_pensionista==1)
  18.        precio_de_la_factura*=0.73;
  19.    if (empresa_particular_pensionista==2)
  20.        precio_de_la_factura*=0.77;
  21.    if (empresa_particular_pensionista==3)
  22.        precio_de_la_factura*=0.88;
  23.    if (precio_de_la_factura < 10.0)
  24.        precio_de_la_factura = 10.0;
  25.    printf("el precio de la factura es: %.2f euros\n", precio_de_la_factura);
  26.    system("pause");
  27.    return (EXIT_SUCCESS);
  28. }
Saludos!.
1204  Programación / Programación C/C++ / Re: Ayuda con ejercicio en C en: 28 Octubre 2012, 17:21 pm
pero el 4 no se como hacerlo, y queria que me dijerias a ver de que forma puedo hacerlo, no quiero codigo, solo como poder hacerlo, una idea para despues hacerlo yo

Tendras que obtener dias, horas minutos y segundos restantes a partir de los segundos de entrada. Por ejemplo:
Código
  1. dias = (int) segundos/(3600*24);
P.D: Revisa lo anterior, lo de numero entero de días en especial.

Y lo siguiente no lo mires hasta que no lo hallas resuelto tú:








Código
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <inttypes.h>
  4.  
  5.  
  6.  
  7. int main()
  8. {
  9. uint64_t segundos;
  10. double minutos;
  11. double horas;
  12. double dias;
  13.  
  14.  
  15. printf("Porfavor introduzca los segundos: \n");
  16. scanf("%llu", &segundos);
  17.  
  18. while(getchar() != '\n')
  19. ;
  20.  
  21. minutos = (double) segundos/60;
  22.  
  23.  
  24. if (((int) minutos) != minutos)
  25. printf("Numero entero de minutos: No\n");
  26. else if (((int) minutos) == minutos)
  27. printf("Numero entero de minutos: Si\n");
  28.  
  29. horas = (double) segundos/3600;
  30.  
  31. if (((int) horas) != horas)
  32. printf("Numero entero de horas: No\n");
  33. else if (((int) horas) == horas)
  34. printf("Numero entero de horas: Si\n");
  35.  
  36. dias = (double) (segundos/(3600*24));
  37.  
  38. if (((int) dias) != dias)
  39. printf("Numero entero de dias: No\n");
  40. else if (((int) dias) == dias )
  41.    printf("Numero entero de dias: Si\n");
  42.    dias = (int) segundos/(3600*24);
  43.    horas = (segundos - (int) dias *3600*24)/3600;
  44.    minutos = (segundos -(int) dias *3600*24 - (int) horas*3600)/60;
  45.    segundos = segundos -(int) dias *3600*24 - (int) horas*3600- (int) minutos*60;
  46.    printf("\nNumero de dias: %g  \n",dias);
  47.    printf("Numero de horas: %g  \n",horas);
  48.    printf("Numero de minutos: %g  \n",minutos);
  49.    printf("Numero de segundos: %llu  \n",segundos);
  50. getchar();
  51. return 0;
  52. }
  53.  
1205  Programación / Programación C/C++ / Re: RETOS C++ en: 28 Octubre 2012, 13:39 pm
En mi serie empieza desde 1:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.    long num,cont=0;
  7.    cout << "Numeros de Fibonacci:" <<  "  1 ";
  8.    long f0=0,f1=1;
  9.    while (cont<29)
  10.        {
  11.            long f2 = f0 + f1;
  12.            cout << ", " << f2;
  13.            f0 = f1;
  14.            f1 = f2;
  15.            cont++;
  16.        }
  17. }
No se entiende bien el siguiente.
1206  Programación / Programación C/C++ / Re: Recursividad en C++, programas que no comprendo muy bien en: 27 Octubre 2012, 00:31 am
Código modificado.
PD: cuidado con recoger valores numéricos por teclado  :D
;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)
Y yo que creía que mi código lo había hecho demasiado complejo.....
Desde que tenga tiempo trataré de implementarlo con recursividad, pero más "humanizado"  :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

REEDITO:

Ya lo tengo con recursividad y sin la "artilleria pesada"  :rolleyes: :rolleyes:
Código
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4. int cont=0;
  5. int dibuja (int a);
  6. int main()
  7. {
  8.    int a,cont =0;
  9.    cout << "Introduce un numero IMPAR: "<<endl;
  10.    cin >> a;
  11.    dibuja (a);
  12.    return 0;
  13. }
  14. int dibuja (int a)
  15. {
  16.    if (a==0) return 1;
  17.    for (int i=1;i<=a;i++)
  18.                cout<<i<<" " ;
  19.    cout <<endl << setw(cont) << " ";
  20.    if (a<=3 )
  21.                {cont ++;dibuja (a-1);}
  22.    else
  23.                {cont+=2;dibuja (a-2);}
  24.  
  25. }

Ahora en serio, envidio tus conocimientos en C++, yo me manejo mejor en C - y estoy empezando- y apenas en C++. Tu código demuestra un conocimiento y manejo de librerias, comandos y punteros que ya quisiera yo para mí.
...... Pero no me negaras que mi código es más "humano".
:silbar: :silbar: :silbar:
1207  Programación / Programación C/C++ / Re: Recursividad en C++, programas que no comprendo muy bien en: 26 Octubre 2012, 17:55 pm
Opino lo mismo que tú :P
PD: ya modifiqué el código para que sea exactamente la figura que se pide.
Corrige algo porque sólo me sale " 1 ". No veo la sentencia - scanf- que permita entrar el tamaño de la figura. Supongo que estoy torpe, pero no me "cuadra" el código sin un scanf o un tamaño predeterminado. Perdona las observaciones. ¿O lo entras por el terminal?. Sí, eso es de ahí la conversión atoi. OK. Aclarado. Basta cambiar
Código
  1. figura(atoi(argv[1]));
  2. por
  3.        int num;
  4. printf ("Entre un numero IMPAR:");
  5. scanf ("%d",&num);
  6. figura(num);
Pero no funciona correctamente ya que el 1 2 están desplazados una posición más a la derecha de lo que deberían; lo mismo le pasa al último 1.Saludos!
1208  Programación / Programación C/C++ / Re: Recursividad en C++, programas que no comprendo muy bien en: 26 Octubre 2012, 15:39 pm
...y si quieres generar la misma figura que la tuya solo le tienes que poner una condición para que genere correctamente las dos últimas filas.
Lo haría con el código de cypascal, pero el tuyo es demasiado "denso": realmente has sacado la artillería pesada: strcpy, strcat, malloc ....
Pero reconozco que lo has "bordado", me parece increible.
1209  Programación / Programación C/C++ / Re: Variable i variable aux en: 26 Octubre 2012, 15:17 pm
Pero no lo deberia incrementar en 3 porque hay 3 i++ , por lo tanto deberia quedar
aux =2,i=2
aux=2, i=3
o esos i++ no incrementan?
bueno dejemoalo, eate programa aun es demasiado dificil.
Citar
Al primer " i "sólo le afecta el incremento de la condición, de ahí que valga aux=1, los siguientes ya pasan por los tres incrementos de ahí que aux pase a valer 4 ,7 ,10 ,13 ,...
1210  Programación / Programación C/C++ / Re: Variable i variable aux en: 26 Octubre 2012, 13:59 pm
pero no entiendo bien como funciona
Citar
Te dejo esté rollo que es la descripción del proceso:

 si entras la cadena asdf :

for_1: i empieza en cero y la condición frase[++i]
lo incrementa, por lo que pasa q valer 1=aux
for_2: aux=1 e i desde cero a uno
     1 0....1 1

for_1: i que valía 1 se incrementa en la condición
del for_2, la condición de frase[++i] y en el
propio for_1 con lo que toma el valor 4=aux
for_2:aux= 4 e i desde cero a 4:
    4 0 ...41....4 2...4 3...4 4

for_1: i que valía 4 se incrementa en la condición
del for_2, la condición de frase[++i] y en el
propio for_1 con lo que toma el valor 7=aux
for_2:aux= 7 e i desde cero a 7:
7 0..7 1...........7 7

for_1: i que valía 7 se incrementa en la condición
del for_2, la condición de frase[++i] y en el
propio for_1 con lo que toma el valor 10=aux
for_2:aux= 10 e i desde cero a 10:
10 0..10 1..10 2.........10 10

Y como la cadena era "asdf" produce sólo
cuatro ciclos:aux=1,4,7,10
Si entras una cadena más larga habrán más ciclos,
por ejemplo el siguiente sería:

for_1 : i que valía 10 se incrementa en la condición
del for_2, la condición de frase[++i] y en el
propio for_1 con lo que toma el valor 13=aux
for_2:aux= 13 e i desde cero a 13:
13 0..13 1..13 2........13 13
Páginas: 1 ... 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 [121] 122 123 124 125 126 127 128 129 130 131 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines