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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13
51  Programación / Programación C/C++ / Re: [Ayuda] Redondeo en C++ en: 22 Julio 2014, 21:18 pm
n2 es siempre una potencia de 10?

Si es asi esto sugiero:
- Sumar la mitad de n2 a n1
- Calcular el resto de la division entre n1 y n2 usando el modulo
- Restarle ese resto a n1

1424, 10:
- 1424 + 5 = 1429
- 1429 % 10 = 9
- 1429 - 9 = 1420

2636, 100:
- 2636 + 50 = 2686
- 2686 % 100 = 86
- 2686 - 86 = 2600



Hehe no, error mío. En el segundo ejemplo es 100, no 10.
52  Programación / Programación C/C++ / [Ayuda] Redondeo en C++ en: 22 Julio 2014, 20:26 pm
Ya logré resolverlo, gracias. :)
Si un moderador ve este, por favor cierre el tema. n.n
53  Programación / Programación C/C++ / Re: [Ayuda] Invertir arreglos. en: 7 Mayo 2014, 21:17 pm
No "cerrabas" la cadena con el caracter nulo:

Código
  1. for(int h = 0; h < CVariable; ++h)
  2.      BString[h] = MString[CVariable-1 - h];
  3.    BString[CVariable]= '\0';
  4.  

¡¡¡¡ Saluditos! ..... !!!!



¡Vale, gracias! Me siento un poco estúpido por no haberme dado cuenta de eso. xD
54  Programación / Programación C/C++ / [Ayuda] Invertir arreglos. en: 7 Mayo 2014, 20:40 pm
¡Hola! :)
Tengo un problema con un ejercicio que me encontré en la web y que pensé que no me daría problemas y empecé a escribir código, pero le subestimé. Haha Mi problema es el siguiente, tomar una cadena por teclado e invertirla y ponerla dentro de otro arreglo. Cuando inserto una cadena grande, el programa si la invierte muy bien; sin embargo, cuando coloco cadenas cortas el programa inserta además 'basura'.

Acá les dejaré el código fuente:
Código
  1.  
  2. #include <iostream>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8.    char MString[40];
  9.    char BString[40];
  10.    int CVariable = 0;
  11.  
  12.    cout << "Enter a string: "; cin >> MString;
  13.    for(int h = 0; h < 39; h++) {
  14.        if(!(MString[h] == '\0'))
  15.            CVariable += 1;
  16.        else if(MString[h] == '\0')
  17.            break;
  18.    }
  19.  
  20.    for(int h = 1; h <= CVariable; ++h)
  21.        BString[(h - 1)] = MString[CVariable - h];
  22.  
  23.    cout << "--------------------------------------------" << endl;
  24.    cout << "The string has: " << CVariable << " letters." << endl;
  25.    cout << "The original string: " << MString << endl;
  26.    cout << "The backwards string is: " << BString << endl;
  27.    cout << "--------------------------------------------" << endl;
  28.  
  29.    system("pause>nul");
  30.    return 0;
  31. }
  32.  

Y el problema radica acá:
Código
  1.    for(int h = 1; h <= CVariable; ++h)
  2.        BString[(h - 1)] = MString[CVariable - h];
  3.  

¡Gracias de antemano! :)
55  Programación / Programación C/C++ / Re: buenas para que m revisen estas funciones mienbro hechas en dev cpp en: 4 Abril 2014, 16:07 pm
Código:
[b]1 - [/b] En este pedazo de código:
[code=cpp]
class cliente{
 private:
     char* nom[30];
     char* dire[60] ;
     char* telf[60];
 public:
     int cargar_cliente();
     int mostrar_cliente();
     int buscar_cliente_por_nombre();
};
En los miembros privados, estás declarando 30 punteros de caracteres, es decir, 30 cadenas de texto, en las otras lo mismo pero con una longitud de 60.

2 - Acá:
Código
  1. int cliente::cargar_cliente() {
  2.        for(int i=0;i<=1;i++) {
  3.           cout<<"nombre-------->";
  4.           cin>>nom[30];
  5.           cout<<endl;
  6.           cout<<"direccion------->";
  7.           cin>>dire[60];
  8.           cout<<endl;
  9.           cout<<"telefono------->";
  10.           cin>>telf[60];
  11.           cout<<endl;
  12.     }
  13. }
  14.  
