elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Multiplicación de vectores C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Multiplicación de vectores C++  (Leído 16,582 veces)
LauraD

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Multiplicación de vectores C++
« en: 20 Junio 2014, 04:48 am »

Hola!!

Tengo que realizar el siguiente algoritmo:
Construya un algoritmo que realice la siguiente operación. Sean 2 vectores numéricos A y B de 9 elementos numéricos cada uno. El vector A se debe llenar solo con valores pares y el vector B solo con valores impares. En un vector C guarde el resultado de ejecutar 3A + 2B. Imprima el vector C en forma descendente. Determine el promedio del vector A y el promedio del Vector B.

Se presentan errores al realizar las multiplicaciones he intentado de varias formas pero no logro obtener un buen resultado y no sé como realizar la impresión en forma descendente! :c

Les agradeceria si lograran ayudarme este es el codigo

Código:
int main()
{
    int A[9];
    int B[9];
    int C[9];
    int sum1;
    int sum2;
    int prom1;
    int prom2;
    int num;
    int n;
    int p;
    int i;
    int multi;
    int mul;

   
    n = 0;
    sum1 = 0;
    sum2 = 0;
   
   
   
        for (p=0;p<9;p++)
        {
           cout<<"Ingrese un numero par"<<endl;
           cin>>A[p];
           
           sum1=sum1+A[p];
           A[p]*3;
           
        }
       
        for (i=0;i<9;i++)
        {
            cout<<"Ingrese un numero impar"<<endl;
            cin>>B[i];
           
            sum2=sum2+B[i];
            B[i]*2;
        }
       
        C[p]= A[p] + B[i];
         
         n++;
   
   
    prom1 = sum1/9;
    prom2 = sum2/9;
   
    cout<<"La suma de 3A + 2B es igual a: "<<endl; 
    cout<<C[p]<<", ";
   
    cout<<"\t"<<endl;
   
    cout<<endl<<"El promedio del vector A es igual a: "<<prom1;
    cout<<endl<<"El promedio del vector B es igual a: "<<prom2;

   
system ("PAUSE");
return EXIT_SUCCESS;
}


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Multiplicación de vectores C++
« Respuesta #1 en: 20 Junio 2014, 08:40 am »

Código
  1. A[p]*3;

¿Y dónde dices que tienes que almacenar el resultado de la operación? Para almacenar un valor hay que usar en alguna parte el operador de asignación '=' y en esa línea no está... es decir, estás multiplicando el valor del vector por 3 pero tiras el resultado a la basura.

Además:

Código
  1. for (p=0;p<9;p++)
  2. {
  3.  
  4. }
  5.  
  6. for (i=0;i<9;i++)
  7. {
  8.  
  9. }
  10.  
  11. C[p]= A[p] + B[i]; // ????

La última línea está fuera de los bucles es decir, únicamente vas a calcular el siguiente resultado:

Código
  1. C[9] = A[9] + B[9];

Y ¿adivinas qué? A, B y C únicamente tienen 9 posiciones, luego A[9], B[9] y C[9] no existen.

Estás en C++... no hace falta que declares todas las variables al inicio del código. Puedes hacer cosas tal que:

Código
  1. for( int i=0; i<9; i++)
  2. {
  3.  cout<<"Ingrese un numero par"<<endl;
  4.  cin>>A[i];
  5.  sum1=sum1+A[i];
  6. }
  7.  
  8. for( int i=0; i<9; i++ )
  9. {
  10.  cout<<"Ingrese un numero impar"<<endl;
  11.  cin>>B[i];
  12.  sum2=sum2+B[i];
  13. }
  14.  
  15. for( int i=0; i<9; i++ )
  16.  C[i] = A[i] + B[i];

Este código compila y funciona porque la variable "i" que hemos declarado en cada bucle pertenece al bucle... una vez el programa sale del bucle la variable, simplemente, deja de existir (se sale del ámbito). Esta forma de programar tiene sus ventajas, por ejemplo tu código no habría compilado. Esto te habría dado alguna pista acerca del error que tienes en tu código:

Código
  1. // int p;
  2. // int i;
  3.  
  4. for ( int p=0;p<9;p++)
  5. {
  6.  
  7. }
  8.  
  9. for ( int i=0;i<9;i++)
  10. {
  11.  
  12. }
  13.  
  14. C[p]= A[p] + B[i]; // ERROR: no existe ni 'p' ni 'i'


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Multiplicación de vectores C++
« Respuesta #2 en: 20 Junio 2014, 19:06 pm »

Hola!!

Tengo que realizar el siguiente algoritmo:
Construya un algoritmo que realice la siguiente operación. Sean 2 vectores numéricos A y B de 9 elementos numéricos cada uno. El vector A se debe llenar solo con valores pares y el vector B solo con valores impares. En un vector C guarde el resultado de ejecutar 3A + 2B. Imprima el vector C en forma descendente. Determine el promedio del vector A y el promedio del Vector B.

Se presentan errores al realizar las multiplicaciones he intentado de varias formas pero no logro obtener un buen resultado y no sé como realizar la impresión en forma descendente! :c

Les agradecería si lograran ayudarme este es el código


Ante semejante petición cualquiera se niega.

Permite me la licencia de hacerte algunas observaciones respecto al código.

* Creo que cuando pusiste:

Código
  1. A[p]*3;

en realidad querías poner:

Código
  1. A[i] *= 3;

* Usar una línea para declarar cada variable "desparrama" en exceso el código. Yo te sugiero que agrupes al menos por tipo:

Código
  1.  int A[N], B[N], C[N];
  2.  int sum1 = 0, sum2 = 0;
  3.  float prom1, prom2;

* Al calcular los promedios necesitas "algo" para que te salgan decimales si procede. Una opción:

Código
  1.  prom1 = 1. * sum1 / N;
  2.  prom2 = 1. * sum2 / N;

* Deberías usar una confirmación de que el valor introducido es realmente par o impar, y si no lo es volver a pedir el dato:

Con las sugerencias anteriores y a falta de que implementes un método para la ordenación del vector C[]:

Código
  1. #include <iostream>
  2. #include <cstdlib> /// para "sysstem"
  3. #define N 9
  4.  
  5. using namespace std;
  6. int main(){
  7.  int A[N], B[N], C[N];
  8.  int sum1 = 0, sum2 = 0;
  9.  float prom1, prom2;
  10.  for (int i = 0; i < N; i++){
  11.    do{
  12.      cout << "Ingrese un numero PAR " << i+1 << ": ";
  13.      cin >> A[i];
  14.      sum1 += A[i];
  15.      A[i] *= 3;
  16.    }while ( A[i] %2 != 0 );
  17.    do{
  18.      cout << "Ingrese un numero IMPAR " << i+1 << ": ";
  19.      cin >> B[i];
  20.      sum2 += B[i];
  21.      B[i] *= 3;
  22.      C[i] = A[i] + B[i];
  23.    }while ( ( B[i] + 1 ) %2 != 0 );
  24.  }
  25.  prom1 = 1. * sum1 / N;
  26.  prom2 = 1. * sum2 / N;
  27.  ///
  28.  cout  << endl << "La suma de 3A + 2B es igual a: " << endl;
  29.  for (int i = 0; i < N; i++)
  30.    cout << C[i] << "   ";
  31.  cout  << endl << "El promedio del vector A es igual a: " <<  prom1 << endl;
  32.  cout << "El promedio del vector B es igual a: " <<  prom2 << endl;
  33.  system ("PAUSE");
  34.  /// Aqui te falta implementar un sistema de ordenacion del C[]
  35.  /// Si no  te quieres liar usa el metodo burbuja
  36.  return EXIT_SUCCESS;
  37. }

Y por cierto, al usar las etiquetas GeSHi elige las de C++ para que el código salga numerado y coloreado.

¡¡¡¡ Saluditos! ..... !!!!


« Última modificación: 20 Junio 2014, 19:17 pm por leosansan » En línea

cgg18

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Multiplicación de vectores C++
« Respuesta #3 en: 20 Junio 2014, 20:49 pm »

Para imprimir el vector  C de forma descendente simplemente puedes utilizar un for de esta forma:


Código
  1. for (int i = 8; i >= 0 ; i--){
  2. cout << C[i] << " ";
  3. }
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Multiplicación de vectores C++
« Respuesta #4 en: 20 Junio 2014, 21:03 pm »

Para imprimir el vector  C de forma descendente simplemente puedes utilizar un for de esta forma:
............................

Pues a mi entender, claro, va a ser que no. De esa forma los imprime al revés pero no ordenados.

Necesita implementar previamente un método que los ordene de mayor a menor, al menos como yo lo entiendo, aunque vaya usted a saber, si no se explican mejor podría ser lo que propones.


¡¡¡¡ Saluditos! ..... !!!!


« Última modificación: 20 Junio 2014, 21:05 pm por leosansan » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Multiplicación de vectores C++
« Respuesta #5 en: 23 Junio 2014, 08:26 am »

Imprimir en orden descendente:

Código
  1. std::set< int > numeros;
  2. numeros.insert( 3 );
  3. numeros.insert( 1 );
  4. numeros.insert( 2 );
  5.  
  6. for ( auto it = numeros.rbegin( ); it != numeros.rend( ); ++it )
  7.  std::cout << *it << " ";

Salida:
Código
  1. 3 2 1
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Factor de multiplicación y FSB.
Hardware
alvaroons 4 7,302 Último mensaje 14 Febrero 2011, 02:02 am
por alvaroons
Multiplicación de matrices
Programación C/C++
ALONSOQ 4 4,242 Último mensaje 5 Septiembre 2012, 18:03 pm
por ALONSOQ
Multiplicacion AES
Criptografía
xv0 2 3,514 Último mensaje 23 Julio 2013, 22:23 pm
por xv0
[C] Multiplicación de matrices sparse por vectores
Programación C/C++
Regexp 0 1,936 Último mensaje 12 Junio 2015, 19:00 pm
por Regexp
Multiplicacion de Binarios a traves de vectores
Programación C/C++
Arnold Herrera 3 4,299 Último mensaje 21 Abril 2016, 04:52 am
por Arnold Herrera
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines