/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

completar codigo para que compile

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
cmario



Registrado: 13 Jun 2011
Mensajes: 17

MensajePublicado: 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
Dirección AIM Yahoo Messenger
rir3760



Registrado: 01 Oct 2004
Mensajes: 7530
Ubicación: Mexico

MensajePublicado: 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

MensajePublicado: 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
Dirección AIM Yahoo Messenger
rir3760



Registrado: 01 Oct 2004
Mensajes: 7530
Ubicación: Mexico

MensajePublicado: 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

MensajePublicado: 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
Dirección AIM Yahoo Messenger
rir3760



Registrado: 01 Oct 2004
Mensajes: 7530
Ubicación: Mexico

MensajePublicado: 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

MensajePublicado: 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
Dirección AIM Yahoo Messenger
rir3760



Registrado: 01 Oct 2004
Mensajes: 7530
Ubicación: Mexico

MensajePublicado: 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

MensajePublicado: 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
Dirección AIM Yahoo Messenger
rir3760



Registrado: 01 Oct 2004
Mensajes: 7530
Ubicación: Mexico

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com