Basic开发笔记:Basic语言介绍、环境搭建、基本语法示例与程序实例

简介: Basic开发笔记:Basic语言介绍、环境搭建、基本语法示例与程序实例

前言

  红胖子来也!!!

  Basic语言是很老的语言了,比VB(Visual Basic还老)。


BASIC

  BASIC(Beginners’ All-purpose Symbolic Instruction Code,又译培基),意思就是“初学者通用符号指令代码”,是一种设计给初学者使用的程序设计语言。

  

  BASIC是一种直译式的编程语言,在完成编写后不须经由编译及连结等手续即可执行,但如果需要单独执行时仍然需要将其建立成执行档。

  BASIC是由达特茅斯学院院长、匈牙利人约翰·凯梅尼(John G. Kemeny)与数学系教师托马斯·卡茨(Thomas E. Kurtz)共同研制出来的。1964年BASIC语言正式发布。第一个BASIC程序在1964年5月1日早上4时,由BASIC编译程序进行编译后成功运行。1975年,比尔·盖茨把它移植到PC上。


编译环境搭建

安装编译器

  安装FreeBasic,主要用他来编译,如下图:

  

  安装完后,打开命令行:

  

  跳转到开发目录即可,

安装编辑环境

  安装PowerBasic,主要用他的编辑器

  

  打开编辑器:

  

下载地址

  CSDN下载地址:https://download.csdn.net/download/qq21497936/12538533

  软件打包下载地址:QQ群1047134658(点击“文件”搜索“Basic”,群内与博文同步更新所有可开源的源码模板)

编译器编译时错误解决

  编译时报错,如下图:

  

  主要是因为使用了未定义的变量,其实是语言规则不同,因为使用qb语言,所以需要加上参数“-lang qb”,即可,如下图:

  

运行环境

  直接打开dos,跳转到目录,fbc命令会生成对应的exe直接运行即可。


基本语句

打印(PRINT)语句

示例1

PRINT "12345"
PRINT "Hello world"

示例2

PRINT "12345";"54321"
PRINT "Hello world"

示例3

PRINT "12345" "54321"
PRINT "Hello world"

TAB(TAB)语句

  PRINT语句中使用TAB语句就类似于使用TAB键。

  TAB(1)和TAB(2)没有起到作用

示例1

PRINT "123456789ANCDEF"
PRINT 1;TAB(1);2
PRINT 1;TAB(2);3
PRINT 1;TAB(3);4
PRINT 1;TAB(4);5
PRINT 1;TAB(5);6
PRINT TAB(3);"Y";TAB(9);"Z"
END

置数(DATA)语句

  配合读数语句使用,称读数据(READ/DATA)语句。

  请参照“读取READ语句”

读取(READ)语句

  READ是读取data存储的数据,并不是我们习惯所认为的从屏幕上输入,同时变量要先定义才能使用。

示例1:读取数字

  (字符串必须是$符号结尾)

DATA "12aaa345","11bbb11"
PRINT "READ ONE, SHOULD BE 12aaa345"
READ S
PRINT S
PRINT "READ ONE, SHOULD BE 11bbb11"
READ S
PRINT S
END

示例2:读取字符串

DATA "12aaa345","11bbb11"
PRINT "READ ONE, SHOULD BE 12aaa345"
READ S$
PRINT S$
PRINT "READ ONE, SHOULD BE 11bbb11"
READ S$
PRINT S$
END

示例2:先读取后置入数字

PRINT "READ ONE, SHOULD BE 12345"
READ S
PRINT S
PRINT "READ ONE, SHOULD BE 11111"
READ S
PRINT S
SLEEP
DATA "12345","1111"
END

示例3:读取数字

DIM D1 AS INTEGER
DATA 20,10
PRINT "READ ONE, SHOULD BE 20"
READ D1
PRINT D1
PRINT "READ ONE, SHOULD BE 10"
READ D1
PRINT D1
SLEEP
END

