Calcular pi con archivo por lotes (1 / 2 paso)

Paso 1: El código

define otra charla (echo en) (eco apagado)
setlocal EnableDelayedExpansion
echo.PI.bat - Don Cruz - http://cosinekitty.com
Set /a NumQuads = 30
Set /a MaxQuadIndex = NumQuads - 1

echo.
echo.%Time% - iniciado
echo.

llamar: PiEngine 48 18 32 57-20 239
llamar: PiEngine 16 5-4 239
GOTO: EOF

: PiEngine
llamar: SetToInteger Pi 0
establecer la fórmula =
: PiTermLoop
if "%1" == "" (
Llame al: pi de la impresión
echo.
echo.! ¡ tiempo! -terminado! ¡ Fórmula!
echo.
GOTO: EOF
)
llamar: ArctanRecip PiTerm %2
Set /a PiEngineFactor = %1
If! PiEngineFactor! (LSS 0
Set /a PiEngineFactor * = -1
establecer la fórmula =! ¡ Fórmula!
llamar: MultiplyByInteger PiTerm! PiEngineFactor!
llamar: restar Pi PiTerm
sistema operador =-
) () otro
llamar: MultiplyByInteger PiTerm %1
llamar: Añadir Pi PiTerm
sistema operador = +
)
Si se ha definido (fórmula
establecer la fórmula =! Fórmula!! Operador!! PiEngineFactor!*arctan^(1/%2^)
) () otro
establecer la fórmula = pi = %1*arctan^(1/%2^)
)
cambio
cambio
Goto PiTermLoop

: SetToInteger
para /L % % en (0, 1,! MaxQuadIndex!) hacer)
Set /a % 1_ %% i = 0
)
Set /a % 1_! MaxQuadIndex! = %2
GOTO: EOF

: Impresión
establecer PrintBuffer = x
REM omitir un par de quads menos importantes, porque tienen errores del roundoff.
Si define () PiDebug
Set /a PrintMinQuadIndex = 0
) () otro
Set /a PrintMinQuadIndex = 2
)
Set /a PrintMaxQuadIndex = MaxQuadIndex - 1
para /L % % en (! PrintMinQuadIndex!, 1,! PrintMaxQuadIndex!) hacer)
Set PrintDigit =! % 1_ %% yo!
If! PrintDigit! (LSS 1000
If! PrintDigit! (LSS 100
If! PrintDigit! (LSS 10
Set PrintDigit = 000! PrintDigit!
) () otro
Set PrintDigit = 00! PrintDigit!
)
) () otro
Set PrintDigit = 0! PrintDigit!
)
)
establecer PrintBuffer =! PrintDigit! PrintBuffer!
)
establecer PrintBuffer =. 1_ % MaxQuadIndex %!.! PrintBuffer:x =!
echo.%1 =! PrintBuffer!
GOTO: EOF

: DivideByInteger
Si define PiDebug eco. DivideByInteger %1 %2
Set /a DBI_Carry = 0
para /L % % en (! MaxQuadIndex!, -1, 0) ()
Set /a DBI_Digit = DBI_Carry * 10000 + 1_ % %% i
Set /a DBI_Carry = DBI_Digit %% %2
Set /a % 1_ %% i = DBI_Digit / %2
)
GOTO: EOF

: MultiplyByInteger
Si define PiDebug eco. MultiplyByInteger %1 %2
Set /a MBI_Carry = 0
para /L % % en (0, 1,! MaxQuadIndex!) hacer)
Set /a MBI_Digit = 1_ % %% i * %2 + MBI_Carry
Set /a % 1_ %% i = MBI_Digit %% 10000
Set /a MBI_Carry = MBI_Digit / 10000
)
GOTO: EOF

