我正在将一个过时的旧GW-BASIC程序翻译成JavaScript,而且我遇到了一段令我难过的语法.注意(再次):完全不是我的代码,变量名称都是疯狂的,这就是为什么我首先移植它.
1380 Z = 1
1390 RATIO = FCO2 /(1-FCO2-10^REFFO2)
1400 AA =(1 - 2*RATIO*(100 / MIXRATIO - 1))/(1 + 2*(100 / MIXRATIO - 1))
1410 PART = LOG(1 - AA)- LOG(100 / MIXRATIO - 1)
1420 FOR I = 1 TO - 1 STEP -2
1430 H = I
1440 W = T + H
1450 GG = 62.110326# - .02144446#*W + 4.720326E-07*(W^ 2)+(- 4.5574288#)*(10^(- 12))*(W^ 3)- 7.343018200000001#*(10^(- 15))*(W^ 4)
1460 KK = EXP(- GG /(R*(W + 273.18)))
1470 …Run Code Online (Sandbox Code Playgroud) 我父亲在80年代学习编程,他仍然坚持使用GW-BASIC(以此为生.)他被要求创建一个CSV文件,但他只知道如何创建固定宽度记录的文件.
我在网上发现打开纯文本文件的语法是:
OPEN file$ FOR OUTPUT as #1
Run Code Online (Sandbox Code Playgroud)
但他声称这不起作用.他使用的解释器是版本2.01.根据维基百科,最"现代"的版本是3.23(1988).
有谁知道如何在这样一个过时的GW-BASIC版本中创建纯文本文件?
我不知道美国和英国,但在印度,学校仍然教授GW-BASIC.是的,它就是:
10 PRINT "HELLO WORLD"
20 GOTO 10
Run Code Online (Sandbox Code Playgroud)
就我的经验而言,即使编写汇编程序也比这种混乱的语言更容易.它可以很容易地被像Python这样的东西取代,这将使学生更容易理解编程的基本概念,并帮助他们理解他们做得更好的背后的逻辑.
好吧,我突然错过了GW-Basic,所以我想在我的新Ubuntu盒子中安装一个.我有很长时间没有为GW-Basic编程,所以我不知道是否有新版本.我从旧的DOS 3.3框中复制了GWBASIC.EXE,但似乎没有开始使用Wine.我猜它是16位,所以Wine不会支持它.
有像286模拟器的东西?或者我应该像Vmware一样运行一些昂贵的虚拟机?不好了.
我有一个旧的.bas文件,我正在尝试查看并遇到一些问题.在线搜索似乎表明我应该能够在记事本或类似的情况下打开它,但这样做会给我带来胡言乱语,如下所示:
þ*©¿TÜ…7[/C̸yõ»€¹Ù<Ñ~Æ-$Ì™}³nFuJ,ÖYòÎg)ʇŒ~НDËðïþSnhœJN
‰=É™2+df”c).vX»[šû'Û9¹8%ñx5m#8úV4ÊBº)Eª;Iú¹ó‹|àÆ„72@ާi§Ë @îÑ?
í‘ú™ÞMÖæÕjYе‘_¢y<…7i$°Ò.ÃÅR×ÒTÒç_yÄÐ
}+d&jQ *YòÎg)ʇŒ~НDË?úŽ©Ž5\šm€S{ÔÍo—#ìôÔ”ÜÍѱ]ʵ¬0wêÂLª¡öm@Å„Ws雦 X
Ô¶æ¯÷¦É®jÛ ¼§
”n ŸëÆf¿´ó½4ÂäÌ3§Œ®
Run Code Online (Sandbox Code Playgroud)
我知道文件是合理的,因为我可以在Gwbasic中打开它.但是,列表似乎也无法查看文件.我还尝试从Gwbasic中以ascii格式保存文件,但这也不起作用.两者都给了我一个"非法函数调用"错误:
GW-BASIC 3.22
(C) Copyright Microsoft 1983,1984,1986,1987
60300 Bytes free
Ok
LOAD"Pwrharm
Ok
LIST
Illegal function call
Ok
SAVE "Pwrharm2",A
Illegal function call
Ok
RUN
[Program runs successfully]
Run Code Online (Sandbox Code Playgroud)
再次,RUN命令工作得很好.我究竟做错了什么?
在BASIC中,我知道要在屏幕上打印两条指令,PRINT并且两条指令WRITE都会在最后自动打印带换行符的字符串.我想打印没有换行符的字符串.我怎样才能做到这一点?我正在使用GW-BASIC.
Microsoft BASIC,GW-BASIC和BASICA都使用如下所示的提示:
我无法弄清楚如何退出这些.打字END不会退出它们.EXIT,QUIT,Q,Ctrl+C,和其他一切我能想到的也不起作用.
我确信有办法做到这一点.我无法想象在DOS上使用BASICA的每个人每次想要退出开发环境时都必须重启他们的机器.
那么,如何退出旧的BASIC编辑器提示符?
在GW-BASIC和QuickBASIC中,语句都是传递参数,其中一些是可选的,可以根据语句省略:
REM Move the text cursor to the specified column and row.
LOCATE row%, column%
REM Move the text cursor to the specified column without changing the row.
LOCATE , column%
Run Code Online (Sandbox Code Playgroud)
在GW-BASIC中,该CLEAR语句相当不寻常,因为它的第一个"参数"总是被省略:
CLEAR , basicMem
CLEAR , basicMem, basicStack
CLEAR , , basicStack
Run Code Online (Sandbox Code Playgroud)
在QuickBASIC中,basicMem由于解释器/运行时管理自己的内存,参数变为可选:
CLEAR , , basicStack
Run Code Online (Sandbox Code Playgroud)
我想知道的是,第一个"参数"是否曾用于GW-BASIC之前的任何东西,即这样的东西实际上是有用的:
CLEAR missingArg, basicMem, basicStack
REM ^^^^^^^^^^
REM here
Run Code Online (Sandbox Code Playgroud)
也就是说,在第一个逗号之前是否有过有目的的非空论证?
如果有人有任何想法,我很想知道!
我在Qbasic写一个程序.我想知道如何测试文件夹是否存在.
这个想法是:
IF "c:\user\basic\blablabla\" exists (?? how to programm the "exist" test?)
THEN CHDIR "c:\user\basic\blablabla\"
ELSE
MKDIR "c:\user\basic\blablabla\"
CHDIR "c:\user\basic\blablabla\"
ENDIF
Run Code Online (Sandbox Code Playgroud)
我希望我很清楚,
非常感谢你的建议!
:)