Basic语言开发笔记:Basic语言介绍、环境搭建、基本语法示例与程序实例
若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106850097
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究
前言
红胖子来也!!!
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加上去)
示例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


暂停(STOP)语句
stop是直接退出程序了。
示例1
PRINT "12345" "54321"
STOP
PRINT "Hello world"


转子(GOSUB)语句
示例1:目前未发现与GOTO语句的区别
DATA 1,2,3,4
READ A,B
100
PRINT A
PRINT B
SLEEP
PRINT "GOTO AGAIN"
GOSUB 100
END


返回(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


原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106850097
Basic语言开发笔记:Basic语言介绍、环境搭建、基本语法示例与程序实例的更多相关文章
- PHP移动互联网开发笔记(1)——环境搭建及配置
开篇说明:记得我上大二的时候第一次听到PHP,当时只知道这是一个开发网站的语言,并没有深入学习,在学了Java Web开发和Android开发之后我对互联网的发展方向有了一个我自己的认识,现在我们不能 ...
- Java学习笔记【一、环境搭建】
今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标 ...
- ESP32学习笔记(一) 环境搭建与下载
ESP32学习笔记(一) 环境搭建与下载 作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处 前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好 ...
- Solr学习笔记之1、环境搭建
Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...
- arcgis api for flex 开发入门(一)环境搭建
http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgi ...
- Android开发使用控件入门--环境搭建
Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...
- 【ARM-Linux开发】在win下开发的eclipse+yougatoo+jlink环境搭建
在win下开发的eclipse+yougatoo+jlink环境搭建 一 工具的安装 第一步:安装gcc编译工具 yagarto-bu-2.21_gcc-4.6.2-c-C++_nl-1.19.0_g ...
- Cesium入门2 - Cesium环境搭建及第一个示例程序
Cesium入门2 - Cesium环境搭建及第一个示例程序 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 验 ...
- scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld
scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...
- R语言学习笔记:小试R环境
买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...
随机推荐
- [转帖]如何在 Linux 中使用ss命令监控网络连接
https://zhuanlan.zhihu.com/p/99421574 ss命令是用于在Linux系统上显示与网络套接字相关的信息的工具. 该工具显示netstat命令的更多详细信息,该命令用于显 ...
- 【转帖】8.JVM双亲委派机制(面试常问)
目录 1.什么是双亲委派机制? 2.双亲委派机制的优势 3.沙箱安全机制 1.什么是双亲委派机制? 双亲委派机制工作原理:(面试) 1.如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这 ...
- [转帖]Tcpdump抓包命令
tcpdump和ethereal可以用来获取和分析网络通讯活动,他们都是使用libpcap库来捕获网络封包的. 在混杂模式下他们可以监控网络适配器的所有通讯活动并捕获网卡所接收的所有帧. 要想设置 ...
- [转帖]「Linux性能调优」磁盘I/O队列调度策略
https://zhuanlan.zhihu.com/p/450329513 傻瓜化说明 简单地说,对于磁盘I/O,Linux提供了cfq, deadline和noop三种调度策略 cfq: 这个名字 ...
- BPF的简单学习
BPF的简单学习 前言 本来规划过年期间学习一下bpf相关的内容 但是因为自己没有坚持学习,所以到最后一天才开始整理. 本来想深入学习一下相关内容,但是已经感觉已经无法完成. 最近大半年进行了很多性能 ...
- Chrome 历史版本下载点
https://www.chromedownloads.net/chrome64win-stable/
- ChatGPT 中,G、P、T 分别是什么意思?
流行的技术名词按发音难度排序,ChatGPT 肯定排在前面. 到底它为什么叫做 ChatGPT 呢? 先说 GPT:Generative Pre-Training Transformer Genera ...
- 书写自动智慧文本分类器的开发与应用:支持多分类、多标签分类、多层级分类和Kmeans聚类
书写自动智慧文本分类器的开发与应用:支持多分类.多标签分类.多层级分类和Kmeans聚类 文本分类器,提供多种文本分类和聚类算法,支持句子和文档级的文本分类任务,支持二分类.多分类.多标签分类.多层级 ...
- Flask 实现文件上传下载
Flask 针对文件的上传下载相关代码片段,多种方法,包括限制文件格式,大小等. 实现图片文件上传 # name: 简单的实现文件上传任务. import os from flask import F ...
- Object.getOwnPropertyDescriptor()属性
console.log(Object.getOwnPropertyDescriptor(person,'a')); // writable: 是否可以修改 // value: 对象值 // confi ...