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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Temas
Páginas: 1 2 3 4 [5] 6
41  Programación / Programación C/C++ / Libros para aprender SDL en español en: 16 Noviembre 2013, 01:24 am
Buenas noches, simplemente quería aportar estas paginas que conseguí que explican el funcionamiento de la librería SDL

http://www.uca.es/softwarelibre/contenidos/tutorialWikiLibSDL-20080131.pdf

http://www.albertogarcia.info/libros/sdl/%5Bebook%5DProgramacion%20de%20videojuegos%20con%20SDL.pdf

Espero les sea de ayuda =)
42  Programación / Programación C/C++ / Problema de puntero en: 7 Noviembre 2013, 02:03 am
Buenas noches, tengo una duda para entender este simple codigo

Código
  1. #include <iostream>
  2.  
  3. void modificar( int *, int);
  4.  
  5. int main( int argc, char* args[] )
  6. {
  7.    const int fil = 2;
  8.    const int col = 6;
  9.    int a[fil][col] = {};
  10.    int *b;
  11.    b = *a;
  12.  
  13.    modificar(*a,fil*col);
  14.  
  15.    for(int i = 0; i < fil*col; i++)
  16.        cout << *(b+i) << " ";;
  17.  
  18.  
  19.    cin.get();
  20.    cin.get();
  21.    return 0;
  22. }
  23.  
  24. void modificar( int *a, int tamanio)
  25. {
  26.    int j;
  27.    for(j = 0; j < tamanio; j++)
  28.        *(a+j) = j;
  29. }
  30.  
  31.  

1) ¿Que esta sucediendo cuando b = *a?

2) Los arreglos unidimensionales que he practicado se le pasan a la funcion solamente con su nombre, y ¿Por que aqui paso el arreglo con puntero? modificar( *a, fil*col );

En realidad pregunto esto, porque estaba probando y me funciono eso, pero no entiendo esas 2 lineas :S

Gracias
43  Programación / Programación C/C++ / Ayuda con el operador new en: 1 Octubre 2013, 22:45 pm
Hola, practicando con el operador new de C++ me he dado cuenta que no tiene forma de redimensionar el arreglo dinamico, por lo que segui el ejemplo de un amigo de crear una nuevo arreglo dinamico, copiar todo lo que tenia en el viejo y pasarlo al nuevo y destruirlo (el viejo), no se si es que ese operador no trae esa funcion, ¿O tendria que trabajar con la clase vector para poder manipularla?
44  Programación / Programación C/C++ / Obtener tamaño de array dinamico en: 1 Octubre 2013, 01:54 am
Buenas noches, despues de buscar en varias paginas la respuesta al titulo de este tema, no logre conseguir como saber el tamaño de un arreglo dinamico, si alguien sabe como se puede lograr eso les agradeceria  :)
45  Foros Generales / Sugerencias y dudas sobre el Foro / Problemas de acceso al foro en: 27 Septiembre 2013, 00:19 am
Hola, no se si soy el unico al que le esta tardando entrar al foro, cada vez que actualizo o le doy clic a un link, el navegador me dice que no se pudo cargar la pagina y cuando le doy refrescar de nuevo si carga bien, las demas paginas me cargan normal, no se a que se deba esto.
46  Programación / Programación C/C++ / strlen() y .length() en: 17 Septiembre 2013, 02:58 am
Buenas noches, estoy claro que la funcion strlen() sirve para leer una cadena de caracteres al estilo C de una variable char, y .length() para saber el tamaño de un string, pero queria saber si existe una funcion en C++ para leer el tamaño de una cadena de caracteres de tipo char y no string. Gracias
47  Sistemas Operativos / GNU/Linux / Duda para elegir version de Linux Ubuntu en: 11 Septiembre 2013, 09:25 am
Hola, mi caso es que me gustaria saber cual de estas 2 versiones me recomiendan para usar linux, Ubuntu 12.04 LTS o Ubuntu 13.04, como soy nuevo en esa SO me gustaria leer sus recomendaciones, he leido que la version 12.04 LTS sera soportada hasta 2017 y la version 13.04 sera soportada para 9 meses, es decir, que despues de esos meses ¿quedara sin soporte? no se si lo lei bien porque esta en ingles, gracias.
48  Programación / Programación C/C++ / Duda sobre memoria dinamica C++ en: 11 Septiembre 2013, 06:25 am
Buenas noches, acabo de notar que cuando creo una memoria dinamica usando new[], no tengo necesidad de usar el encabezado <new>, pero en una pagina de C++ indica que ésta es necesaria para invocar ese metodo: http://www.cplusplus.com/reference/new/  , aqui tienen mi codigo y veran que funciona perfectamente sin la cabecera <new>

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main( int argc, char* args[] )
  6. {
  7.    int *arreglo;
  8.    int cantidad, i, a = 0;
  9.    cout << "Ingrese el tamaño del arreglo: ";
  10.    cin >> cantidad;
  11.    // El metodo nothrow permite que el programa se siga ejecutando incluso si el puntero recibe un parametro invalido
  12.    arreglo = new (nothrow) int [cantidad];
  13.    if( arreglo == 0)
  14.        cout << "Error, no se pudo asignar memoria" << endl;
  15.    else
  16.        for( i = 0; i < cantidad; i++ )
  17.        {
  18.            arreglo[i] = a;
  19.            a++;
  20.            cout << arreglo[i] << endl;
  21.        }
  22.    // El operador delete sirve para liberar la memoria dinamica utilizada
  23.    delete [] arreglo;
  24.    cin.get();
  25. return 0;
  26. }
  27.  
  28.  

¿Sera que ya no es necesario usar esa cabecera? Que alguien me explique que diferencia hay entre usarla o no, por favor, gracias.
49  Programación / Programación C/C++ / Triples de pitagoras C++ (Ayuda sobre optimizacion) en: 10 Septiembre 2013, 02:01 am
Buenas noches, he hecho un programa sobre Triples de Pitagoras, ¿Es posible que exista una forma mas optimizada? Dejare mi codigo:

Código
  1. /*(Triples de Pitágoras) Un triángulo recto puede tener lados cuyas longitudes sean valores enteros. Un conjunto de tres
  2. valores enteros para los lados de un triángulo recto se conoce como triple de Pitágoras. Estos tres lados deben satisfacer la
  3. relación que establece que la suma de los cuadrados de dos lados es igual al cuadrado de la hipotenusa. Encuentre todos los
  4. triples de Pitágoras para lado1, lado2, y la hipotenusa, que no sean mayores de 500. Use un ciclo for triplemente anidado
  5. para probar todas las posibilidades. Este método es un ejemplo de la computación de fuerza bruta. En cursos de ciencias
  6. computacionales más avanzados aprenderá que existen muchos problemas interesantes para los cuales no hay otra metodología
  7. algorítmica conocida, más que el uso de la fuerza bruta. */
  8.  
  9. #include <iostream>
  10. #include <cmath>
  11. #include <iomanip>
  12.  
  13. using namespace std;
  14.  
  15. int main( int argc, char* args[] )
  16. {
  17.    int lado1 = 1, lado2 = 1, hipotenusa = 1;
  18.    double res_pow_lado2, res_pow_hipotenusa;
  19.  
  20.    cout << "Lado1 al cuadrado ------ Lado2 al cuadrado ------ Hipotenusa al cuadrado" << endl << endl;
  21.  
  22.    for( ;; hipotenusa++ )
  23.    {
  24.        res_pow_hipotenusa = pow( hipotenusa, 2 );
  25.        for( ;; lado2++ )
  26.        {
  27.            res_pow_lado2 = pow( lado2, 2 );
  28.            for( ;; lado1++ )
  29.            {
  30.                if( pow( lado1, 2 ) + res_pow_lado2 == res_pow_hipotenusa )
  31.                {
  32.                    cout << lado1 << " = " << pow( lado1, 2 ) << setw(20) << lado2 << " = " << res_pow_lado2 << setw(20) << hipotenusa << " = " << res_pow_hipotenusa << endl;
  33.                }
  34.                if( pow( lado1, 2 ) + res_pow_lado2 > 500 )
  35.                    break;
  36.            }
  37.            lado1 = 1;
  38.            if( lado1 + res_pow_lado2 > 500 )
  39.                break;
  40.        }
  41.        lado2 = 1;
  42.        if( res_pow_hipotenusa > 500 )
  43.            break;
  44.    }
  45.  
  46.    cin.get();
  47. return 0;
  48. }
  49.  
  50.  

Gracias.

EDIT: Me gustaria saber si existe una manera de comprobar que ese es el resultado correcto :S, es decir, si no existen mas combinaciones.

EDIT2: Me di cuenta que las variables res_pow... deben ser double.
50  Programación / Programación C/C++ / Mostrar ceros a la izquierda en un entero en C++ en: 6 Septiembre 2013, 06:20 am
Buenas noches mi problema es que no encuentro como hacer para que un entero muestre n cantidad de ceros (0) a la izquierda, lo mas que he encontrado es de la cabecera <iomanip>, setfill(); setw(); pero setfill() recibe como parametro un char, y queria saber si existia algo parecido como setprecision(); fixed;  pero para el lado izquierdo de los enteros.

Les dejare mi codigo para que vean mejor a que me refiero

Código:
#include <iostream>

using namespace std;

int main( int argc, char* args[] )
{
    int numero, digito[4], temp, i, numerocifrado;
    cout << "Ingrese un numero de 4 digitos: ";
    cin >> numero;

    // Obtenemos cada digito por separado
    digito[0] = numero / 1000;
    digito[1] = ( numero % 1000 ) / 100;
    digito[2] = (( numero % 1000 ) % 100 ) / 10;
    digito[3] = (( numero % 1000 ) % 100 ) % 10;

    // Codificamos cada digito
    digito[0] = ( digito[0] + 7 ) %10;
    digito[1] = ( digito[1] + 7 ) % 10;
    digito[2] = ( digito[2] + 7 ) % 10;
    digito[3] = ( digito[3] + 7 ) % 10;

    // Intercambiamos las posiciones de cada digito

    // El primer digito con el tercero
    temp = digito[0];
    digito[0] = digito[2];
    digito[2] = temp;

    // Y el segundo digito con el cuarto
    temp = digito[1];
    digito[1] = digito[3];
    digito[3] = temp;

    // Pasamos los valores segun la posicion de la variable digito[] a numerocifrado
    numerocifrado = ( digito[0] * 1000 ) + ( digito[1] * 100 ) + ( digito[2] * 10 ) + digito[3];

    // Mostramos el numero cifrado
    cout << "Numero original: " << numero << endl
         << "Numero cifrado:  " << numerocifrado << endl;

   

    cin.get();
return 0;
}


Si introducen el numero 1234, deberia mostrar 0189, pero solo muestra 189, a eso me estoy refiriendo, ¿Como mostrar ese cero a la izquierda faltante?

Muchas gracias.
Páginas: 1 2 3 4 [5] 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines