LO QUE MARQUE EN ROJO ES LO QUE NO ENTIENDO!!!!, POR FAVOR SI ME PUEDEN AYUDAR... MUCHAS GRACIAS!!!
CLASE HORA
#include <iostream>
using std::cout;
using std::endl;
// Definicion del tipo de dato abstracto (ADT) Hora
class Hora {
public:
Hora(); // constructor
void estableceHora( int, int, int ); // establece hora, minuto, segundo
void imprimeMilitar(); // imprime la hora en formato militar
void imprimeEstandar(); // imprime la hora en formato estándar
private:
int hora; // 0 - 23
int minuto; // 0 - 59
int segundo; // 0 - 59
}; // fin de la clase Hora
// El constructor Hora inicializa en cero a cada dato miembro.
// Garantiza que todos los objetos de Hora inician en un estado consistente.
Hora::Hora() { hora = minuto = segundo = 0; }
// Establece un nuevo valor de Hora por medio de la hora militar. Realiza verificaciones
// de validación de los valores de los datos. Establece en cero a los valores inválidos.
void Hora::estableceHora( int h, int m, int s )
{
hora = ( h >= 0 && h < 24 ) ? h : 0;
minuto = ( m >= 0 && m < 60 ) ? m : 0;
segundo = ( s >= 0 && s < 60 ) ? s : 0;
} // fin de la función estableceHora
// Imprime Hora en formato militar
void Hora::imprimeMilitar()
{
cout << ( hora < 10 ? "0" : "" ) << hora << ":"
<< ( minuto < 10 ? "0" : "" ) << minuto;
} // fin de la función imprimeMilitar
// Imprime Hora en formato estándar
void Hora::imprimeEstandar()
{
cout << ( ( hora == 0 || hora == 12 ) ? 12 : hora % 12 )
<< ":" << ( minuto < 10 ? "0" : "" ) << minuto
<< ":" << ( segundo < 10 ? "0" : "" ) << segundo
<< ( hora < 12 ? " AM" : " PM" );
} // fin de la función imprimeEstandar
// Controlador para probar la clase simple Hora
int main()
{
Hora h; // instancia el objeto t de la clase Hora
cout << "La hora militar inicial es ";
h.imprimeMilitar();
cout << "nLa hora estandar inicial es ";
h.imprimeEstandar();
h.estableceHora( 13, 27, 6 );
cout << "nnLa hora militar despues de estableceHora es ";
h.imprimeMilitar();
cout << "nLa hora estandar despues de estableceHora es ";
h.imprimeEstandar();
h.estableceHora( 99, 99, 99 ); // intenta establecer valores inválidos
cout << "nnDespues de intentar establecer valores invalidos:"
<< "nHora militar: ";
h.imprimeMilitar();
cout << "nHora estandar: ";
h.imprimeEstandar();
cout << endl;
return 0;
} // fin de la función main
Es el operador condicional, una explicación en detalle de su funcionamiento la puedes consultar en un buen libro o en la red (Google no muerde) por ejemplo en esta pagina cortesía de C con clase (http://c.conclase.net/curso/?cap=018#OP3_OPCOND).
Un saludo
Lo que no entiendo es que significa para el programa esa linea... Hora < 10 Que significa eso para el programa?, no quiero la explicacion de qué es cada cosa, sino cual es la relación de esas instrucciones dentro del programa.
Hola
Si supieras qué es y cómo se usa sabrías qué significa y qué función tiene en el programa. Léete el enlace que así es como se aprende!!
Saludos
Voy a ser buenito esta vez:
cout << ( hora < 10 ? "0" : "" ) << hora << ":"
<< ( minuto < 10 ? "0" : "" ) << minuto;
eso se traduce en: Hora es mayor que 10? si es cierto, poner "0", sino poner "".
Minuto es mayor que 10? Si es cierto poner "0", si no es cierto poner "".
Muchas gracias ahora si lo entendi genio!!!