: ArctanRecip
Si define PiDebug eco. ArctanRecip %1 %2
llamar: SetToInteger %1 1
llamar: DivideByInteger %1 %2
llamar: CopyValue AR_Recip %1
Set /a AR_Toggle = -1
Set /a AR_K = 3
: ArctanLoop
Si define () PiDebug
echo.
echo. ArctanRecip AR_K =! AR_K! ---------------------------------------------------------
)
llamar: DivideByInteger AR_Recip %2
llamar: DivideByInteger AR_Recip %2
llamar: CopyValue AR_Term AR_Recip
llamar: DivideByInteger AR_Term! AR_K!
llamar: CopyValue AR_PrevSum %1
Si! AR_Toggle! (LSS 0
llamar: restar %1 AR_Term
) () otro
llamar: Añadir %1 AR_Term
)
llamar: comparar AR_EqualFlag %1 AR_PrevSum
Si! AR_EqualFlag! == true goto: EOF
Set /a AR_K += 2
Set /a AR_Toggle * = -1
Goto ArctanLoop

: CopyValue
Si define PiDebug eco. CopyValue %1 %2
para /L % % en (0, 1,! MaxQuadIndex!) hacer)
Set /a % 1_ %% i = 2% %% i
)
GOTO: EOF

: Añadir
Si define PiDebug eco. Añadir %1 %2
Si define PiDebug llamada: impresión %1
Si define PiDebug llamada: imprimir %2
Set /a Add_Carry = 0
para /L % % en (0, 1,! MaxQuadIndex!) hacer)
Set /a Add_Digit = Add_Carry + % 1_ %% i + % 2_ %% i
Set /a % 1_ %% i = Add_Digit %% 10000
Set /a Add_Carry = Add_Digit / 10000
)
GOTO: EOF

: Restar
Si define PiDebug eco. Restar el %1 %2
Si define PiDebug llamada: impresión %1
Si define PiDebug llamada: imprimir %2
Set /a Subtract_Borrow = 0
para /L % % en (0, 1,! MaxQuadIndex!) hacer)
Set /a Subtract_Digit = 1_ % %% i - 2_ % %% i - Subtract_Borrow
If! Subtract_Digit! (LSS 0
Set /a Subtract_Digit += 10000
Set /a Subtract_Borrow = 1
) () otro
Set /a Subtract_Borrow = 0
)
Set /a % 1_ %% i = Subtract_Digit
)
GOTO: EOF

: Comparar
Si define PiDebug echo.Compare %1 %2 %3
Si define PiDebug llamada: imprimir %2
Si define PiDebug llamada: imprimir %3
Set /a Compare_Index = 0
Set 1% = true
: CompareLoop
Si no! % 2% Compare_Index %! ==. 3_ % Compare_Index %! (
Si define PiDebug echo.! 2_ % Compare_Index %! NEQ! 3_ % Compare_Index %!
Set 1% = false
GOTO: EOF
)
Set /a Compare_Index += 1
If! Compare_Index! GTR! MaxQuadIndex! (
Si define PiDebug echo.Compare igual
GOTO: EOF
)
Goto CompareLoop

REM $Log: $ pi.bat,v
REM revisión 1.2 2007/09/06 21:49:15 Don.Cross
REM añade sellos de tiempo y visualización de la fórmula.
REM
REM revisión 1.1 2007/09/06 21:12:36 Don.Cross
REM archivo de cálculo de pi
REM

Es el código guardar como pi.bat o lo que quieras .bat

Artículos Relacionados

Cómo crear un autopatcher para windows xp con archivos por lotes

Cómo crear un autopatcher para windows xp con archivos por lotes

cómo crear un autopatcher para windows xp con archivos por lotesDescripción sólo, fotos nunca pueden existir :)Paso 1: Todos los pasos enumerados aquí porque es duro de leer en varias páginas1. crear una nueva carpeta en el escritorio2. descargar tod
Bloquear carpeta con archivo por lotes

Bloquear carpeta con archivo por lotes

Hola ahora puede fácilmente bloquear el archivo o carpeta en windows sin ningúnsoftware. He creado un archivo por lotes para él. puede descargarlo desde aquí [tamaño: 1 MB] [aquí estoy pidiendo descargar porque contiene más de 1000 línea que no puedo
Cómo hacer un quiz de matemáticas con archivos por lotes.

Cómo hacer un quiz de matemáticas con archivos por lotes.

Crear un nuevo archivo de textoGuardarlo como ".bat"Copia el código en el archivo por lotesCÓDIGO: echo offtitle Math quiz color 09 mode con cols=60 mode con lines=30 setlocal ENABLEDELAYEDEXPANSION set q=0 set g=0 goto cop:cop cls echo. echo. e
¿Cómo iniciar sesión entrada con archivos por lotes

¿Cómo iniciar sesión entrada con archivos por lotes

crear un archivo por lotes muy peligroso, y usted quiere saber cuando la gente utilice los comandos especificados? Este es el instructivo para usted!¿Hacen una IA base de inicio de sesión que escucha tus comandos, y desea saber cuando inicio de sesió
FALSO VIRUS con archivo por lotes

FALSO VIRUS con archivo por lotes

es el mismo quepero se tratara de un archivo por lotes que le da más para jugar con.es simple y divertido que hacer y se puede configurar para hacerlo en momentos específicos.[NO]sistema este por lo que activa cada vez que la persona que firma en él
Falso hacking con archivos por lotes

Falso hacking con archivos por lotes

Crear un nuevo documento de textoGuardarlo como ".bat"Copie y pegue el código en el archivo .batCódigo: off goto start:start title PASSWORD color 0a cls echo. echo. set /p a=. Password: title ERROR CODE: %random% cls echo. echo. echo: ERROR time
Reloj con archivos por lotes de parada

Reloj con archivos por lotes de parada

esto es básicamente un reloj de parada de equipos. Fue "programado" (si se puede llamar así) en simples comandos de MS-DOS.Simplemente copie y pegue el código siguiente en un programa de edición de texto, como Wordpad, Bloc de notas y Notepad ++
Archivos por lotes de ahorro de tiempo

Archivos por lotes de ahorro de tiempo

Esto es lo que aprendí. Solo estoy presentando esto a alguno que tiene problemas de hacer archivos por lotes. ¡Que te diviertas!Paso 1: Los fundamentos1] un XP profesional o Home (tal vez Vista)2] 15 MIN.3] un cerebro promedio [!]4] XP con símbolo de
Ordenador apagado con el tiempo deseado de archivo por lotes

Ordenador apagado con el tiempo deseado de archivo por lotes

Este tipo de archivo por lotes va a apagarse el ordenador automáticamente con el tiempo deseado...Sólo tienes que seguir las instrucciones..!Para este instructivo usted necesitará:1 Bloc de notas2. CMDPaso 1: Abrir notepad.exe1. Ctrl + R2. escriba no
Cómo hacer un Virus falso con un archivo por lotes

Cómo hacer un Virus falso con un archivo por lotes

En este Instructable mostrará usted cómo hacer un archivo por lotes, que deberá engañar a tus amigos en el pensamiento de que su equipo tiene un virus. Se verá algo como la imagen de arriba cuando está en funcionamiento. Al final del programa un mens
Ocultar tu carpeta con el archivo por lotes

Ocultar tu carpeta con el archivo por lotes

Hola,Aquí hemos creado uno con el otro archivo por lotes que puede ocultar/mostrar la carpeta.Usted puede fácilmente modificarlo según su necesidad si sabes programación de archivo por lotes.Usted puede crear según los siguientes pasos o puede descar
Archivo por lotes se estrellara un ordenador

Archivo por lotes se estrellara un ordenador

esta vez mostrará usted cómo crear un archivo por lotes para chocar un ordenador.Esto fue publicado sólo con fines educativos, no para responcible para cualquier uso inadecuado de esta información o los archivos que yo puedo han proporcionado. No qui
Contraseña protegida archivo utilizando archivos por lotes

Contraseña protegida archivo utilizando archivos por lotes

hoy, mostrará usted cómo hacer que un archivo protegido de contraseña que se crea y acceso mediante un archivo por lotes (.bat). El método que va a utilizar es muy simple, pero lamentablemente no es a prueba de tonto. Cualquiera con un poco de conoci
Cómo hacer animaciones de archivo por lotes!

Cómo hacer animaciones de archivo por lotes!

En este instructable voy a mostrarte cómo hacer animaciones de archivos por lotes simple.Similares a lote de "las guerras de la estrella".Así que vamos a empezar!Paso 1: La bola que despide La bola que despide!Después de ver el "lote Star W