Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Zodiak98

#71
Hola bueno es qué estaba leyendo sobre "Manejo de Archivos en C++" y pues ya lo domino regularmente pero... quisiera saber cómo crear una carpeta con un fichero adentro, o sea crear la carpeta directamente desde C++, que la cree en caso de que no exista.
#72
Programación C/C++ / Re: [Ayuda] Estructuras
21 Agosto 2013, 23:47 PM
Gracias a los 2 últimos comentarios ;)
Código (cpp) [Seleccionar]

#include <stdio.h>
#include <stdlib.h>

typedef struct un_struct
{
   
   int example;
   
} un_struct;

int main()
{
   un_struct xd;

   xd.example = 15;

   printf("%d",xd.example);
   return 0;
}

Me funciono perfecto! Gracias! ;)

Pero una pregunta:
Hacer esto:
Código (cpp) [Seleccionar]

typedef struct un_struct
{
   
   int example;
   
} un_struct;

//O esto otro sin darle un nombre a la estructura

typedef struct
{
   
   int example;
   
} un_struct;


Es solo para darle orientación al programador? Pero en realidad no hay diferencia entre asignarle o no un nombre o sí? Supongo que no... es solo para darle una orientación más al programador y hacerlo más entendibe. :3
#73
Programación C/C++ / Re: [Ayuda] Estructuras
21 Agosto 2013, 17:51 PM
Bueno me puse a practicar como me dijeron y este es mi código:
Código (cpp) [Seleccionar]

#include <stdio.h>
#include <stdlib.h>

typedef struct un_struct
{
  int example;
};

int main()
{
    un_struct ejemplo;

    ejemplo.example = 15;

    printf("%d",ejemplo.example);

    return 0;
}

Y me tira estos errores:

error: 'un_struct' undeclared (first use in this function)|
error: (Each undeclared identifier is reported only once|
error: for each function it appears in.)|
error: expected ';' before 'ejemplo'|
error: 'ejemplo' undeclared (first use in this function)|
||=== Build finished: 5 errors, 1 warnings ===|


Alguien me explica que estoy haciendo mal? u.u
#74
Programación C/C++ / Re: [Ayuda] Estructuras
21 Agosto 2013, 17:50 PM
Cita de: kaltorak en 21 Agosto 2013, 05:57 AM
Hola Zodiak98

Mira la instrucción "typedef" sirve para renombrar un tipo de dato.

Su formato es:

Código (cpp) [Seleccionar]
typedef <tipo_original> <nuevo_nombre_tipo>

para que lo entiendas mejor mira este ejemplo:

Código (cpp) [Seleccionar]

typedef int entero; //hace que la palabra "entero" sea equivalente al tipo int


De este modo si ahora quisiéramos crear un entero podríamos hacerlo de 2 maneras.

Usando el nuevo nombre que le hemos otorgado en la linea anterior al tipo de variable "int":

Código (cpp) [Seleccionar]
entero num;

o como siempre:

Código (cpp) [Seleccionar]
int num;

Explicado esto vamos con tu pregunta, si lo pones antes de la declaración de una estructura "struct" lo único que estas haciendo es mejorar la legibilidad de tu programa, por que cuando necesites generar una estructura de ese tipo, no tendrás que incluir la palabra reservada "struct" delante del nombre que le diste a dicha estructura, te pongo el ejemplo que usaste para hacer la pregunta.

Código (cpp) [Seleccionar]
typedef struct miestructura
{
  int INT_example;
  float FL_example;
};


Ahora cada vez que quieras declarar una nueva estructura del tipo "miestructura" lo harás de esta manera.

Código (cpp) [Seleccionar]
miestructura objeto;

Pero si no incluimos la instrucción "typedef" delante como vemos en el siguiente ejemplo:

Código (cpp) [Seleccionar]
struct miestructura
{
  int INT_example;
  float FL_example;
};


Ahora cuando quieras declarar una nueva estructura del tipo "miestructura" deberás incluir la palabra reservada "struct" delante de la declaración de esta manera:

Código (cpp) [Seleccionar]
struct miestructura objeto;

Para terminar lo que hacemos al usar "typedef" esa hacer el código más fácil de leer.

Un saludo
Kaltorak.

Heheheh gracias! No estaba seguro de que fuera eso pero ahora ya estoy tranquilo xD.

Cita de: do-while en 21 Agosto 2013, 11:26 AM
¡Buenas!

Como ya te han dicho, typedef sirve para crear alias de los distintos tipos de dato que puedas tener.

De todas formas hacer esto

typedef struct
{
   //...
}un_struct;

es algo que siempre me ha parecido odioso por cuestiones de legibilidad de código.

struct un_struct
{
   //...
};
typedef struct un_struct un_struct;


