Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- setlocal enabledelayedexpansion
- :sqrt
- set toparse=0
- set answer=
- set partpartans=0
- set partans=
- set part=0
- set adder=00
- set operation=00
- set precision=0
- cls
- echo _______________________
- echo.
- echo Square Root Calculator
- echo _______________________
- echo.
- set/p toparse=" Enter number: "
- set/p precision=" Enter precision: "
- call :StrLen toparse lengthh
- set /a "length=%lengthh%-1"
- set number=
- set decimal=no
- for /l %%l in (0,1,%length%) do (
- set now=!toparse:~%%l,1!
- if not !now!==. set number=!number!!now!
- if !now!==. (
- set/a "decimal=(%%l+1)/2"
- set/a "decimalpos=%%l+1"
- )
- )
- set newlen=%length%
- if not %decimal%==no set/a newlen=%length%-1
- if %decimal%==no set/a decimalpos="%lengthh%+1"
- if %decimal%==no set/a decimal=(%lengthh%+1)/2
- set/a septest=%decimalpos%-1
- set/a sepmod="!septest! %% 2"
- set sepstart=0
- if %sepmod%==1 (
- set sepstart=1
- set cut1=!number:~0,1!
- )
- for /l %%c in (%sepstart%,2,%newlen%) do (
- set now=!number:~%%c,2!
- set/a nowcut=%%c+1
- set cut!nowcut!=!now!
- )
- call :StrLen cut!nowcut! multip
- if %multip%==1 set/a cut!nowcut!="cut!nowcut!*10"
- for /l %%p in (1,1,!precision!) do (
- if %%p leq !nowcut! set operation=!cut%%p!
- if not %%p leq !nowcut! set operation=00
- set/a "pminus=%%p-1"
- if "!decimal!"=="!pminus!" set answer=!answer!.
- if %%p==1 set/a "subtracted=!operation!"
- for /l %%i in (0,1,9) do (
- set /a "part=20*!partpartans!*%%i+%%i*%%i"
- if !part! leq !subtracted! set partans=%%i
- )
- set/a "finalpart=20*%partpartans%*!partans!+!partans!*!partans!"
- echo - finalpart: !finalpart!
- set "answer=!answer!!partans!"
- set "partpartans=!partpartans!%partans%"
- if %%p==1 set "partpartans=!partans!"
- set/a pplus=%%p+1
- echo !pplus!
- if !pplus! leq !nowcut! call set adder=%%cut!pplus!%%
- if not !pplus! leq !nowcut! set "adder=0"
- echo adder: !adder!
- if !precision! geq 2 (
- if not %%p==!precision! (
- set/a subtracted="!subtracted!-!finalpart!"
- set/a subtracted="!subtracted!*100"
- set/a subtracted="!subtracted!+!adder!"
- )
- )
- )
- echo _______________________
- echo.
- echo Answer: !answer!
- echo _______________________
- pause >nul
- exit
- :StrLen
- setlocal disabledelayedexpansion
- set len=0
- if defined %~1 for /f "delims=:" %%n in (
- '"(cmd /v:on /c echo(!%~1!&echo()|findstr /o ^^"'
- ) do set /a "len=%%n-3"
- endlocal & if "%~2" neq "" (set %~2=%len%) else echo %len%
- exit /b
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement