[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]批处理怎样计算三角函数asin和sqrt?

求助,批处理计算三角函数    主要能计算这两个就行 asin反正弦        SQRT平方根

[ 本帖最后由 hkxinghu 于 2010-11-27 08:53 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 20楼 的帖子

这个是可以显示结果的批处理。我给你注释一下
  1. @echo off
  2. echo 输入你的角度和反函数值和求方根的值:
  3. echo 用空格隔开,不求的请用 . 代替。如 30 0.5 25或者 30 . 25
  4. :begin
  5. set /p input=输入:
  6. for /f "tokens=1-3 delims= " %%a in ("%input%") do (
  7.   rem 下面这个for 是调用VBS 进行计算
  8.   for /f "skip=2 delims=" %%i in ('cscript.exe calc.vbs %%a %%b %%c') do (
  9.   rem 这个就是显示结果的命令。用echo 把计算的结果显示出来。
  10.   rem 如果你需要调用结果,那个你可以进行变量的赋值。
  11.   rem 比如可以把变量赋值给t : set t=%%i
  12.   rem 这样下面就可以用%t%进行计算了。
  13.   rem 这个只是一个举例,你可以根据自己的需求进行修改。
  14.   echo %%i
  15.   )
  16. )
  17. pause>nul&echo\&goto begin
复制代码
1

评分人数

---学无止境---

TOP

回复 15楼 的帖子

谢谢 这个VBS加批处理很好的计算平方根和反正弦  这两个结果我再下面的计算中还需要引用  怎么引用啊 能不能 set /p 反正弦=ArcSin       %反正弦%          因为我还要对这个计算结果进行加减乘除运算  请指点谢谢

TOP

如下示例(保留两位小数):

  1. @echo off
  2. set /p str=请输入要计算的正弦值:
  3. echo =round^(sin^(radians^(%str%^)^),2^)>temp.xls
  4. start temp.xls
复制代码
***共同提高***

TOP

偶然中翻到此贴,个人觉得可以利用批+excel的函数来解决这一问题
***共同提高***

TOP

  1. '&echo off&cls 2>nul 3>nul
  2. '&set /p n=Input:
  3. '&for /f %%a in ('cscript /e:vbs /nologo "%~f0" %n%') do set r=%%a
  4. '&echo The Square Root Of %n% Is %r%
  5. '&pause
  6. wscript.echo sqr(wscript.arguments(0))
复制代码
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

谢谢 辛苦了

TOP

这个VBS保存为calc.vbs,与批处理放一起
  1. dim i,objArgs
  2. set objArgs = Wscript.Arguments
  3. if objArgs(0) <> "." then
  4.   Wscript.echo "sin("& objArgs(0) & ")=" & sin(objArgs(0)*3.14159/180)
  5.   Wscript.echo "cos("& objArgs(0) & ")=" & cos(objArgs(0)*3.14159/180)
  6.   Wscript.echo "tan("& objArgs(0) & ")=" & tan(objArgs(0)*3.14159/180)
  7. end if
  8. if objArgs(1) <> "." then
  9. Wscript.echo "ArcSin("& objArgs(1) & ")=" & atn(objArgs(1)/Sqr(1-objArgs(1)*objArgs(1)))*180/3.14159
  10. end if
  11. if objArgs(2) <> "." then
  12. Wscript.echo "Sqr(" & objArgs(2) & ")=" & Sqr(objArgs(2))
  13. end if
复制代码
在命令行下的用法:
   cscript.exe calc.vbs 角度值 反函数值 开根值                  
  1. cscript.exe calc.vbs 30 0.5 25
复制代码
不求的请用 . 代替。如
  1. cscript.exe calc.vbs 30 0.5 .
复制代码
下面是我写的一个样本批处理,你可以参照修改:
  1. @echo off
  2. echo 输入你的角度和反函数值和求方根的值:
  3. echo 用空格隔开,不求的请用 . 代替。如 30 0.5 25或者 30 . 25
  4. :begin
  5. set /p input=输入:
  6. for /f "tokens=1-3 delims= " %%a in ("%input%") do (
  7.   for /f "skip=2 delims=" %%i in ('cscript.exe calc.vbs %%a %%b %%c') do (
  8.   echo %%i
  9.   )
  10. )
  11. pause>nul&echo\&goto begin
复制代码

[ 本帖最后由 broly 于 2010-11-8 10:56 编辑 ]
1

评分人数

---学无止境---

TOP

回复 13楼 的帖子

好吧,给你写一个类似第三方软件的VBS。
---学无止境---

TOP

想写批处理啊 能引用结果的批处理   要是批处理不能实现 VBS也行  批处理不是能调用VBS吗 不能引用他的结果吗

TOP

回复 11楼 的帖子

你现在是要写批处理还是VBS?写VBS得到的结果,只能在VBS下运用
---学无止境---

TOP

回复 9楼 的帖子

写VBS能实现也可以的  期待。。。。。。。。。

TOP

那个是反正弦

TOP

这样实现调用结果很麻烦的,还不如直接写一个vbs,而不是批处理

TOP

回复 6楼 的帖子

谢谢高手帮忙   这样计算的结果不能引用吧   我还想在下面的算式中引用这个结果怎么弄啊 还有这是算asin反正弦 还是 SQRT平方根的啊  请指点

TOP

返回列表