Queda mucho mas ordenado, primero defines un struct, y luego abrevias la notación, y puedes utilizar tanto la notacion un_struct una_variable como struct un_struct una_variable, si quieres dejar claro que el dato que estás usando es un struct. Si lo haces de la otra forma nunca podrás utilizar la notación struct un_struct ya que no habrás definido un struct con nombre, simplemente le has dado un nombre alternativo a un struct anónimo...

Ya te digo que esto simplemente es mi opinión, cada uno tiene sus gustos, pero como ya te he dicho, me parece que queda mas claro todo definiendo primero un struct con nombre, y luego redefiniendo la notación, que directamente dándole un alias a un struct sin mombre.

¡Saludos!

Tienes mucha razón, bueno a mí se me hace más entendible colocando a la hora de instanciar objetos el prefijo struct, no se, supongo que se me hace más cómodo y más entendible como tú dices. :B
#75
Programación C/C++ / [Ayuda] Estructuras
21 Agosto 2013, 03:55 AM
Bueno quisiera saber cual seria la diferencia entre hacer/programar/construir una estructura de la siguiente y de la otra manera:

Código (cpp) [Seleccionar]

typedef struct miestructura
{
    int INT_example;
    float FL_example;
};

Esta es la manera más "común" (sin el typedef):
Código (cpp) [Seleccionar]

struct miestructura
{
    int INT_example;
    float FL_example;
};


Alguien me explica de que sirve el typedef como prefijo de las estructuras? Perdonen mi ignorancia. Una idea que me hice es que en C tienes hacer lo siguiente:
Código (cpp) [Seleccionar]

typedef struct miestructura miestructura;

Para poder crear objetos tal como se hace en C++, ya que si no se hace, los objetos se instancian de la siguiente manera:
Código (cpp) [Seleccionar]

struct miestructura objeto;


Supongo que es para evitar eso... pero no estoy seguro alguien me echa una mano?  :D
#76
Cita de: raul338 en 25 Julio 2013, 06:38 AM
Es precisamente eso, para devolver si tu programa se ejecuto con exito o no. Asi otra aplicacion puede llamar al programa que compiles y saber como termino.

Que vos no lo uses es otra cosa xD

Enviado desde mi LG-E612g usando Tapatalk 2

Cita de: Eternal Idol en 25 Julio 2013, 09:05 AM
El S.O. no suele hacer nada pero el que ejecute tu programa puede intentar comprobar el resultado.

No manchen la verdad nunca se me habría ocurrido eso Jaja. >_< Gracias! Ahora se que, por ejemplo otra aplicación ejecuta mi programa, si mi programa retorna '0' que la otra aplicación tome una acción y si retorna con un valor por ejemplo -1 que se cierren ambas aplicaciones.

#77
O sea yo siempre he programado colocando siempre el main de tipo 'int' y obviamente retornando, pero o sea yo tengo claro (hasta los momentos) que el main siempre sera 'int' (al menos todos lo ejemplos que he visto y los programas que he creado ha sido de esa manera): Pero ahora si mi pregunta, ¿Qué hace el sistema operativo con el valor que retorna el main? ¿Nada? ¿Nada de nada? >_< xDD Ya se que los programadores utilizan diferentes valores para identificar errores e utilizan el '0' para indicar que el programa finalizo completo como se debía y sin ningún error.

Espero haberme aclarado.

Otra cosa perdonen por ser tan preguntón, pero como dicen, las dudas llevan al conocimiento profundo y preciso. (y) xDDD
#78
Ya logre resolver el problema gracias por su ayuda de todos modos. :) Ahora que me doy cuenta en vez de usar tantos if y goto hubiera usado un while jaja perdonen esa estúpides estaba medio dormido. >_< Y sobre los punteros pues en la segunda función no lo use para nada hice un copia y pega de la primera función y solo cambie el nombre, pero si lo necesitaba en la primera. Como dije estaba medio  dormido. Hehehe xDD
#79
Programación C/C++ / [Ayuda] Simple juego.
22 Julio 2013, 20:09 PM
Bueno es que estaba aburrido y me puse a programar un juego muy sencillo que trata sobre meter un numero entre el 1 y el 15 y tú compañero tiene que adivinarlo. Pero lo que quiero hacer es que no se puedan ingresar letras solo números acá esta el código:

Código (cpp) [Seleccionar]

#include <iomanip>
#include <cstdlib>
#include <windows.h>
#include <iostream>

using namespace std;

bool Ingreso_Numero(int* pNumero);
bool Adivina_Numero(int* pNumero);

int main()
{
  int numero;

  if(Ingreso_Numero(&numero))
   {
       system("cls");
       system("color 2");
       cout << "________________________________________________________________________________" << endl;
       cout << setw(60) << "*** Felicidades has ganado el juego! ***\n" << endl;
       cout << setw(50) << "|| El numero correcto es: " << numero << " ||\n" << endl;
       cout << setw(53) << "*** Gracias Por Jugar! ***" << endl;
       cout << "________________________________________________________________________________" << endl;
   }

   else
   {
       cout << endl;
       system("color 4");
       cout << "----------------------------------------------------------" << endl;
       cout << "Has perdido! \nEl numero correcto era: " << numero << endl;
       cout << "Trata nuevamente en la proxima..." << endl;
       cout << "-----------------------------------------------------------" << endl;
   }

   system("pause>nul");

   return 0;
}

