标题: [数值计算] 批处理如何把算术题输出到文本? [打印本页]
作者: 6589600 时间: 2008-2-1 16:26 标题: 批处理如何把算术题输出到文本?
想给孩子出几道算术题,网上找不上合适的,辛苦大家帮帮兄弟
主要要求要把题输出到文本以便打印,不想让孩子用电脑做题。光玩不好好做题。
比如20道2位数的加减法 20+15= 88-12= ...
比如20道2位数的乘除法:同上
加减法和乘除法分开不要混出
先谢谢了 !!
作者: foxJL 时间: 2008-2-1 18:46
看看这样行吗?- @echo off
- for %%a in (a,b) do (for /l %%i in (1,1,20) do (call :x %%a))
- pause
- :x
- set /a random1=%random%%%99+1,random2=%random%%%99+1
- set /a sign=random1%%2
- if "%1"=="a" (
- call set sign=%%sign:1=+%%
- call set sign=%%sign:0=-%%
- call echo %random1% %%sign%% %random2%=>>加减.txt
- ) else (
- call set sign=%%sign:1=×%%
- call set sign=%%sign:0=÷%%
- call echo %random1% %%sign%% %random2%=>>乘除.txt
- )
- goto :eof
复制代码
作者: 6589600 时间: 2008-2-1 22:42
谢谢foxJL,好用.
有个小问题
能不能不让加减法出现负数(8-66= )
和乘除法最好整除不出现小数,孩子接受不了,呵呵.
作者: foxJL 时间: 2008-2-1 22:47
呵呵..你小孩多大呀.
你说的可以办到,我再修改一下.
作者: 6589600 时间: 2008-2-1 23:23
7岁,幼儿园的,下学就和我抢电脑.有点烦.呵呵
作者: foxJL 时间: 2008-2-2 00:09
哈哈..还小.别管太紧了,小孩子让他活泼些,将来走进社会才能随机应变.- @echo off&setlocal EnableDelayedExpansion
- ::题目数,可以自已设置
- set num=20
- :x
- set /a random1=%random%%%99+1,random2=%random%%%99+1
- set /a sign=random1%%2
- if %random1% geq %random2% (
- call set sign=%%sign:1=+%%
- call set sign=%%sign:0=-%%
- call echo %random1% %%sign%% %random2%=>>加减.txt
- set /a n+=1
- )
- if !n! equ %num% (goto y) else (goto x)
- :y
- set /a random1=%random%%%99+1,random2=%random%%%99+1
- set /a random2=%random%%%99+1
- set /a sign=random2%%2
- for /l %%i in (5,1,50) do (
- set /a f=%random1% %% %%i
- if !f! equ 0 (call :z %%i))
- :z
- call set sign=%%sign:1=×%%
- call set sign=%%sign:0=÷%%
- call echo %random1% %%sign%% %1=>>乘除.txt
- set /a ns+=1
- if !ns! equ %num% (exit) else (goto y)
复制代码
作者: 6589600 时间: 2008-2-2 16:04
很实用的再次感谢!孩子自己有的干了。
作者: qiang8484 时间: 2008-2-19 09:54 标题: 求教
版主。能教教我批处理吗
QQ402998260
作者: foxJL 时间: 2008-2-19 17:32
论坛是非常好的学习环境,在这里潜水一段时间保证有所收获.
多阅读代码,自己多练习,学会批处理是很快的.
如果有疑问可以发贴提问,版主及会员都非常乐意回答.
作者: 6589600 时间: 2008-2-20 19:14
@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
怎么输出到文本?
作者: foxJL 时间: 2008-2-20 21:09
- @echo off
- for /l %%a in (1,1,9) do (
- for /l %%b in (1,1,%%a) do (
- set /a var=%%a * %%b
- (call set/p=%%a×%%b=%%var%% <nul)>>99乘法表.txt
- if %%a==%%b echo.>>99乘法表.txt
- )
- )
- pause>nul
复制代码
[ 本帖最后由 foxJL 于 2008-2-20 21:10 编辑 ]
作者: fml520 时间: 2008-4-2 13:14
@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
作者: youxi01 时间: 2008-4-2 17:44
提两点建议:
1、将代码用[ code ]和[ /code ]括起来,方便阅读和复制
2、代码稍做修改,可以避开if的检测- @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
- )
- echo.
- )
- pause
复制代码
作者: 随风 时间: 2008-4-7 23:12
减法不出现负数
除法不出现小数。
:- @echo off&setlocal EnableDelayedExpansion
- ::题目数,可以自已设置
- set nnn=20
- :: 乘除
- for /l %%a in (1 1 %nnn%) do (
- set /a n1=!random!%%99+1,n2=!random!%%99+1,f=n1%%2
- set f=!f:0=÷!&set f=!f:1=×!
- if "!f!"=="÷" call :cu
- set n1= !n1!&set "n2= !n2!"
- >>乘除.txt echo !n1:~-2! !f! !n2:~-2! =
- )
- :: 加减
- for /l %%a in (1 1 %nnn%) do (
- set /a n1=!random!%%99+1,n2=!random!%%99+1,f=n1%%2
- set f=!f:0=+!&set f=!f:1=-!
- if "!f!"=="-" set /a n2=!random!%%!n1!+1
- set n1= !n1!&set "n2= !n2!"
- >>加减.txt echo !n1:~-2! !f! !n2:~-2! =
- )
- pause&exit
- :cu
- set /a n1=!random!%%50+2,n2=!random!%%98+2,c=n1*n2
- if !c! geq 100 goto cu
- if !c! equ !n2! (set n2=!c!) else (set n1=!c!)
- goto :eof
复制代码
[ 本帖最后由 随风 于 2008-4-7 23:38 编辑 ]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |