#include #include #include #include #include "fun.hpp" #define INCREMENTO 5 using namespace std; void cargarPedidos(int **&fechaClienteCantidad, char **&codigoDelProducto, const char *nombArch){ int nd=0, cap=0; char *cod; ifstream arch(nombArch,ios::in); if(not arch.is_open()){ cout<<"error al abrir "<>dni; arch.get(); arch>>cant; arch.get(); fecha = leeFecha(arch); fechaClienteCantidad = new int [3] {}; fechaClienteCantidad[0] = fecha; fechaClienteCantidad[1] = dni; fechaClienteCantidad[2] = cant; codigoDelProducto = cod; } int leeFecha(istream &arch){ int dd,mm,aa; char c; arch>>dd>>c>>mm>>c>>aa; return dd+mm*100+aa*10000; } void qSort(int **fechaClienteCantidad, char **codigoDelProducto, int izq, int der){ int limite; if (izq>=der) return; cambiar(fechaClienteCantidad[izq],codigoDelProducto[izq],fechaClienteCantidad[(izq+der)/2],codigoDelProducto[(izq+der)/2]); limite = izq; for(int i=izq+1;i<=der;i++){ if(desorden(fechaClienteCantidad[i], fechaClienteCantidad[izq])){ limite++; cambiar(fechaClienteCantidad[i],codigoDelProducto[i],fechaClienteCantidad[limite],codigoDelProducto[limite]); } } cambiar(fechaClienteCantidad[izq],codigoDelProducto[izq],fechaClienteCantidad[limite],codigoDelProducto[limite]); qSort(fechaClienteCantidad,codigoDelProducto,izq,limite-1); qSort(fechaClienteCantidad,codigoDelProducto,limite+1,der); } void cambiar(int *&fechaClienteI,char *&codigoDelProductoI,int *&fechaClienteK,char *&codigoDelProductoK){ int *auxI = fechaClienteI; char *auxC = codigoDelProductoI; fechaClienteI = fechaClienteK; codigoDelProductoI = codigoDelProductoK; fechaClienteK = auxI; codigoDelProductoK = auxC; } bool desorden(int *fechaClienteCantidadI, int *fechaClienteCantidadK){ return fechaClienteCantidadI[0] < fechaClienteCantidadK[0]; } void pruebaDeCargaDePedidos(int **fechaClienteCantidad, char **codigoDelProducto, const char *nombArch){ ofstream arch(nombArch,ios::out); if(not arch.is_open()){ cout<<"error al abrir "<