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

[数值计算] 批处理如何把算术题输出到文本?

想给孩子出几道算术题,网上找不上合适的,辛苦大家帮帮兄弟
主要要求要把题输出到文本以便打印,不想让孩子用电脑做题。光玩不好好做题。
比如20道2位数的加减法 20+15=  88-12= ...
比如20道2位数的乘除法:同上
加减法和乘除法分开不要混出
先谢谢了 !!

看看这样行吗?
  1. @echo off
  2. for %%a in (a,b) do (for /l %%i in (1,1,20) do (call :x %%a))
  3. pause
  4. :x
  5. set /a random1=%random%%%99+1,random2=%random%%%99+1
  6. set /a sign=random1%%2
  7. if "%1"=="a" (
  8. call set sign=%%sign:1=+%%
  9. call set sign=%%sign:0=-%%
  10. call echo %random1% %%sign%% %random2%=>>加减.txt
  11. ) else (
  12. call set sign=%%sign:1=×%%
  13. call set sign=%%sign:0=÷%%
  14. call echo %random1% %%sign%% %random2%=>>乘除.txt
  15. )
  16. goto :eof
复制代码

TOP

谢谢foxJL,好用.
有个小问题
能不能不让加减法出现负数(8-66= )
和乘除法最好整除不出现小数,孩子接受不了,呵呵.

TOP

呵呵..你小孩多大呀.
你说的可以办到,我再修改一下.

TOP

7岁,幼儿园的,下学就和我抢电脑.有点烦.呵呵

TOP

哈哈..还小.别管太紧了,小孩子让他活泼些,将来走进社会才能随机应变.
  1. @echo off&setlocal EnableDelayedExpansion
  2. ::题目数,可以自已设置
  3. set num=20
  4. :x
  5. set /a random1=%random%%%99+1,random2=%random%%%99+1
  6. set /a sign=random1%%2
  7. if %random1% geq %random2% (
  8. call set sign=%%sign:1=+%%
  9. call set sign=%%sign:0=-%%
  10. call echo %random1% %%sign%% %random2%=>>加减.txt
  11. set /a n+=1
  12. )
  13. if !n! equ %num% (goto y) else (goto x)
  14. :y
  15. set /a random1=%random%%%99+1,random2=%random%%%99+1
  16. set /a random2=%random%%%99+1
  17. set /a sign=random2%%2
  18. for /l %%i in (5,1,50) do (
  19. set /a f=%random1% %% %%i
  20. if !f! equ 0 (call :z %%i))
  21. :z
  22. call set sign=%%sign:1=×%%
  23. call set sign=%%sign:0=÷%%
  24. call echo %random1% %%sign%% %1=>>乘除.txt
  25. set /a ns+=1
  26. if !ns! equ %num% (exit) else (goto y)
复制代码
1

评分人数

TOP

很实用的再次感谢!孩子自己有的干了。

TOP

求教

版主。能教教我批处理吗
QQ402998260

TOP

论坛是非常好的学习环境,在这里潜水一段时间保证有所收获.
多阅读代码,自己多练习,学会批处理是很快的.
如果有疑问可以发贴提问,版主及会员都非常乐意回答.

TOP

@echo off
:: 99 乘法表
setlocal enabledelayedexpansion
for /l %%a in (1,1,9) do (
        for /l %%b in (1,1,%%a) do (
        set /a i+=1
        set /a ans=%%a*%%b
        set ans=%%b×%%a=!ans!  
        set res=!res! !ans:~0,6!
        if !i! equ %%a echo!res!&set res=& set i=0
)
)

pause
怎么输出到文本?

TOP

  1. @echo off
  2. for /l %%a in (1,1,9) do (
  3. for /l %%b in (1,1,%%a) do (
  4.   set /a var=%%a * %%b
  5.   (call set/p=%%a×%%b=%%var%%  <nul)>>99乘法表.txt
  6.   if %%a==%%b echo.>>99乘法表.txt
  7. )
  8. )
  9. pause>nul
复制代码

[ 本帖最后由 foxJL 于 2008-2-20 21:10 编辑 ]

TOP

@echo off
for /l %%a in (1,1,9) do (
for /l %%b in (1,1,%%a) do (
  set /a var=%%b * %%a
  (call set/p=%%b×%%a=%%var%%  <nul)>>99乘法表.txt
  if %%a==%%b echo.>>99乘法表.txt
)
)
pause
@set,=学无止境
@for /l %%b in (0,1,6) do @call set/p= %%,:~%%b,1%%<nul

TOP

提两点建议:
1、将代码用[ code ]和[  /code ]括起来,方便阅读和复制
2、代码稍做修改,可以避开if的检测
  1. @echo off
  2. for /l %%a in (1,1,9) do (
  3. for /l %%b in (1,1,%%a) do (
  4.   set /a var=%%b * %%a
  5.   call set/p=%%b×%%a=%%var%%  <nul
  6. )
  7. echo.
  8. )
  9. pause
复制代码

TOP

减法不出现负数
除法不出现小数。
:
  1. @echo off&setlocal EnableDelayedExpansion
  2. ::题目数,可以自已设置
  3. set nnn=20
  4. :: 乘除
  5. for /l %%a in (1 1 %nnn%) do (
  6.    set /a n1=!random!%%99+1,n2=!random!%%99+1,f=n1%%2
  7.    set f=!f:0=÷!&set f=!f:1=×!
  8.    if "!f!"=="÷" call :cu
  9.    set n1= !n1!&set "n2= !n2!"
  10.    >>乘除.txt echo !n1:~-2! !f! !n2:~-2! =
  11. )
  12. :: 加减
  13. for /l %%a in (1 1 %nnn%) do (
  14.    set /a n1=!random!%%99+1,n2=!random!%%99+1,f=n1%%2
  15.    set f=!f:0=+!&set f=!f:1=-!
  16.    if "!f!"=="-" set /a n2=!random!%%!n1!+1
  17.    set n1= !n1!&set "n2= !n2!"
  18.    >>加减.txt echo !n1:~-2! !f! !n2:~-2! =
  19. )
  20. pause&exit
  21. :cu
  22.   set /a n1=!random!%%50+2,n2=!random!%%98+2,c=n1*n2
  23.   if !c! geq 100 goto cu
  24.   if !c! equ !n2! (set n2=!c!) else (set n1=!c!)
  25. goto :eof
复制代码

[ 本帖最后由 随风 于 2008-4-7 23:38 编辑 ]
技术问题请到论坛发帖求助!

TOP

返回列表