Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

Arreglos dinámicos en C++

Participa en el tema Arreglos dinámicos en C++ en el foro Programación.
Hola gente, el problema que tengo es el siguiente: Necesito mediante un arreglo dinámico calcular ...

Buscar en este tema:
 
  •  
    6 links from elsewhere to this Post. Click to view. #1 Arreglos dinámicos en C++
    Hola gente, el problema que tengo es el siguiente:
    Necesito mediante un arreglo dinámico calcular la media y la desviación estandar de una serie de números introducidos por teclado. La cantidad de números debe ingresarse al comienzo de la ejecución del programa por lo tanto pensé en hacerlo mediante un arreglo dinámico, el tema es que no se como cuerno codearlo.
    Les adjunto el área de código en cuestión para que se hagan una idea mas acabada del tema:

    void main()
    {
    int cant_nros, numero;
    float media, ds;

    cout << "Ingrese la cantidad de números a utilizar: ";
    cin >> cant_nros;

    // Aquí tendría que ir la declaración del arreglo dinámico

    for ( int i = 0; i < cant_nros; i++ ) // Ingreso de datos
    {
    cout << "\nIngrese número: ";
    cin >> numero;
    *( lista + i ) = numero;
    }

    Con el resto no tengo problemas pero bueno, la declaración del arreglo dinámico este me esta limando el cerebro poco a poco. :estalle:
    Estoy usando Borland C++ builder 6
    Desde ya muchas gracias...

    Radikal Edward
    +
     
    0
    Me gusta
     
    | Más
  • #2

    Lo que podés hacer es hacer esto:

    int * elarreglo = new int[cant_nros]

    Listo! elarreglo ahora es un arreglo de cant_nros posiciones y lo indexás como siempre (elarreglo[0..cant_nros-1])

    Lo que sí, antes de terminar el código, tenés que hacer un:
    delete[] elarreglo porque si no, tu código pierde memoria.

    Espero que te haya servido.
    Me gusta este mensaje
  • #3

    cuando declaras, declara asi
    Código:
    void main()
    {
    int cant_nros, numero, numeros[];
    float media, ds;
    

    y despues
    Código:
    for (i=0; i<=cant_nros; i++)
    {
    cout << "\nIngrese número: ";
    cin >> numero;
    numeros[i]=numero;
    }
    
    proba, no se si va afuncionar, pero me acuerdo qyue cuando estudiaba esto era prosible declarar el array sin saber la cantidad de posiciones que iba a tener, o sino, lo que podes hacer es asignar memoria dinamicamente, con new(), delete() y algo de punteros, algo asi era
    Me gusta este mensaje
  • #4

    ¿No es mas facil usar el siempre querido malloc?
    http://gee.cs.oswego.edu/dl/html/malloc.html

    ;-)
    Me gusta este mensaje
  • #5

    Gracias muchachos por la rapidez de la respuesta !!!

    Estoy usando la opción que me diste vos Tenebrarum dominus, es la que figura en todo los manuales de C++ y me esta ayudando a manipular punteros con soltura...
    Con respecto a la tuya RUL pues no la he visto pero merece la pena hecharle una compilada esta noche a ver que sale, después te cuento que tal...
    Qwerty, originariamente para los que vienen de C les es más fácil seguir usando el querido y conocido malloc y el free; la gente que está en el tema de ingeniería de software recomienda sin embargo utilizar en C++, new y delete por ser parte del estandar ANSI/ISO, de todas maneras es muy buena recomendación la tuya y es de por si muy importante para aquellos que tengan que lidiar con código heredado de C.

    De nuevo muchas gracias muchachos y seguiré jugando con punteros un rato más hasta que me canse y me pase a JAVA


    Radikal Edward
    Me gusta este mensaje
  • #6

    Java... bitcode.... usa Jike ;-)

    Ahora me surgio una duda: ¿El malloc no es parte del estandard?
    Me gusta este mensaje
  • #7

    El malloc y en free en C fue reemplazado por new y delete en C++. A mi me parece más simple este último.
    Me gusta este mensaje
  • #8

    Así es, definitivamente es parte del estandar, pero del ANSI C.
    En el estandar ISO/ANSI de C++ se utiliza New debido a que hace su trabajo de manera mas elegante y transparente al programador ya que evita, primero el uso de la función malloc y el empleo explícito del operador sizeof. Además malloc no ofrece ningún método de inicialización del bloque de memoria asignado.

    A terminos prácticos, hace lo mismo pero mas optimizado...

    Saludos

    Radikal Edward :doyvuelta
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación



Estadísticas del tema
  • 7 RESPUESTAS
  • 21698 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB