Título: Duda básica en C++ Publicado por: dorkam en 6 Junio 2013, 02:55 am Hola, estoy empezando a aprender algo de C++, tengo que hacer un programa en el que se inserten un número INDETERMINADO de fechas y te diga si las fechas son correctas o no.
El programa que determina si la fecha es correcta o no ya lo tengo creado, el problema está en que solo está creado para leer una fecha, es decir 3 enteros, pero el programa deberia leer un numero indeterminado de fechas y mostrar el resultado de cada una de ellas. A ver si alguien puede explicarme como solucionarlo. Aquí les dejo el codigo para que vean lo que tengo hasta ahora Código: #include <iostream> Gracias Título: Re: Duda básica en C++ Publicado por: amchacon en 6 Junio 2013, 03:20 am Las fechas como las introduces exactamente?
Si usas una estructura fecha se me ocurre que uses la clase vector: Código
El vector puede usarse como un array normal (fecha[0] para el elemento 0, fecha[1] para el elemento 1). Puedes obtener el tamanyo del vector usando el método interno size: Código
Documentación de la clase vector: http://www.cplusplus.com/reference/vector/vector/ EDITO: Vale ya he visto tú edite con el código. Creo que te falta un poco de nivel antes de empezar con lo que te he dicho (aun no sabes usar un for por lo que veo). Repasate y aprendete todos los elementos del lenguaje. Título: Re: Duda básica en C++ Publicado por: dorkam en 6 Junio 2013, 03:28 am Como digo, recien estoy empezando con esto de la programacion y este es un ejercicio judge.org en el que enviando el archivo .cpp te dice si el programa esta bien o no...
el ejercicio dice que el input seria: 30 10 2008 17 04 2012 15 08 1885 ... y segun el numero de fechas introducido debe poner de cada una si es correcta o no. La clase vector aún no he visto nada, este ejercicio es para trabajar con los if/else pero no se como hacer que pueda tomar 1 fecha, 2 fechas o n fechas... Gracias por la respuesta Título: Re: Duda básica en C++ Publicado por: leosansan en 6 Junio 2013, 09:57 am .............................................................................. pero el programa deberia leer un numero indeterminado de fechas y mostrar el resultado de cada una de ellas. Supongo que te refieres a poder introducir sucesivamente varias fechas, indicando en cada caso sin son correctas o no, ya que para guardarlas habría que hacer uso, como mínimo, de arrays y tú solo quieres if/else. Pero para lograr tu objetivo se necesito un bucle que repita la operación de introducir datos, un for o while o do-while. Yo me he decantado por esta última opción. Además si hay un bucle debe introducirse la opción de salir. Una salida como la que quieres podría ser: Código
Código
Saluditos! .... .. (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Duda básica en C++ Publicado por: rir3760 en 6 Junio 2013, 15:06 pm Como digo, recien estoy empezando con esto de la programacion y este es un ejercicio judge.org en el que enviando el archivo .cpp te dice si el programa esta bien o no... Debes leer linea por linea la entrada estándar. Aquí lo mas sencillo es utilizar la clase string y la función getline, un ejemplo:el ejercicio dice que el input seria: 30 10 2008 17 04 2012 15 08 1885 ... y segun el numero de fechas introducido debe poner de cada una si es correcta o no. Código
Cada linea debes procesarla, primero extraes de esta tres enteros (por ejemplo utilizando la clase stringstream) y validas estos mediante tu función. Si cualquiera de los dos pasos falla la fecha no es valida, caso contrario lo es. Un saludo Título: Re: Duda básica en C++ Publicado por: leosansan en 6 Junio 2013, 17:15 pm Cada linea debes procesarla, primero extraes de esta tres enteros (por ejemplo utilizando la clase stringstream) y validas estos mediante tu función. Si cualquiera de los dos pasos falla la fecha no es valida, caso contrario lo es. ¡Uffff!, que fuerte. La idea es muy interesante, pero ¿podrías orientarme en la función a emplear para dicha extracción?. Te aseguro que la busco pero no la encuentro. Gracias de antemano. Saluditos! .... ..(http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Por el día de Canarias (http://i1280.photobucket.com/albums/a497/leosansan/CANARIAS/bandera_canaria_zpseaf59d8e.gif) Título: Re: Duda básica en C++ Publicado por: amchacon en 6 Junio 2013, 17:54 pm ¡Uffff!, que fuerte. La idea es muy interesante, pero ¿podrías orientarme en la función a emplear para dicha extracción?. Te aseguro que la busco pero no la encuentro. Gracias de antemano. Creo que lo que pretende es:Saluditos! .... ..(http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Por el día de Canarias (http://i1280.photobucket.com/albums/a497/leosansan/CANARIAS/bandera_canaria_zpseaf59d8e.gif) Código
PD: Feliz día de Canarias ;-) Título: Re: Duda básica en C++ Publicado por: leosansan en 6 Junio 2013, 18:16 pm Creo que lo que pretende es: .................................... PD: Feliz día de Canarias ;-) Gracias mil "maestro", nada como un ejemplo para los cortitos de vista como yo. ;-) ;-) ;-) ¡Ya me he hecho un File con los consejitos de mi colegüita amchacon!. Saluditos! .... .. (http://st.forocoches.com/foro/images/smilies/dancer2.gif) Título: Re: Duda básica en C++ Publicado por: amchacon en 6 Junio 2013, 18:32 pm ¡Ya me he hecho un File con los consejitos de mi colegüita amchacon!.[/size] ¡He ascendido! Ya tengo mi propio archivo y todo ;-)Una anotación, en esta linea: Código
Dado que linea es un string y no un char*. Se puede eliminar el constructor de string: Código
Título: Re: Duda básica en C++ Publicado por: leosansan en 6 Junio 2013, 18:58 pm (http://st.forocoches.com/foro/images/smilies/bow.gif) Título: Re: Duda básica en C++ Publicado por: dorkam en 6 Junio 2013, 19:40 pm Ufff, ya veo lo perdidisimo que estoy todavia :P
Lo primero gracias por las respuestas. Todavia estoy muy verde en el tema y hay cosas k me suenan a chino pero adaptando el ultimo codigo que puso amchacon he conseguido que funcione como me piden, ahora solo falta una cosita y es que el resultado de correct date me lo da en una linea nueva y a mi me gustaria que la pusiera en la misma linea, es decir, 04 06 1935 Correct Date. Aqui os dejo el codigo Código: #include <iostream> Gracias de nuevo y saludos!! |