bool Ingreso_Numero(int* pNumero)
{
   char Decision;

   Introduce_Numero:

   cout << "Introduce el numero para que adivine tu rival (1-15): ";
   cin >> *pNumero;

   Repeticion2:

   if(*pNumero > 15)
   {
       cout << endl;

       cout << "El numero ingresado es demasiado alto. " << endl;

       Introduce_Numero_Alto:

       cout << endl;

       cout << "Introduce el numero para que adivine tu rival (1-15): ";
       cin >> *pNumero;

       if(*pNumero > 15)
       {
           cout << endl;
           cout << "El numero ingresado es demasiado alto. " << endl;
           goto Introduce_Numero_Alto;
       }
   }

   if(*pNumero < 1)
   {
       cout << endl;
       cout << "El numero ingresado es demasiado bajo." << endl;

       Introduce_Numero_Bajo:

       cout << endl;

       cout << "Introduce el numero para que adivine tu rival (1-15): ";
       cin >> *pNumero;

       if(*pNumero < 1)
       {
           cout << endl;
           cout << "El numero ingresado es demasiado bajo. " << endl;
           goto Introduce_Numero_Bajo;
       }

       if(*pNumero > 15)
       {
           goto Repeticion2;
       }
   }

   if(*pNumero >= 1 && *pNumero <= 15)
   {
       Decision_Error:

       cout << endl;

       cout << "Estas seguro que deseas que tu rival adivine este numero S/N: ";
       cin >> Decision;

       if(Decision == 'N' || Decision == 'n')
       {
           cout << endl;
           goto Introduce_Numero;
       }

       else if((Decision != 'S' && Decision != 's') && (Decision != 'N' && Decision != 'n'))
       {
           cout << endl;
           cout << "Has introducido una decision erronea, intentalo nuevamente." << endl;
           cout << endl;
           goto Decision_Error;
       }

       else if(Decision == 'S' || Decision == 's')
       {
           cout << endl;
           system("cls");

           for(int x = 5 ; x > 0 ; x--)
           {
               cout << "El juego comenzara en: " << x << endl;
               Sleep(1000);
               system("cls");
           }
           return Adivina_Numero(pNumero);
       }
   }
}

bool Adivina_Numero(int* pNumero)
{
   int Contador_Vidas;
   int COMP_Numero;

   cout << "Tienes 5 intentos para adivinar el numero." << endl << endl;

   for(Contador_Vidas = 5 ; Contador_Vidas > 0 ; Contador_Vidas--)
   {
       cout << endl;

       repeticion:

       if(Contador_Vidas == 1)
       {
           cout << endl;

           cout << "Te queda: " << Contador_Vidas << " vida." << endl;
           cout << "Ingresa un numero: "; cin >> COMP_Numero;

           if(COMP_Numero <= 0 || COMP_Numero > 15)
           {
               if(COMP_Numero <= 0)
               {
                   cout << endl;

                   cout << "El numero ingresado es demasiado bajo."<< endl;

                   goto repeticion;
               }

               else if(COMP_Numero > 15)
               {
                   cout << endl;

                   cout << "El numero ingresado es demasiado alto.";

                   goto repeticion;
               }
           }
       }

       else
       {
           cout << endl;

           cout << "Te quedan: " << Contador_Vidas << " vidas." << endl;
           cout << "Ingresa un numero: "; cin >> COMP_Numero;

           if(COMP_Numero <= 0 || COMP_Numero > 15)
           {
               if(COMP_Numero <= 0)
               {
                   cout << endl;
                   cout << "El numero ingresado es demasiado bajo.";
                   cout << endl;

                   goto repeticion;
               }

               else if(COMP_Numero > 15)
               {
                   cout << endl;
                   cout << "El numero ingresado es demasiado alto.";
                   cout << endl;

                   goto repeticion;
               }
           }
       }

       if(COMP_Numero == *pNumero)
       {
           return true;
       }

       else
       {
           continue;
       }
   }

   return false;
}
#80
Cita de: engelx en 17 Julio 2013, 07:23 AM
un packet de que?

packet es "paquete" puede referirse a muchas cosas... D:!

Heheh supuse que alguien preguntaría eso por no haberme expresado bien, bueno me  refiero a los Packets en una web, osea alguien dijo y que las páginas web se caen por Packets lo cual es totalmente falso, porque según leí y entendí que se caen por Sockets y ya se que es eso. Pero primera vez que escucho/leo esa palabra "Packets" a eso me refiero. Espero haberme explicado mejor esta vez.