Ver la Versión Completa : ecuaciones
edusus
16-04-2006, 17:55:49
Hola, Estoy tratando de hacer un programa capaz de realizar una ecuación de primer grado, pero no lo consigo. No encuentro una forma de introducir los datos para que despeje la x y la realice.
Si alguien sabe como hacerlo y me manda el código en un ejemplo se lo agradezco.
Robert01
17-04-2006, 00:00:19
lo que quieres es hacer algo como:
aX +b = 0 ?
x = -b/a
es muy simple, solo despejas la incognita y luego pruebas si se cumple para ese valor.
Si es para un sistema de ecuaciones es similar, despejas primero una y luego la otra incognita.
Hay una página de Jean Moreau sobre cálculo númerico (en pascal, c , fortran y basic)
saludos
edusus
17-04-2006, 08:02:39
Gracias por tu respuesta, pero me has entendido mal. Yo sé como resolver las ecuaciones, pero lo que quiero es plantearle la ecuación al programa y que éste lo resuelva. Muchas gracias de todos modos.
[Gunman]
17-04-2006, 09:57:04
Mira lo que puedes hacer es:
||EDIT_A||x ||EDIT_B|| = ||EDIT_C||
Esto seria el form, junto con un botón que ponga "Calcular" o algo por el estilo y luego haces lo que ha dicho Robert01;
x := (||EDIT_C||-||EDIT_B||)/||EDIT_A||;
Recuerda que tienes que convertir el valor de cada edit a integer i que x ha de ser de tipo float.
Si quieres hacerlo de otra forma, por ejemplo, un edit que el usuario le indica toda la equación, el programa ha de hacer:
1.- Separar los valores con X de los que no tienen X, por ejemplo podrias usar la función Copy() y la función Pos().
2.- Obtener el valor final de las partes CON X y de las partes SIN X.
3.- Hacer lo mismo que antes, X := PARTES_SIN_X/PARTES_CON_X
Has de tener en cuenta que cuando extraigas los valores has de sacar el signo de este también, me explico?
edusus
17-04-2006, 11:08:34
Gracias por tu respuesta, pero lamento decirte que no me funciona.
Si hago la primera opción ( que no haría lo que busco porque limitaría el resultado a una opción de producto a un lado de la igualdad y un único término al otro lado), pero aun así:
edit3.text:= floattostr(strtofloat(edit1.text) * strtofloat(edit2.text)); //Solo funciona poniendo un término en cada edit.
Y la otra opción que me das tal vez funcione pero no sé usar las funciones que me dices. De ésta última te agradecería si me mandas el código. Gracias nuevamente.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.