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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Operacion Suma (Vectores) !Duda!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Operacion Suma (Vectores) !Duda!  (Leído 10,466 veces)
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #10 en: 11 Julio 2012, 20:55 pm »

Citar
pero todavia la operacion que me pasas no resuelve la problematica, a ver si sumas un vector todo sale bien, pero si intentas simular la logistica de una calculadora se te rompe la caveza xDDD !!

explicame eso de la logistica de una calculadora porque no le veo la gracia.

si como has dicho he entendido el problema que tienes, entonces lo que te he dicho SI lo resuelve. lo que no hare sera darte el codigo, llevo 1 hora y media con esto y por la actitud que tienes creo que ya ha sido suficiente.

relee la explicacion que te he hecho arriba y una vez lo entiendas el codigo lo sacaras en 5 minutos. si tambien operas con numeros reales con decimales entonces tendras que cambiar algo, pero deberias poder sacarlo si, repito una vez mas, entiendes lo que te he explicado.

un saludo y suerte


En línea

Fire544

Desconectado Desconectado

Mensajes: 85


"Escucha el sonido del 0, 1"


Ver Perfil WWW
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #11 en: 11 Julio 2012, 21:38 pm »

Esta bien implementare otro metodo, luego posteo lo implementado, gracias Xiruko !!


En línea

"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".
flacc


Desconectado Desconectado

Mensajes: 854



Ver Perfil WWW
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #12 en: 12 Julio 2012, 04:30 am »

concuerdo con xiruko aunque antes de empezar a concatenar los números como se diría si fueran caracteres tienes que conocer primero por cuantos dígitos tiene cada número para saber a cuanto debes elevar el siguiente 10 que le multipliques... saludos
En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #13 en: 12 Julio 2012, 16:18 pm »

Pues porque no pruebas primero en terminal??? luego tratas de implementar en gui, ya que la función scanf deberia funcionar, pero tu dices que no, así que en vez de eventos como tu dices no te funciona (teniendo en cuenta que pues C++ no trabajar programación orientada a objetos sino programación estructurada, esto es, básicamente memoria y punteros).

Pues la logica de elevar las potencias cada cifra aunque sean cifras de más de 1 digito en cada posición se ve que es muy practica, en mi opinión funcionaria bastante bien.

Podrias indicar mejor cuales son los problemas que tienes que no terminamos (o pues al menos yo que acabo de llegar) de comprender el problema??
En línea


Fire544

Desconectado Desconectado

Mensajes: 85


"Escucha el sonido del 0, 1"


Ver Perfil WWW
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #14 en: 13 Julio 2012, 06:02 am »

Buenas !! No mira dato000: con un scanf() a nivel consola, funciona correctamente, porque los valores no se le asignan a la variable  hasta que no se pulse un enter o no encuentre un \n; pero en mi caso el problema es el siguiente.

Como ya dije:

Código:
scanf("%i", &var1);
scanf("%i", &var2);
suma = var1 + var2;

aqui no hay error alguno y todo marcha perfecto, pero cuando trabajo con eventos es diferente mira esto.

Código:
si evento==1
entonces
vector[i]=1;
fin si

si evento==2
entonces
vector[i]=2;
fin si

si te fijas aqui los valores son almacenados instantaneamente o sea no espera un \n o un enter, y aqui se me complica, lo que quiero es una idea de como hacerlo, he intentado ** y char * uff que lio!!

 La suma no es la esperada, entonces estoy intentando la manera de buscarle la quinta pata al gato, uff que complicado se ha puesto esto eeeh !!
« Última modificación: 13 Julio 2012, 07:35 am por Fire544 » En línea

"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #15 en: 13 Julio 2012, 06:10 am »


vector_1[1]=5 + vector_2[1]=65 esto seria igual a 70, y a si sucecivamente, no quiero esto lo que quiero es:


   5   978 6   4   9
+ 65 9    12 66 45
______________
665105294



No entiendo la forma en la que los sumaste... puedes explicar el método paso a paso?... de lo contrario sera imposible ayudarte.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Fire544

Desconectado Desconectado

Mensajes: 85


"Escucha el sonido del 0, 1"


Ver Perfil WWW
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #16 en: 13 Julio 2012, 07:45 am »

