.
2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
de Alejandro Blanco -
Número de respuestas: 18
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Hola, cómo están?
En la siguiente función:
void insertarClientesABBTClientesSucursalesLDE(TClientesSucursalesLDE clientesSucursalesLDE, TClientesABB clientesABB, int idSucursal){
¿ Está bien que sea void y el pasaje sea por valor?
Desde ya muchas gracias.
En la siguiente función:
void insertarClientesABBTClientesSucursalesLDE(TClientesSucursalesLDE clientesSucursalesLDE, TClientesABB clientesABB, int idSucursal){
¿ Está bien que sea void y el pasaje sea por valor?
Desde ya muchas gracias.
En respuesta a Marcos Nicolas Garcia Durand
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
de Raul Maglione -
Buenas, Marcos,
La función está definida correctamente. Si te llama la atención que sea void y que todos los parámetros se pasen por valor, pero aún así inserte correctamente el clienteABB, es debido a que, aunque los parámetros sean pasados por valor, clientesSucursalesLDE es un puntero que referencia una posición específica en memoria. La dirección a la que apunta clientesSucursalesLDE no cambia, pero lo que se guarda en esa posición de memoria sí, permitiendo la modificación de la estructura guardada sin problemas.
Espero la aclaración sirva, ante cualquier duda no dudes en volver a consultar.
Saludos,
Raúl.
La función está definida correctamente. Si te llama la atención que sea void y que todos los parámetros se pasen por valor, pero aún así inserte correctamente el clienteABB, es debido a que, aunque los parámetros sean pasados por valor, clientesSucursalesLDE es un puntero que referencia una posición específica en memoria. La dirección a la que apunta clientesSucursalesLDE no cambia, pero lo que se guarda en esa posición de memoria sí, permitiendo la modificación de la estructura guardada sin problemas.
Espero la aclaración sirva, ante cualquier duda no dudes en volver a consultar.
Saludos,
Raúl.
En respuesta a Raul Maglione
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Buenas tardes Raúl,
Está claro, muchas gracias por tu respuesta.
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Buenas, cual es el objetivo de la variable idSucursal?
Yo la agregué en el struct por las dudas, pero el programa jamás me pide su uso, viendo las entradas y salidas. Puede ser que se pueda hacer el subprograma sin mencionarla? Y por lo que vi en el mensaje de recién, antes la pedían en el módulo de imprimir y ahora ya la quitaron.
Gracias, sds.
Yo la agregué en el struct por las dudas, pero el programa jamás me pide su uso, viendo las entradas y salidas. Puede ser que se pueda hacer el subprograma sin mencionarla? Y por lo que vi en el mensaje de recién, antes la pedían en el módulo de imprimir y ahora ya la quitaron.
Gracias, sds.
En respuesta a Ismael Ferro Odriozola
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
de Alejandro Blanco -
Ismael.
El objetivo es identificar o asociar a la colección de clientesABB a una sucursal. Lo usas cuando insertas un nuevo TClientesABB en TClientesSucursalesLDE.
En nuestro caso no lo usamos para más nada, ya que los TClientesABB se ordenan en la LDE según la edad promedio.
Saludos
Alejandro B
El objetivo es identificar o asociar a la colección de clientesABB a una sucursal. Lo usas cuando insertas un nuevo TClientesABB en TClientesSucursalesLDE.
En nuestro caso no lo usamos para más nada, ya que los TClientesABB se ordenan en la LDE según la edad promedio.
Saludos
Alejandro B
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Hola :)
Estaba probando el test: clientesSucursalesLDE1-crear-insertar-liberar.in, y al leerlo pensé que sería conveniente antes de seguir con las otras funciones, probar una modificación de ese test cargando los TClientesABB con varios clientes cada árbol. Al entrar los comandos manualmente, ingreso > agregarAClientesSucursalesLDE, y el programa se cuelga.. no entendía porqué, el test con make daba ´bien´, entonces busqué en el principal, y ví que la función espera un 'int': `int idSucursal = leerInt();` entonces, siguiendo manualmente, si agrego un número, '1' por ej.: `> agregarAClientesSucursalesLDE 1`, anda bien. Mi pregunta es, porqué anda sin ese argumento en los <tests>.in ?
De principal.cpp:
Estaba probando el test: clientesSucursalesLDE1-crear-insertar-liberar.in, y al leerlo pensé que sería conveniente antes de seguir con las otras funciones, probar una modificación de ese test cargando los TClientesABB con varios clientes cada árbol. Al entrar los comandos manualmente, ingreso > agregarAClientesSucursalesLDE, y el programa se cuelga.. no entendía porqué, el test con make daba ´bien´, entonces busqué en el principal, y ví que la función espera un 'int': `int idSucursal = leerInt();` entonces, siguiendo manualmente, si agrego un número, '1' por ej.: `> agregarAClientesSucursalesLDE 1`, anda bien. Mi pregunta es, porqué anda sin ese argumento en los <tests>.in ?
De principal.cpp:
```
void main_agregarClientesASucursalesLDE(TClientesSucursalesLDE &clientesSucursalesLDE, TClientesABB &clientesABB){
assert(clientesABB != NULL);
int idSucursal = leerInt();
insertarClientesABBTClientesSucursalesLDE(clientesSucursalesLDE, clientesABB, idSucursal);
clientesABB = NULL;
printf("Se ha agregado el clientesABB a SucursalesLDE de forma exitosa.\n");
```
Gracias!
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Buenas al crear un TClientesSucursalesLDE vacia, lo hacemos como un puntero a NULL o como un puntero al cabezal q tenga en incio y final NULL
gracias
gracias
En respuesta a María Lucía Panizzi Sofia
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
de Raul Maglione -
Buenas Lucía,
La segunda opción, haces el cabezal pero la lista es la que es NULL.
Saludos,
Raúl.
La segunda opción, haces el cabezal pero la lista es la que es NULL.
Saludos,
Raúl.
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Una pregunta en void liberarTClientesSucursalesLDE(TClientesSucursalesLDE &clientesSucursalesLDE);
cuando en la terminal le paso la linea CrearClientesSucursalesLDE estoy creando una lista vacia verdad? En ese caso no tendríamos que hacer nada porque no hay nada para liberar. Yo borre todo mi codigo en liberar para ver si al pasarle una lista vacia tendria que andar porque no hay nada que liberar y me crea bien la lista vacia pero cuando mando liberarClientesSucursalesLDE me da error principal: principal.cpp:921: void main_liberarClientesSucursalesLDE(rep_clientesSucursalesLDE*&): Assertion `clientesSucursalesLDE != NULL' failed.
Abortado (`core' generado)
cuando en la terminal le paso la linea CrearClientesSucursalesLDE estoy creando una lista vacia verdad? En ese caso no tendríamos que hacer nada porque no hay nada para liberar. Yo borre todo mi codigo en liberar para ver si al pasarle una lista vacia tendria que andar porque no hay nada que liberar y me crea bien la lista vacia pero cuando mando liberarClientesSucursalesLDE me da error principal: principal.cpp:921: void main_liberarClientesSucursalesLDE(rep_clientesSucursalesLDE*&): Assertion `clientesSucursalesLDE != NULL' failed.
Abortado (`core' generado)
En respuesta a Magdalena Amarante Mastropierro
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Hola,
A mi me pasó ese error. Al crear la lista vacía estaba retornando NULL, lo que hice fue cambiarla para que devuelva un cabezal con punteros NULL al inicio y al final y con eso se solucionó.
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Hola,
Entiendo que para el momento de insertar los clientesABB solo es necesario contar con la edad promedio, y en caso de haber repetidos los voy agregando al final del último repetido. Pero el problema es que para que el test2 me de correcto al momento de imprimir, tengo que ordenarlos según el ID al momentos de insertar.
Saludos, gracias.
Entiendo que para el momento de insertar los clientesABB solo es necesario contar con la edad promedio, y en caso de haber repetidos los voy agregando al final del último repetido. Pero el problema es que para que el test2 me de correcto al momento de imprimir, tengo que ordenarlos según el ID al momentos de insertar.
Saludos, gracias.
En respuesta a Gaston Alvarez Dorado
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
segun el id de la sucursal? a mi tambien me falla y no se porque
En respuesta a Gaston Alvarez Dorado
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Dentro de los árboles clientesABB, el orden es por 'IdTCliente'. Dentro de la listaDE, el orden es por 'edadPromedioTClientesABB' de cada árbol (de menor a mayor, ó de llegada a la listaDE (cola) si tienen igual edad promedio) y se imprime árbol por árbol, desde inicial hasta final de la listaDE.
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Buenas, no entiendo el error que me sale, porque la funcion si está en mi código
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
hola, en la funcion liberarTClientesSucursalesLDE, ¿hay que dejar la lista con el puntero al primer y ultimo nodo a null, como si la lista estuviera vacia, o tambien eliminar el cabezal?
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Hola,
¿Puede ser que el orden de la función insertarClientesABBTClientesSucursalesLDE deba ser O(n*m) donde n es la cantidad de elementos en la lista y m el tamaño del árbol mas grande en la lista? (la tarea pide que sea O(n))
Pregunto porque al ordenar la lista por edadPromedio se debe ir comparando y conseguir la edadPromedio no es O(1) sino que es O(m) donde m es el tamaño del árbol.
Saludos,
Franco.
¿Puede ser que el orden de la función insertarClientesABBTClientesSucursalesLDE deba ser O(n*m) donde n es la cantidad de elementos en la lista y m el tamaño del árbol mas grande en la lista? (la tarea pide que sea O(n))
Pregunto porque al ordenar la lista por edadPromedio se debe ir comparando y conseguir la edadPromedio no es O(1) sino que es O(m) donde m es el tamaño del árbol.
Saludos,
Franco.
En respuesta a Alejandro Blanco
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Hola, tengo este problema con clientesSucursalesLDE1-crear-insertar-liberar
En respuesta a Gastón Zabaleta Prieto
Re: 2. Implemente las funciones crearTClientesSucursalesLDEVacia, ...
Hola Gastón,
Fijate como estás creando la lista vacía, hay respuestas mas arriba que te pueden ayudar.
Saludos!
Yael
Fijate como estás creando la lista vacía, hay respuestas mas arriba que te pueden ayudar.
Saludos!
Yael