Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
CI-1201 Programación II - I-2013
Profesor Jeisson Hidalgo-Céspedes
Grupo 03. Entrega límite: 03-abr-2013 11:55 p.m.
Dado que el tamaño y capacidad de los tipos de datos primitivos de C/C++ varían de acuerdo a la arquitectura a la cual el compilador está generando código objeto, resulta útil tener un programa en C++ que despliegue esta información, de tal forma que ayude al programador a tomar decisiones cuando debe escoger el tipo de datos para una variable. El siguiente sería un ejemplo de ejecución del programa en una arquitectura de 32 bits.
Para cada tipo de datos, su programa debe imprimir la cantidad de bytes que ocupa en memoria, utilizando el operador sizeof
; y el rango de valores que el tipo de datos puede alojar (el dominio de la variable). El encabezado <limits.h>
incluye constantes que indican el valor mínimo y máximo de cada tipo de datos entero. Para las variables de punto flotante, las constantes se encuentran en el encabezado <float.h>
; y se sugiere imprimir la cantidad de dígitos decimales que pueden almacenar tanto a la izquierda como derecha del punto decimal, en lugar de los valores extremos.
Su programa debe estar escrito bajo el paradigma de programación procedimental, no importa si en el lenguaje de programación C o C++. Si escoge C++ debe imprimir además los tipos de datos bool
y wchar_t
. Ambos no tienen constantes de encabezado para sus valores mínimo y máximo, aunque usted puede generarlos manualmente.
Asegúrese de compilar su programa para dos arquitecturas distintas y compare la salida. Preste atención a cuáles tipos de datos cambiarion su tamaño/capacidad, y cuáles se mantuvieron inalterados.
sizeof(void*)
), o el tamaño del tipo de datos size_t
.char
, signed char
, unsigned char
. Utiliza las constantes respectivas del encabezado <limits.h>
.short
, int
, long
, long long
, con y sin signo. Utiliza las constantes respectivas del encabezado <limits.h>
.pow()
de la biblioteca <math.h>.float
, double
y long double
. Imprime además la cantidad de dígitos antes y después del punto decimal que puede representar estos tipos de datos de acuerdo al encabezado <float.h>
.size_t
. Ambos tipos de datos son sin signo. Necesitará la función de potencia de 2 para imprimir los valores mínimo y máximo.main()
invoca a las funciones descritas previamente, y retorna 0 al sistema operativo.__cplusplus
, y utilizar enumeraciones al estilo C o renombrarlas con typedef
. Su archivo fuente deberá tener extensión .c
y no .cpp
.Para presentar su solución, comprima únicamente los archivos fuente (.c
, .cpp
, .h
) que haya creado y suba el comprimido a la Plataforma Educativa en la asignación con nombre Tarea01
.