我目前被 GW-BASIC 的以下错误消息所困扰:
Syntax error in 450
Ok
450 STEP=0
Run Code Online (Sandbox Code Playgroud)
这是上下文:
400 ON KEY(13) GOSUB 590 ' right arrow key makes direction clockwise
410 ON KEY(12) GOSUB 610 ' left arrow key makes direction counter-clockwise
420 ON KEY(11) GOSUB 630 ' up arrow makes faster
430 ON KEY(14) GOSUB 670 ' down arrow makes slower
440 '
450 STEP=0
460 OUT DATAPORT, 0
Run Code Online (Sandbox Code Playgroud)
我尝试过使用和不使用 LET 关键字的赋值,结果相同。我看不出我的代码有什么问题。
谢谢。
我正在尝试编写一个程序,用于将 1 到 n 的自然数相加(1 + 2 + 3 + ... + n)。但是,当我使用语句时,总和显示为1 if。当我使用for-next语句时,出现我不明白的语法错误。
if:
30 let s = 0
40 let i = 1
50 s = s + i
60 i = i + 1
70 if i<=n, then goto 50
80 print s
Run Code Online (Sandbox Code Playgroud)
for-next:
30 let i, s
40 s = 0
50 for i = 1 to n
60 s = s + i
70 next i
80 print n
Run Code Online (Sandbox Code Playgroud)
我目前正在将一堆旧的GWBASIC代码重构为python,以便可以在较新的计算机上运行。它们都是古老的工程数学程序,这些数学运算量很大,并且在整个过程中都大量使用GOTO语句。
我只是想知道您如何重构该语句?您是否只是在全局范围内声明所有变量并编写将对其进行修改的函数,还是只需要重写程序逻辑以使传递值有意义,或者是否有更好的方法呢?
下面的代码片段:
25 INPUT "EXISTING FILE (Y/N)";EF$
30 IF EF$="Y" OR EF$="y" THEN 4000
40 LOCATE 4,1:PRINT USING "<######> NUMBER OF JOINTS";NON+1;:GOSUB 1400:IF D$="" THEN 50 ELSE NON=VAL (D$)-1
50 PRINT:PRINT USING "<######> NUMBER OF MEMBER GROUPS";MG+1;:GOSUB 1400:IF D$="" THEN 60 ELSE MG=VAL (D$)-1
60 PRINT:PRINT USING "<######> NUMBER OF MEMBERS";M+1;:GOSUB 1400:IF D$="" THEN 70 ELSE M=VAL (D$)-1
70 PRINT:PRINT USING "<######> NUMBER OF SUPPORTS";NS+1;:GOSUB 1400:IF D$="" THEN 75 ELSE NS=VAL (D$)-1
75 E=200000!:PRINT:PRINT USING "<#########> YOUNGS MODULUS (MPa)";E;:GOSUB …Run Code Online (Sandbox Code Playgroud) 我正在将 GW-BASIC 代码转换为 C#,并且总体上在 BASIC 语言方面的经验非常有限。我试图了解 IF...THEN...GOTO 语句的行为方式。例如,我有以下声明:
85 IF M(3,1)>M(2,1) THEN 95
90 M(3,1)=M(3,1)+P2
95 Z1=R1*(90.567-41.685/M(2,3))
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果不满足第85行的条件,它是否仍然执行第95行的代码,或者跳过它?
任何方向将不胜感激...
我一直在寻找Windows 7(64位)的GW-Basic,但找不到兼容版本。
搜索之后,我了解了将用于GW-Basic程序的QBasic。
请帮助我为GW-Basic设置环境。