No sé si quisiste registrar 2 usuarios, acá lo que estás haciendo es que estás dándole una vuelta a los valores, es decir, los valores que ingresaste en primer lugar, serán reemplazados por la segunda ronda, es decir, los segundos valores que ingresaste.

Lo que puedes hacer es crear un arreglo de objetos de longitud 2 y con el valor 'i' del búcle 'for' registrar ambos usuarios, uno y después el otro con la iteración.

Es por eso que acá:
Código
  1. int cliente::mostrar_cliente() {
  2.      cout<<"nombre----->"<<nom[30];
  3.      cout<<endl;
  4.      cout<<"direccion------>"<<dire[60];
  5.      cout<<endl;
  6.      cout<<"telefono------->"<<telf[60];
  7.      cout<<endl;
  8. }
  9.  
Siempre te va a dar los valores del último ingreso. Además si lo colocas de esta manera: 'nom[30]' como está allí, te mostrará el caracter 30 del arreglo nom, lo correcto para que muestre el nombre completo sería quitándole las casillas. O sea, simplemente colocar: nom
Lo mismo para las demás.

3 - Y por último acá:
Código
  1. int cliente::buscar_cliente_por_nombre() {
  2.      char nom[30];
  3.      int clien;
  4.      nom[30]=clien=nom[30]=3;
  5.      nom[30] = true ;
  6.      clien =nom[30];
  7.  
  8.      cout<<"buscar cliente------------->";
  9.      cin>>nom[30];
  10.      cout<<endl;
  11.      cout<<"clente-------------->"<<nom[30];
  12.      cout<<endl;
  13. }
  14.  

Esta línea:
Código
  1. nom[30]=clien=nom[30]=3;
  2.  

Es innecesaria, ya que estás asignando el valor 3, a la posición 30 del arreglo nom, y a la variable entera clien. Y luego inmediatamente en la siguiente instrucción:
Código
  1.      nom[30] = true ;
  2.      clien =nom[30];
  3.  
Estás asignando un valor booleano true a la posición 30 del arreglo nom, e inmediatamente a clien. No sé qué quisiste hacer allí, pero bueno, es innecesaria la línea que te dije.

Código
  1.      cout<<"buscar cliente------------->";
  2.      cin>>nom[30];
  3.      cout<<endl;
  4.      cout<<"clente-------------->"<<nom[30];
  5.      cout<<endl;
  6.  
Acá en el cin, debes de quitar las casillas de arreglo y dejar solamente el nombre del arreglo, para almacenar una cadena completa en el arreglo, lo mismo para mostrarlo, ya que en ese pedazo de código dónde lo muestras mostrarás el caracter en la posición 30, si quieres mostrar toda la cadena debes de quitar las casillas.

En conclusión, acá te dejaré el código al menos para que pueda correr, ya es cosa tuya arreglar lo de los 2 usuarios como te he mencionado arriba:

Código
  1. #include<iostream>
  2. #include<conio.h>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6. class cliente {
  7. private:
  8.    char nom[30];
  9.    char dire[60];
  10.    char telf[60];
  11. public:
  12.    int cargar_cliente();
  13.    int mostrar_cliente();
  14.    int buscar_cliente_por_nombre();
  15. };
  16.  
  17. int cliente::cargar_cliente() {
  18.    for(int i=0;i<=1;i++) {
  19.        cout<<"nombre-------->";
  20.        cin>>nom;
  21.        cout<<endl;
  22.        cout<<"direccion------->";
  23.        cin>>dire;
  24.        cout<<endl;
  25.        cout<<"telefono------->";
  26.        cin>>telf;
  27.        cout<<endl;
  28.    }
  29. }
  30.  
  31. int cliente::mostrar_cliente() {
  32.    cout<<"nombre----->"<<nom;
  33.    cout<<endl;
  34.    cout<<"direccion------>"<<dire;
  35.    cout<<endl;
  36.    cout<<"telefono------->"<<telf;
  37.    cout<<endl;
  38. }
  39.  
  40. int cliente::buscar_cliente_por_nombre() {
  41.    char nom[30];
  42.    int clien = NULL;
  43.  
  44.    //nom[30] = clien = nom[30] = 3;
  45.    nom[30] = true ;
  46.    clien   = nom[30];
  47.  
  48.    cout<<"buscar cliente------------->";
  49.    cin>>nom;
  50.    cout<<endl;
  51.    cout<<"clente-------------->"<<nom;
  52.    cout<<endl;
  53. }
  54.  
  55.  
  56. int main() {
  57.    int op;
  58.    cliente a;
  59.    a.cargar_cliente();
  60.    a.mostrar_cliente();
  61.    a.buscar_cliente_por_nombre();
  62.    system("pause");
  63.    return 0;
  64. }
  65.  