示例4:读取数字时,同时使用“:”进行其他操作

DATA 10,100,1000
READ T1,T2:T3=T1+T2
PRINT T1
PRINT T2
PRINT T3
READ T3
PRINT T3
END

示例5:读取字符串

DATA "aaa"
READ A$
PRINT A$
END

赋值(LET)语句

  (注意:字符串默认结尾为$,否则认为是整数)

示例1

LET A$="12345"
PRINT A$
LET A=10
PRINT A
PRINT A*10
END

键盘输入(INPUT)语句

  (注意,经测试,变量定义为A$,有金钱符号结尾,才被认为是字符串,否则认为是数字,而且输入错误,数字则默认为0)

示例1

PRINT "PLEASE INPUT A NUM:"
INPUT A
PRINT "YOU INPUT NUM:";A
END

示例2

PRINT "PLEASE INPUT A NUM:"
INPUT A$
PRINT "YOU INPUT NUM:";A$
END 

恢复数据区(RESTORE)语句

示例1

DATA 1,2,3,4
READ A,B
PRINT A
PRINT B
RESTORE
READ A,B
PRINT A
PRINT B
END

无条件转移(GOTO)语句

  之前的程序,每一行之前没有数字标签,使用GOTO则需要加上去;

  GOTO与GOSUB的区别请查看 “GOSUB语句”的示例3

示例1

DATA 1,2,3,4
READ A,B
100
PRINT A
PRINT B
SLEEP
PRINT "GOTO AGAIN"
GOTO 100
END

条件转移(IF ~ THEN或IF ~ GOTO)语句

示例1

DATA 1,2,10
READ A,B,C
100
PRINT A*B: A=A*B
IF A<C THEN GOTO 100
PRINT A;">";C
END

注释(REM)语句

示例1

DATA 1,2,10
READ A,B,C
100
REM "123456"
PRINT A*B: A=A*B
IF A<C THEN GOTO 100
PRINT A;">";C
END

循环终了(NEXT)语句

  与循环说明语句合成循环(FOR~NEXT)语句。

  请参照“循环说明(FOR)语句”

循环说明(FOR)语句

示例1

INPUT N
FOR I=0 TO N
    A=A+I
    PRINT "+";I;"=";A
NEXT I
PRINT A
END

示例2(2020年6月24日补充):写在同一行的情况

1000 W=2
1001 IF(W=2) THEN FOR M=0 TO 5: PRINT M: NEXT M
1002 END

暂停(STOP)语句

  stop是直接退出程序了。

示例1

PRINT "12345" "54321"
STOP
PRINT "Hello world"

转子(GOSUB)语句

示例1

DATA 1,2,3,4
READ A,B
100
PRINT A
PRINT B
SLEEP
PRINT "GOTO AGAIN"
GOSUB 100
END

示例2(2020年6月24日补充)

1000 GOTO 2000:GOSUB 4000:GOSUB 6000
1001 END
2000 PRINT "2000" :RETURN
4000 PRINT "4000" :RETURN
6000 PRINT "6000" :RETURN

示例3(2020年6月24日补充):GOTO与GOSUB的区别,结合RETURN语句

100 FOR N=1 TO 4
120 PRINT "N=";N
REM GOSUB会返回调用处
121 IF(N=2) THEN GOSUB 150
REM GOTO会直接跳过去忽略RETURN
122 IF(N=3) THEN GOTO 150
140 NEXT N
150 PRINT "HELLO,WORLD!!!"
160 RETURN
170 PRINT "170 PRINT"
180 PRINT "180 PRINT"

返回(RETURN)语句

  配合转子语句使用,调用子程序。

数组说明(DIM)语句

  定义数组,定义的数组下标从1开始。

示例1

DIM A(6)
DATA 1,2,3,4,5,6
READ A(1),A(2),A(3),A(4),A(5),A(6)
PRINT "A(0),A(1),A(2),A(3),A(4),A(5),A(6)"
PRINT A(0),A(1),A(2),A(3),A(4),A(5),A(6)
PRINT "A(1),A(2),A(3),A(4),A(5),A(6)"
PRINT A(1),A(2),A(3),A(4),A(5),A(6)
PRINT "A(0);A(1);A(2);A(3);A(4);A(5);A(6)"
PRINT A(0);A(1);A(2);A(3);A(4);A(5);A(6)
PRINT "A(1);A(2);A(3);A(4);A(5);A(6)"
PRINT A(1);A(2);A(3);A(4);A(5);A(6)
END

结束(END)语句

  结束程序。


程序实例

预读入加法程序

DATA 10,20
READ A,B
PRINT A;"+";B;"=";A+B

定义数组并赋值

DATA 10,20,30,40
DIM D$(4)
READ D$(1),D$(2),D$(3),D$(4)
PRINT D$(1),D$(2),D$(3),D$(4)
END

定义数组并循环赋值

  (注意:数组定义,数组下标序号从1开始,目前普遍从0开始)

DATA 6
DATA 0.01,0.01,0.01,0.02,0.02,0.2,0.03,0.03,0.03,0.04,0.04,0.04,0.05,0.05,0.05,6.1,6.2,6.3
READ M0
DIM T0(M0+1),D0(M0),J0(M0)
FOR M=1 TO M0
    READ T0(M),D0(M),J0(M)
NEXT M
FOR M=1 TO M0
    PRINT "M=";M;",";T0(M);",";D0(M);",";J0(M)
NEXT M
END

求绝对值

100 J=-100
101 K=100
102 J2=-100.1
103 K2=100.1
104 PRINT ABS(J)
105 PRINT ABS(K)
106 PRINT ABS(J2)
107 PRINT ABS(K2)


相关文章
|
4月前
|
缓存 监控 前端开发
前端性能优化实战:如何大幅减少应用加载时间?
本文系统讲解前端性能优化实战,涵盖代码分割、懒加载、CDN加速、HTTP/2/3、资源预加载、Brotli压缩、Tree Shaking等核心策略,并结合Lighthouse等工具持续监控。从构建、传输、渲染三维度提升加载速度,助你显著降低FCP/LCP,打造秒开流畅体验。(239字)
295 1
C# Excel 异常HRESULT 0x800AC472
图1 图2     出现图1的问题,大部分原因是导出excel时一开始就将excel.visible=true,当数据量太大的时候,就会看到数据被一条条的写进excel里面,这个时候随意点击excel就会报出上面的错误。
6782 0
|
6月前
|
人工智能 边缘计算 C#
纯C#驱动全场景视觉AI:.NET 10+YOLO多模型平台赋能工业与边缘智能
基于.NET 10与YOLO技术的纯C#视觉AI平台,支持多模型并行、跨平台部署,集成目标检测、分割、姿态估计等全任务,无需Python依赖,助力工业质检、智能安防、零售分析等场景高效落地。
|
6月前
|
监控 数据可视化 测试技术
C#与倍福PLC(通过ADS协议)通信上位机源程序实现
C#与倍福PLC(通过ADS协议)通信上位机源程序实现
|
6月前
|
供应链 安全 算法
什么是数据要素?一文带你认识数据要素全流程
数据正从成本负担转向核心生产要素。本文结合实例,解析“数据要素化”全过程:从内部治理、产品封装到流通交易,揭示企业如何将沉睡数据变为可创造新价值的资产,并提供落地路径与关键技术支撑。
|
8月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
56736 11
|
存储 人工智能 程序员
【C语言】一篇通关所有 “关键字”,值得收藏篇!
关键字是编程语言预定义的保留词,代表特定的操作或结构。C语言中的关键字用于定义变量类型、控制语句、存储类、数据类型等。使用这些关键字可以创建函数、控制程序的流程、声明变量和常量等。
2591 0
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
149219 0
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
975 8
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
869 2

热门文章

最新文章