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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 ... 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 [126] 127 128 129 130 131 132
1251  Programación / Programación C/C++ / Re: RETOS C++ en: 3 Octubre 2012, 22:31 pm
A parte de eso funciono asi k te sumo los puntos
EHHHHHH, que yo había puesto en un post anterior la solución a la pirámide y al del cumpleaños...¡¡¡¡¡ no hay puntos para mí  GRRMMMMM!!!!!!!!!!
1252  Programación / Programación C/C++ / Re: duda: funcionamiento operador unario de conversion de tipo en: 3 Octubre 2012, 22:26 pm
Citar
¿es así su funcionamiento? sino es así ¿cual es su funcionamiento?
Creo que no es así, si ejecutas el programa verás que total sigue valiendo 8. Otra cosa es que hagas:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6.    double promedio;
  7.    int total=8;
  8.    int contadorCalif=3;
  9.    promedio = static_cast <int> (total) / contadorCalif;
  10.    cout << promedio << endl;
  11. }
Veras que promedio vale 2, en lugar de 2.66667.
1253  Programación / Programación C/C++ / Re: Estoy perdido con la recursividad en: 3 Octubre 2012, 22:11 pm
Citar
Te dejo como ejemplo la sucesión de fibonacci, que empieza con 1 y 1 y cada número es la suma de los dos anteriores:
1,1,2,3,5,8,13,21,34,55,.....:
Código
  1. #include <stdio.h>
  2.  
  3. long int fibonacci(long int  k);
  4. int main(void)
  5. {
  6.    int i;
  7.    for ( i=0; ;i++ )
  8.    {
  9.        if (fibonacci(i)>10000)  /*<==cuando supere este valor se para*/
  10.                break;
  11.        printf ("%ld    ",fibonacci(i));
  12.    }
  13.        printf ("%ld",fibonacci(i));
  14.    return 0;
  15. }
  16.  
  17. long int fibonacci(long int  k)
  18. {
  19.    if (k < 2)
  20.        return 1;
  21.    else
  22.        return fibonacci(k - 1) + fibonacci(k - 2);
  23. }
  24. /*
  25.           Por ejemplo, si llamo a  fibonacci(6) esto es lo que sucede:
  26.                             6    <==llamada a fibonacci(6),este llama fibonacci(5)+fibonacci(4)
  27.                                                     llamada a fibonacci(5),este llama fibonacci(4)+fibonacci(3)
  28.                  5 ...................... 4 <==
  29.                                                     Y llamada a fibonacci(4),este llama fibonacci(3)+fibonacci(2)
  30.                                                         y así sucesivamente.....fíjate que
  31.             4.......3              3.........2      en cada llamada se resta uno hasta
  32.                                                             que es uno.
  33.         3.......2 2.....1       2.......1        1
  34.  
  35.     2.......1   1 1     1       1       1           1
  36.     1   +   1 + 1+1  +  1 +     1  +    1    +      1 =8 =fibonacci(6)
  37.  
  38. Como dice tu libro "la primera llamada que se hizo,en este caso fibonacci(6), es la ultima en ejecutarse"*/
  39.  

