Se están definiendo dos estructuras. Qué representan las palabras que están luego de la definicion de los campos de los struct? Pues he leído que son variables declaradas de ese tipo, pero al invocar la función los parámetros tienen como tipo esas palabras y no el nombre del tipo en sí (ej: "Punto pto", en vez de "rep_punto pto").
En respuesta a Lucas Fernando Goncalves Ramos
Re: Ejercicio 5. Comprensión de letra.
de Nicolas Ron Calvo -
Buenas tardes.
Si mi memoria no falla vos tenes dos maneras de trabajar con los record. Una es: tal cual la imagen, donde le asignas un nombre luego de cerrarlo con el corchete, y la segunda es poner solo struct rep_colPuntos, y luego en el main pones rep_colPuntos Colpuntos. con el typedef te ahorras lo de la segunda opción
Si mi memoria no falla vos tenes dos maneras de trabajar con los record. Una es: tal cual la imagen, donde le asignas un nombre luego de cerrarlo con el corchete, y la segunda es poner solo struct rep_colPuntos, y luego en el main pones rep_colPuntos Colpuntos. con el typedef te ahorras lo de la segunda opción
En respuesta a Nicolas Ron Calvo
Re: Ejercicio 5. Comprensión de letra.
Si mal no recuerdo en C (no C++) tendrías que usar "struct rep_colPuntos ColPuntos", por lo que sería muy razonable usar un typedef para ahorrarse la escritura. Pero con C++, aunque sea compilando con g++, no hace falta agregarle el "struct", por lo que no estoy seguro de que ayuda dan los typedef en este caso.
En respuesta a Donaldo Miguel Mac Eachen Rodriguez
Re: Ejercicio 5. Comprensión de letra.
Ya entendí! Muchas gracias. Otra cosa, en la segunda estructura el tercer campo es un puntero. Como hago para hacer de eso un arreglo? Teniendo en cuenta que tengo que tener primero una variable de tipo ColPuntos y de ahí manipular el puntero.
En respuesta a Lucas Fernando Goncalves Ramos
Re: Ejercicio 5. Comprensión de letra.
de Libertad Tansini -
Hola, contesté en otro hilo, el pedido de memoria para colPtos puede ser algo así:
ColPuntos colPtos;
const int maxPtos = 10;
colPtos.arregloPuntos = new Punto[maxPtos];
colPtos.cantidad = 0;
colPtos.capacidad = maxPtos;
saludos
ColPuntos colPtos;
const int maxPtos = 10;
colPtos.arregloPuntos = new Punto[maxPtos];
colPtos.cantidad = 0;
colPtos.capacidad = maxPtos;
saludos
En respuesta a Libertad Tansini
Re: Ejercicio 5. Comprensión de letra.
yo no termino de entender porqué en el argumento de insertarPunto aparece ColPuntos & colPuntos...
En respuesta a Mauricio Javier Ramos De Rosa
Re: Ejercicio 5. Comprensión de letra.
de Fernando Fernandez -
Hola Mauricio.
¿La pregunta es por qué se incluye el '&', por qué el parámetro se pasa por referencia?
Esto es porque colPuntos va a cambiar como consecuencia de la inserción (a no ser que la colección ya esté llena).
¿La duda es debido a que cuando el parámetro es un arreglo no se usa el pasaje por referencia, porque el valor del arreglo es su dirección de memoria? Si es por eso hay que tener en cuenta que a este tipo de datos le llamamos "arreglo con tope" pero en realidad es un struct (un record en Pascal) que contiene el arreglo, la cantidad de elementos y la capacidad. Si la inserción tiene efecto, además de hacer cambios en el arreglo, se modifica el campo cantidad.
¿La pregunta es por qué se incluye el '&', por qué el parámetro se pasa por referencia?
Esto es porque colPuntos va a cambiar como consecuencia de la inserción (a no ser que la colección ya esté llena).
¿La duda es debido a que cuando el parámetro es un arreglo no se usa el pasaje por referencia, porque el valor del arreglo es su dirección de memoria? Si es por eso hay que tener en cuenta que a este tipo de datos le llamamos "arreglo con tope" pero en realidad es un struct (un record en Pascal) que contiene el arreglo, la cantidad de elementos y la capacidad. Si la inserción tiene efecto, además de hacer cambios en el arreglo, se modifica el campo cantidad.