al tema de campos de bits ya le agarre la mano pero el de punteros + vector de estructuras se me complica, acá hay un modelo integrador que estoy tratando de hacer.
En una fábrica se desea chequear la eficiencia de 16 robots. Para ello se ingresa la cantidad de tiempo (entre 0 y 500 seg) que empleó en el armado de cada artículo, durante un día.
Los datos ingresan por los ports 0X300 (menos significativo) y 0x301 (más significativo). Se han tomado en total 800 mediciones. Los datos son considerados válidos cuando el bit de sincronismo (S) pasa de 0 a 1. aca el esquema de los campos. (B es espacio que no se usa)
S B B T T T T T T T T T R R R R
tiempo robot
Se pide almacenar los datos necesarios en un vector de estructuras que permitan:
a) Calcular el promedio de tiempo por Robot.
b) Generar un vector de punteros al vector de estructuras.
c) Ordenar el vector de estructuras utilizando la MACRO ORDEN que ordena de mayor a
menor por cantidad de artículos.
d) Utilizar una FUNCIÓN CON PUNTEROS para mostrar el robot que obtuvo el promedio de
tiempo MÁS BAJO.
principalmente necesitaría ayuda al momento de la carga de datos en una función usando punteros, los datos como el tiempo y el numero de robot se cargan con la función rand.
Código
#include <stdio.h> #include <stdlib.h> #include <time.h> #define max_robots 6 struct mapa { unsigned int robot: 4; unsigned int tiempo: 9; unsigned int : 2; unsigned int sincronismo: 1; }; union u_uni { struct mapa bits; unsigned empaquetado[2]; }; struct s_datos { int robot; int tiempo; int rep; float prom; }; void ingreso_datos(struct s_datos *[], int); int main() { union u_uni u; struct s_datos datos[max_robots], *datos_ptr[max_robots]; ingreso_datos(&datos, max_robots); return 0; } void ingreso_datos(struct s_datos *dato[], int max) { }