Structs (arreglos de registros)
Idea principal
Sección titulada «Idea principal»Un struct agrupa varios datos relacionados en una sola variable. En Computacion II esto se usa para arreglos de registros (por ejemplo, inventario de productos).
struct Producto { int codigo; char descripcion[40]; int cantidad; double precio;};Arreglo de struct (inventario)
Sección titulada «Arreglo de struct (inventario)»#include <iostream>#include <cstring>
struct Producto { int codigo; char descripcion[40]; int cantidad; double precio;};
int buscarProducto(const Producto inv[], int n, int codigo) { for (int i = 0; i < n; i++) { if (inv[i].codigo == codigo) return i; } return -1;}
int main() { const int MAX = 50; Producto inv[MAX]; int n = 0; // cantidad usada
// agregar un producto if (n < MAX) { inv[n].codigo = 1001; std::strcpy(inv[n].descripcion, "Arroz"); inv[n].cantidad = 10; inv[n].precio = 2.5; n++; }
int idx = buscarProducto(inv, n, 1001); if (idx != -1) { std::cout << inv[idx].descripcion << " stock=" << inv[idx].cantidad << "\n"; } return 0;}Ordenar por un campo (stock)
Sección titulada «Ordenar por un campo (stock)»Para el ejercicio de inventario se pide listar por stock de mayor a menor. Un enfoque simple:
void ordenarPorStockDesc(Producto inv[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { if (inv[j].cantidad < inv[j + 1].cantidad) { Producto tmp = inv[j]; inv[j] = inv[j + 1]; inv[j + 1] = tmp; } } }}Conexión con trabajos y Parcial II
Sección titulada «Conexión con trabajos y Parcial II»- El Ejercicio 2 — Inventario se resuelve con
struct+ arreglo. - Parcial II evalúa precisamente este tipo de estructuras.