[/code]
56  Foros Generales / Foro Libre / ¿Aunque China se convierta en la potencia mundial, el inglés seguirá siendo el i en: 27 Marzo 2014, 03:40 am
Hola, bueno es que quiero sacarme esta duda de la cabeza.

Obviamente China está por tirar por la borda a EE.UU en el poderío económico, pero aún si esto sucediese, ¿el Inglés continuará siendo la lengua más globalizada como segunda lengua?

Tengo entendido que históricamente todos los idiomas internacionales han sido reemplazados por uno más sencillo de aprender, por esta razón difícilmente un idioma más complicado que el inglés pueda gozar de ese privilegio.

Un idioma no se hace el más importante solo por su número de hablantes. El mandarín siempre ha sido más hablado que el inglés y probablemente el español sea el más hablado en 50 años. Sin embargo ninguno de estos idiomas son más fáciles de aprender que el inglés, ni tampoco los son el francés, alemán, italiano, ruso o japonés.

Por esta razón supongo que aunque China se convierta en la próxima potencia mundial, el idioma que continuará predominando será el Inglés. Pero no estoy seguro. ¿Qué piensan ustedes?
57  Programación / .NET (C#, VB.NET, ASP) / [C#] ¿Cómo hacer que un programa descargue archivos de otro ordenador? en: 27 Febrero 2014, 02:34 am
Bueno es que quiero crear un programa que haga actualizaciones, literalmente un launcher. Pero no tengo ni idea de cómo empezar, una idea que me hice es que, al abrirse este revise cierta carpeta de otro ordenador y si hay archivos nuevos los descargue. Pero la verdad, no sé cómo hacer que el programa descargue esos archivos, tengo entendido que no es nada del otro mundo, pero, ¿alguien me echa su mano?

Gracias de antemano. ;)
58  Programación / .NET (C#, VB.NET, ASP) / [Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#? en: 8 Diciembre 2013, 01:38 am
Bueno, lo que intento hacer podría decirse que es un "Launcher"; tratar de que mi programa hecho en C# llame a otro ejecutable y lo ejecute, pero no tengo ni mínima idea de cómo hacerlo. ¿Alguien me echa una mano? Una breve explicación bien resumida supongo que bastará. Saludos \o
59  Programación / Programación C/C++ / Problema con un juego. en: 6 Diciembre 2013, 04:22 am
Bueno estaba aburrido y me puse a programar un juego el cual no pensé que me llegaría a dar problemas por lo sencillo que sería, lastimosamente subestimé la cuestión xdd, bueno el caso es que, trato de hacer de que la bala al impactar con los bloques los bloques desaparezcan, así es, simplemente eso, es claramente una tontería, pero bueno acá les dejaré el código para que lo ojeen:

-- EDIT --
La bala cuando toca la matriz, parece que los bloques desaparecen pero en realidad no, la matriz continúa llena, y es porque a medida que avanza la bala; dónde estaba situada anteriormente programé para que pintara un espacio en blanco, pero en realidad el elemento de la matriz sigue ahí, en pocas palabras, jamás se limpia el buffer en ese programita.

Código
  1. #include <windows.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4.  
  5. void gotoxy(short int x, short int y);
  6. void pintar_avion(char avion[3][6], int x, int y);
  7. void borrar_avion(int x, int y);
  8. inline void pintar_bala(char bala,int x, int y);
  9. inline void borrar_bala(int x, int y);
  10. void pintar_bloques(char bloques[10][41]);
  11.  
  12. int main()
  13. {
  14.    //Dibujo del avión:
  15.    char avion[3][6] = {{' ',' ','*',' ',' ',0},
  16.                        {' ','*','*','*',' ',0},
  17.                        {'*','*','*','*','*',0}};
  18.  
  19.  
  20.    char bloques[10][41];
  21.    //Búcle que lo que hace es rellenar la matriz anterior; todos sus elementos le colocará el caractér '*':
  22.    for(int f = 0; f < 10; f++) {
  23.        for(int c = 0; c < 40; c++) {
  24.            bloques[f][c] = '*';
  25.        }
  26.    }
  27.  
  28.    //Dibujo de la bala:
  29.    char bala = char(2);
  30.  
  31.    //Coordenadas del avión:
  32.    int cX = 38, cY = 20;
  33.  
  34.    //Variable que almacenará la tecla presionada por el usuario:
  35.    char tecla = '\0';
  36.  
  37.    //Coordenadas de la bala:
  38.    int bX = cX, bY = cY;
  39.  
  40.    //Variable que permitirá disparar una bala a la vez:
  41.    bool disparo = false;
  42.  
  43.    pintar_avion(avion,cX,cY);
  44.    pintar_bloques(bloques);
  45.  
  46.    while(1) {
  47.        if(kbhit()) {
  48.            tecla = getch();
  49.        }
  50.  
  51.        if((tecla == 'a' || tecla == 'A') && cX > 0) {
  52.            borrar_avion(cX, cY);
  53.            cX -= 1;
  54.            pintar_avion(avion,cX,cY);
  55.        }
  56.        else if((tecla == 'd' || tecla == 'D') && cX < 74) {
  57.            borrar_avion(cX, cY);
  58.            cX += 1;
  59.            pintar_avion(avion,cX,cY);
  60.        }
  61.        else if((tecla == 'w' || tecla == 'W') && !disparo) {
  62.            disparo = true;
  63.            bY = (cY - 1);
  64.            bX = (cX + 2);
  65.        }
  66.  
  67.        if(disparo) {
  68.            borrar_bala(bX, bY);
  69.            bY -= 1;
  70.            pintar_bala(bala,bX,bY);
  71.            if(bY == 1) {
  72.                borrar_bala(bX,bY);
  73.                disparo = false;
  74.                bY = cY;
  75.            }
  76.        }
  77.  
  78.        Sleep(20);
  79.  
  80.        tecla = '\0';
  81.    }
  82.  
  83.    system("pause>nul");
  84.  
  85.    return 0;
  86. }
  87.  
  88. void gotoxy(short int x, short int y) {
  89.    HANDLE identificador;
  90.    COORD coordenadas = {x , y};
  91.    identificador = GetStdHandle(STD_OUTPUT_HANDLE);
  92.    SetConsoleCursorPosition(identificador, coordenadas);
  93. }
  94.  
  95. void pintar_avion(char avion[3][6], int x, int y) {
  96.    for(int f = 0; f < 3; f++) {
  97.        for(int c = 0; c < 5; c++) {
  98.            gotoxy((x + c),(y + f));
  99.            printf("%c",avion[f][c]);
  100.        }
  101.    }
  102. }
  103.  
  104. void borrar_avion(int x, int y) {
  105.    char borrar[6] = {' ',' ',' ',' ',' ',0};
  106.    for(int h = 0; h < 3; h++) {
  107.        gotoxy(x,(y + h));
  108.        printf("%s",borrar);
  109.    }
  110. }
  111.  
  112. inline void pintar_bala(char bala,int x, int y) {
  113.    gotoxy(x,y);
  114.    printf("%c",bala);
  115. }
  116.  
  117. inline void borrar_bala(int x, int y) {
  118.    gotoxy(x,y);
  119.    printf(" ");
  120. }
  121.  
  122. void pintar_bloques(char bloques[10][41]) {
  123.    for(int f = 0; f < 10; f++) {
  124.        gotoxy(20,(1 + f));
  125.        for(int c = 0; c < 40; c++) {
  126.            printf("%c",bloques[f][c]);
  127.        }
  128.    }
  129. }
  130.  
60  Seguridad Informática / Hacking / [AYUDA] ¡Necesito entrar a un juego! en: 1 Diciembre 2013, 18:37 pm
Bueno, como dice el título, recientemente descargué un juego en que solamente pueden entrar jugadores Europeos, por ende, no puedo entrar. Quisiera saber algún programa que me sirva para cambiar mi dirección IP a una española.

Quiero hacer notar que el juego está instalado en mi ordenador, no entro a través de navegadores, por ende, necesito es un programa que me cambie dicha dirección para poder acceder al juego, espero haberme explicado. Saludos. \o
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines