Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Akai

#241
Vale, entendí el problema MAL desde el principio.

Visto eso, lo primero que se me ocurre, es:

Lees como cadena de caracteres.

Cuando detectes un paréntesis, copias (por ejemplo), en otra cadena, desde el siguiente símbolo al que abre paréntesis ' ( ' hasta el anterior al que cierra el paréntesis ' ) ' Y procesas esa parte (la simplificas (ahora explicaré el proceso de simplificar)). Una vez tienes la cadena sin paréntesis y con los términos que lo estaban multiplicados y demás, simplificas esa cadena,

Simplificar: una idea puede ser declarar un vector de (por ejemplo) 10 posiciones. Asumiendo entonces que tu programa podrá resolver desde grado 0 a grado 9.

Todas las posiciones inicializadas a 0.

Cada vez que detectes un elemento, sumas su valor al grado que corresponda(detectas un número? miras adelante para ver el grado ). Si detectas un igual, a partir del igual, todo irá con el signo cambiado.

Ejemplo:
ecuación muestra lo que queda por delante de la posición actual del indice de la cadena
inicio:
vector= 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

ecuación: -3x +4x^3 -5x^4 -2x^2 +x -4 = 5


primera iteración:

vector= 0, 0, 0, 0, 0, 0, 0, 0, -3, 0

ecuación: 4x^3 -5x^4 -2x^2 +x -4 = 5


segunda iteración:

vector= 0, 0, 0, 0, 0, 0, 4, 0, -3, 0

ecuación: -5x^4 -2x^2 +x -4 = 5


tercera iteración:

vector= 0, 0, 0, 0, 0, -5, 4, 0, -3, 0

ecuación: -2x^2 +x -4 = 5


cuarta iteración:

vector= 0, 0, 0, 0, 0, -5, 4, -2, -2, 0 // +1 a x con grado 1

ecuación: -4 = 5


quinta iteración:

vector= 0, 0, 0, 0, 0, -5, 4, 0, -3, -4

ecuación: = 5


sexta iteración:

vector= 0, 0, 0, 0, 0, -5, 4, 0, -3, -9 // -4 -5 ya que tomamos el 5 como negativo

ecuación: vacia

Ahora supongamos que en realidad esta ecuación estaba dentro de un paréntesis. En ese caso, multiplicamos cada elemento del vector por dicho valor (si aumenta el grado de la x, se desplazan los elementos una posición en el vector).

Por ejemplo:
7 ( lo anterior) multiplicamos todos por 7.
7x (lo anterior) multiplicamos todos por 7, y los movemos para aumentar el grado

Para el vector anterior, el caso con 7x quedaría algo así:
vector= 0, 0, 0, 0, 0, -5, 4, 0, -3, -9 //antes
vector= 0, 0, 0, 0, -35, 28, 0, -21, -63, 0 //después

Espero haber ayudado.
#242
Mi forma de resolver dudas cuando la duda no es sobre un fragmento de código que falla o sobre el que hay problemas / cuestiones, es ayudar a plantear el problema.

Vamos a ver, qué más necesitas después de explicarte paso a paso lo que hay que hacer en cada uno de los posts con los que te he respondido? Si ya lo sabes, cual es el problema?

Olvidate de lo que tengas hecho, empieza de 0 y replanteate de nuevo el problema, lee con atención lo que he puesto, que básicamente te he dicho donde poner cada número de la matriz.

¿Qué más necesitas después de eso?
#243
Marchando link:

http://foro.elhacker.net/programacion_cc/reglas_del_subforo-t251603.0.html

concretamente:

Reglas del subforo:
Este no es un subforo donde se soliciten tareas, sino un lugar donde resolver dudas.
#244
http://msdn.microsoft.com/en-us/library/0taedcee.aspx

Buscar en internet no duele. Hacer doble-posting si.

Por otro lado, compilas en modo debug?
#245
Te bajaste el QT creator sin QT? LULZ.

Necesitas las librerías de QT: http://qt.nokia.com/downloads

Selecciona la opción LGPL (a menos que estés dispuesto a pagar por una licencia comercial), y te bajas el QT SDK para el SO que uses. El SDK trae todas las librerías y el creator.

El creator por si solo no trae las librerías.
#246
Aquí no se da código, y menos para algo que parece ser una tarea de clase. Aquí se resuelven dudas.

Si ya tienes la idea, qué te falta? Fíjate en que los que están en un cuadrante de la matriz se van a otro según lo que te he descrito en mi post anterior.

Cuadrante superior izquierdo: de (0,0),(0, tamaño/2) a (tamaño/2,0),(tamaño/2,tamaño/2).

Cuadrante superior derecho: de (0,tamaño/2),(0, tamaño) a (tamaño/2,tamaño/2),(tamaño/2,tamaño).

Cuadrante inferior izquierdo: de (0,tamaño/2 +1),(0, tamaño) a (tamaño/2 +1,tamaño/2 +1),(tamaño,tamaño/2).

Cuadrante inferior derecho: de (tamaño/2 +1,tamaño/2 +1),(tamaño, tamaño/2 +1) a (tamaño/2 +1,tamaño),(tamaño,tamaño).

Lo único que me queda decir, es que te lo dibujes y mires primero en papel, y que luego te hagas primero un programa que en vez de permutar (cambiar) elementos, los copie movidos en otra matriz.
#247
No, lo que está en paréntesis en :
Citar3x^3 +2x^2 -x -4 = 0 --> 3, 2, -1, -4 (x^3, x^2, x^1, x^0)
Era para indicar el grado de cada miembro.

Por otro lado, no me he fijado en que lenguaje programas, tampoco, digamos, me "importa". Te estoy hablando de detalles algorítmicos, de planteamiento. La implementación es cosa tuya

Vector --> array, si. Yo estoy acostumbrado a usar vector en vez de array, pero se ve que según la zona se usa más array que vector.

Sobre el tema de 4*(x^2), o x^(lo que sea), esto es tan simple como procesar la ecuación del final al principio (de términos de menor grado a mayor) de forma que en cada iteración incrementes el grado de la x multiplicándola. CUIDADO CON ESTO:

primera iteración: x^1 (cálculos etc etc etc) x= x*x --> x^2

segunda iteración: x^2 (cálculos etc etc etc) x= x*x --> x^4!!!!!!

tercera iteración x^3, pero resulta que tenemos x^4 (cálculos etc etc etc) x= x*x --> x^8 Y el error sigue y sigue

Has de llevar un control sobre eso. Con una variable auxiliar en la que guardes la x^a lo que sea, de forma que nunca pierdes el valor original de la x (o al revés, que en la auxiliar guardes la x, y en x original la potencia)
#248
Si, quería poner eso, hice un copy paste del otro ejemplo y se me olvidó cambiarlo.

Para hacerlo de esta manera, es más simple de lo que parece si lees un vector de enteros o floats:

Para la ecuaciń: 9x^2 -x +6 = 0 lees: 9 -1 6 0, 4 enteros. Si el último es 0, sabes que está "bien formada", y operas directamente para resolverla, sino, restas al penúltimo el último, y ya la tienes bien formada.

Por otro lado, tienes que "obligar" a introducir siempre todos los grados de la variable, o el método puede fallar:

si te introducen: 9x^4 -100 =0 de la forma: 9 -100 0 , tu método podría tomarlo como 9x -1=0, y por tanto, el método falla.
La entrada correcta para este caso sería 9 0 0 0 -100 0 que si da como resultado la ecuación esperada

Creo que has comentado que el programa es para uso propio, así que en principio el tema de la entrada no debería ser mayor problema que concienciarte tu mismo de como funciona tu programa. Si por otor lado, necesitases que lo utilizase más gente, hay dos opciones:

a) Recalcar que el uso del programa es ESE y que de otra forma va a fallar.

b) leer como una cadena de caracteres ( "9x^4 -100 = 0" ) y luego, de la cadena, pasar a la forma vectorial.
#249
Creo que el planteamiento de ponerlo usando strings te está limitando.

Y si lees únicamente números y guardas el resultado en un vector?

ejemplo:

3x^3 +2x^2 -x +1 = 5 --> 3, 2, -1, 1 ,5  --> Para la forma "bien formada" que te interesa, simplemente sumas/restas el último al penúltimo. Resultado:

3x^3 +2x^2 -x -4 = 0 --> 3, 2, -1, -4 (x^3, x^2, x^1, x^0).

Otro ejemplo:


6x^3 -4=1: --> 6, 0, 0 ,-4, 1 --> 6, 0, 0, -5

Todo el tema de ecuaciones en computación se trabaja con matrices SIN las letras.

Ejemplo:

3x+2y-z =1
2x-y +z =2
x -y -z =5

resultado:

3 2 -1 1
2 -1 1 2
1 -1 -1 5
#250
GNU/Linux / Re: Ayuda con ubuntu 11.04
2 Abril 2011, 15:30 PM
Personalmente, no te aconsejaría utilizar un sistema operativo en versión beta. Quizá sería mejor esperarse las 4 semanas que quedan para que llegue el release final de ubuntu 11.04. Dicho esto, a tu problema:

¿Qué error?

De donde descargaste ambas versiones? qué proceso de instalación seguiste? Comprobaste que son para la arquitectura de tu pc (32 o 64 bits)? etc etc etc?

DATOS DATOS DATOS!!