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 - K-YreX

#811
Exacto, además me estaba dando cuenta también de que usar dos arrays para solo cambiar un valor de podía cambiar ese valor en la condición, pero veo que te has adelantado  :xD
#812
Bastante más sencillo al usar los arrays para los días, es cierto. Lo único como he comentado antes, cambiando la condición de que sea bisiesto, ya que ese código no es cierto.
#813
Citar
case 2: if(fecha.anyo%4==0)
Un año no es bisiesto porque sea divisible por 4 únicamente.

Citar
Desde un enfoque algorítmico, se consideran las proposiciones o enunciados lógicos siguientes:

p: Es divisible entre 4
q: Es divisible entre 100
r: Es divisible entre 400
Entonces se utiliza la fórmula lógica <p && (!q || r)> para establecer si un año dado es bisiesto: es bisiesto si es divisible entre cuatro y (no es divisible entre 100 ó es divisible entre 400).
#814
Te recomiendo encapsular todas esas comprobaciones en una o varias funciones para tener un código más legible.
Código (cpp) [Seleccionar]

bool fechaValida(const int day, const int month, const int year){
   bool valido = true;
   int limiteFebrero = diasFebrero(year); // devuelve 29 si es bisiesto, 28 si no lo es
   if(month < 1 || month > 12 || day < 1 || day > 31) // condiciones que no dependen de nada, se salen de los limites
       valido = false;
   else if(month == 2 && day > limiteFebrero) // condiciones que dependen de que que sea bisiesto
       valido = false;
   else if(mes30Dias(month) && day == 31) //condiciones para los meses de 30 dias
       valido = false;
   return valido;
}


Usando <if else> que es más recomendable que usar <break> no tienes que comprobar una condición que ya se ha evaluado antes ya que si entra en un <else if> es porque no ha entrado en un <if> anterior.

Te he dejado un ejemplo de como podría quedar mejor encapsulado. Yo creo que así es más legible. Además esa es una función que puedes usar siempre que trabajes con fechas por lo que viene bien tenerlo en una función. Ahora te queda completar las funciones que he usado ahí y que no están implementadas.

Creo que no me he dejado ninguna comprobación. De ser así podéis comentármelo.  :-X
#815
Cita de: CalgaryCorpus en 10 Diciembre 2018, 15:52 PM
Esto
Código (cpp) [Seleccionar]
cin >> frase;
solo lee la primera palabra. No lee la frase completa.

Cierto, y yo que me había centrado en la función no me estaba dando cuenta de eso :-X. Ya he cambiado el código para que funcione:
Código (cpp) [Seleccionar]

cout << "Ingrese una frase: ";
getline(cin, frase);
#816
Programación C/C++ / Re: Ayuda con array
10 Diciembre 2018, 04:47 AM
Que casualidad, recién registrado para preguntar lo mismo que en un tema de hace unas horas. Con un código que tiene exactamente los mismos errores de indexación. Pero a un mismo problema, una misma solución, el código entre etiquetas de "código GeSHi".

Para que no se diga, hasta te voy a dar una respuesta :rolleyes::
Código (cpp) [Seleccionar]

const int LIMITE_INFERIOR = 5;
const int LIMITE_SUPERIOR = 10;
int aleatorio = LIMITE_INFERIOR + rand() % (LIMITE_SUPERIOR - LIMITE_INFERIOR + 1);


PD: Los arrays en C/C++ empiezan en 0, no en 1 y por tanto llegan hasta uno menos de su capacidad...
Código (cpp) [Seleccionar]

int array[5] = {0,1,2,3,4};
for(int i = 0; i < 5; i++)
    cout << array[i] << endl;


Si por un casual este usuario es de la misma persona que el que ha abierto el otro tema para preguntar sobre el mismo programa y sigues sin usar etiquetas para el código te deseo suerte en tus próximos temas. Puede que alguien te ayude...  :silbar:
#817
El código entre etiquetas GeSHi... Se seleccionan encima del cuadro de texto.
Especifica la duda o el problema que tengas. Esto no es una página donde mandes un programa que no funciona y te devuelvan uno que sí...
#818
Citar
cómo es eso de las etiquetas Geshi?

Cuando escribes un mensaje encima del cuadro de texto hay un desplegable que pone "Código GeSHí". Ahí puedes elegir el lenguaje que quieras y te saldrán dos etiquetas en el cuadro de texto, cada una de ellas entre corchetes []. Tienes que poner tu código entre las dos etiquetas tal que: [ ] <tu código> [ ]. Puedes previsualizar el mensaje antes de publicarlo para ver si se ve dentro de un cuadro con diferente formato como este:
Código (cpp) [Seleccionar]

// asi se ve el codigo entre etiquetas GeSHi
#819
Como comprenderás no puedes soltarnos aquí unas cuantas líneas de código y que te lo acabemos nosotros. Especifica la duda que tengas ya sea de no saber como implementar algo o bien un error que no sepas solucionar y puede que entonces alguien te ayude.
#820
Esas variables están declaradas sin ningún sentido...
- <altitud> es un arreglo de 2 enteros.
- Un arreglo se accede con un índice, ya te lo he mostrado antes.
- El primer <while> no va a terminar nunca porque la variable <i> no se incrementa.
- Asignas el valor de 1 a <i> cuando <i> ya vale 1.

Vuelve a mirar cómo te he dicho que se accede a un arreglo y organiza bien tus variables...
Y el código entre etiquetas GeSHi, también te lo he comentado antes...