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ú

Temas - eleon

#1
Buenas tardes:

Yo soy programador C++ (en realidad esto es porque es el lenguaje que normalmente utilizamos en la universidad) pero últimamente me he estado pasando por el foro de Java y la verdad es que noto que hay muy poca actividad (no sé si será por vacaciones).

Por tanto, para animar la cosa, propongo un juego: Se plantea un minijuego que se ha de programar en Java. Todo el que participe tendrá que programar el juego por su cuenta y podrá ir preguntando dudas en este mismo post. Las dudas serán tanto de conceptos de Java como de puntos del enunciado que no se hayan comprendido correctamente, pero nunca se podrá preguntar "Cómo hago esto o cómo hago lo otro" porque la idea es que cada uno lleve a la práctica su originalidad y habilidad en la programación. El que antes resuelva y coloque una solución correcta (el juego funciona y sin errores) gana y es el encargado de proponer el siguiente minijuego a programar.

Condiciones: El enunciado debe ser claro y conciso. Se deberá colocar el nombre del videojuego en negrita y con un tamaño de letra de 22 (esto es para que los participantes no tengan que leer todos los mensajes escritos y visualicen fácilmente cuál es el último minijuego propuesto) y junto a ello ira la descripción con sus condiciones. El usuario que propone el minijuego debe estar atento para solucionar dudas, si bien las dudas de programación debemos ayudar a resolverlas entre todos los participantes, las dudas de enunciado corresponden principalmente al que lo ha propuesto.

Recomendación: Personalmente recomendaría que el entorno gráfico fuera opcional por no hacerlo complejo y largo, lo más óptimo en los videojuegos que lo requieran sería utilizar carácteres del teclado, pero lo dejo a la elección de cada uno.

También se puede dar un tiempo límite para solucionarlo, tras el cuál, si no se ha posteado una solución correcta el autor del minijuego puede colocar la solución y darle el turno al usuario que más se haya acercado.

La idea de esto es tanto mejorar nuestras habilidades de programación como entretenernos programando videojuegos, así que os animo a que participéis.

Comenzaré yo proponiendo un programa sencillo:

Números primos: Jugador vs Máquina

Descripción: Este videojuego tiene 2 niveles:

Nivel 1: El juego imprime en pantalla un número primo comenzando desde el "1" y el jugador debe escribir el siguiente. Después le toca al programa imprimir el tercer número primo y a continuación al jugador y así sucesivamente. Cuando le toca al jugador escribir un número primo tiene 5 segundos para hacerlo.

Nivel 2: El juego imprime un número primo y el jugador 3 seguidos. Cuando le toca al jugador escribir un número primo tiene 3 segundos para hacerlo (por cada número).

Para que el jugador gane se debe llegar al número primo "401" (OJO: le puede tocar imprimirlo por pantalla al jugador o al programa). Aqui os dejo una tabla de números primos (solo tened en cuenta hasta el 401): http://www.disfrutalasmatematicas.com/numeros/primos-tabla.html


Condiciones:

1- Se debe mostrar en pantalla claramente cuándo le toca al jugador escribrir el siguiente número primo.
2- Se debe mostrar en pantalla claramente al menos el último número primo que se ha preguntado.


Opcional: Podéis añadir "vidas" si queréis, es decir, el jugador puede equivocarse hasta 3 veces antes de perder la partida.

Es un juego muy sencillo que se puede hacer en un rato, pero aún así, si nadie postea una solución correcta esperaré 7 días antes de solucionarlo (hasta el jueves 1 de agosto).


Un saludo.
#2
Buenas tardes:

No tengo muy claro cómo varía la visibilidad en un método o atributo heredado:

public - protected - nivel de paquete - private

¿Se puede modificar de derecha a izquierda o al contrario?.

¿Esto se hace automáticamente al redefinirlo?, es decir:

Código (java) [Seleccionar]
public class ClasePadre {
private int x;
...
}

public class ClaseHija extends ClasePadre {

int x;
...
}


¿Ahi la visibilidad ha cambiado de privado a nivel de paquete en ClaseHija o se hace de otro modo?.

Gracias. Un saludo.
#3
GNU/Linux / No existe el archivo o el directorio
30 Septiembre 2012, 15:39 PM
Hola, buenas tardes:

Estoy intentando ejecutar una aplicación desde la consola de comandos y me sale el mensaje "bash: ./xgcc: no existe el archivo o directorio". Estoy en el directorio donde se encuentra tal aplicación (además me sale con el comando "ls"). Cosas que he probado:

-Modo root (superusuario).
-He escrito el comando correctamente (el nombre de la aplicación aparece todo en minúsculas).
-He cambiado los permisos de la aplicación al 100% con "chmod 777 xgcc".
-En otro PC si me funciona sin ningún problema (con la misma versión de Ubuntu).

La aplicación que estoy intentando ejecutar es el compilador xgcc con el siguiente comando:
"xgcc -L. programa1.c -o p1" pero ya he comentado que en otro ordenador me funciona perfectamente. Uso Ubuntu 12.04 actualizado.

¿Alguien sabe cuál podría ser el problema?, gracias, saludos.
#4
Programación C/C++ / Leer numero seguido de carácter
27 Septiembre 2012, 17:03 PM
Hola, buenas tardes:

Estoy intentando solucionar un problema en el cual me introducen X números seguidos de Y caracteres sin espacio u otro tipo de separación entre ellos, ejemplo: 12345ABC

Guardo el número en una variable de tipo "long int", el problema es que el último dígito se pierde, es decir, con nuestro ejemplo en la variable se almacenaría solo 1234 pero no el 5. Sé que podría guardarlo todo en una cadena de caracteres y luego analizarlo para asignar al entero solo el número, pero quisiera saber si se puede solucionar de este modo, guardándolo directamente en el entero de alguna forma sin perder ningún dígito.

¿Alguna idea para leer el número entero cuando lo siguen caracteres?.

Saludos.
#5
Programación C/C++ / Funciones virtuales
29 Julio 2012, 13:04 PM
Buenas, tengo dos dudillas acerca de las funciones virtuales, a ver si me las podéis resolver:

Código (cpp) [Seleccionar]
class ClaseA
{
public:
  virtual void funcion () {};

};

class ClaseB : public ClaseA
{
  void funcion () {};
};

int main ()
{
  ClaseA *objeto = new ClaseB;

}


Hemos creado un objeto de tipo "ClaseA" pero hemos reservado memoria del tamaño "ClaseB". Y al declarar "funcion" como virtual, cada vez que la llamemos estaremos accediendo a la que hay en la clase que hereda y no a la de la clase base. Pero, ¿de qué nos sirve exactamente esto?. ¿No sería lo mismo que declarar el objeto de tipo ClaseB y sobrecargar la función sin añadir "virtual"?:

Código (cpp) [Seleccionar]
class ClaseA
{
public:
  void funcion () {};

};

class ClaseB : public ClaseA
{
  void funcion () {};
};

int main ()
{
  ClaseB *objeto = new ClaseB; //Hemos sobrecargado "funcion" asi que se llamará a la de la clase que hereda

}



Y luego también he leído ejemplos en los que hace lo siguiente:

Código (cpp) [Seleccionar]
class ClaseA
{
public:
  virtual void funcion () {};

};

class ClaseB : public ClaseA
{
  void funcion () {};
};

int main ()
{
  ClaseB *objeto = new ClaseB;

}


Es decir, declaramos un objeto de tipo "ClaseB" y reservamos memoria también "ClaseB", sin embargo usa la función "virtual" en la clase base. ¿Por qué?, ¿para qué añadir "virtual" si sin ella automáticamente se sobrecarga la función y se llama a la de la clase que hereda (como en el ejemplo anterior)?.

Gracias y saludos.
#6
Programación C/C++ / Linker en VC++
24 Julio 2012, 15:16 PM
Buenas:

Seré muy patoso pero acabo de instalar VC++ y no veo el linker por ningún lado para agregar nuevas librerías.

¿Alguien me puede indicar?, gracias.
#7
Buenas:

Quería saber si hay alguna forma de definir el tamaño de un array bidimensional mediante variables e inicializarlo. Ejemplo:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main ()
{


   int columna = 3;
   int linea = 3;
   int array[columna][linea] = {5, 1, 2, 5, 1, 2, 5, 1, 2};
   return 0;
}


Esto da el siguiente error: error: variable-sized object 'array' may not be initialized|

Sin embargo si no lo inicializo el mismo código funciona bien:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main ()
{


   int columna = 3;
   int linea = 3;
   int array[columna][linea];
   return 0;
}


O si lo inicializo pero defino el tamaño del array mediante valores numéricos y no variables también funciona bien:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main ()
{
   int array[3][3] = {5, 1, 2, 5, 1, 2, 5, 1, 2};
   return 0;
}


Entiendo que si el tamaño lo definimos con variables no es lógico que lo inicialicemos porque al variar el valor de la variable y definir de nuevo el array pueden no caber todos los elementos. Pero quizá haya algún "truquillo" puesto que la idea es aumentar el tamaño de los array (no en tiempo de ejecución logicamente) y eso no supondría ningún problema al compilar.

¿Alguna idea para que funcione el primer ejemplo?. Gracias.
#8
Programación C/C++ / Pasar una clase a otra
13 Julio 2012, 11:16 AM
Buenas:

Bien sabemos que en C se puede hacer lo siguiente:

typedef struct {
int x;
int y;
} Estructura1;

int main ()
{
Estructura1 *puntero = malloc (Estructura1);
void* puntero_void = puntero; //El puntero void puede apuntar a la misma dirección que cualquier otro puntero
puntero = puntero_void; //Y viceversa. Un puntero de un tipo puede apuntar a la misma dirección que un puntero void. Pero al hacer esto lo que conseguimos es darle una estructura a esa zona de memoria

return 0;
}


Bien, ese último punto no consigo simularlo en C++, no consigo hacer que un puntero de tipo "Clase1" apunte a la misma dirección que un puntero de tipo "void".

¿Alguna idea?.

Saludos.
#9
Buenas:

Con el fin de practicar más a fondo photoshop, me ofrezco para hacer firmas, fondos, logos, banners, etc.

Advierto, mi nivel no es alto, así que no prometo nada, pero me defiendo lo suficiente como para hacer cosas decentes.

Con que me déis los siguientes datos me busco la vida:

1 - Tipo de imagen: Firma, logo, fondo para vídeo/presentación, banner, etc.
2 - Tamaño: Ancho x Alto píxeles.
3 - Alguna carácterística: personajes o efectos que querríais ver, texto o nick, etc.

Me gustaría ingeniármelas por mi cuenta pero también podéis apuntar más datos sin problema: colores, posiciones, estilos, etc.

Cuando lo tenga listo lo posteo. Saludos.
#10
Buenas:

Navegando por internet he encontrado la siguiente recomendación para aumentar el rendimiento de una tarjeta gráfica HD Intel Graphics:

CitarAbre "ejecutar" y escribes los siguiente: "msconfig" (sin comillas) lo ejecutas y te vas a la pestaña "arranque" luego entras en "opciones avanzadas" y se abrira otra ventana y haces click en el cuadro "cantidad maxima de memoria" y aparecera la memoria RAM que tienes (no lo cambies) esto funciona para que tu ordenador utilise toda la memoria RAM.
Luego haces click en el cuadro "numero de procesadores" y pones la cantidad de nucleos que tiene tu procesador (normalmente los Intel Core i3, i5 y i7 tienen 2) una vez listo pones aceptar en todo y reinicias el ordenador.

Esto funciona para que tu PC lleve la RAM y el procesador mas rapido, en concecuencia una PC mas rapida, mas eficiente y mejor rendimiento en juegos.

El problema es que no tengo ni idea de qué se está haciendo realmente, ¿alguien me lo puede explicar?, ¿quizá algún tipo de overclocking?.

¿Con esto el PC podría sufrir algún tipo de daño?.

Gracias por adelantado. Saludos.
#11
Windows / Mejor versión Windows 7
25 Junio 2012, 10:30 AM
Buenas:

Me gustaría conocer cuál es la versión de Windows 7 que ofrece MAYOR RENDIMIENTO al usar una aplicación, videojuego, etc.

Mi PC acepta 64 bits.

Gracias. Saludos.
#12
Buenas:

Tengo un puntero de tipo "const char*" que apunta a una cadena que lleva un número. Como es un char no puedo realizar operaciones con él, lo que quiero es asignar el número a una variable de tipo entero. Sería algo así:

Código (cpp) [Seleccionar]

const char *valor;
int valorint;
...

valorint = valor;

...
#13
He seguido esta guía: http://tirwal.blogspot.com.es/2012/03/allegro5-en-ubuntu.html

Ya he llegado al último paso (make install) pero me da el siguiente error:

CitarInstall the project...
-- Install configuration: "RelWithDebInfo"
CMake Error at addons/primitives/cmake_install.cmake:48 (FILE):
 file INSTALL cannot find
 "/home/usuario/allegro-5.0/lib/liballegro_primitives.so.5.0.6".
Call Stack (most recent call first):
 addons/cmake_install.cmake:37 (INCLUDE)
 cmake_install.cmake:473 (INCLUDE)


make: *** [install] Error 1

¿Alguna idea?.

Además no sé que ruta poner para incluirla en el programa, es decir, suponiendo que ese error no es importante (no tengo ni idea) he intentado compilar incluyendo la librería desde: #include <allegro.h> pero me dice que no se encuentra el archivo, ¿cómo saco la ruta?.

EDITO: Ya lo he solucionado gracias. En la guía falta que, al usar la intrucción "ccmake -DCMAKE_INSTALL_PREFIX=/usr .." hay que presionar la tecla "c" cada vez que para el procedimiento hasta que salga la opción de de generar y salir que es la tecla "g".
#14
Buenas:

He seguido a la perfección esta guía sin problema: http://tirwal.blogspot.com.es/2012/03/allegro5-en-ubuntu.html

Pero al llegar al paso que dice:

CitarUsamos ccmake para establecer los parámetros en línea del comando "make".
$ sudo ccmake -DCMAKE_INSTALL_PREFIX=/usr ..


El comando no me funciona, me sale una pantalla en la que pone "EMPTY CACHE" y no sé realmente qué debo hacer ahi.

¿Alguien me puede indicar?, es el último paso antes del make.

Gracias. Saludos.
#15
Buenas, tengo el siguiente problema:

Imprimo perfectamente unas líneas y unos rectángulos en pantalla ¿ok?, el caso es que al presionar una tecla (la A por ejemplo) quiero borrar la pantalla e imprimir de nuevo otras figuras (casi las mismas). El problema es que consigo este efecto tras pulsar la tecla "A" 283974823 veces y además una única vez, os dejo el código:


//Variables globales
int A = 15;
int B = 180;
int C = 598;
int D = 180;

void actualizar_pantalla (BITMAP *buffer)
{
   //Limpio el buffer
   clear_bitmap (buffer);
   
   //Guardo en el buffer todo lo que quiero imprimir por pantalla
   line (buffer, 10, 10, 610, 10, palette_color[8]);
   line (buffer, 10, 10, 10, 410, palette_color[8]);
   line (buffer, 610, 10, 610, 410, palette_color[8]);
   line (buffer, 10, 410, 610, 410, palette_color[8]);
   line (buffer, 310, 10, 310, 410, palette_color[15);

   rectfill (buffer, A, B, A + 7, B + 50, palette_color[1]);
   rectfill (buffer, C, D, C + 7, D + 50, palette_color[4]);

   circlefill (buffer, 310, 210, 4, palette_color[15]);


   //Imprimimos el buffer
   clear_bitmap (screen); //Primero limpio la pantalla
   blit (buffer, screen, 0,0,0,0,SCREEN_W,SCREEN_H); //Luego imprimo el buffer

}

int main()
{

...

BITMAP *buffer = create_bitmap (SCREEN_W, SCREEN_H); /*Reservo memoria para un bitmap y le asigno el tamaño de la pantalla*/
while (!key[KEY_ESC]) /*Mientras no se presione ESC hago sondeo y compruebo si se ha presionado la tecla A*/
   {
       if (key[KEY_A])
       {
           pala_izq_posY -= 1;
           actualizar_pantalla(buffer);
       }
   }

...
exit_allegro();
return 0;
} END_OF_MAIN();


Como podéis observar he considerado la opción de que se ralentice por excesivas llamadas al sistema para imprimir en pantalla, por eso uso un buffer y lo vuelco todo de golpe.

Gracias por adelantado. Saludos.


EDITO:

Vale, me he dado cuenta de que si presiono la tecla A no se produce movimiento hasta que no aprieto con el ratón en la ventana de la aplicación, ¿esto por qué es?, ¿es posible que se deseleccione la ventana automáticamente?.
#16
Programación C/C++ / Librería gráfica
11 Junio 2012, 12:37 PM
Buenas:

Me gustaría una opinión acerca de alguna librería gráfica decente. He encontrado entre otras: graphics.h, allegro.h, winbgim.h, etc. Sin embargo no sé por cuál decantarme.

Sé que hay librerías para trabajar en un nivel superior como es OpenGL, DirectX, etc. pero prefiero empezar por las librerías básicas para enteder cómo funcionan estos aspectos.

¿Alguna sugerencia acerca una librería completa?. Gracias.
#17
Buenas:

Os escribo para comentaros que, sin saber por qué (no he tocado nada en las opciones), el tamaño de letra en Code::Blocks se ha achicado a tal tamaño que es imposible leer nada:



No encuentro por ningún lado alguna opción que me deje devolverlo a su estado original. También he probado con Ctrl + ruleta.

¿Alguna sugerencia?. Gracias.

#18
Buenas:

Estoy intentando guardar la sucesión de fibonacci en una tabla, algo muy sencillo, pero me da error. Al depurar encontré el fallo en la línea marcada:

int main ()
{
   
   int tabla [80] = {1, 1};
   int i;
   int max;
   
   scanf ("%d", &max);

   for (i = 2; i < max; i++) //Genero la sucesion de fibonacci hasta el maximo
   {
       tabla [i] = (tabla[i-1]) + (tabla[i-2]); //Aqui me da el error
   }

   for (i = 0; i < max; i++) //Imprimo la sucesion completa
   {
       printf ("%s", tabla[i]);
   }
}


Estoy seguro de que el fallo está en que intento acceder a elementos de la tabla que no existen, pero no lo veo. En la primera iteración:

tabla [ i ] = tabla [2]  ||  tabla [i-1] = tabla [1]  ||  tabla [i-2] = tabla [ 0 ]

Todos esos elementos existen y en las siguientes iteraciones se mantiene.

¿Alguna sugerencia?, gracias.
#19
Programación C/C++ / Dudas sobre system()
4 Mayo 2012, 16:49 PM
Buenas:

Es de todos sabido que la instrucción "system()" produce una llamada al sistema para que realice la acción requerida, hasta ahi bien. Pero también tiene el inconveniente de que el parámetro que pasamos depende del sistema operativo, esto es, "system("cls");" solo funciona en Windows mientras que "system("clear");" solo funciona en las distribuciones de Ubuntu.

¿Existe algún "estándar" para la instrucción "system()" que funcione en varios SO a la vez?.

Y sino, ¿me podríais indicar alguna página dónde comprobar todas los parámetros que podemos pasarle a "system()" en windows y ubuntu?.

Gracias. Saludos.
#20
Redes / Velocidad de descarga sube y baja
2 Abril 2012, 21:36 PM
Buenas:

Estoy intentando arreglar el hecho de que al descargar cualquier cosa (independientemente del servidor) la velocidad sube y baja. Llega a los picos de 250KB/s (muy rara vez a los 300KB/s) y luego baja a los 50 KB/s, vuelve a subir y asi sucesivamente.

Hasta hace un par de meses tenía contratado timofónica telefónica y luego me cambié a Jazztel; con ambos proveedores he tenido este problema (con los mismos megas) por lo tanto desde la ignorancia supongo que no será cosa de la línea (¿o si?).

Mi SO es un Window 7 Home Premium y la tarjeta wifi es muy actual.

El caso es que no sé si será casualidad pero por ejemplo si descargo desde algún servidor tipo Uploading o Bitshare me sucede, sin embargo si descargo un programa desde el gestor de softonic o actualizo el SO (o situaciones similares) no me pasa sino que se mantiene en los 250 KB/s.

¿Quizá sea algo de la configuración del PC?.

Saludos.
#21
Buenas:

Estoy intentando eliminar la "reserva" del 20% de ancho de banda que produce Windows para lo cual he encontrado dos soluciones:

-Desde gpedit.msc (lo he visto tantas veces que me sé los pasos de memoria); no puedo usarlo al estar desde un Windows 7 home premium (he intentado instalarlo sin éxito).

-Usando el comando:

Reg Add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PSched" /V "NonBestEffortLimit" /T REG_DWORD /D "0" /F

Esto lo he visto en el siguiente post: http://foro.elhacker.net/empty-t345941.0.html

El problema es que el usuario no aclara para qué sistema operativo es y en dicho tema se habla del xp/vista/windows 7 (no quiero tocar los registros sin estar seguro).

¿Alguien me puede decir si con este comando usado en un Windows 7 home premium me eliminará el límite de ancho de banda de Windows?, y si no es asi ¿alguna idea para hacerlo?.

Gracias de antemano. Saludos.
#22
Buenas:

¿Alguno me puede pasar links o comandos linux para descargar las librerías de Qt y OpenGL?. Llevo dias buscando por todos lados y probando con 8232 archivos y aplicaciones pero no hay forma de que me lea las librerías.

He instalado varias aplicaciones Qt que se supone que deben incluir las librerías ya que son para programar en él pero tampoco.

También os agradecería me dijérais en qué carpeta ponerla por tenerlo claro (tengo instalado Code::Blocks, VC++ y Dev-C++).

Gracias por adelantado. Saludos.
#23
Holas:

Tengo un pequeño problemilla y es que dentro de un analisis de casos (switch) no se me ejecuta el primer cin.getline(). Ejemplo:

Código (cpp) [Seleccionar]
switch (opcion)
       {
           case 1:
               while (pEA->pSiguiente != 0)
               {
                   pEA = pEA->pSiguiente;
               }

               pEA->pSiguiente = new agenda;
               pEA = pEA->pSiguiente;

               cout << "Introduzca el nombre: ";
               cin.getline (nuevoNombre, tamNombre); //Este cin.getline() no se ejecuta
               pEA->configurarNombre (&nuevoNombre[0]);
               cout << endl;

               cout << "Introduzca el correo: ";
               cin.getline (nuevoCorreo, tamCorreo);
               pEA->configurarCorreo (&nuevoCorreo[0]);
               cout << endl;

              ...


He probado quitando la parte de "Introduzca el nombre" para comprobar que no es un error sintáctico y lo que sucede es que no se ejecuta el cin.getline del correo, es decir, el primer cin.getline del "case" se omite. Lo mismo me sucede en "case 2: " etc.

Para corroborarlo he probado a poner antes del "Introduzca el nombre" un cin.getline(cadena_prueba, 30), y entonces si que se ejecuta correctamente el del nombre.

¿Alguno sabe por qué el primero siempre se omite?.

Gracias y saludos.
#24
Buenas:

Me gustaría saber cómo leer de caracter en caracter un documento, por ejemplo:

Código (c++) [Seleccionar]
#include <iostream>
#include <fstream>
using namespace std;

int main ()
{
   ifstream ifs ("entrada.txt");

   cout << ifs[5]; /*Esto está mal pero viene a sugerir lo que busco
                   Quiero imprimir el elemento número 5 del fichero*/

   return 0;
}


Está la posibilidad de guardar el contenido del fichero en una tabla con "ifs.getline (tabla, 256)", el caso es que ni sé el tamaño del texto ni me interesa guardarlo todo en una tabla cuyos elementos son del mismo tipo sino en varias tablas para separar los caracteres de los operandos numéricos. Por tanto debo recorrer el fichero elemento a elemento para comprobar su tipo.

Gracias y saludos.
#25
Programación C/C++ / Memoria dinámica
24 Enero 2012, 20:07 PM
Buenas noches:

Os escribo para ver si me podéis resolver una dudilla: estoy trabajando con los punteros y la memoria dinámica, ya he visto cómo asignar memoria en tiempo de ejecución del Free Store con "new", liberarla antes de volver a usar el puntero con "delete", los riesgos que conlleva, etc.

Pero se me ha ocurrido una cosa un poco más compleja: ejecutar condicionales que vayan asignando memoria de forma indefinida (por ejemplo para una agenda, que se reserve memoria cada vez que se quiera añadir una persona de tal forma que podamos añadir tanta gente como queramos, u otro tipo de base de datos).

Bastaría con hacer algo asi como:

Código (cpp) [Seleccionar]
if (opcion == 4) //La cuarta opcion por poner algo es "añadir alguien a la agenda"
{
personas *puntero = new personas; //La clase "personas" contendría los distitnos datos de cada persona añadida a la agenda
}


El caso es que, al querer añadir un nuevo usuario, con "personas *puntero = new personas" perdería el usuario anterior que hemos guardado.

Mi pregunta de forma concisa: ¿cómo se podría hacer para no perder las direcciones de las zonas de memoria a las que ha ido apuntando un puntero y asi poder volver a ellas?. Guardarlas en una tabla no tiene sentido ya que la tabla es finita.

Gracias y saludos.
#26
Programación C/C++ / Secuencias en C++
23 Enero 2012, 17:59 PM
Buenas tardes:

Estoy buscando la forma de introducir secuencias en C++, esto es, leer (cin) un texto o una secuencia de números de los cuales no sabemos cuál va a ser el tamaño. He buscado por internet y he encontrado cosas acerca de la librería string pero por lo que he visto es obligatorio indicar el número de elementos que va a tener la secuencia.

Las tablas (o arrays) no me sirven puesto que como ya he comentado la diferencia entre una tabla y una secuencia es que en la secuencia no sabemos cuántos elementos se van a introducir.

Gracias y saludos.
#27
Programación C/C++ / Acerca de switch
21 Enero 2012, 14:56 PM
Hi:

Tengo una duda en C++, según he leído el análisis de casos (switch) solo puede llevar un entero o caracter, ¿entonces cómo se haría para un número real o un booleano?.

Y también me gustaría saber cómo se ponen los rangos o periodos en C++, por ejemplo, en pascal para poner que se ejecute una instrucción en el caso de que la variable o contante tenga el valor del 1 al 5 se hace lo siguiente:

case variable of begin
1..5: //Instrucción a ejecutar
5..10: //Instrucción a ejecutar
end;


Como veis los dos puntos (..) le dicen al compilador que en caso de que "variable" tenga el valor del 1 al 5 se ejecute la instrucción, ¿cómo se marcan los periodos en C++?.

Gracias.