• Miércoles 13 de Noviembre de 2024, 08:42

Autor Tema:  como asigno un valor a cada posicion de un vector de 10?  (Leído 2971 veces)

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
como asigno un valor a cada posicion de un vector de 10?
« en: Miércoles 6 de Octubre de 2010, 04:13 »
0
hola buenas noches, he estado estudiando lo de vectores, me cuesta mucho, y hasta ahora solo he podido asignar un tamaño a un vector, el problema es que no se como asignar un valor, a cada espacio de de un vector, asi que si el vector es de 10, yo ingrese un valor para cada espacio, he tratado, y hasta hasta ahora solo se como asignar un valor al vector en si.
espero que me haya podido dar a entender.
muchas gracias por su ayuda y feliz noche.

PD:
#include <iostream.h>
#include <conio.h>
using namespace std;

int main()
{
  int dim[10]={i};
  cout << "Ingresa la dimension del vector" << endl;
  cin >> dim; // Supongamos que ingrese 10
  int vector[dim]; // mi vector es de tamaño 10

  for(int i=0;i < dim;i++){
    vector = i + i;
    cout << vector << " ";
  }

  getch();
}

encontre este codigo que es el he tomado como base, pero solo permite asignar un valor al vector en si.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: como asigno un valor a cada posicion de un vector de 10?
« Respuesta #1 en: Miércoles 6 de Octubre de 2010, 19:27 »
0
Recomiendo que uses etiquetas [ code] [ /code] (sin espacios en los corchetes) para encerrar el codigo, hace que sea mas legible.

Pues te dire que la manera que lo haces por medio de un ciclo for es la manera correcta, lo estas haciendo bien, pero tienes un error en una linea anterior:

int dim[10]={i};

Esto no es correcto estas declarando un vector para guardar el tamaño de un vector, cuando deberias usar una variable normal para guardar el tamaño.

Corrigiendo ese detalle, el codigo quedaria:

Código: C++
  1.  
  2. int main()
  3. {
  4.     int dim;
  5.     cout << "Ingresa la dimension del vector" << endl;
  6.     cin >> dim; // Supongamos que ingrese 10
  7.     int vector[dim]; // mi vector es de tamaño 10
  8.  
  9.     for(int i=0;i < dim;i++)
  10.     {
  11.         vector[i] = i + i;
  12.         cout << vector[i] << " ";
  13.     }
  14.  
  15.     return 0;
  16. }
  17.  
  18.  

Ahora, si lo que quieres es inicializar el vector sin utilizar un ciclo, entonces en la declaracion del vector, usa corchetes y separa los valores con comas, como en el ejemplo siguiente:

Código: C++
  1.  
  2.     int vector[10] = {3, 6, 9, 12, 15, 18, 21, 24, 27, 30};
  3.  
  4.  
Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Radger

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: como asigno un valor a cada posicion de un vector de 10?
« Respuesta #2 en: Miércoles 6 de Octubre de 2010, 20:08 »
0
Buenas

Otro fallo tambien es que inicializas el numero de elementos del vector en tiempo de ejecucion esto solo se puede hacer con un vector dinamico.

Código: C++
  1. int main()
  2. {
  3.      int dim;
  4.      cout << "Ingresa la dimension del vector" << endl;
  5.      cin >> dim; // Supongamos que ingrese 10
  6.      int *vector = new int[dim]; // mi vector es de tamaño 10
  7.  
  8.      for(int i=0;i < dim;i++)
  9.      {
  10.          vector[i] = i + i;
  11.          cout << vector[i] << " ";
  12.      }
  13.  
  14.  
  15.      delete vector;
  16.  
  17.      return 0;
  18. }
  19.  

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: como asigno un valor a cada posicion de un vector de 10?
« Respuesta #3 en: Jueves 7 de Octubre de 2010, 04:47 »
0
de verdad muchas gracias por su ayuda, pero ahora, ya que le asigne el valor de 10 al vector, como puedo por medio del teclado, que el programa me pida que yo vaya ingresando valores a las 10 posiciones del vector.
Tengo la idea de que seria con un ciclo, pero como hacer que el ciclo se guarde con el vector, y que despues me imprima los 10 numeros del vector.
no se si me doy a entender bien, es que si me cuesta mucho esto :S.

Radger

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: como asigno un valor a cada posicion de un vector de 10?
« Respuesta #4 en: Jueves 7 de Octubre de 2010, 14:01 »
0
El primer bucle se piden los datos y en el segundo se muestran, el resto es igual.

Código: C++
  1. int main()
  2. {
  3.      int dim;
  4.      cout << "Ingresa la dimension del vector" << endl;
  5.      cin >> dim; // Supongamos que ingrese 10
  6.      int *vector = new int[dim]; // mi vector es de tamaño 10
  7.  
  8.      for(int i=0;i < dim;i++)
  9.      {
  10.          cout << "Ingresa un numero" << endl;
  11.          cin >> vector[i];
  12.      }
  13.  
  14.      for(int i=0;i < dim;i++)
  15.      {
  16.          cout << vector[i] << " ";
  17.      }
  18.  
  19.      delete vector;
  20.  
  21.      return 0;
  22. }
  23.  

alb

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: como asigno un valor a cada posicion de un vector de 10?
« Respuesta #5 en: Jueves 7 de Octubre de 2010, 15:34 »
0
Hola,
Hay varios problemas en todo esos còdigos :
Código: C++
  1. #include <iostream.h>
  2.  
En C++, los .h de C ya no se deben usar sino los de la STL :
Código: C++
  1. #include <iostream>
  2.  

Código: C++
  1. #include <conio.h>
  2.  
conio.h no es estandard y muchos compiladores no lo proponen. So de debrìa usar.

Código: C++
  1.  
  2. int dim;
  3. cin >> dim; // Supongamos que ingrese 10
  4. int vector[dim]; // mi vector es de tamaño 10
  5.  
  6.  
No es standard definir un vector cuya dimensìon no sea constante, es decir conocida por el compilador. Mejor es usar new/delete :
Código: C++
  1.  int *vector = new int[dim];
  2.  
Sino que cada new [] se debe liberar con un delete [] y no con delete solo:
Código: C++
  1.  
  2. int *p = new int;
  3. delete p;
  4. int *vector = new int[dim];
  5. delete []vector;
  6.  

Pero, en C++, se prifiere usar std::vector que utilizar new[]/delete[] :
Código: C++
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. int main()
  5. {
  6.      int dim;
  7.      std::cout << "Ingresa la dimension del vector" << std::endl;
  8.      std::cin >> dim; // Supongamos que ingrese 10
  9.      std::vector<int> mi_vector(dim); // mi vector es de tamaño 10
  10.  
  11.      for(int i=0;i < dim;i++)
  12.      {
  13.          std::cout << "Ingresa un numero" << std::endl;
  14.          std::cin >> mi_vector[i];
  15.      }
  16.  
  17.      for(std::vector<int>::const_iterator it = mi_vector.begin();it!=mi_vector.end();++it)
  18.      {
  19.          std::cout << *it << " ";
  20.      }
  21.  
  22.      return 0;
  23. }
  24.  

rogerfor

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: como asigno un valor a cada posicion de un vector de 10?
« Respuesta #6 en: Jueves 7 de Octubre de 2010, 20:51 »
0
de verdad gracias a todos por sus correcciones, me han sido de gran ayuda, ya este sabado tengo examen de algoritmos y tengo estudiar. ahora solo me queda estudiar el código para ver que hacer cada cosa.
alguien conoce un curso de c++ que siga los estándares??