BlackZeroX (Astaroth): Fijate intenta sumar esto--> 54 8 6 + 25 90 8 = 31394, ahora intenta implementarlo vector[3]={54,8,6} + vector2[3]={25,90,8} se supondria que esto seria igual a 31394 pero no es asi ya implementado, la suma de los vectores si sumamos de derecha a izquierda daria  791614 si te fijas el valor resultante en la suma de los vectores es incorrecto. Ahora mi pregunta es Como hago para obtener los valores esperados (correctos) ?

Gracias BlackZeroX (Astaroth) !!  :rolleyes:
En línea

"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #17 en: 13 Julio 2012, 07:46 am »

aaaaa ya entendí... es simple... dame unos minutos...

Dulces Lunas!¡.

En línea

The Dark Shadow is my passion.
Fire544

Desconectado Desconectado

Mensajes: 85


"Escucha el sonido del 0, 1"


Ver Perfil WWW
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #18 en: 13 Julio 2012, 07:52 am »

imagina que tu tienes el numero en base decimal 123 escrito como un vector de la siguiente manera: vector=[1,2,3]

si quieres pasar del vector a un numero normal, lo que tienes que hacer es multiplicar cada termino del vector por 10 (ya que esta en base decimal) elevado a la posicion que ocupa ese termino en el vector.

en este caso: numero= 1*10^2 + 2*10^1 + 3*10^0 = 100+20+3 = 123

no se explicarme mejor, pero es el mismo sistema que se usa para pasar un numero en base binaria a uno decimal. en este caso, al ser base binaria, en vez de 10 se usa el 2 eleveado a la posicion que ocupe el digito. por ejemplo:

1010 en binario: 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 8+2 = 10 en decimal

edito: solo para decir que es que directamente el sistema numerico es asi. en un numero cualquiera, por ejemplo el 123, el 3 ocupa la posicion de las unidades (del 0 al 9), el 2 el de las decenas (del 0*10 al 9*10), y el 1 el de las centenas (del 0*10^2 al 9*10^2). asi que es esto, pero aplicado a un numero mayor como es tu caso. espero que me haya explicado, un saludo

Si como dices, se puede lograr almacenar dichos valores en los int pero cuando hago esto me petea un resultado no esperado o sea no es el correcto, todavia no va lo que quiero xDD Y me entiendes perfectamente pero no va tu solucion !! Gracias Xiruko !!  ;-)
En línea

"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Operacion Suma (Vectores) !Duda!
« Respuesta #19 en: 13 Julio 2012, 08:10 am »

.
Intenta con esto...

Código
  1.  
  2. #include <iostream>
  3. #include <cstdio>
  4.  
  5. using namespace std;
  6.  
  7. inline int lenNum(unsigned int num) {
  8.    char buff[20];
  9.    return sprintf(buff, "%d", num);
  10. }
  11.  
  12. inline unsigned long long joinVector(unsigned int *vector, size_t size) {
  13.    register int mul = 1;
  14.    register unsigned long long ret = 0;
  15.    while(size--) {
  16.        ret += (vector[size] * mul);
  17.        if (size)
  18.            for (register unsigned int i = 1, ln = lenNum(vector[size]); i <= ln; i++)
  19.                mul *= 10;
  20.    }
  21.    return ret;
  22. }
  23.  
  24. int main() {
  25.    unsigned int vector1[5] = {5, 978, 6, 4, 9}, vector2[5] = {65, 9, 12, 66, 45};
  26.    cout << joinVector(vector1, 5) + joinVector(vector2, 5) << endl;
  27.    cin.get();
  28.    return 0;
  29. }
  30.  
  31.  

   005978649
+ 659126645
______________
665105294


Dulces Lunas!¡.
« Última modificación: 13 Julio 2012, 08:19 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda en búsqueda en vectores de punteros en C
Programación C/C++
megamole 4 3,073 Último mensaje 26 Julio 2010, 18:50 pm
por megamole
Suma de vectores recursivo
Programación C/C++
s3tH 4 7,823 Último mensaje 6 Mayo 2012, 20:18 pm
por s3tH
Duda con suma de vectores !Resuelto!
Programación C/C++
Fire544 0 1,568 Último mensaje 27 Julio 2012, 15:25 pm
por Fire544
duda de como usar el incremento en una operación
Programación C/C++
RaquelAG 4 2,689 Último mensaje 27 Enero 2013, 23:29 pm
por RaquelAG
SUMA DE VECTORES
Programación C/C++
JHONALEJOO 2 2,778 Último mensaje 20 Noviembre 2014, 17:18 pm
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines