Ejercicio 5. Comprensión de letra.

Ejercicio 5. Comprensión de letra.

de Lucas Fernando Goncalves Ramos -
Número de respuestas: 6

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
En respuesta a Nicolas Ron Calvo

Re: Ejercicio 5. Comprensión de letra.

de Donaldo Miguel Mac Eachen Rodriguez -
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.

de Lucas Fernando Goncalves Ramos -
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
En respuesta a Libertad Tansini

Re: Ejercicio 5. Comprensión de letra.

de Mauricio Javier Ramos De Rosa -
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.