Autor
|
Tema: [ayuda] Como se puede calcular una raiz en batch??? (Leído 14,152 veces)
|
ne0x
Desconectado
Mensajes: 270
|
Hola a todos... Alguien sabe si se puede hacer una raiz en batch, es decir.... cual es el operando??? si para suma, resta, multiplicacion y division son : + , - , * , /
Como puedo hacer que un batch me calcule la raiz de un numero que le de??
|
|
|
En línea
|
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
creo que no hay ninguna pero puedes usar wscript.exe y un js o un vbs como auxiliar. Saludos!!
|
|
|
En línea
|
|
|
|
-[black_hack]-
Desconectado
Mensajes: 25
|
Si se puede y yo se como se hace ,este codigo lo invente yo ya que no lo encontraran en ninguna otra parte con otro autor que no sea yo (black_hack) ni algo similar @echo off title Lista de Raices cuadradas que dan resultados enteros del 100 al 100.000.000 [black_hack] color a cls if exist sqrt.txt del /q /f sqrt.txt echo By Black_hack>>sqrt.txt :X_x_sqrt_x_x set sqrtfuncion=0 cls echo. echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º -Seleccione lo que desea hacer- º echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ echo º 1. Calcular raices enteras del 100 al 100.000.000 º echo º 2. Ayuda y documentacion º echo º 3. Salir º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. set /p sqrtfuncion= Que desea hacer? if %sqrtfuncion%==1 goto sqrt if %sqrtfuncion%==2 goto help_e_info if %sqrtfuncion%==3 exit if %sqrtfuncion%==0 goto X_x_sqrt_x_x goto X_x_sqrt_x_x :sqrt ::crea variables y comienza la parte que calcula set sqrt=1 set sqrtnum=1 set diferencia=3 :funcion_principal_sqrt_ set rd20v3=Raiz de %sqrt%=%sqrtnum% echo %rd20v3%>>sqrt.txt set /a sqrt=%sqrt% +%diferencia% set /a sqrtnum=%sqrtnum% +1 set /a diferencia=%diferencia% +2 find /i \"100000000\" sqrt.txt>nul&& if ERRORLEVEL==0 start sqrt.txt & exit goto funcion_principal_sqrt_ ::fin de lo importante
:help_e_info echo. echo _________________ echo. echo Ayuda echo _________________ echo. echo Este programa solamente calcula raices hasta el 100.000.000 cuya raiz es 10.000 pero tu puedes echo quitar ese limite abriendo este bat con el Block de Notas [NOTEPAD] y borrarle la sgte. linea: echo find /i \"100000000\" sqrt.txt && if ERRORLEVEL==0 start sqrt.txt & exit echo Eso producira [obviamente] que no exista limite y pueda calcular infinitud de raices enteras echo Este codigo se basa en la diferencia [resto] que hay en una raiz que da resultado entero de otra echo [Yo descubri eso cuando hacia graficos de raices enteras].Todas las raices tienen esa propiedad , echo ya sean Cubicas,cuadradas,etc.La de la Raiz cuadrada es la mas simple ya que la diferencia entre echo la de 0 y 1 es 1 ,1 y 4 es 3 ,la de 4 y 9 es 5,la de 9 y 16 es 7 ,la de 16 y 25 es 9. echo Si se dan cuenta la diferencia entre esos valores aumenta 2 y sus raices en orden son 1,2,3,4 y 5 echo Por eso la variable sqrtnum aumenta 1 ,la variable diferencia aumenta 2 y la variable sqrt es 1 mas echo la variable diferencia. echo Al final del calculo se le abrira una ventana del Block de Notas con titulo sqrt echo. echo Espero que te sirva. pause>nul goto X_x_sqrt_x_x
|
|
|
En línea
|
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
pero eso calcula la raiz cuadrada de todos los numeros no? lo que haces es un indice.. aun asi, muy buen trabajo , no es muy optimo el programa pero cumple su funcion Saludos!!
|
|
|
En línea
|
|
|
|
-[black_hack]-
Desconectado
Mensajes: 25
|
No es muy optimo pero es la unica forma en batch puro y no incluir scripts de VBS.
Es un índice pero puede ser de infinitos numeros si es que la variable no creciera mucho hasta que no se entienda pero weno
Salu2
|
|
|
En línea
|
|
|
|
jvchino
Solo soy un
Ex-Staff
Desconectado
Mensajes: 1.999
La felicidad no es una meta, es un camino.
|
Que les parece si agregamos algo de matemática no muy avanzada al batch. Para encontrar la raiz cuadrada de "N" empleamos un bucle: a) Elegimos un número al azar como supuesta raiz (R i = 10) b) Calculamos un nuevo R i+1 = (R i2 + N)/2R ic) Repetir el paso (b) hasta que (R i2 - N) se aproxime a CERO. No soy bueno en batch, la ideas sería: Leer (N) raiz = 10 :calcular raiz = ((raiz*raiz) + N)/(2*raiz) if (raiz*raiz - N) >= 0.00000001 goto calcular Escribir (raiz) Algun experto que me diga si eso es posible codificar en batch. Saludos.
|
|
|
En línea
|
Si ayudo a una sola persona a tener esperanza, no habré vivido en vano.
No, nada llega tarde, porque todas las cosas tienen su tiempo justo, como el trigo y las rosas
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
Si se puede, queda asi: xD este codigo calculará la raiz cuadrada de cualquier numero. @echo off if NOT "%~1"=="vv" (cmd /v /c %~nx0 vv^&exit&goto:EOF) set /P x=Valor: FOR /L %%i IN (%x%,-2,1) DO ( set /A y=%x%/%%i IF /I !y! EQU %%i ( echo %%i goto:EOF ) )
se le pueden hacer muchas optimisaciones.. pero asi como esta cumple su trabajo de forma mas rapida que usando indices Este programa ya usa cosas un poco mas avanzadas, xD, pero si se le entiende no? Saludos!!
|
|
« Última modificación: 4 Marzo 2007, 02:31 am por Sirdarckcat »
|
En línea
|
|
|
|
-[black_hack]-
Desconectado
Mensajes: 25
|
Te ha quedado muy bien y si se entiende wen code Salu2
|
|
|
En línea
|
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
pues me estan diciendo que C calcula las raices usando aproximaciones por derivadas, y talves se pueda hacer algo similar en batch..
f(x)=x^2 d f(x)/dx=2x
de ahi.. solo necesitamos los puntos de referencia.. y se puede optmizar el codigo, para numeros muy grandes en cantidades exponenciales.
Si tengo tiempo, lo programo.. sino, no xD
Saludos!!
|
|
|
En línea
|
|
|
|
sistemx
Desconectado
Mensajes: 48
|
este codigo esta bueno.. aunque el limite es 46321.. quisiera saber si se podria fusionar este con el de sirdarckcat (cuando se le coloca un numero mayor 46321 se cambia al metodo de sirdarckcat y podria calcular las raizes cuadradas hasta 46321 con exactitud y el resto inexacto... :Raizes cls color 0a Title Calculadora - raizes echo. echo echo MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMI echo :MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM echo MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM echo MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM echo MMMM echo MIMMM: :MMM+ echo M~ =M MMMM, echo M~ =M MMMD echo M~ =M :MMMO echo M~ =M OMMM~ echo MMMM echo MMMI . echo ~MMM: mMMM MM echo 8MMM mMMM MM echo MMMI mMM MM echo ,O MMMI mMMM MM echo ,MMMM :MMM: MMM MMM echo MMMMMMM, MMMM MMMM echo :MMMMMMMM7 MMM7 MMh echo MMM=:MMMM MMMI MMMMMs echo MMMM: :MMM, =MMO MM=d echo +MMMM MMMO MMM MMMk echo ,MMMMMMMM? MMM MMZ echo IMMMMMMM~ Mx MM echo MMMMMMM echo MMMMMM$ echo ,MMMMM= echo MMMMM echo :MMMM echo MMMM echo MMMM echo ZM
:ra2
set /p dend=Digita el numero: call:ra2u %dend%
:ra2u
cls title Calculadora - Raizes cuadradas setlocal enabledelayedexpansion echo Raiz cuadrada set count=0 set dend=%1 set num=%dend% IF %dend% LEQ 0 ( CLS echo SOLO NUMEROS MAYORES A 0 PAUSE > NUL GOTO raizes ) if %dend% GTR 46341 ( cls echo el maximo numero que este batch le puede sacar raiz cuadrada a un numero es 46341 pause > nul goto raizes )
for /l %%a in (%dend%, -2, 1) do ( set /a sqr=%%a*%%a if !sqr! leq %dend% ( set digit=%%a. set root=%%a goto out2 ) )
:out2 call set /a count=%%count%%+1 if %count% GTR 8 goto next2 set /a dend=(%dend%-%sqr%)*100 set /a div=%root%*2 for /l %%i in (9,-1,0) do ( set /a sqr=%div%%%i*%%i if !sqr! leq %dend% ( set root=%root%%%i goto out2 ) ) :next2 set root=%root:~-10% if %dend% neq 0 set digit=%digit%%root% echo La raiz cuadrada de %num% es %digit%
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Cómo calcular el %?
Hardware
|
InMortal..?
|
1
|
3,038
|
27 Octubre 2011, 20:22 pm
por InMortal..?
|
|
|
diseñar un programa para calcular la raiz n-èsima
Programación C/C++
|
leonardo9307
|
4
|
6,183
|
25 Abril 2013, 15:25 pm
por leosansan
|
|
|
ayuda raíz de ecuación cuadrática mediante ruffini en C
Programación General
|
nightcode
|
2
|
4,180
|
31 Diciembre 2013, 14:52 pm
por nightcode
|
|
|
¿Como desarrollar una Raiz en C#?
.NET (C#, VB.NET, ASP)
|
estebankpo15
|
2
|
2,188
|
22 Abril 2014, 05:29 am
por estebankpo15
|
|
|
Ayuda Porfavor Raiz en C++
Programación C/C++
|
Carloslim2002
|
2
|
3,388
|
1 Octubre 2017, 04:57 am
por JavierScars
|
|