回 帖 发 新 帖 刷新版面

主题:QB的循环语句的程序

打印图形。打印0~2π之间的正弦曲线。要求每隔10°打一个“*”,图形尽量安排在屏幕的中央

编程:在下面的()内填入一个相同数字使等式成立。
( )3×6528=3( )×8256

所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:1^3+5^3+3^3=153,编程求100~999之间的所有“水仙花数”

设计一个能将十进制数转换成二进制数的程序

回复列表 (共17个回复)

沙发

1 不是很清楚,因为竞赛不做要求
2 直接枚举例0-9就可以了
3 直接枚举
4 用数学方法

板凳

十进制向二进制转换
DECLARE FUNCTION bin$ (x AS LONG)
CLS
PRINT bin$(1234567890)
PRINT bin$(&H12345678)
END

FUNCTION bin$ (x AS LONG)
  tmp$ = ""
  DO WHILE x <> 0
    IF x AND 1 THEN
      tmp$ = "1" + tmp$
    ELSE
      tmp$ = "0" + tmp$
    END IF
    x = x \ 2   '整数除法
  LOOP
  bin$ = RIGHT$(STRING$(32, "0") + tmp$, 32)
END FUNCTION

显示结果
01001001100101100000001011010010
00010010001101000101011001111000

3 楼

FOR n = 100 TO 999
   a = n \ 100
   b = (n \ 10) MOD 10
   c = n MOD 10
   IF a * a * a + b * b * b + c * c * c = n THEN PRINT n
   NEXT n

4 楼

编程:在下面的()内填入一个相同数字使等式成立。
( )3×6528=3( )×8256
  DIM n AS LONG
 DIM m AS LONG
FOR i = 1 TO 9
 n = (i * 10 + 3) * 6528
 m = 30 * i * 8256
   IF m = n THEN PRINT i
NEXT i

5 楼

编程:在下面的()内填入一个相同数字使等式成立。
( )3×6528=3( )×8256
for i = 1 to 9
a=(10*i+3)*6528
b=(30+i)*8256
if a=b=0 then print i
next i

使用IF a * a * a + b * b * b + c * c * c = n THEN PRINT n这样的语句QB无法执行

所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:1^3+5^3+3^3=153,编程求100~999之间的所有“水仙花数”

FOR I = 100 TO 999
FOR A = 1 TO 9
FOR B = 0 TO 9
FOR C = 0 TO 9
I = 100*A+10*B+C
S = A^3+B^3+C^3
IF I - S = 0 THEN PRINT S
NEXT C,B,A,I
我刚学QB没有学过定义,所以我想让大家用循环来做。谢谢大家的的回复

6 楼

可否讲一下qbasic 循环语句

7 楼

cls
FOR a$=1 to 9            "$"是代表字符     
   for b$=1 to 9
      for c$=1 to 9
if a$ + b$ + c$=a$^3 + b$^3+c$^3 then print a$;b$;c$
    next c$,b$,a$
end
也是个菜鸟,我看应该不错吧,只是不知道PRINT 后边那样写对不对

谁给评价下

8 楼

$是字符串变量的后缀,不能用在数值变量中。

9 楼

QBASIC的循环语句有三个FOR-NEXT,WHILE,DO。FOR-NEXT适用于知道了要循环的步数;WHILE,DO适用于不知到有多少步的循环。其中DO有四种:DO WHILE[表达式]LOOP;DO[循环体]LOOP WHILE [表达式];DO UNTIL[表达式]LOOP;DO[循环体]LOOP UNTIL。WHILE与UNTIL的循环条件相反。

10 楼

还有问题吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册