Otro ejemplo más simple que calcula el factorial:
Código
  1. #include <stdio.h>
  2. long fact(int n)
  3. {
  4.    if (n==1)
  5.        return 1;
  6.    return n * fact (n-1);
  7. }
  8. main() {
  9. int num;
  10. printf("Introduzca un número entero: ");
  11. scanf("%d", &num);
  12. printf("Su factorial es: %ld\n", fact(num));
  13. }
  14. /*por ejemplo: num=6 ==>fact (6))
  15.  
  16. return:6*fact (5)
  17.     return:6*5*fact (4)
  18.          return:6*5*4*fact (3)
  19.                 return:6*5*4*3*fact (2)
  20.                     return:6*5*4*3*2*fact (1)
  21.                         return:6*5*4*3*2*1
PD:tú código no funciona.
Saludos!.
1254  Programación / Programación C/C++ / Re: RETOS C++ en: 3 Octubre 2012, 20:21 pm
[quote ]
11- Un programa que al introducirle tu data de nacimiento te diga los días, meses y semanas que faltan para tu próximo cumpleaños  [/quote]
Bueno, creo que ha salido:
Código
  1. /*Programa que al introducirle tu data de nacimiento
  2. te diga los días, meses y semanas
  3.  que faltan para tu próximo cumpleaños*/
  4.  
  5. #include <iostream>
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.    int i,dias=0,mes_cumple,mes,dia,dia_cumple,dias_mes [12]={31,29,31,30,31,30,31,31,30,31,30,31};
  11.  
  12.    cout << "DIA CUMPLE=   ";cin >>dia_cumple;
  13.    cout << "MES CUMPLE=   ";cin >>mes_cumple;
  14.    cout << "DIA ACTUAL=   ";cin >>dia;
  15.    cout << "MES ACTUAL=   ";cin >>mes;
  16.    if (mes_cumple>mes )
  17.        {
  18.            for (i=mes;i<mes_cumple-1;i++)
  19.                dias+=dias_mes [i];
  20.            dias+=dias_mes [mes-1]-dia+dia_cumple;
  21.            cout << "dias = "<<dias;
  22.  
  23.            cout << "   meses = "<<mes_cumple-mes-1;
  24.        }
  25.     else if ((mes_cumple<mes) || (mes_cumple==mes && dia_cumple<dia))
  26.        {
  27.            for (i=mes;i<12;i++)
  28.                dias+=dias_mes [i];
  29.            for (i=0;i<mes_cumple-1;i++)
  30.                dias+=dias_mes [i];
  31.            dias+=dias_mes [mes-1]-dia+dia_cumple-1;
  32.            cout << "dias = "<<dias-1;
  33.            if (mes_cumple==mes && dia_cumple<dia)
  34.                cout << "   meses = 11";
  35.            else
  36.                cout << "   meses = "<<12-mes+mes_cumple-1;
  37.        }
  38.    else if (mes_cumple==mes && dia_cumple>dia)
  39.        cout << "dias = "<<dia_cumple-dia<< "   meses =0";
  40.    cout << "   semanas =  "<<dias/7;
  41.    return 0;
  42. }
  43.  
Saludos!.
1255  Programación / Programación C/C++ / Re: Es eficiente usar #define en: 3 Octubre 2012, 13:13 pm
Código
  1. #define f(x) cout << x;
Citar
Exacto. Y lo que te comenté, cuando el compilador va a a ejecutar el código, previamente hace una sustitución de todos los define por sus valores correspondientes. Es decir,antes de ejecutar el código,  donde tengas puesto f() él pondrá  cout << x.
En el enlace http://es.wikipedia.org/wiki/C%C3%B3digo_objeto creo que correspondería a Traducción
1256  Programación / Programación C/C++ / Re: [Solucionado] ¿Cambia el valor de una variable dentro una funcion? en: 3 Octubre 2012, 11:53 am
lo de los punteros y esas cosas vienen explicadas mas adelante, asi que las vere cuando toque
Aunque te toque más adelante procura guardar los ejemplos que te postee, son clarificadores e incluyen aritmética de punteros. Por cierto, ¿Qué libro estas siguiendo para el estudio del C?.
Gracias y un saludo.
1257  Programación / Programación C/C++ / Re: Es eficiente usar #define en: 3 Octubre 2012, 11:45 am
Según tengo entendido, al compilar el programa, se sustituye en el código los define por sus expresiones correspondientes. La ventaja que le veo es a la hora de modificar un código, que con algunas variables o expresiones sólo hay que cambiarlas una vez en el define , sin tener que recorrer el código en busca de ellas para cambiarlas en cada sitio
P;D Con esa foto podrías llamarteWalter White en lugar de Xafi
..... es una broma ehhhhhh.
Saludos!, y perdon por el post anterior, le dí a una tecla y se publico antes de escribir. ;-) ;-) ;-) ;-) ;-) ;-)
1258  Programación / Programación C/C++ / Re: [Solucionado] ¿Cambia el valor de una variable dentro una funcion? en: 2 Octubre 2012, 19:48 pm
Los punteros los tratan mas adelante en el libro que estoy leyendo, asi que voy a dejarlos para cuando toque, he compilado el codigo que has dejado
Sólo necesitas saber ahora que puedes pasar a una función un parámetro o variable  por valor -que es lo que has visto hasta ahora- y por referencia -que hace uso de punteros y es lo que te queda por ver-. La diferencia fundamental es que en el paso por valor, en la función donde está declarada la variable, su valor no cambia aún después de "pasar" por la función, mientras que en el paso por referencia sí puede cambiar el valor de la variable.
Te dejo el código funcionando para los dos métodos:
Código
  1. #include <stdio.h>
  2.  
  3. void modificar(int a)
  4. {
  5. a *= 3;
  6. printf("\n\na = %d (desde la funcion, modificando el valor)", a);
  7. return ;
  8. }
  9. void modificar1(int *a)
  10. {
  11. *a *= 3;
  12. printf("\n\na = %d (desde la funcion, modificando el valor)", *a);
  13. return ;
  14. }
  15. int main()
  16. {
  17.  
  18. int *a = 2;
  19.    printf("\n\nPaso por valor\n");
  20. printf("\na = %d (desde main, antes de llamar a la funcion)", a);
  21. modificar(a);
  22. printf("\n\na = %d (desde main, despues de llamar a la funcion por valor)", a);
  23. printf("\n\nPaso por referencia con puntero\n");
  24. printf("\na = %d (desde main, antes de llamar a la funcion)", a);
  25. modificar1(&a);
  26. printf("\n\na = %d (desde main, despues de llamar a la funcion por referencia)", a);
  27.  
  28. printf("\n\na = %d (desde main, OTRA VEZ antes de llamar a la funcion)", a);
  29. modificar1(&a);
  30. printf("\n\na = %d (desde main, despues de llamar a la funcionpor referencia )", a);
  31.        return 0;
  32. }
