Practica sobre tipos enumerados, typedef y struct 1. Dada la siguiente especificación: TIPO REGISTRO ASIGNACIÓN = REAL TRANSPORTE; REAL COMIDA; REAL VACACIONES; FREGISTRO TIPO REGISTRO DEDUCCIÓN = REAL SEGURO; REAL AH; //Ahorro Habitacional FREGISTRO REGISTRO EMPLEADO = ENTERO CODIGO; ENTERO ACTIVO; CARACTER SEXO; REAL SUELDO_HORA; ENTERO HORAS_TRAB; ASIGNACIÓN AS; DEDUCCIÓN DE; FREGISTRO Realice un programa que permita: a) Declarar una variable de tipo EMPLEADO. b) Inicializar cada campo del registro. c) Calcular el sueldo de un empleado activo, dado que ST = (SH * HT) + A – D, siendo las variables las siguientes: ST = Sueldo Total, SH = Sueldo por Hora, HT = Horas Trabajadas, A = Asignaciones, D = Deducciones 2. a) b) c) d) Usando tipos enumerados, arreglos y estructuras, dé definiciones de tipos para: Días de la semana Deportes en equipos Meses del año Defina arreglos de cada uno de estos tipos enumerados, inicializando los dias de la semana y meses de nacimiento de sus parientes. e) Escriba un trozo de código en c que determine cuantos nacen un lunes y cuantos en enero. 3. Explique el significado de las siguientes declaraciones en lenguaje C (coloque comentarios): #define #define #define #define #define NUM_SEX NUM_EDO LON_NOM MIN_EDD MAX_EDD 2 4 15 18 65 typedef enum { Masculino, Femenino } SEXO; typedef enum { Soltero, Casado, Viudo, Divorciado } ESTADO; typedef char NOMBRE[LON_NOM]; typedef short EDAD; typedef struct { NOMBRE apellido; NOMBRE nombre; EDAD edad; SEXO sexo; ESTADO estado; } EMPLEADO; const char *sexo[NUM_SEX] = {"Masculino","Femenino"}; const char *estado[NUM_EDO] = {"Soltero","Casado","Viudo","Divorciado"}; 4. Realizar un programa que pregunte al usuario su número de cédula de identidad, primer nombre y primer apellido, guardando estos datos en una variable de tipo estructurado. El programa debe imprimir un mensaje con la información leída. La longitud máxima del nombre es de 12 caracteres, al igual que el apellido. La cédula de identidad es un número entero. 5. Realizar un programa que permita al usuario ingresar siete fechas en formato DD/MM/AAAA y luego presentarlas ordenadas ascendentemente. Para ello debe definir el tipo estructurado FECHA y usar un arreglo con elementos de este tipo. Ayuda: En lenguaje C, si s1 y s2 son dos variables del mismo tipo estructurado (struct), es válido hacer asignaciones del tipo s1=s2, lo cual copia todo el contenido de la variable s2 en la variable s1. 6. Defina el tipo de datos FichaComUniv, el cual puede almacenar los datos de cualquiera de los miembros de la Comunidad universitaria. Existen cuatro clases de miembros universitarios: Estudiantes, Profesores, Obreros y Empleados. Para todos se almacenan datos personales como: cédula, nombres, apellidos, edad, teléfono, dirección, sexo, número de hijos. Pero hay algunos datos que son propios a cada clase, entre ellos: • Para los estudiantes: carnet, carrera, número de créditos aprobados, número de créditos inscritos, número de créditos reprobados, número de trimestres inscritos, índice académico • Para los profesores: departamento académico al que pertenece, fecha de ingreso a la universidad, cargo desempeñado (instructor, asistente, agregado, asociado, titular), dedicación (convencional, integral o exclusiva), sueldo. • Para los obreros: empresa contratista a la que pertenece, sueldo, categoría (I,II,III,IV,V,VI) • Para los empleados: departamento administrativo al que pertenece, fecha de ingreso, sueldo, cargo. Realice un programa que permita llenar los datos de una ficha. Use menues para seleccionar tipos enumerados. 7. Proponga estructuras de datos que simulen las siguientes situaciones: a) Información académica de un estudiante b) Datos del mundial para una quiniela c) Datos para juegos con niveles de preferencia d) Dado los resultados de una quiniela calcule la puntuacion si: un score acertado son 3 puntos y un resultado acertado representa 1 punto. Suponga una variable de tipo quiniela que tiene todos los resultados de la fase eliminatoria.