loop do print(" 这是解一次方程机!\n 请输入方程的元的数量!\n") @unknown = gets.to_f.to_i if [email protected]?(1, 3) print(" 元的数量必须少于4且为正整数!\n\n") next end print(" ax = b\n 请输入常数的值:\n a = \n b = \n 输入格式为“[a, b]”。\n") if @unknown == 1 print(" a1x + b1y = c1\n a2x + b2y = c2\n 请输入常数的值:\n a1 = a2 = \n b1 = b2 = \n c1 = c2 = \n 输入格式为“[a1, a2, b1, b2, c1, c2]”。\n") if @unknown == 2 print(" a1x + b1y + c1z = d1\n a2x + b2y + c2z = d2\n a3x + b3y + c3z = d3\n 请输入常数的值:\n a1 = a2 = a3 = \n b1 = b2 = b3 = \n c1 = c2 = c3 = \n d1 = d2 = d3 = \n 输入格式为“[a1, a2, a3, b1, b2, b3, c1, c2, c3, d1, d2, d3]”。\n") if @unknown == 3 begin @ary = eval(gets) rescue print(" 非法的输入!\n\n") next end if @ary.class != Array print(" 非法的输入!\n\n") next end begin @result = [@ary[1] / @ary[0].to_f] if @unknown == 1 @result = [((@ary[4] * @ary[3] - @ary[5] * @ary[2]) / (@ary[0] * @ary[3] - @ary[1] * @ary[2]).to_f), ((@ary[0] * @ary[5] - @ary[1] * @ary[4]) / (@ary[0] * @ary[3] - @ary[1] * @ary[2]).to_f)] if @unknown == 2 @result = [((@ary[9] * @ary[4] * @ary[8] + @ary[10] * @ary[5] * @ary[6] + @ary[11] * @ary[3] * @ary[7] - @ary[9] * @ary[5] * @ary[7] - @ary[10] * @ary[3] * @ary[8] - @ary[11] * @ary[4] * @ary[6]) / (@ary[0] * @ary[4] * @ary[8] + @ary[1] * @ary[5] * @ary[6] + @ary[2] * @ary[3] * @ary[7] - @ary[0] * @ary[5] * @ary[7] - @ary[1] * @ary[3] * @ary[8] - @ary[2] * @ary[4] * @ary[6]).to_f), ((@ary[0] * @ary[10] * @ary[8] + @ary[1] * @ary[11] * @ary[6] + @ary[2] * @ary[9] * @ary[7] - @ary[0] * @ary[11] * @ary[7] - @ary[1] * @ary[9] * @ary[8] - @ary[2] * @ary[10] * @ary[6]) / (@ary[0] * @ary[4] * @ary[8] + @ary[1] * @ary[5] * @ary[6] + @ary[2] * @ary[3] * @ary[7] - @ary[0] * @ary[5] * @ary[7] - @ary[1] * @ary[3] * @ary[8] - @ary[2] * @ary[4] * @ary[6]).to_f), ((@ary[0] * @ary[4] * @ary[11] + @ary[1] * @ary[5] * @ary[9] + @ary[2] * @ary[3] * @ary[10] - @ary[0] * @ary[5] * @ary[10] - @ary[1] * @ary[3] * @ary[11] - @ary[2] * @ary[4] * @ary[9]).to_f)] if @unknown == 3 rescue print(" 非法的输入!\n\n") next end print(" 解为\n") print(" x = #{@result[0]}\n") if @unknown >= 1 print(" y = #{@result[1]}\n") if @unknown >= 2 print(" z = #{@result[2]}\n") if @unknown >= 3 print(" 谢谢使用解一次方程机!\n\n") end