Quick actions

cmd+k|ctrl+k

Navigation

Languages

加减法20以内,各50个

Snippet info

Language

Ruby

Visibility

public

Author

jiemnij

Created

2017-03-08T03:00:15Z

Updated

2017-03-08T03:10:16Z

ADD_X_RANGE = (1..20)		#第一个加数的范围
ADD_Y_RANGE = (1..20)		#第二个加数的范围
ADD_RES_MAX = 20			#加法和最大值
ADD_RES_MIN = 10			#加法和最小值
ADD_FORMULA_CNTS = 50		#加法算式总的个数

DEC_X_RANGE = (10..20)		#第一个减数的范围
DEC_Y_RANGE = (1..20)		#第二个减数的范围
DEC_FORMULA_CNTS = 50		#减法算式总的个数


LINE_CNTS = 5				#每行算式个数

res = {}
while res.size < ADD_FORMULA_CNTS do
	x =  rand(ADD_X_RANGE)
	y =  rand(ADD_Y_RANGE)
	if (x+y) <= ADD_RES_MAX && (x+y) > ADD_RES_MIN
		key = sprintf("%d+%d", x, y)
		str = sprintf("%-2d + %-2d =     ", x, y)
		res[key] = str
	end 
end


while res.size < (DEC_FORMULA_CNTS + ADD_FORMULA_CNTS) do
	x =  rand(DEC_X_RANGE)
	y =  rand(DEC_Y_RANGE)
	if (x-y) > 0
		key = sprintf("%d-%d", x, y)
		str = sprintf("%-2d - %-2d =     ", x, y)
		res[key] = str
	end 
end



out_tab = res.to_a
line = 0
out = {}
out_size = 0
while out_size < 100 do
	i = rand(0..99)
	out[i] = i
	if out_size != out.size
		printf(out_tab[i][1])
		line = line + 1
	
		if line == LINE_CNTS
			puts ""
			puts ""
			line = 0
		end

		out_size = out.size
	end
end


INFO