Por si te animas a empezar  a leer sobre punteros, aquí va un ejemplo:
Código
  1. #include <stdio.h>
  2. int main() {
  3.    int i=0,*puntero,*pmat;
  4.    int valor = 52;
  5.    int mat [10];
  6.    mat[0]=10, mat[1]=30,mat[2]=50,mat[3]=60;
  7.    puntero = &valor;
  8.    printf("puntero apunta a %p\n", puntero);
  9.    printf("la direccion de memoria de &valor es %p\n", &valor);
  10.    printf("el valor de 'valor' es %d\n", valor);
  11.    printf("el valor de aquello a lo que apunta *puntero es %d\n", *puntero);
  12.    *puntero += 25;
  13.    printf("el valor de aquello a lo que apunta *puntero += 25 es %d\n\n\n", *puntero);
  14.  
  15.    pmat=&mat[0] ;//<=== pmat "apunta=da" a la direccion de mat[0]
  16.    printf("pmat apunta a la direccion %p\n\n", pmat);
  17.    printf("el valor de aquello a lo que apunta *pmat=mat[0] es %d\n\n", *pmat);//10
  18.  
  19.    i=*++pmat;//<=== pmat "apunta" a la direccion de mat[1]
  20.    printf("el valor de aquello a lo que apunta *++pmat=mat[1] es %d\n\n", i);//30
  21.  
  22.    i=*pmat+1;
  23.    printf("el valor de aquello a lo que apunta *pmat+1=30+1 es %d\n\n", i);//31
  24.  
  25.    i=*(pmat+1);//<=== pmat "apunta" a la direccion de mat[2]
  26.    printf("el valor de aquello a lo que apunta *(pmat+1)=mat[2] es %d\n\n", i);//50
  27.  
  28.    i=*++pmat;//<=== pmat "apunta" a la direccion de mat[2];
  29.    printf("el valor de aquello a lo que apunta *++pmat=mat[2] es %d\n\n", i);//50
  30.  
  31.    i=*++pmat;//<=== pmat "apunta" a la direccion de mat[3]
  32.    printf("el valor de aquello a lo que apunta *++pmat=mat[3] es %d\n\n", i);//60
  33.  
  34.    i=*pmat+5;//<=== pmat "apunta" a la direccion de mat[3]+5
  35.    printf("el valor de aquello a lo que apunta *pmat+5=mat[3]+5 es %d\n\n", i);//65
  36.  
  37.    return 0;
  38. }
  39.  
Saludos!
1259  Programación / Programación C/C++ / Re: RETOS C++ en: 2 Octubre 2012, 18:33 pm
12- Un programa que haga diversos rombos de 2 * n -1 lineas como en el siguiente ejemplo  

Entrada: 4
SAlida:  
    *
  ***
 *****
*******
 *****
  ***
   *

25 puntos
Código
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int n,fila,col;
  6. cout << "tamanyo de la piramide: "<<endl;
  7. cin >> n;
  8.    for(fila=1;fila<=n;fila++)
  9.    {
  10.        for(col=1;col<=n-fila;col++)
  11.            cout<<" ";
  12.        for(col=1;col<=2*fila-1;col++)
  13.            cout<<"*";
  14.    cout<<endl;
  15.            }
  16. /* Escritura de la parte inferior */
  17.    for(fila=n-1;fila>=1;fila--)
  18.    {
  19.        for(col=1;col<=n-fila;col++)
  20.            cout<<" ";
  21.        for(col=1;col<=2*fila-1;col++)
  22.            cout<<"*";
  23.    cout<<endl;
  24.    }
  25. }

__

EI: juntando mensajes.

1-Un programa que cuente los caracteres que tiene un texto previamente introducido por el usuario (parece más fácil de lo que es)

ejemplo de entrada: "ho la" ejemplo salida:el texto tiene 5 caracteres

1 punto
Incluyendo espacios en blanco:
Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4. main()
  5. {
  6.    int i;
  7.    char cadena [200];
  8.    gets (cadena);
  9.    for (i=0;cadena [i]!='\0';i++) ;
  10.    cout << "El texto tiene " << i << " caracteres." << endl;
  11.    return 0;
  12. }
1260  Programación / .NET (C#, VB.NET, ASP) / Re: Tengo una duda al compilar mi programa me marca error en esto en: 2 Octubre 2012, 15:52 pm
Hola a todos, alguien podría disipar mi duda a que se debe que me marque el error en esta parte por favor?, se los agradezco mucho y tengan buen día.
Lo estuve mirando y me pareció mejor así:
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int num_mes=0,anyo;
  6.    char mes [12][10]={"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"};
  7.    printf("MES =   ");scanf ("%d",&num_mes);
  8.    printf("ANYO =   ");scanf ("%d",&anyo);
  9.    switch (num_mes)
  10.    {
  11.        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
  12.        printf("31 / %s / %d\n" ,mes [num_mes-1],anyo);
  13.        break;
  14.        case 4: case 6: case 9: case 11:
  15.        printf("30 / %s / %d\n" ,mes [num_mes-1],anyo);
  16.        break;
  17.        case 2:
  18.        if (( anyo % 4==0) && (anyo % 100 != 0) || (anyo % 400==0)  )
  19.            printf("29 / %s / %d\n" ,mes [1],anyo);
  20.        else
  21.            printf("28 / %s / %d\n",mes [1],anyo);
  22.        break;
  23.        default:
  24.        printf ("\nEl mes no es valido");
  25.        break;
  26.    }
  27.    return 0;
  28. }
O como tú lo tenías, corregido más o menos:
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int num_mes=0,anyo;
  6.    printf("MES =   ");scanf ("%d",&num_mes);
  7.    printf("ANYO =   ");scanf ("%d",&anyo);
  8.    switch (num_mes)
  9.    {
  10.        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
  11.        printf("31 / %d / %d\n" ,num_mes,anyo);
  12.        break;
  13.        case 4: case 6: case 9: case 11:
  14.        printf("30 / %d / %d\n" ,num_mes,anyo);
  15.        break;
  16.        case 2:
  17.        if (( anyo % 4==0) && (anyo % 100 != 0) || (anyo % 400==0)  )
  18.            printf("29 / 2 / %d\n" ,anyo);
  19.        else
  20.            printf("28 / 2 / %d\n",anyo);
  21.        break;
  22.        default:
  23.        printf ("\nEl mes no es valido");
  24.        break;
  25.    }
  26.    return 0;
  27. }
Saludos!
Páginas: 1 ... 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