| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
cmario
Registrado: 13 Jun 2011 Mensajes: 17
| Publicado: 02/10/2011 4:43 pm | | | Título: completar codigo para que compile |
| Necesito completar esto para que funcione
| Código: | int *gpVect = NULL; // Buffer dinámico para almacenar elementos int gnCount = 0; / Contador para conocer el número de elementos int gnMax = 0; // Variable para el tamaño máximo de memoria asignada
void Insert(int elem) { if( gnCount == gnMax ) // Si no hay espacio Resize(); // incrementar el tamaño del vector gpVect[gnCount++] = elem; // El elemento es insertado al final }
void Resize() { const int delta = 10; // Usado para incrementar el tamaño del vector gpVect = realloc(gpVect, sizeof(int) * (gnMax + delta)); // podemos usar el siguiente código // int *pTemp, i; //pTemp = new int[gnMax + delta]; // Asignar el nuevo vector //for(i = 0 ; i < gnMax ; i++) // Transferir los elementos // pTemp[i] = gpVect[i]; //delete [ ] gpVect; // borrar el vector antiguo //gpVect = pTemp; // actualizar el puntero gnMax += delta; // El tamaño máximo es incrementado }
|
_________________ El hombre ha cambiado el orden de la naturaleza creando cosas artificiales que termina en perjucio del mismo hombre |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 7520 Ubicación: Mexico
| Publicado: 07/10/2011 6:23 am | | | Título: |
| Supongo eso te lo dieron como plantilla para tu tarea. El lenguaje es C++, ¿Correcto?
Para ayudarte primero debes publicar el enunciado completo de tu asignatura mas los avances que llevas del programa (el codigo fuente completo).
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
|
| Volver arriba | |
 |
cmario
Registrado: 13 Jun 2011 Mensajes: 17
| Publicado: 11/10/2011 5:10 am | | | Título: Completar codigo asignacion de memoria |
| Hola Asi es es en lenguaje c++ Lo que quiero es que pongan las librerias , la funcion main para que compile quisas algo mas que sea necesario, el ojetivo es solo que compile ya que como esta no compila , yo no lo pongo por qno se que librerias necesita y si hayq declarar algunas variables de manera global espero haiga servido mi aclaracion _________________ El hombre ha cambiado el orden de la naturaleza creando cosas artificiales que termina en perjucio del mismo hombre |
|
| Volver arriba | |
 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 7520 Ubicación: Mexico
| Publicado: 11/10/2011 7:55 am | | | Título: |
| No quiero pasar como un pesado pero, si no lo haces tu, no se va a cumplir el objetivo (entender el funcionamiento del par de funciones).
Solo necesitas incluir <cstdlib> para tener acceso a la función "realloc" mas <iostream> para la prueba de las funciones.
Puedes empezar con:
| Código: | #include <iostream> using std::cin; using std::cout; using std::endl;
#include <cstdlib> using std::realloc;
// Prototipos de las funciones void Insert(int elem); void Resize();
int main() { // Prueba de las funciones ... return 0; }
int *gpVect = NULL; // Buffer dinámico para almacenar elementos int gnCount = 0; // Contador para conocer el número de elementos int gnMax = 0; // Variable para el tamaño máximo de memoria asignada
void Insert(int elem) { if( gnCount == gnMax ) // Si no hay espacio Resize(); // incrementar el tamaño del vector gpVect[gnCount++] = elem; // El elemento es insertado al final }
void Resize() { const int delta = 10; // Usado para incrementar el tamaño del vector gpVect = (int *) realloc(gpVect, sizeof(int) * (gnMax + delta)); gnMax += delta; // El tamaño máximo es incrementado } |
El resto te toca a ti.
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
|
| Volver arriba | |
 |
cmario
Registrado: 13 Jun 2011 Mensajes: 17
| Publicado: 12/10/2011 6:57 pm | | | Título: consulta |
| Una pregunta donde dice prototipo de las funciones as declaradado para q e funcionen en el main? si no ponias el compilador primero pasaba por el main y no reconocia las funciones estoy en lo correcto? Gracias por tu ayuda , no se si me puedes guiar para otro codigo que quiero probar ? _________________ El hombre ha cambiado el orden de la naturaleza creando cosas artificiales que termina en perjucio del mismo hombre |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 7520 Ubicación: Mexico
| Publicado: 13/10/2011 8:47 am | | | Título: Re: consulta |
| | cmario escribió: | | donde dice prototipo de las funciones as declaradado para q e funcionen en el main? si no ponias el compilador primero pasaba por el main y no reconocia las funciones estoy en lo correcto? |
Correcto. Toda función debe declararse (como en el ejemplo) antes de cualquier uso de ella.
| cmario escribió: | | no se si me puedes guiar para otro codigo que quiero probar ? |
Te podemos ayudar siempre y cuando sigas el espíritu de estos foros: quien pregunta demuestra un esfuerzo significativo (eso implica la mayor parte del trabajo) y a cambio tratamos de solucionar las dudas y problemas que se presenten.
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
|
| Volver arriba | |
 |
|
cmario
Registrado: 13 Jun 2011 Mensajes: 17
| Publicado: 13/10/2011 3:40 pm | | | Título: sintaxis del codigo |
| Hola nuevamente y gracias por tu voluntad de ayudar a quienes sabemos poco o nada Mi pregunta es como haria para visualizar luego de insertar un elemento por ejemplo pongo en main: Insert(4); asta ahi no hay problemas pero donde pongo: cout<<gpVect[0];por que si pongo en main me sale "undefined symbol " _________________ El hombre ha cambiado el orden de la naturaleza creando cosas artificiales que termina en perjucio del mismo hombre |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 7520 Ubicación: Mexico
| Publicado: 13/10/2011 7:34 pm | | | Título: |
| Eso sucede porque las definiciones de las variables "globales" como "gpVect" deben colocarse antes de cualquier funcion donde se requiera su uso (la funcion principal en tu caso).
Ya que la idea es que trates de hacerlo primero tu solo intenta con:
| Código: | #include <iostream> using std::cin; using std::cout; using std::endl;
#include <cstdlib> using std::realloc;
// Prototipos de las funciones void Insert(int elem); void Resize();
int *gpVect = NULL; // Buffer dinámico para almacenar elementos int gnCount = 0; // Contador para conocer el número de elementos int gnMax = 0; // Variable para el tamaño máximo de memoria asignada
int main() { // Prueba de las funciones ... return 0; }
void Insert(int elem) { if( gnCount == gnMax ) // Si no hay espacio Resize(); // incrementar el tamaño del vector gpVect[gnCount++] = elem; // El elemento es insertado al final }
void Resize() { const int delta = 10; // Usado para incrementar el tamaño del vector gpVect = (int *) realloc(gpVect, sizeof(int) * (gnMax + delta)); gnMax += delta; // El tamaño máximo es incrementado } |
Y si tienes dudas nos avisas pero, de nuevo, la idea es que te esfuerzes.
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
|
| Volver arriba | |
 |
cmario
Registrado: 13 Jun 2011 Mensajes: 17
| Publicado: 17/10/2011 4:33 pm | | | Título: |
| SI ya lo hize y compila solo mi pregunta era donde escribo por ejemplo luego de ingresar un elemnto y quiero mostrarlo por pantalla he probado en main pero me sale el mensaje que antes te mencione _________________ El hombre ha cambiado el orden de la naturaleza creando cosas artificiales que termina en perjucio del mismo hombre |
|
| Volver arriba | |
 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 7520 Ubicación: Mexico
| Publicado: 17/10/2011 4:38 pm | | | Título: |
| | cmario escribió: | | SI ya lo hize y compila solo mi pregunta era donde escribo por ejemplo luego de ingresar un elemnto y quiero mostrarlo por pantalla he probado en main pero me sale el mensaje que antes te mencione |
Si tu pregunta era como realizarlo supongo ya esta funcionando correctamente, ¿Es correcto?
Si tu pregunta es como realizarlo la respuesta es la misma: haciendo el proceso en la funcion principal (la funcion "main").
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
|
| Volver arriba | |
 |
|
|