[C con Clase] Tema 11 Ejercicio 2 del Curso C++

Steven Davidson srd4121 en njit.edu
Jue Sep 11 20:52:13 CEST 2008


Hola Samuel,

Arkiant wrote:
> Hola buenas tardes,
> 
> tengo un pequeño problema con el ejercicio mencionado en el asunto
> aquí viene el enunciado:
> 

[CORTE]

> 
> El problema que tengo es que no entiendo nada, es decir, se que tengo
> que escribir una estructura con 3 campos: Ano, Mes, Dia. Lo de los
> valores que pueden tomar tambien lo entiendo, lo de la obtención del
> año como 2003 = 43 nosé porque debe dar eso, ni como sacarlo.
> 

Esto se explica en el enunciado:
"En ese caso el año se obtiene sumando 1960 al valor de año. El año 2003 
se almacena como 43."

Es decir, 1960+43 = 2003. Visto de otro modo, 2003 - 1960 = 43. Piensa 
que 1960 es el año base y lo que guardamos es el desplazamiento.

> Por otra parte tenemos lo de ajustar los tipos eso también lo
> entiendo si es lo que pienso (char, char, char).
> 

Exacto. Elegimos un tipo de dato que se ajuste el espacio de memoria 
para almacenar estos valores. Elegir 'char' nos permitiría guardar y 
manipular estos números.

> Y ahora viene la parte mas "extraña" para mi:
> 
> "Diseñar una estructura análoga, llamada "fecha", pero usando campos
> de bits. Usar sólo un entero corto sin signo (unsigned short), es
> decir, un entero de 16 bits. Los nombres de los campos serán: dia,
> mes y anno."
> 
> esto me da a enteder dos cosas, o una estructura con campos repetidos
> o dos estructuras completamente diferentes una con campos de
> variables, y la otra con campos de bits.
> 

No. Anterior a este párrafo hablamos de un posible diseño usando 
'struct'. Ahora viene lo que pide el ejercicio: "diseñar una estructura 
análoga". Es decir, tienes que diseñar una sola estructura parecida a la 
que se menciona previamente. Sin embargo, debes usar 16 bits para 
almacenar los tres conceptos y propiedades de una fecha. El enunciado 
del ejercicio también te da la implementación: "diseñar una 
estructura...usando campos de bits". Lo que tienes que hacer es 
descubrir cuántos bits tienes que dedicar a cada campo para que "quepa" 
en 16 bits.

> Y una preguntita mas:
> Los valores los tiene que poner el usuario y luego el programa
> procesar toda la información y convertir al formato adecuado o debe
> estar ya en el código fuente?
> 

El enunciado sólo pide el diseño. Si quieres crear un programa sencillo 
para ver que todo funciona bien, entonces adelante. Ahora bien, huelga 
decir que no podrás pasar un campo de una estructura de bits a 'cin >>'. 
Necesitarás usar una variable intermediaria. Esta variable se usará para 
la lectura con 'cin >>' y luego en la asignación a tal campo. Por ejemplo,

fecha f1;
int temp;

cout << "Dia: ";
cin >> temp;
f1.dia = temp;

> Grácias por todo y por este maravilloso Curso/Lista que grácias a
> ellos cada día aprendo mas el mundillo del C/C++.
> 

De nada; para eso estamos.


Espero que lo anterior te aclare las dudas.

Steven





Más información sobre la lista de distribución Cconclase