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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [ayuda] Como se puede calcular una raiz en batch???
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [ayuda] Como se puede calcular una raiz en batch???  (Leído 13,620 veces)
ne0x

Desconectado Desconectado

Mensajes: 270



Ver Perfil
[ayuda] Como se puede calcular una raiz en batch???
« en: 9 Noviembre 2006, 19:15 pm »

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 Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #1 en: 10 Noviembre 2006, 01:55 am »

creo que no hay ninguna :P

pero puedes usar wscript.exe y un js o un vbs como auxiliar.

Saludos!!


En línea

-[black_hack]-

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #2 en: 1 Marzo 2007, 21:20 pm »

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

Código:
@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 Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #3 en: 1 Marzo 2007, 21:46 pm »

pero eso calcula la raiz cuadrada de todos los numeros no? lo que haces es un indice..
aun asi, muy buen trabajo :D, no es muy optimo el programa pero cumple su funcion :P

Saludos!!
En línea

-[black_hack]-

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #4 en: 2 Marzo 2007, 14:34 pm »

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 Desconectado

Mensajes: 1.999


La felicidad no es una meta, es un camino.


Ver Perfil
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #5 en: 3 Marzo 2007, 21:13 pm »

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 (Ri = 10)
b) Calculamos un nuevo Ri+1 = (Ri2 + N)/2Ri
c) Repetir el paso (b) hasta que (Ri2 - N) se aproxime a CERO.

No soy bueno en batch, la ideas sería:
Código:
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 Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #6 en: 4 Marzo 2007, 02:29 am »

Si se puede, queda asi: xD
este codigo calculará la raiz cuadrada de cualquier numero.

Código:
@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.. :P pero asi como esta cumple su trabajo de forma mas rapida que usando indices :D

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 Desconectado

Mensajes: 25


Ver Perfil
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #7 en: 7 Marzo 2007, 23:10 pm »

Te ha quedado muy bien y si se entiende wen code
Salu2
En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #8 en: 7 Marzo 2007, 23:35 pm »

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 Desconectado

Mensajes: 48


Ver Perfil
Re: [ayuda] Como se puede calcular una raiz en batch???
« Respuesta #9 en: 8 Mayo 2011, 07:04 am »

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...
Código:
: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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Cómo calcular el %?
Hardware
InMortal..? 1 2,856 Último mensaje 27 Octubre 2011, 20:22 pm
por InMortal..?
diseñar un programa para calcular la raiz n-èsima
Programación C/C++
leonardo9307 4 5,889 Último mensaje 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 3,894 Último mensaje 31 Diciembre 2013, 14:52 pm
por nightcode
¿Como desarrollar una Raiz en C#?
.NET (C#, VB.NET, ASP)
estebankpo15 2 1,998 Último mensaje 22 Abril 2014, 05:29 am
por estebankpo15
Ayuda Porfavor Raiz en C++
Programación C/C++
Carloslim2002 2 3,186 Último mensaje 1 Octubre 2017, 04:57 am
por JavierScars
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines