Ecuaciones (BATCH)

Iniciado por FerJGS, 21 Junio 2010, 11:43 AM

0 Miembros y 3 Visitantes están viendo este tema.

FerJGS

Hola, me gustaría saber cómo hacer ecuaciones de primer grado en batch.

He hecho también de segundo grado pero solo me salen de dos tipos, me falta el de

-b ±√ b2 - 4ac / 2a

Y las ecuaciones de primer grado. ¿Cómo hago para que el batch las resuelva?

y otra cosa, ¿como hago para que pueda multiplicar un núemro por otro con 4 decimales?

flony

decimales batch no agarra, lo de la formula de bascara (creo q asi se escribe) lo de la raiz es complicado y sobre las ecuaciones de primer grado pone con set /a para ingresar las variables
si un problema no tiene solucion entonces no es un problema...es algo inevitable

GUN$

Leo Gutierrez creó hace tiempo un script para resolver un tipo determinado de ecuaciones de 2º grado en Batch. A ver si tiene el código por ahí y lo postea ^^

<?php
$text 
"Aprendiendo PHP";
echo 
$text;
?>

Shell Root

Miradlo:
Código (dos) [Seleccionar]
@echo off
:code
setlocal enabledelayedexpansion
:: -3x-9=-9x-63
echo. ------------------------------------------------------------------------------
echo. ^| Ecuaciones de 1ø grado. Ejemplo :                     -3x-9=-9x-63         ^|
echo. ------------------------------------------------------------------------------
echo.
echo. ------------------------------------------------------------------------------
echo. ^| 1.-Resolver ecuaci¢n.                                                      ^|
echo. ^| 2.-Ver ejemplos de ecuaciones.                                             ^|
echo. ^| 3.-Ayuda.                                                                  ^|
echo. ^| 4.-Salir.                                                                  ^|
echo. ------------------------------------------------------------------------------
echo.
set /p "opcion=Teclee el numero de la opcion dada : "
if not defined opcion (goto:code)
if %opcion% equ 1 (goto:r_ecuacion)
if %opcion% equ 2 (goto:examples)
if %opcion% equ 3 (goto:help)
if %opcion% equ 4 (goto:exit) else (
cls
goto:code
)
:r_ecuacion
cls
echo.
set /p "ecuacion=Ecuaci¢n : "
if not defined ecuacion (
cls
goto:code
)
for /f "tokens=1,2 delims==" %%a in ("%ecuacion%") do (
set "termino1=%%a"
set "termino2=%%b"
)
for /f "tokens=1,2 delims=x,X" %%a in ("%termino1%") do (set "x_1=%%ax")
for /f "tokens=1,2 delims=x,X" %%a in ("%termino2%") do (set "x_2=%%ax")
set "x1=%x_1:x=%"
set "x2=%x_2:x=%"
if ["%x_2:~0,1%"]==["-"] (
set /a "suma_x=!x1!!x2:-=+!"
) else (
set /a "suma_x=!x1!-!x2!"
)
for /f "tokens=1,2 delims=x,X" %%a in ("%termino2%") do (set "c_1=%%b")
for /f "tokens=1,2 delims=x,X" %%a in ("%termino1%") do (set "c_2=%%b")
if ["%c_2:~0,1%"]==["-"] (
set /a "suma_c=!c_1!!c_2:-=+!"
) else (
set /a "suma_c=!c_1!-!c_2!"
)
set /a "resultado=%suma_c%/%suma_x%"
echo.
echo.
echo.------------------------------------------------------------------------
echo.Resultado de la ecuacion.
echo.x =  %resultado%
echo.Ecuacion = !ecuacion:x=(%resultado%)!
echo.------------------------------------------------------------------------
set /p ,=Enter para volver al menu.
cls
goto:code
:examples
cls
echo.Este programa puede resolver ecuaciones como las siguientes :
echo.
echo.1.  -3x-9=-9x-63
echo.2.   9x-5=-4x-57
echo.3.   5x-9x=39-3
echo.4.  -7x+9=-9x-5
echo.5.  -3x+1=2x+21
echo.6.   7x+4=9x+6
echo.7.  -5x+8=9x+120
echo.8.  -8x+1=6x-111
echo.9.  -4x+6=6x-64
echo.10. -5x-1=-7x+5
for /l %%$ in (1,1,4) do (cd.)|echo.
set /p ,=Enter para volver al menu.
cls
goto:code
:help
cls
echo.Este peque¤o programa ayuda a resolver ecuaciones del tipo :
echo.-3x-9=-9x-63
echo.
echo.Solo tiene que teclear su ecuaci¢n en el menu inicial (opci¢n 1). y el
echo.programa se encargar  de resolver la ecuaci¢n.
echo.
echo.
echo.Leo Guti,rrez R.
echo.
echo.
set /p ,=Pulse enter para volver al men£.
cls
goto:code
:exit
exit /b 0

