• Miércoles 20 de Noviembre de 2024, 14:32

Autor Tema:  vectores  (Leído 5468 veces)

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
vectores
« en: Sábado 26 de Marzo de 2011, 19:08 »
0
que mas muchachos. aqui les dejo un codigo que realice para imprimir las posiciones pares de un vector. recibo sugerencias y apuntes para imprimir la suma de las posiciones pares y la resta de las posiciones impares, y cada una de ella dividirla entre la posicion 0.
este es el codigo que hice
Código: C++
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. main(){
  5.   int vector[10],cantidad;
  6.  
  7.   cout<<"tamaño de datos a ingresar"<<endl;
  8.   cin>>cantidad;
  9.   for(int x=0;x<cantidad;x++){
  10.    cout<<"ingrese un numero"<<endl;
  11.    cin>>vector[x];
  12.   }
  13.   for(int x=2;x<cantidad;x=x+2){
  14.    cout<<x<< "-> "<<vector[x]<<endl;
  15.    getch(); 
  16. }
  17.  return 0;
  18. }
  19.  

Checho360

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: vectores
« Respuesta #1 en: Domingo 27 de Marzo de 2011, 11:29 »
0
Bueno ya recibi tu mail :P ; yo tampoco se mucho pero te puedo ayudar a hacer lo que quieres (utilizo tu codigo,añado lo que dices y cambio alguna cosa que creo que esta mejor):

Código: C++
  1. #include <iostream>
  2. using namespace std;
  3. main(){
  4.        #define tam 10
  5.        int cantidad;
  6.        cout<<"tamaño de datos a ingresar"<<endl;
  7.        cin>>cantidad;
  8.        while(cantidad >tam){          cerr<<"El tamaño ingresado es mayor del permitido"<<endl;
  9.                                       cout<<"tamaño de datos a ingresar"<<endl;
  10.                                       cin>>cantidad; }
  11.        int vector [cantidad]; int suma = 0;
  12.        
  13.        for(int x=0;x<cantidad;x++){
  14.                cout<<"ingrese un numero"<<endl;
  15.                cin>>vector[x];
  16.        }
  17.        for(int x=1;x<cantidad;x=x+2){
  18.                cout<<x+1<< "-> "<<vector[x]<<endl;
  19.                suma = suma + vector[x];
  20.        }
  21.        cout<<"la suma de los pares es "<<suma<<endl;
  22.        if(vector[0]!=0){
  23.        cout<<"la suma de los pares dividida por el primer componente del vector es "<<suma/vector[0]<<endl;}
  24.        suma = 0;
  25.        for(int x=0;x<cantidad;x=x+2){
  26.                cout<<x+1<< "-> "<<vector[x]<<endl;
  27.                suma = suma + vector[x];
  28.        }
  29.        cout<<"la suma de los impares es "<<suma<<endl;
  30.        if(vector[0]!=0){
  31.        cout<<"la suma de los impares dividida por el primer componente del vector es "<<suma/vector[0]<<endl;}
  32.        system ("pause");return 0;
  33. }
  34.  
  35.  

Podria estar mejor pero por lo menos me compila y funciona :P jaja

Si tienes alguna duda pregunta y te intento contestar! un saludo!!

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #2 en: Domingo 27 de Marzo de 2011, 16:59 »
0
muchisimas gracias pero bueno solo una cosa, cambiaria radicalmente teniendo en cuenta que en relacion con los pares me piden es resta o es solo cuestion de cambiar signos?
saludos!! y gracias por aceptar enseñarme jaja

Checho360

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: vectores
« Respuesta #3 en: Domingo 27 de Marzo de 2011, 17:33 »
0
Cita de: "haddad"
muchisimas gracias pero bueno solo una cosa, cambiaria radicalmente teniendo en cuenta que en relacion con los pares me piden es resta o es solo cuestion de cambiar signos?
saludos!! y gracias por aceptar enseñarme jaja

No entiendo muy bien lo que preguntas pero si te refieres a que en lugar de pedirte la suma de los pares te piden la resta de los pares solo tendrias que cambiar el signo de la variable en la que acumulas la suma; es decir, en la linea 21 cambias por:

Código: C++
  1. cout<<"la resta de los pares es "<<(-suma)<<endl;
  2.  

Un saludo!!
« última modificación: Domingo 27 de Marzo de 2011, 19:16 por Checho360 »

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #4 en: Domingo 27 de Marzo de 2011, 18:27 »
0
y no podria declarar la variable resta y asi mismo modificar en el codigo lo que diga suma por resta.
compile con esto pero noto que no realiza la operacion de resta, sino que solo cambia a negativo el signo de la suma
 
Código: C++
  1. int vector [cantidad]; int suma = 0;int resta=0;
  2.        
  3.         for(int x=0;x<cantidad;x++){
  4.               cout<<"ingrese un numero"<<endl;
  5.                 cin>>vector[x];
  6.         }
  7.         for(int x=1;x<cantidad;x=x+2){
  8.                 cout<<x+1<< "-> "<<vector[x]<<endl;
  9.                 resta = resta - vector[x];
  10.         }
  11.         cout<<"la resta de los pares es "<<resta<<endl;
  12.         if(vector[0]!=0){
  13.         cout<<"la resta de los pares dividida por el primer componente del vector es "<<resta/vector[0]<<endl;}
  14.         resta = 0;
  15.  

Checho360

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: vectores
« Respuesta #5 en: Domingo 27 de Marzo de 2011, 19:17 »
0
Pero vamos a ver, la resta es lo mismo que la suma pero cambiando el signo... que quieres hacer? si quieres que reste todos los valores es asi como tu lo tienes

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #6 en: Domingo 27 de Marzo de 2011, 20:34 »
0
si creo que me esta compilando bien.
ahora, podrias ayudarme regalandome alguna explicacion sobre como hago para unir 2 vectores?
saludos!!

Checho360

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: vectores
« Respuesta #7 en: Domingo 27 de Marzo de 2011, 23:21 »
0
Cita de: "haddad"
si creo que me esta compilando bien.
ahora, podrias ayudarme regalandome alguna explicacion sobre como hago para unir 2 vectores?
saludos!!

Tienes que explicarte mejor cuando haces preguntas... que es unir dos vectores?

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #8 en: Lunes 28 de Marzo de 2011, 03:21 »
0
mmm la verdad no se como explicarte y vale tratare de ser mas explicita en mis preguntas
saludos!

herzdark

  • Miembro activo
  • **
  • Mensajes: 38
  • Nacionalidad: ar
    • Ver Perfil
Re: vectores
« Respuesta #9 en: Lunes 28 de Marzo de 2011, 14:23 »
0
Cita de: "Checho360"
Cita de: "haddad"
si creo que me esta compilando bien.
ahora, podrias ayudarme regalandome alguna explicacion sobre como hago para unir 2 vectores?
saludos!!

Tienes que explicarte mejor cuando haces preguntas... que es unir dos vectores?

si por lo q yo entiendo y mis pocos conocimientos en materia de programación la unica manera sería creando un nuevo vector, la dimensión de ese vector debería ser la suma de la cantidad de elementos de cada uno de los vectores

vi esto pero no entiendo si estas restando pares o impares

Código: C++
  1.  
  2. for(int x=1;x<cantidad;x=x+2)// <-- aca no estas restando los impares??
  3.   { cout<<x+1<< "-> "<<vector[x]<<endl;
  4.     resta = resta - vector[x];
  5.   }
  6. cout<<"la resta de los pares es "<<resta<<endl;
  7.  
  8.  

Checho360

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: vectores
« Respuesta #10 en: Lunes 28 de Marzo de 2011, 14:33 »
0
El ordenador toma la posición cero pero yo en la realidad siempre hablo a partir de la posición uno en adelante, por eso lo puse a partir de uno (en la vida cotidiana yo diría posición dos que es par). De todas formas eso es una tontería, cada uno que lo vea como quiera. Si quieres sumar los componentes uno a uno es SUMAR dos vectores, no unirlos; seria:

Código: C++
  1. int suma [cantidad];for(int i=0;i<cantidad;i++) suma[i]=0;
  2. (for int i=0;i<cantidad;i++){
  3. suma[i]=vector1[i]+vector2[i];}
  4.  
  5.  

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #11 en: Martes 29 de Marzo de 2011, 18:04 »
0
bueno con respecto al primer ejercicio, aqui les dejo otra forma de hacerlo, es mas resumida. Analicen diferencias de fondo
saludos!! y gracias por su ayuda
Código: C++
  1. #include <iostream>
  2.  using namespace std;
  3.  main(){
  4.        
  5.         int cantidad;
  6.         cout<<"tamaño de datos a ingresar"<<endl;
  7.         cin>>cantidad;
  8.        
  9.         int vector [cantidad]; int suma = 0;int resta=0;
  10.        
  11.         for(int x=0;x<cantidad;x++){
  12.               cout<<"ingrese un numero"<<endl;
  13.                 cin>>vector[x];
  14.     }
  15.         for(int x=2;x<cantidad;x+2){
  16.     resta -= vector[x];
  17.     }
  18.     cout<<"operacion"<<resta/vector[0];
  19.         for(int x=1;x<cantidad;x+2){
  20.     suma += vector[x];
  21.     }
  22.     cout<<"operacion"<<suma/vector[0];
  23.         return 0;
  24.  }
  25.  

ehecatl

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: vectores
« Respuesta #12 en: Miércoles 30 de Marzo de 2011, 04:50 »
0
No se, creo que el problema pudo haber quedado mas simple empleando el operador módulo (%), el cual me regresa el residuo de la division de 2 enteros, todo dentro del operador terciario

x%2?suma += vector
  • :resta -= vector
  • ;


x%2 = dame el residuo del indice x dividido entre 2, solo tengo 2 posibles valores al dividir entre 2, cero o uno, lo cual lo uso como par (cero) o impar (uno).

Si el residuo es uno, haz la suma, si no haz la resta.

Es decir, es un if-else en corto

espero sirva de algo

Ehecatl

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #13 en: Jueves 31 de Marzo de 2011, 00:23 »
0
creo que he captado tu idea Ehecatl y agradezo tu aporte, quizas la diferecia radique en estilos de programacion. pero aun sigo con la duda para unir o sumar dos vectores. agradeceria que alguno me explicara el proceso adecuado
saludos!!

Checho360

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: vectores
« Respuesta #14 en: Jueves 31 de Marzo de 2011, 00:38 »
0
Cita de: "haddad"
creo que he captado tu idea Ehecatl y agradezo tu aporte, quizas la diferecia radique en estilos de programacion. pero aun sigo con la duda para unir o sumar dos vectores. agradeceria que alguno me explicara el proceso adecuado
saludos!!

Yo ya te escribi como sumar vectores... esta arriba

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #15 en: Jueves 31 de Marzo de 2011, 00:56 »
0
podrias explicarme por que 2 for con las mismas instrucciones?
Cita de: "Checho360"
Código: C++
  1. # int suma [cantidad];for(int i=0;i<cantidad;i++) suma[i]=0;
  2. # (for int i=0;i<cantidad;i++){
  3. # suma[i]=vector1[i]+vector2[i];}
  4.  
es decir me gustaria un poco de teoria sobre lo que estas realizando

ehecatl

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: vectores
« Respuesta #16 en: Viernes 1 de Abril de 2011, 04:03 »
0
Cita de: "Checho360"
El ordenador toma la posición cero pero yo en la realidad siempre hablo a partir de la posición uno en adelante, por eso lo puse a partir de uno (en la vida cotidiana yo diría posición dos que es par). De todas formas eso es una tontería, cada uno que lo vea como quiera. Si quieres sumar los componentes uno a uno es SUMAR dos vectores, no unirlos; seria:

Código: C++
  1. int suma [cantidad];for(int i=0;i<cantidad;i++) suma[i]=0;
  2. (for int i=0;i<cantidad;i++){
  3. suma[i]=vector1[i]+vector2[i];}
  4.  
  5.  

Aqui tienes como sumar 2 vectores, es en pocas palabras, sumar elemento "i-esimo" del vector 1 con el elemento "i-esimo" del vector 2. Ahora, si lo que deseas es "pegar" 2 vectores, te posicionas al final de tu vector y la siguiente posicion sera la 1ra posicion del vector 2.

Digase, imagina v1 con 4 elementos, v2 con 3

for(i=0;i<3;i++)
v1[4+i]=v2;

De este modo, tendrias los elementos de v2 contiguos a v1. Cuidado con que tu vector receptor tenga el tamaño suficiente para hacer esta operacion.

Espero te sirva.
Saludos

Checho360

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
Re: vectores
« Respuesta #17 en: Viernes 1 de Abril de 2011, 11:15 »
0
Pero que significado fisico tiene pegar vectores?

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: vectores
« Respuesta #18 en: Viernes 1 de Abril de 2011, 14:35 »
0
Hombre, físico no tiene ninguno ya que el software no es físico  :P

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #19 en: Sábado 2 de Abril de 2011, 21:08 »
0
a ver muchachos tengo esto. ¿que me pueden decir?

Código: C++
  1. #include <iostream>
  2. #include <conio.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.  
  8. int vec1[20], vec2[20];
  9. int n1, n2;
  10.  
  11. cout<<"ingrese la dimension del primer vector "<<endl;
  12. cin >> n1;
  13.  
  14. cout<<"ingrese la dimesion del segundo vector"<<endl;
  15. cin>>n2;
  16.  
  17. int k=0, j=0,vecfinal[n1+n2];
  18.  
  19. for(int x=0;x<n1;x++) {
  20.   vecfinal[x]=vec1[x];
  21.    k++;  
  22.      cout<<k<<endl;
  23. }
  24.  
  25. for(int x=k+1;x>(n1+n2);x++){
  26.      vecfinal[x]=vec2[j];
  27.      j++;
  28.      cout<<j<<endl;
  29. }  
  30. getch();
  31. return 0;
  32. }
  33.  

tengo dudas con ese codigo, me podrian decir q esta mal y darme una explicacion de lo q esta pasando por fa
saludos!!

haddad

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
Re: vectores
« Respuesta #20 en: Sábado 2 de Abril de 2011, 23:13 »
0
muchachos aqui les dejo el codigo final :)

Código: C++
  1. #include <iostream>
  2. #include <conio.h>
  3. using namespace std;
  4.  
  5. main(){
  6.        
  7.        int n1,n2, vec1[20],vec2[20],vecSuma[40];
  8.              
  9.        
  10. cout<<"ingrese la dimension del vector 1"<<endl;
  11. cin>>n1;
  12. for(int x=0;x<n1;x++){
  13. cout<<"ingrese un numero"<<endl;
  14. cin>>vec1[x];
  15. }
  16. cout<<"ingrese la dimension del vector 2"<<endl;
  17. cin>>n2;
  18. for(int x=0;x<n2;x++){
  19. cout<<"ingrese un numero"<<endl;
  20. cin>>vec2[x];
  21. }
  22.  
  23.        
  24.        for(int i=0;i<n1+1;i++){
  25.                vecSuma[i]=vec1[i];
  26.                }
  27.                
  28.                for(int i=0;i<n2+n1;i++){
  29.                        vecSuma[i+n1]=vec2[i];
  30.                                                              
  31.                        cout<<vecSuma[i]<<endl;
  32.                        }
  33.                        
  34. getch();
  35. return 0;
  36.                            
  37.        }
  38.  
  39.