主题:[讨论]那个帮下忙这个我头都想痛了,网站都翻出花格了都不知道那么弄
abcdk10
[专家分:0] 发布于 2006-09-21 23:09:00
IF u = 1 THEN m$ = "+": k = k + 1
IF u = 2 THEN m$ = "-": k = k + 1
IF u = 3 THEN m$ = "*": k = k + 1
IF u = 4 THEN m$ = "/": k = k + 1
IF i = 1 THEN n$ = "+": k = k + 1
IF i = 2 THEN n$ = "-": k = k + 1
IF i = 3 THEN n$ = "*": k = k + 1
IF i = 4 THEN n$ = "/": k = k + 1
y = a m$ s n$ s
PRINT y
这里面的 m$ 那么才能进行正常的计算嘛?请知道的写下,我在这谢谢了
回复列表 (共9个回复)
沙发
maxumi [专家分:2200] 发布于 2006-09-22 07:41:00
晕, + - * / 不是这么用的
IF u = 1 THEN y = a + s: k = k + 1
IF u = 2 THEN y = a - s: k = k + 1
IF u = 3 THEN y = a * s: k = k + 1
IF u = 4 THEN y = a / s: k = k + 1
IF i = 1 THEN y = a + s: k = k + 1
IF i = 2 THEN y = a - s: k = k + 1
IF i = 3 THEN y = a * s: k = k + 1
IF i = 4 THEN y = a / s: k = k + 1
PRINT y
-----------------------------------
恩 刚刚看见你的前一个帖了 原来你是要输出表达式 算我理解错误
IF u = 1 THEN m$ = "+": k = k + 1
IF u = 2 THEN m$ = "-": k = k + 1
IF u = 3 THEN m$ = "*": k = k + 1
IF u = 4 THEN m$ = "/": k = k + 1
IF i = 1 THEN n$ = "+": k = k + 1
IF i = 2 THEN n$ = "-": k = k + 1
IF i = 3 THEN n$ = "*": k = k + 1
IF i = 4 THEN n$ = "/": k = k + 1
[color=red]y = ltrim$(str$(a)) + m$ + ltrim$(str$(s)) + n$ + ltrim$(str$(s))[/color]
PRINT y
以上
板凳
老大徒伤悲 [专家分:29120] 发布于 2006-09-22 08:17:00
建议使用多分支开关;并把公共语句合并。
10 k = k + 1
20 on u goto 30,40,50,60
30 m$ = "+" :goto 70
40 m$ = "-": goto 70
50 m$ = "*": goto 70
60 m$ = "/"
70 k = k + 1
80 on i goto 90,100,110,120
90 n$ = "+": goto 130
100 n$ = "-": goto 130
110 n$ = "*": goto 130
120 n$ = "/"
130 y$ = str(a) + m$ + str(s) + n$ +str(s) '如果a,s都是数值变量
PRINT y
3 楼
maxumi [专家分:2200] 发布于 2006-09-22 08:53:00
[quote]建议使用多分支开关;并把公公语句合并。
10 k = k + 1
20 on u goto 30,40,50,60
30 m$ = "+" :goto 70
40 m$ = "-": goto 70
50 m$ = "*": goto 70
60 m$ = "/"
70 k = k + 1
80 on i goto 90,100,110,120
90 n$ = "+": goto 130
100 n$ = "-": goto 130
110 n$ = "*": goto 130
120 n$ = "/"
130 y$ = val(a) + m$ + val(s) + n$ + val(s) '如果a,s都是数值变量
PRINT y[/quote]
多分支还是用select case比较好
val是把字符串转化成数值
PS:论坛的"引用" 有问题, 直接导致空格全部变成 .................- -b
4 楼
老大徒伤悲 [专家分:29120] 发布于 2006-09-22 10:32:00
奥,要说起来select我还熟悉一点。但是我忘记了qb里面是on goto,还是select。
val是不对,应该是str吧?也许是string?唉,qb忘记的差不多了!哈哈哈哈哈
5 楼
moz [专家分:37620] 发布于 2006-09-22 11:16:00
? str$(a) + mid$("+-*/",u,1) + str$(s) + mid$("+-*/",i,1) + str$(s)
6 楼
abcdk10 [专家分:0] 发布于 2006-09-22 18:03:00
但是这条还是不能成立那个帮下忙嘛5555
y$ = str(a) + m$ + str(s) + n$ + str(s)
我在把全不代码写下来:
CLS
RANDOMIZE TIMER
k = 0
30 z = 1000
m = 4000
r = 1
ssx = 4
a = INT((z - r + 1) * RND + r)
s = INT((m - r + 1) * RND + r)
u = INT((ssx - r + 1) * RND + r)
i = INT((ssx - r + 1) * RND + r)
IF u = 1 THEN m$ = "+": k = k + 1
IF u = 2 THEN m$ = "-": k = k + 1
IF u = 3 THEN m$ = "*": k = k + 1
IF u = 4 THEN m$ = "/": k = k + 1
IF i = 1 THEN n$ = "+": k = k + 1
IF i = 2 THEN n$ = "-": k = k + 1
IF i = 3 THEN n$ = "*": k = k + 1
IF i = 4 THEN n$ = "/": k = k + 1
y$ = str(a) + m$ + str(s) + n$ + str(s)
PRINT y$
PRINT a; m$; s; n$; s; "=?": INPUT "huei da zhe dao ti~~~!! :", x
IF y <> x THEN PRINT "ni huei da cuo la~~~da an wei~~!!", y$
IF y$ = x THEN k = 10
IF k = 10 THEN PRINT "gong xi ni huei da zheng qie ~~~hehe": END
GOTO 30
END
7 楼
abcdk10 [专家分:0] 发布于 2006-09-22 23:58:00
没办法,没人回答我就只有用最笨的办法了:
a = INT((z - r + 1) * RND + r)
s = INT((m - r + 1) * RND + r)
h = INT((m - r + 1) * RND + r)
u = INT((ssx - r + 1) * RND + r)
i = INT((ssx - r + 1) * RND + r)
IF u = 1 THEN m$ = "+": k = k + 1
IF u = 2 THEN m$ = "-": k = k + 1
IF u = 3 THEN m$ = "*": k = k + 1
IF u = 4 THEN m$ = "/": k = k + 1
IF i = 1 THEN n$ = "+": k = k + 1
IF i = 2 THEN n$ = "-": k = k + 1
IF i = 3 THEN n$ = "*": k = k + 1
IF i = 4 THEN n$ = "/": k = k + 1
IF u = 1 AND i = 1 THEN y = a + s + h
IF u = 1 AND i = 2 THEN y = a + s - h
IF u = 1 AND i = 3 THEN y = a + s * h
IF u = 1 AND i = 4 THEN y = a + s / h
IF u = 2 AND i = 1 THEN y = a - s + h
IF u = 2 AND i = 2 THEN y = a - s - h
IF u = 2 AND i = 3 THEN y = a - s * h
IF u = 2 AND i = 4 THEN y = a - s / h
IF u = 3 AND i = 1 THEN y = a * s + h
IF u = 3 AND i = 2 THEN y = a * s - h
IF u = 3 AND i = 3 THEN y = a * s * h
IF u = 3 AND i = 4 THEN y = a * s / h
IF u = 4 AND i = 1 THEN y = a / s + h
IF u = 4 AND i = 2 THEN y = a / s - h
IF u = 4 AND i = 3 THEN y = a / s * h
IF u = 4 AND i = 4 THEN y = a / s / h
哎
8 楼
moz [专家分:37620] 发布于 2006-09-23 11:03:00
简直一塌糊涂,变量没预定义没后缀的,默认为单精度,字符串要加后缀.
vb函数可以不加$,但qb要加.
而且你的变量类型用得乱七八糟,
字符串与数值都拿来比较和计算,拜托了.
在程序里,r的值从没改变过,根本是一个常数值,还非得+r-1,浪费.
deflng a-z
randomize timer
for k=1 to 5
a=1001*rnd
b=4001*rnd
c=4001*rnd
i=3*rnd+1
j=3*rnd+1
if j>2 and i<3 then
p=suan(a,i,suan(b,j,c))
else
p=suan(suan(a,i,b),j,c)
end if
print a; mid$("+-*/",i,1);b mid$("+-*/",j,1) c;
input ;"=",q
if p=q then print " You are right." else print " You are wrong! The answer is";p
next
function suan(x,y,z)
select case y
case 1 : suan=x+z
case 2 : suan=x-z
case 3 : suan=x*z
case 4 : suan=x/z
end select
end function
9 楼
abcdk10 [专家分:0] 发布于 2006-09-23 12:49:00
怪我学术不精,才学这个1天没办法
我来回复