PoC
Código (dos) [Seleccionar]
Ecuación : 9x-5=-4x-57


------------------------------------------------------------------------
Resultado de la ecuacion.
x =  -4
Ecuacion = 9(-4)-5=-4(-4)-57
------------------------------------------------------------------------
Enter para volver al menu.


Fuente: :http://foro.portalhacker.net/index.php/topic,80232.0.html
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

GUN$

Sí, shellroot@alex-laptop:~$, ese es el código al qué me refería.

<?php
$text 
"Aprendiendo PHP";
echo 
$text;
?>

leogtz

#5
Cita de: GUN$ en 22 Junio 2010, 04:02 AM
Leo Gutierrez creó hace tiempo un script para resolver un tipo determinado de ecuaciones de 2º grado en Batch. A ver si tiene el código por ahí y lo postea ^^

Tssss, ya ni recordaba ese código.

Tengan compasión si el código no hace lo que debiera.  ;D

Respecto al tema, en Batch no es posible trabajar con decimales, solo tenemos a nuestra disposición las operaciones aritméticas básicas, así que utiliza otro lenguaje o pregunta sobre como obtener decimales usando VBScript, así podríamos unir Batch y VBScript para lograr algo; hacerlo con Batch solo traería dolores de cabeza.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

GUN$

Pues hace tiempo un user creó un método para trabajar con decimales en batch..... a ver si lo localizo y le digo que postee el script ^^

<?php
$text 
"Aprendiendo PHP";
echo 
$text;
?>

FerJGS

Funciona bastante bien con algunas ecuaciones pero otras no las resuelve... Aun así puedo decirle al usuario que lo escriba de la forma correcta para que lo pueda resolver, es fantástico... Ahora ya necesito saber cómo hacer para hacer las de segundo grado y...ya puestos a pedir...cómo hacer para sacar el NÚMERO DE CIFRAS de un número.

Sí que se pueden usar decimales, no directamente, pero hay que pensar un poquito. Para dividir con tres decimales no hace falta ni siquiera bucles... Pero para poder multiplicar por pi, por ejemplo, es conveniente saber cómo hacer para que de el número de cifras de un número, me ayudáis?

DA KILLER

Ahhh, se siente bien volver, hola a todos y hace un tiempo leo posetéo un contador de caracteres, te dejo el code original, a mi me sirvió bastante.

-= CODE =-

@echo off
:code
set /p "string=Cadena : "
if not defined string (goto:code)
set /a "contador=0"
:loop
if not defined string (goto:end)
set "string=%string:~1%"
set /a "contador+=1"
goto:loop
:end
echo %contador%
set /p "="
goto:code


Lo simple no le quita lo efectivo, solo tomas la variable "contador" y listo ::).

Saludos
.: DA KILLER :.



FerJGS

Hola

Gracias, el código funciona bastante bien, pero me he dado ceunta de que no lo necesitaba. Estoy haciendo, como sabéis, una calculadora científica y la verdad me esta dando mucha pereza tener que sustituir todo por "multiplicable por decimales". No obstante, me armare de paciencia y terminare la parte de geometría. PERO NECESITO AYUDA CON LAS ECUACIONES.

¿Cómo hago para resolver ecuaciones de segundo grado tipo 3? -b +- V b²-4ac /2a

y ya que me pongo, cómo hago para resolver identidades notables y ecuaciones de dos incógnitas (doble ecuación)?  Ej:

{ 4x+y=6
{3x + 2y=7

???????????????????