当前位置:文档之家› QBASIC文件操作

QBASIC文件操作

QBASIC文件操作
QBASIC文件操作

QB的文件操作

学习重点:

1、了解文件的概念和分类。

2、掌握文件的打开、关闭以及读文件、写文件的方法,并能熟练运用。

3、会创建数据文件测试程序的正确性。

一、文件的概念

文件(file)也叫作文档,是存放在磁盘(包括硬盘、软盘、U盘、光盘)上的一批数据,每个文件必须有一个文件全名,用文件全名来指明文件。文件全名包括盘符、若干级目录、文件名、文件类型。

例如: d:\mydir\basic\data.txt

这里,盘符= d:,而且有三级目录,每个斜线引出一级目录,文件名= data ,每级目录和文件名都不得超8个字符,文件类型=.txt,这是最常见的正文文件类型。

以下的文件名均合法:

C:\a1.bas 代表C盘根目录下的a1.bas文件。

C:\qb\xue.dat 代表C盘中qb子目录中的xue.dat文件。

A:student.dat 代表A盘中当前目录中的student.dat文件。

abc.bas 代表当前盘、当前目录中的abc.bas文件。

我们知道,计算机的内存容量小,造价高,而且还有一个严重的缺点——易失性,就是说一旦关闭了电源,内存中的全部内容就统统丢失了。为此人们引进了磁盘文件作为内存的补充。

那么文件有什么用途呢?举例说吧,假如你是班级学习委员,编了一个记分的程序。第一天你输入了10个同学的各科成绩,然后你就关机睡觉了。第二天打开机器,你的数据就不翼而飞了,还得从头再来。如果你会使用文件,那就好办了。第一天你键入了一些数据,关机前把它们记入文件,即使关机了文件中的数据也不会丢失,第二天只要让QB打开文件并把其中数据读入到内存,就可以继续输入了。

还有一种情况应该使用文件。如果一个程序需要读取许多数据,若是每次都从键盘敲入,那么既麻烦又容易出错。我们可以把数据做成一个文件,并且让程序读取其中的数据。这样一来程序可能具有更大的灵活性。

按照文件中数据的表现形式来分类,可以将文件分成正文文件和二进制文件。正文文件也叫做ASCII文件,其中的数据都是由ASCII代码构成的,例如我们在QB

下编写的BASIC语言源文件(类型为.BAS)。正文文件是人制作的,或者是为人而制作的,是人所能看懂的文件,可以用DOS下的EDIT程序和WINDOWS下的记事本或写字板制作和阅读。二进制文件是由许多二进制位构成的,由一个程序制作,由另一个程序阅读,人看不懂,如果用EDIT、记事本或写字板来阅读的话,会出现一片乱码。例如在QB之下由源文件转换成的可执行文件(类型为.EXE),就是一种二进制文件。

相比之下,正文文件用处更大,足以应付通常的编程工作。我们只介绍正文文件的有关操作,想了解二进制文件可以参看各种QB的教科书。

从计算机内存向外存传送数据,称为“写文件”,即向外存输出数据。将外存文件中的数据向计算机内存传送,称为“读文件”,即将文件读入内存。

在QB中,文件是可读的,也是可写的,但是不能对同一个文件又读又写。

在程序中若想读、写文件数据,须经历三大步骤:打开文件、读/写数据、关闭文件。打开文件完成准备工作,关闭文件完成扫尾工作,而读/写数据完成的才是数据交换工作。

二、打开文件——OPEN语句

1、格式

打开文件要完成一些必要的准备工作,如在目录中找出要读的文件,创建要写的文件,放置文件指针。打开文件使用OPEN语句,其格式为:

OPEN <文件名> FOR <读写方式> AS #<文件号>

其中:文件名可以是字符串常量或字符串变量,指明欲读写的文件。文件名通常采用文件全名,但是如果BASIC程序文件与它要读写的数据文件同在一个目录中,可以省略盘符和各级目录;如果程序文件与数据文件分别存放在同一个磁盘的不同目录中,可以省略盘符。

AS #后的文件号是1-255之间的任意一个整数,OPEN语句将它同文件名字等同起来,在后面的读写语句和关闭语句中只用文件号来指明文件。

读写方式指明了对文件的读写操作可以取以下三种之一:

① INPUT:读文件,将文件中的数据传送到内存变量。例如:

OPEN “d:\data\data1.txt” FOR INPUT AS #1

表示打开d:\data中的data1.txt文件,只能从文件读数据,以文件号1代表此文件。在OPEN语句中指定的文件名必须确实已经存在于指定的位置,如果d:\data 中没有data1.txt,则认为发生错误,停止程序执行,因为不能从一个不存在的文件中读取数据。打开文件时文件指针指向文件开头,执行读语句时从第一个记录开始顺序读取。

② OUTPUT:写文件,将内存中的数据传送到文件。例如:

OPEN a$ FOR OUTPUT AS #2

假设已经执行了a$ =“e:\data\data2.txt”,则打开e:\data中的data2.txt 的输出文件,只能向文件写数据,指定该文件的文件号为2。如果e:\data中没有data2.txt,系统以此文件名建立一个新文件;如果文件存在,不论原来是否有数据,打开后,文件指针指向文件开头,原有的数据全部消失,相当于建立一个新文件。以OUTPUT方式打开文件时应十分小心,不要误删除原来文件中有用的数据。

③ APPEND:扩充文件,将在文件后添加新的数据。

OPEN “data3.txt” FOR APPEND AS #3

表示打开QB系统文件所在目录中的data3.txt,首先在QB系统文件所在目录中寻找文件data3.txt,如果找到,把文件指针指向到文件末尾处;如没有找到,建立之,把文件指针指到文件开始处。

注意:如果打开方式是INPUT,那么要打开的文件必须存在,否则出错。对于另两种方式,文件不存在也不是错误,都将导致创建一个新文件,并使文件指针指向文件开始处。若以OUTPUT方式打开的文件已经存在,则清除原有数据,并使文件指针指向文件开始处,因此以OUTPUT方式打开文件时应十分小心,不要误删除原来文件中有用的数据;若以APPEND方式打开的文件已经存在,则文件指针将指向文件末尾,意味着新数据都写在文件原有数据之后。

对一个文件以某种方式打开,则只能对其执行指定的操作,如用OUTPUT打开,就只能把数据从头到尾写到文件中,中间不能“读”,只有关闭后重新以INPUT打开才能读数据。

三、读文件——INPUT #语句、LINE INPUT #语句和EOF函数

所谓读文件就是从文件中取出字符串送入字符串变量,或者转换成数值送入数值变量。使用的语句有INPUT#语句和LINE INPUT#语句,它们分别对应于INPUT语句和LINE INPUT语句。

1、INPUT#语句

一般格式为:INPUT#<文件号>,<变量>[,<变量>] ……

其作用是,从<文件号>所指明的文件中读数据,并把这些数据依次赋给各个指定的变量。一条INPUT#语句至少读入一个数据,变量分为字符串变量和数值变量,因此文件中数据的次序必须同这条语句中的变量次序一致。文件中的字符串数据可以用双引号界定,也可以用逗号或行尾作为结束,哪个先出现哪个起作用;用逗号或行尾结束的字符串不包含逗号和双引号,用双引号界定的字符串不包含双引号本身。而数值数据可以用逗号、空格或行尾作为结束。由于各变量对应的

文件中的数据都可以行尾作为结束,所以每一个数据都可以独占一行。在这一点,INPUT#同键盘输入语句INPUT显然不同,一个INPUT语句读取的多个数据必须同处一行。

2、LINE INPUT#语句

格式:LINE INPUT #<文件号>,<字符串变量>

作用是从打开的正文文件中读取一行,赋给指定的字符串变量。正文行上可以包含任何字符,如空格、逗号、双引号。

INPUT # 语句是从文件中逐一读取数据,而LINE INPUT # 语句一次就要读取文件中的一行数据。

3、EOF函数

格式:EOF(<文件号>)

此函数的作用是判断是否已经读完了<文件号>指明的文件中的所有数据,如是得到真值,否则得到假值。也就是说,测试文件是否结束,若结束,返回一个非0值。在程序中可以根据此值决定是否继续读此文件。

例:

OPEN "a.txt" FOR INPUT AS #1 ’打开文件a.txt准备读

DO WHILE NOT EOF(1) ’只要未到达文件尾,就继续读

INPUT #1, a$, b, c ’从文件中读出a$, b, c

PRINT a$, b, c ’屏幕显示a$, b, c

LOOP

CLOSE #1 ’关闭文件a.txt,以便再次打开PRINT ’屏幕空一行

OPEN "a.txt" FOR INPUT AS #1 ’再次打开a.txt准备读

DO WHILE NOT EOF(1) ’只要未到达文件尾,就继续读

LINE INPUT #1, a$ ’用LINE INPUT #语句读一整行

PRINT a$ ’显示该行

LOOP

CLOSE #1 ’关闭1号文件

END

此程序首先打开文件 a.txt,并用INPUT#语句反复读取,每次读取3个数据到变量a$、b、c中,直至读完为止。文件中给出了INPUT#语句允许的各种数据格式。第二次打开文件,而后用LINE INPUT#来读取文件的每一行到a$中,再把它显示到屏幕上。

下面给出了本程序的屏幕输出,其中前4行是第一个循环4次读取的3个变量的内容。注意,如果显示的姓名中夹有逗号,在文件中这样的字符串只能放在双引

号中。后6行就是文件a.txt本来的样子。

Li ming 15 89.37

Li, ming 15 89.37

Li ming 15 89.37

Li ming 15 89.37

----------------------------------------

Li ming, 15,89.37

"Li, ming"15 89.37

"Li ming",15,89.37

Li ming

15

89.37

四、写文件——PRINT #语句和WRITE #语句

1、PRINT #语句

格式:PRINT #<文件号>,[USING “<格式字符串>”];<输出项表>

功能:写数据到#<文件号>所关联的文件中。

PRINT#语句的使用与屏幕输出语句PRINT相似,只不过前者把数据写入外存,后者把数据输出在屏幕上。其中的文件号是打开文件时指定的。输出项表由O个或多个表达式组成,它们的值将输出到文件中,如果为空,则在文件中输出一个空行。

在省略格式字符串的情况下,每个表达式后跟有一个逗号或分号,逗号表示采取紧凑格式——数值后留一个空格,分号在输出项之后将跳到下一个14倍数列。最后一个输出项后还可跟有空格,表示输出后换行。输出项可以包括函数TAB(n)和SPC(n),分别表示使输出位置跳到第n列和跳过n列。

如果使用了USING “<格式字符串>”,那么各输出项之间只能用分号隔开。<格式字符串>描写了各个输出项的输出格式,其中的格式字符串可以有一个或几个输出格式,每个输出格式对应于一个输出项。如果输出格式的个数少于输出项,则循环使用各输出格式。每个输出格式由若干格式字符组成,格式字符有数值的和字符串的。

数值格式字符包括:

# 代表一个数值位,如#######表示显示7位整数(包括负数的-号),不足7位左面补之以空格。

. 小数点,如####.###表示显示实数,其中整数部分占7个位置,而后是小数点,最后是3位小数。

,放在小数点之前,表示用逗号把整数部分分为3位一组。

+ 符号,表示显示数值符号,对于正数显示+,负数显示-。

-放在输出格式的最后,表示把-号显示在负数数值之后。

^^^^放在###...之后,表示要采取指数形式显示,^的个数指明指数占4个位置。** 放在###...之前,表示数前的空位用*填充。

$$前,表示数前显示一个$。

**$ 放在###...之前,表示数前显示一个$,前空用*填充。

字符串格式字符包括:

& 显示整个字符串。

! 显示字符串的第一个字符。

/n个空格/ 显示字符串的前n+2个字符。

_ 放在格式字符之前,则将此格式字符作为普通字符显示,_ _将显示一个_。

以上格式字符之外的其它字符,如果出现在格式字符串中,将被原样地显示在文件中。例如:

a = 1234.567:

b = -34.5678: c$ = "abcdefgh"

OPEN "b.txt" FOR OUTPUT AS #1

PRINT #1, "1, "; a; b; c$; a

PRINT #1, "2, "; TAB(20); a; SPC(5); b; c$; a

PRINT #1, "3, "; a, b, c$, a

WRITE #1, 4, a, b, c$, a

PRINT #1, USING "5, #####.##|"; a; b

PRINT #1, USING "6, ######^^^^|####.###^^^^^|"; a; b

PRINT #1, USING "7, +#####.#|######.#-|"; a; b; b; a

PRINT #1, USING "8, **#####,.#|$$#####.#|**$#####.#|"; a; a; a

PRINT #1, USING "9, left$(c$,1)=!|c$=&|_!|_&|__|\ \|"; c$; c$; c$;

CLOSE #1

END

此程序展示了PRINT#和WRITE#语句的用法,特别是格式字符串的作用,下面给出的是本程序所生成的文件b.txt的全部内容,请读者对照上面的程序仔细阅读。为便于对照,在每个 PRINT#语句中都显示一个序号,可是在第7个PRINT#语句中由于格式项的个数多于输出项,所以序号也同格式项一起被重复显示了。1, 1234.567 -34.5678 abcdefgh 1234.567

2, 1234.567 -34.5678 abcdefgh 1234.567

3, 1234.567 -34.5678 abcdefgh 1234.567

4,1234.567,-34.5678,"abcdefgh",1234.567

5, 1234.57|5, -34.57| 6, 12346E-01|-345.678E-001|

7, +1234.6| 34.6-|7, -34.6| 1234.6 | 8, ***1,234.6| $1234.6|***$1234.6| 9, left$(c$,1)=a|c$=abcdefgh|!|&|_|abcd|

2、 WRITE #语句

格式:WRITE #<文件号>,<输出项表列>

用它写文件时能自动地在各数据项之间插入逗号,并给字符串加双引号,且不在正数前面设置空格。用WRITE#语句写成的文件更适合INPUT#语句读取。 例:比较下面两个程序产生的输出文件格式的不同

当输入数据同样为:NAME: ccc AGE: 12 NAME: bbb

AGE: 11

时,ex.1与ex.2两个文件的内容分别为:

3、PRINT 和WRITE 语句两者的不同点:

PRINT 写入到文件中的数据若是字符串,没有引号;

若PRINT 有多个输出项,则项与项之间有空格。而WRITE 语句若写入到文件中的数据是字符串,会自动添加引号;多个输出项之间会以“,”相隔。 五、关闭文件——CLOSE 语句

格式:CLOSE [#<文件号>][,#<文件号>]……

此语句可以有0个、一个或多个#<文件号>参数,将分别关闭所有的、一个或多个已打开的文件。

关闭文件完成必要的扫尾工作,包括修改目录以反映文件信息的改变,如文件的长度、修改日期。尽管当程序结束时QB 能自动关闭尚未关闭的文件,规范的Open “ex.1”for output as #1 DO

INPUT " NAME: ", Name$ INPUT " AGE: ", Age WRITE #1, Name$, Age

INPUT "Add another entry"; R$ LOOP WHILE UCASE$(R$) = "Y" CLOSE #1

Open “ex.2”for output as #1 DO

INPUT " NAME: ", Name$ INPUT " AGE: ", Age print #1, Name$, Age

INPUT "Add another entry"; R$ LOOP WHILE UCASE$(R$) = "Y" CLOSE #1

"ccc",12

"bbb",11

ccc 12 Bbb 11

做法仍然是让程序关闭自己打开的所有文件。

六、创建数据文件

创建数据文件用以测试程序的正确性 方法1:使用QB 程序产生数据文件

方法2:直接用QB 编辑好数据后存盘,扩展名可以自选。

方法3:使用写字板或其他编辑软件写入需要的数据,扩展名一般选“.txt ”(常用方法)

例:有一个程序需要30个整数,范围1—100,每行3个数,共10行。我们可以

这样来建立符合条件的数据文件“A1.IN ”

六、综合示例

下面给出几个综合性的例题:前几个代表了通常涉及文件的习题和试题,最后一个算得上是一个应用实例,功能强,但程序简单,容易修改成真正的应用。

例1.拐角矩阵

【问题描述】 从指定文件中读取正整数,m,n,i 和j,(1<=i,j<= n <=20),然后计算并显示n 阶回形矩阵的第i 行第j 列元素的值(右图给出的是7阶回形矩阵)。

[输入输出] 文件输入:(输入文件\L1\T1.DAT 与QB 系统文件处在同一磁盘上)

该文件的第一行为正整数m , 表示下面有m 组数据,每组数据均占一行。 每行均有三个正整数n ,i 和j (以空格分隔)。表示要计算并显示n 阶回形矩阵的第i 行第j 列的元素值。 输入文件样例: 3

7 2 3 7 5 4 7 7 1 屏幕输出:

Open “a1.in” for output as #1 For I=1 to 10

Input a,b,c Print #1,a,b,c Next I Close #1 end

’如果需要的数据是随机的,我们完

全可以用随机函数产生a,b,c

a=int(rnd*100)+1:b= int(rnd*100)+1:c= int(rnd*100)+1}

共有m行,每行只有一个正整数,即根据对应的输入数据计算出的元素值。对应上面的输入产生如下屏幕输出:

2

4

7

【问题分析】

观察此题中的拐角矩阵,会发现它呈现明显的规律:在从对角线之上显示的是行号i,在其下方显示的是n+1-j。程序要先打开文件,从文件中读取数据组数m。而后在一个执行m次的循环结构中,先读取矩阵尺寸n、行号i和列号j,然后算出位于第i行第j列的元素值k,并显示之。

【程序清单】

REM 2-1.BAS

OPEN "\L1\T1.DAT" FOR INPUT AS #1

INPUT #1, m

FOR I = 1 TO m

INPUT #1, n, i, j

IF i + j <= n + 1 THEN k = i ELSE k = n + 1–j ’判断元素值

PRINT k

NEXT I

CLOSE #1

END

例2.整数的拼接(2006年小学程序设计竞赛第4题)

【问题描述】

设有n个整数(3≤n≤10),将这些整数拼接起来,可以形成一个最大的整数。

例如 n=3, 三个整数分别为21, 7, 34,拼接后最大的整数为: 73421

[输入输出]

文件输入:第一行一个整数n ,表示有n 个整数

第二行n个整数,数与数之间用一个逗号分隔。

(10个测试文件在“d:\js\t2”目录中,文件名为:JS41.IN-JS40.IN)文件输出:一个拼接后的最大的整数。

(10个输出文件在“d:\js\t2”目录中,文件名为:JS41.OUT-JS40.OUT)【样例】

输入输出

3 73421

21,7,34

【问题分析】

题目明确写明输入文件和输出文件的具体目录和文件名,为了节约时间,我们采取常量+变量的方法,只从键盘输入文件名,而不输入目录和文件类型。

【程序清单】

REM 2-2.BAS

INPUT A$ ’分别输入文件名JS41--JS40

B$="D:\JS\T2\"+A$+".OUT" ’产生具体的输出文件名

A$="D:\JS\T2\"+A$+".IN"’产生具体的输入文件名

OPEN A$ FOR INPUT AS #1

OPEN B$ FOR OUTPUT AS#2

INPUT #1, N ’从文件中读入整数N

DIM A$(N)

FOR I = 1 TO N

INPUT #1, A$(I)

NEXT I

FOR I = 1 TO N – 1 ’拼接

FOR J = I + 1 TO N

IF A$(I) + A$(J) < A$(J) + A$(I) THEN SWAP A$(I), A$(J)

NEXT J

NEXT I

FOR I = 1 TO N

PRINT #2,A$(I);

NEXT I

CLOSE

END

练一练:

将此题改为10个测试文件的文件输出内容均在d:\js\t2\JS2-2.OUT文件中。

(提示:用扩充文件方式)

例3.蛇形矩阵(2004年小学信息学奥赛复赛第1题)

从键盘输入正整数n,i和j ,(1<=i,j<= n <=20),

然后计算并显示n阶蛇形矩阵的第i行第j列元素的值(右

图是7阶蛇形矩阵)。

[输入输出]

文件输入:第一行一个整数K ,表示有K组数据;其

余每行3个整数N,I,J,表示要计算并显示n阶蛇形矩阵的

第i行第j列的元素值,数与数之间用空格分隔。

(测试文件在“d:\js\t3”目录中,文件名为:L3.TXT)

文件输出:

输出到文件(L3.OUT),输出文件和测试文件在同一个目录。每行只有一个正整数,即根据对应的输入数据计算出的元素值。

【样例】:

输入输出

5 3

7 3 5 4

7 4 4 4

9 5 6 4

15 9 12 8

20 11 8

【问题分析】

题目明确写明测试文件的具体目录和文件名,可以直接在OPEN后面用具体

的字符串常量来指明文件全名。由于输出文件和测试文件在同一个目录中,因此

可以省略具体的路径,只指明文件名。

【程序清单】

REM 2-3.BAS

OPEN "D:\JS\T3\L3.txt" FOR INPUT AS #1

OPEN “L3.OUT” FOR OUTPUT AS #2

INPUT #1, k

FOR l = 1 TO k

INPUT #1, n, i, j

m = i

IF m > j THEN m = j

IF m > n + 1 - i THEN m = n + 1 - i

IF m > n + 1 - j THEN m = n + 1 - j

PRINT #2,m ’将数据写入到2号文件中NEXT I

CLOSE

END

例4.找最长单词 (2004年小学信息学奥赛复赛第2题,有改动)

【问题描述】

编写程序,根据给出的若干行结束于’.’的字符字串,找出每行最长的含有字母’a’的子串。

【输入】

输入文件名统一规定为L4.DAT。

该文件有若干行,每行均有一组数据,每组数据均为一个字符字串,结束于句点’.’。字串中的子串由一个或几个空格隔开。

【输出】

输出到文件(L4.OUT).共有若干行。每行均只有一个数据,显示找出的最长的含有字母’a’的子串。如果有多个这样的子串,只显示其中的第一个;若没有含字母’a’的子串,则显示“NO”。

【样例】

输入文件L4.DAT:

She is working.

Her name is linan and she is a happy student.

Algorithms are central objects of study in many areas of the field.

The sharing of programs in computer systems is becoming more widespread.

x yy zza 12345 12a45 ww wwwa 123a5 78900.

x yy zzz uuuu vvvvv a bb ccc.

输出文件L4.OUT:

NO

linan

central

widespread

12a45

a

【问题分析】

题目没有指明有多少个测试数据,因此只能用EOF函数判断是否已经读完了<文件号>指明的文件中的所有数据。

【程序清单】

REM 2-4.BAS

OPEN "L4.DAT" FOR INPUT AS #1 ’打开文件准备读

OPEN "L4.OUT" FOR OUTPUT AS #2 ’打开文件准备写

DO WHILE NOT EOF(1) ’只要未到达文件尾,就继续读 LINE INPUT #1, a$ ’用LINE INPUT #语句读一整行 a$ = MID$(a$, 1, LEN(a$) - 1) ’取出每行末尾的’.’

l = LEN(a$): ml = 0: mx = -1: w = 0: a = 0

FOR i = 1 TO l

c$ = MID$(a$, i, 1)

IF (w = 0) AND (c$ <> " ") THEN

cl = 1: cx = i: w = 1

IF c$ = "a" THEN a = 1

ELSEIF (w = 1) AND (c$ <> " ") THEN

cl = cl + 1

IF c$ = "a" THEN a = 1

ELSEIF (w = 1) AND (c$ = " ") THEN

IF (cl > ml) AND (a = 1) THEN ml = cl: mx = cx

w = 0: a = 0

END IF

NEXT i

IF (cl > ml) AND (a = 1) THEN ml = cl: mx = cx

IF mx > 0 THEN

FOR i = 1 TO ml

PRINT #2, MID$(a$, mx - 1 + i, 1);

NEXT i

PRINT #2, ’文件空一行

ELSE

PRINT #2, "NO"

END IF

LOOP

CLOSE

END

例5.建立、添加、读取学生的成绩信息文件

下面的程序是一个学生成绩管理程序,功能很强,可以建立文件、写入数据、读取数据、加工数据,稍加扩充可以成为一个完备的信息管理系统。它首先读取从键盘输入的班级名字,如五年三班输入为5-3,而后构成文件名\school\5-3.txt,这意味着各班的成绩文件都放在同一目录之下。如果此文件不存在则建立之,并接纳学生的资料;如果存在则将新资料加在原有资料之后。接下来,读出文件中的全部数据,把它们显示在屏幕上,并算出各科的平均成绩。下面给出全部源程序:

源程序T5.BAS:

INPUT "class : ", class$ 输入班级号

class$ = "\school\" + class$ + ".txt" 构成该班的文件名OPEN class$ FOR APPEND AS #1 打开文件准备扩充INPUT "name : ", name$ 读第一个学生的姓名WHILE name$ <> "" 如姓名为空,结束循环 INPUT eng, bas, math 输入学生的三科成绩

WRITE #1, name$, eng, bas, math 将该生的姓名和成绩写入文件 INPUT "name : ", name$ 读下一个学生的姓名WEND

CLOSE #1 关闭文件,以便再次打开OPEN class$ FOR INPUT AS #1 再次打开准备读

WHILE NOT EOF(1) 如果没有到达文件尾,循环 n = n + 1 学生人数n加1

INPUT #1, name$, eng, bas, mat 读第n个学生的资料

PRINT name$, eng, bas, mat 累加各科成绩

engav = engav + eng

basav = basav + bas

matav = matav + mat

WEND

CLOSE 关闭文件

engav = engav / n 计算3科平均分

basav = basav / n

matav = matav / n

PRINT "english average = "; USING "##.##"; engav 显示3科平均分PRINT "basic average = "; USING "##.##"; basav

PRINT "mathematics average = "; USING "##.##"; matav

END 程序结束此程序能够为所有班级服务,而且对同一个班级可以多次添加数据。下面的会话过程表明,五年三班的文件还不存在,于是本程序建立之,并将键盘输入的两个学生的数据记入文件,在键入姓名时如果只按Enter,即输入了空串,表示结束输入。而后读出文件中所有学生(当前只有两个学生)的数据,同时算出三科的平均成绩。

class : 5-3

name : li ming

english,basic,mathematics : 64,69,72

name : wang hong

english,basic,mathematics : 78,69,82

name :

li ming 64 69 72

wang hong 78 69 82

English average = 71.00

basic average = 69.00

mathematics average = 77.00

下面的会话是第二次为五年三班输入数据,这次又增加了两个同学的数据,然后显示全部4个同学的数据,最后给出三科的平均成绩。

class : 5-3

name : lin nan

english,basic,mathematics : 92,88,93

name : zheng haiyang

english,basic,mathematics : 62,59,45

name :

li ming 64 69 72

wang hong 78 69 82

lin nan 92 88 93

zheng haiyang 62 59 45

english average = 74.00

basic average = 71.25

mathematics average = 73.00

在教学过程中,要让学生多练习,熟练掌握读入文件、输出文件的方法。同时要指导学生创建数据文件,以测试程序的正确性。

本讲作业:

1、文件中有若干个数,将其中重复的数删得只剩下一个。

文件输入:文件名为:2_1.in,格式为:每行有一个数,有若干行。

文件输出:文件名为:2_1.out,在一行显示。

2、求M,N的最小公倍数(输出到屏幕)。

文件输入:文件名为:2_21.in~2_20. in,格式为:M,N(每个文件只有1行)文件输出:文件名为2_21.out~2_20. out。

3、求N个字符串(N<20,串长<255)中最长的公共子串。如最长的公共子串不止一个,只输出最先找到的那一个。

文件输入:文件名为:2_3.in,每行一个字符串,有若干行。

文件输出:文件名为:2_3.out。

4、M进制数与N进制数互相转换。(M、N均为10以内的整数)

文件输入:文件名为:2_41.in~2_40. in,格式为:M□N□X(具体的数)

文件输出:文件名为:2_4.out。

10个测试文件的文件输出内容均在输出文件中。

Qbasic教程

Qbasic 教程 ●计算机语言大致分为三种: 机器语言(0、1)、 汇编语言(指令是用符号和数字来代替二进制代码的)、 高级语言(是由一系列按一定语言规则写出的语句组成的语言) ●关于程序: ?计算机程序就是:用计算机语言描述的解决问题的程序。 ?程序是:由让计算机完成任务的、合乎计算机语言规则的一系 列语句(指令)组成的。 ?计算机程序设计就是:探求解决问题的方法并将实现它的步骤 写成计算机的程序的过程。 ● 第一章BASIC语言概述 BASIC(Beginner’s All-purpose Symbolic Instruction Code 的缩写,意为初学者通用符号指令代码) 一、BASIC语言的发展 .BASIC语言于1964年问世三、QBasic的特点 QBasic是结构化的程序设计语言,与第二代BASIC相比有如下特点:

1、扩充了变量和常量的类型 .变量名长度:40个字符 .增加了长整型、定长字符型变量 .可定义数值常量、字符串常量 2、提供了新的选择结构 .条件语句 IF<条件>THEN <语句组1> ELSE <语句组2> END IF .多分支语句SELECT 3、改进了循环结构 增加以下两个循环语句: .WHILE循环 WHILE <条件> <循环体> WEND .DO循环 2、微机BASIC(第二代) .Microsoft总裁Bill.Gates编写只有4k字节的解释程序.TRS-80 BASIC

.Apple BASIC .MSBASIC(BASICA) .GWBASIC 3、结构化BASIC(第三代) .限制GOTO语句,程序模块化 .True BASIC真正的BASIC .Quick BASIC .Turbo BASIC .QBasic(DOS5.0以上) 4、面向对象的BASIC .windows环境下的Visual BASIC,图形界面,支持多媒体. 二、QBasic的特点 QBasic是结构化的程序设计语言,与第二代BASIC相比有如下特点: 1、扩充了变量和常量的类型 .变量名长度:40个字符 .增加了长整型、定长字符型变量 .可定义数值常量、字符串常量 2、提供了新的选择结构 .条件语句 IF<条件>THEN <语句组1>

QBASIC综合实例

第八节QBASIC综合实例 一、教材分析 程序的顺序结构、分支结构和循环结构这三种程序设计的基本结构的综合运用是程序设计中的最难部分,关键是训练学生掌握程序设计的基本步骤。 二、学生分析 学生对程序的顺序结构、分支结构和循环结构这三种程序设计的基本结构有了较为全面的了解,有了一定的语句基础。但是考试并不要求学生能独立编写程序,而只要求学生能读懂程序和完善程序。 教学知识点: 1、编制100以内的加法例子 2、打印“水仙花数” 3、打印“魔方数” 4、高次方程的求解 5、掌握程序设计的基本步骤 教学重点: 1、编制100以内的加法例子 2、打印“水仙花数” 3、打印“魔方数” 教学难点: 1、编制100以内的加法例子 2、打印“水仙花数” 3、打印“魔方数” 4、掌握程序设计的基本步骤 教学过程: 1、我们为小学生编制100以内的加、减、乘、除,具体要求是随机产生10道题,然后让学生回答,如果回答对打印出“Good!”,并就加上10分;否则打印出“Wrong!”[先以加法为例子进行讲解]。 REM 加法练习题 S=0 Randomize FOR I=1 TO 10 X=INT(RND(1)*100+1) Y= INT(RND(1)*100+1) PRINT X;“+”;Y;“=”; INPUT Z IF Z=X+Y THEN S=S+10 PRINT “Good!” ELSE PRINT “Wrong!” END IF

PRINT “S=”;S END 2、打印出100---999之间的所有“水仙花数”,所谓“水仙花数”就是本数的值等于本数各数字的立方和。如:153=13+53+33[重点是数字的分离技术]。 FOR I=100 TO 999 A=INT(I/100) B=INT((I-A*100)/10) C=I-A*100-B*10 IF I=A*A*A+B*B*B+C*C*C THEN PRINT I END IF NEXT I END 3、打印如下的“魔方数”。 CLS FOR I = 0 TO 12 STEP 4 FOR J = 1 TO 4 PRINT I + J; NEXT J PRINT NEXT I PRINT FOR I = 1 TO 4 FOR J = 0 TO 15 STEP 4 PRINT I + J;

QBasic 基础入门教程

QBasic 基础入门教程:基础课程0-启动和进入 Qbasic是一个Dos下的程序,也称作命令行方式,操作主要用键盘输入,因此需要适应用键盘来操作电脑,慢慢多熟悉; 1、启动程序 1)下载Qbasic程序,可以在“常用教具”里下载:https://www.doczj.com/doc/8c12412554.html,/teliute/jiaoju/index.htm 2)解压到D:盘根目录中,进入Qbasic文件夹后,双击一个Qbasic的文件,图标是一个窗口; 3)双击这个图标即可启动程序,出来的界面是英文的,程序设计里英文用的要比较多些; 另外一种进入方法,用命令行方式进入; 1)点“开始-所有程序-附件-命令提示符” ,进入Dos窗口,有个光标在一闪一闪; 2)输入D:↙ cd qbasic↙ qbasic↙(↙表示每行输完后按一下回车键,cd后面有个空格),这样也可以进入到Qbasic的窗口中;

这样的好处在于,如果有适当的汉字系统可以在这儿加载,然后程序中就可以输入汉字; 2、启动程序 1)程序启动后进入一个蓝色的窗口,窗口里头都是英文的标题; 2)按一下键盘左上角的“ESC键”进入窗口,这儿记着要按一下ESC键,才能进到窗口中,光标在工作区的右上角一闪一闪; ESC键有取消的作用,可以去掉开始的这个欢迎对话框;

3)退出qbasic的方法,按一下键盘上的Alt键再按F键,按Alt键的时候,菜单栏第一个File会变黑File加亮显示起来,按F 后会出来一个菜单; 4)再按一下X键,就可以退出qbasic了,如果出现一个保存对话框提示,没用的按N键就可以退出,有用的按一下Y键保存一下,然后退出; 本节学习了qbasic的进入和退出方法,如果你成功地理解并完成了练习,请继续学习下一课内容; QBasic 基础入门教程:基础课程1-编辑程序 这一节我们来学习,如何在编辑器中输入和运行程序,下面我们通过一个练习来学习操作; 1、启动qbasic 1)进入D:\qbasic文件夹,双击运行qbasic程序,按ESC键进入编辑窗口; 2)窗口上边是菜单栏,第一个是File文件菜单,中间是编辑区,下边是立即窗口; 3)按F6键或点击鼠标可以在两个区切换,最下边是状态栏,提示按F5键是运行:; 2、输入程序 1)光标在编辑区中一闪一闪,表示可以用键盘输入字符; 2)输入下列代码:(↙表示每行输完后按一下回车键,cls后面是单引号,print后面有一个空格) cls'hello↙ print "hello world."↙ 3)每输完一句按一下回车键,按回车后第一个单词自动变成大写;

第六节 QBASIC程序的实现

第六节 QBASIC程序的实现 【教学设计学科名称】 QBASIC程序是甘肃教育、甘肃声像出版社出版的初中信息技术八年级教材下册模块二《QBASIC 程序》第一节教学内容。 【所在班级情况,学生特点分析】 对于初中学生来说,学习QBASIC程序是首次接触程序设计,学起来会感到有点吃力。但是,他们通过其它学科的学习及一个多学期的信息技术学习,具备了用简单程序来解决问题的能力。引导学生参与教学过程,合作学习、交流讨论。 【教材内容分析】 本节主要让学生熟悉QBASIC程序的工作窗口中,学会程序的输入、运行和保存。对于初中学生来说这是第一次触程序设计,这一节介绍的是QBASIC程序设计基础知识,它是后面章节的学习的基础,学好了该节,有助于下一节及其它程序设计语言的学习和理解。 【教学目标】 知识与技能:熟悉QBASIC程序的工作窗口,学会程序的输入、运行和保存。 过程与方法:通过教师讲解演示,让学生理解程序的编写、输入、运行。通过自主探究学习,掌握QBASIC程序的基础知识。 情感态度与价值观:使学生具备辨别能力并熟练掌握语句在综合题中的应用。同时培养学生的自学能力及分析、解决实际问题的能力。 【教学重难点分析】 教学重点:熟悉QBASIC程序的工作窗口,学会程序的输入、运行和保存。 教学难点:程序的输入、运行和调试。 【教学课时】 1课时 【教学过程】 一、导入新课 计算机能做很多的事情,包括各种控制活动,它们都有在程序的控制和指挥下进行的。像今天我们学习的QBASIC程序就是一种计算机语言,我们可以用QBASIC程序编写计算机程序逻辑来使计算机完成预定任务,它的神奇力量来自人们设计好的一系列语句和指令。计算机语言是程序设计的工具,解决问题的具体方法和步骤是程序设计的关键。 【设计意图】:创设情境,引入新课。 二、讲授新课 1.什么是QBASIC程序设计语言。 师:演示QBASIC程序两个数相加程序的执行并提问,什么是QBASIC程序设计语言? 图一

QBasic_基础入门教程

QBasic基础入门教程 基础课程0 …………启动和进入Qbasic是一个Dos下的程序,也称作命令行方式,操作主要用键盘输入,因此需要适应用键盘来操作电脑,慢慢多熟悉; 1、启动程序 1)下载Qbasic程序,可以在“常用教具”里下载: https://www.doczj.com/doc/8c12412554.html,/jiaoju/index.htm 2)解压到D:盘根目录中,进入Qbasic文件夹后,双击一个Qbasic的文件, 图标是一个窗口; 3)双击这个图标即可启动程序,出来的界面是英文的,程序设计里英文用的要比较多些; 另外一种进入方法,用命令行方式进入; 1)点“开始-所有程序-附件-命令提示符”,进入Dos窗口,有个光标在一闪一闪;

2)输入 D:↙ cd qbasic↙ qbasic↙(↙表示每行输完后按一下回车键,cd 后面有个空格),这样也可以进入到Qbasic的窗口中; 这样的好处在于,如果有适当的汉字系统可以在这儿加载,然后程序中就可以输入汉字; 2、启动程序 1)程序启动后进入一个蓝色的窗口,窗口里头都是英文的标题;

2)按一下键盘左上角的“ESC键”进入窗口,这儿记着要按一下ESC键,才能进到窗口中,光标在工作区的右上角一闪一闪; ESC键有取消的作用,可以去掉开始的这个欢迎对话框;

3)退出qbasic的方法,按一下键盘上的Alt键再按F键,按Alt键的时候,菜单栏第一个File会变黑File加亮显示起来,按F后会出来一个菜单; 4)再按一下X键,就可以退出qbasic了,如果出现一个保存对话框提示,没用的按N键就可以退出,有用的按一下Y键保存一下,然后退出; 本节学习了qbasic的进入和退出方法,如果你成功地理解并完成了练习,请继续学习下一课内容; 基础课程1 …………编辑程序 这一节我们来学习,如何在编辑器中输入和运行程序,下面我们通过一个练习来学习操作; 1、启动qbasic 1)进入D:\qbasic文件夹,双击运行qbasic程序,按ESC键进入编辑窗口;

QBasic教程(全)

BASIC Qbasic 教程 BASIC(Beginner’s All-purpose Symbolic Instruction Code 的缩写,意为初学者通用符号指令代码)语言是在1964年由美国的两位教授Thomas 和John G.Kemeny在Fortran语言的基础上设计的语言系统,这个简单、易学的程序设计语言当时只有17条语句,12个函数和3个命令,现在一般称其为基本BASIC。 BASIC语言自诞生起,几十年间,经过世界和地的微机生产厂家的不断扩充和完善,先后出现了许多版本,IBM-PC及其兼容机上用的BASIC和GWBASIC.这些不同版本的BASIC语言并不兼容,在很大程度上依赖于具体的硬件,这些BASIC语言都是非结构化的,一般称其为第一代BASIC。70年代初,提出了结构化程序设计思想,BASIC语言的两位创始人Thomas 和John G.Kemeny于1985年推出了BASIC语言的新版本TrueBASIC,意思是说这才是真正的BASIC,以区别于各微机生产厂家自行开发的“街头BASIC”,它既保留了BASIC语言原有的简单,易学的特点,又使其成为结构化的程序设计语言,开创了BASIC语言的新纪元,属于第二代BASIC。 目前,比较流行的第二代BASIC还有Microsoft公司于1986年推出的Quick BASIC(快速BASIC)和Borland公司于1987年推出的TurboBASIC(增强BASIC),尤其是Quick BASIC提供了集编辑、调试、编译、运行于一体的集成环境,具有下拉菜单、多窗口及在线帮助功能,

并和以前IBM-PC机上的各种BASIC版本保持兼容。 进入90年代,Microsoft公司研制的Windows视窗软件问世之后,微软公司又开发了一个在Windows下运行的、面向对象的Visual BASIC (可视BASIC,即图形界面式的BASIC),称为第三代BASIC,Visual BASIC与Quick BASIC完全兼容,有Quick BASIC编写的程序不经修改就可在Visual BASIC下运行。属于第三代BASIC语言的还有GFA-BASIC和CA-Realizer。 今天的BASIC语言与最初的BASIC语言相比,无论是在功能上,还是在使用方法上,已经发生了巨大的变化,再也不是当初所谓的“初学者通用符号指令代码”了,但BASIC无论怎样变化,始终保持其简单、易学的特点,拥有最广泛的用户。 1991年6年,伴随着MS-DOS 5.0的推出,微软公司也同时推出了QBASIC,并作为MS-DOS 5.0的一个组成部分免费提供给用户。现在的MS-DOS 5.0及其以上版本都含有QBASIC。QBASIC与Quick BASIC 完全兼容,是Quick BASIC的简化版本,除不能编译及减少了初学者暂时用不着的一些调试方法外,具有Quick BASIC的大部分功能。QBASIC 采用解释方式,是一种会话式的语言,编写的程序可以立即运行并得到结果。由于QBASIC、Quick BASIC都是Microsoft公司开发的,BASIC 语言保持着高度的兼容性和良好的继承性,在学习QBASIC的基础上,可以很容易地掌握和使用Quick BASIC。另外,QBASIC只有两个文件QBASIC.EXE和QBASIC.HLP,用一张360K字节的软盘就可以存放下,无论是使用,还是维护、管理都很方便,所以,QBASIC是最适合初学者

qbasic程序的执行与实现

第一课QBASIC程序的实现 课时:1课时 班级:初一年级 教学目的:1.掌握QBASIC 系统的启动、退出。 2.初步了解QBASIC系统窗口。 3.初步认识QBASIC程序。 4.初步体验程序控制计算机。 教学重点:在QBASIC系统窗口下录入程序并执行。 教学难点:具体问题转化为QBASIC程序。 教学准备:2个简单QBASIC源程序代码。 教学过程: 引言: 从今天起我们学习计算机程序设计,首先大家要知道计算机能做很多的事情,包括各种控制活动,其实都是在程序的控制和指挥下进行的。计算机通过执行存入计算机中的程序完成各种任务,离开了程序,计算机什么也干不了。 什么是程序?程序是用计算机程序设计语言描述的解决问题的过程。 什么是计算机语言?被计算机识别的专用语言。QBASIC语言、VB语言、LOGO语言是程序设计语言(书写程序的),属于计算机语言。 什么是程序设计?是把“人自己做的事情转变成计算机能做的事

情”。此过程需要详尽描述完成事情的过程,以便设备能准确的重复这项工作。用计算机语言描述完成事情的过程是程序。QBASIC程序是用QBASIC语言描述完成事情的过程。 教学过程: (1)完成QBASIC系统的启动、程序录入、程序执行等任务。 (2)在QBASIC系统下调试运行输出*三角形图的程序 课前准备2个简单小程序 LET A=6.8 将数6.8送入变量A中

LET B=3.5 将数3.5送入变量B中 LET L=(A+B)*2 将A与B的2倍送入变量L中LET S=A*B 将A与B的积送入变量S中PRINT L,S 显示输出L及S的值 END 结束 PRINT “*” PRINT “**” PRINT “*****” PRINT “*******” END

QBASIC语言程序设计

QBASIC语言程序设计 模拟试卷 (考试时间120分钟,满分100分) 一、选择题(30小题,每小题2分,共60分) 1、QBASIC表达式(LOG(1)+ABS(-1)+INT(RND(1))的值是 A) -1 B) 1 C) 0 D) 2 2、在QBASIC中表达式EXP(-8)+SIN(-8)+SQR(8)的类型是 A) 算术表达式 B) 关系表达式 C) 错误的表达式 D) 逻辑表达式 3、要使变量x赋值为1到100间(含1,不含100)的一个随机整数,正面语句正确的是 A) x=INT(100*RND) B) x=INT(101*RND) C) x=1+INT(100*RND) D) x=1+INT(99*RND) 4、有如下程序 FOR i=1 TO 3 FOR j=1 TO i FOR k=j TO 3 a=a+1 NEXT k NEXT j NEXT i PRINT a END 在运行后输出a的值是 A) 3 B) 14 C) 9 D) 21 5、有如下程序 a=3 IF a then Print3; END IF

IF a THEN PRINT4; END IF IF a THEN PRINT5; END IF IF a THEN PRINT6; END IF PRINT END 运行后输出结果是 A) 3 B) 3 4 C) 3 4 5 D) 3 4 5 6 6、有如下程序 FOR j=1 TO 10 x=2*j-1 IF x/3=x\3 OR x/5=x\5 THEN s=s+x NEXT j PRINT "s=";s END 运行后输出S的值是 A) 27 B) 15 C) 32 D) 20 7、有如下程序 sum=0 FOR k=1 TO 10 IF k=10 THEN ELSE sum=sum+k END IF

[实用参考]QBasic教程(全).doc

BASIC Qbasic教程 BASIC(Beginner’s All-purposeSymbolicInstructionCode的缩写,意为初学者通用符号指令代码)语言是在1964年由美国的两位教授Thomas和JohnG.Kemeny在Fortran语言的基础上设计的语言系统,这个简单、易学的程序设计语言当时只有17条语句,12个函数和3个命令,现在一般称其为基本BASIC。 BASIC语言自诞生起,几十年间,经过世界和地的微机生产厂家的不断扩充和完善,先后出现了许多版本,IBM-PC及其兼容机上用的BASIC和GWBASIC.这些不同版本的BASIC语言并不兼容,在很大程度上依赖于具体的硬件,这些BASIC语言都是非结构化的,一般称其为第一代BASIC。70年代初,提出了结构化程序设计思想,BASIC语言的两位创始人Thomas和JohnG.Kemeny于1985年推出了BASIC语言的新版本TrueBASIC,意思是说这才是真正的BASIC,以区别于各微机生产厂家自行开发的“街头BASIC”,它既保留了BASIC语言原有的简单,易学的特点,又使其成为结构化的程序设计语言,开创了BASIC语言的新纪元,属于第二代BASIC。 目前,比较流行的第二代BASIC还有Microsoft公司于1986年推出的QuickBASIC(快速BASIC)和Borland公司于1987年推出的TurboBASIC(增强BASIC),尤其是QuickBASIC提供了集编辑、调试、编译、运行于一体的集成环境,具有下拉菜单、多窗口及在线帮助功能,并和以前IBM-PC机上的各种BASIC版本保持兼容。 进入90年代,Microsoft公司研制的Windows视窗软件问世之后,微软公司又开发了一个在Windows下运行的、面向对象的VisualBASIC(可视BASIC,

QBASIC程序设计

QBASIC程序设计

QBASIC程序设计 BASIC是英文Beginner’s All-purpose Sybol ——初学者通用符号指令代码。BASIC语言是一种常用的高级程序设计语言之一。目前比较流行的BASIC语言版本有True BASIC、Turbo BASIC、QBASIC、GWBASIC。本讲义仅介绍QBASIC。 BASIC语言基本知识与要求 1、QBASIC语言的基本知识: QBASIC语言的基本特点; 常量、变量、字符串、算术表达式的概念; 数的表式方法及范围; 语句的基本格式; 顺序、选择、循环结构的程序设计; 程序设计的基本步骤。 2、QBASIC语句: LET INPUT PRINT END IF FOR DO WHILE REM 3、算术运算符、关系运算符与逻辑运算符:+、—、*、/、\、MOD、^ =、>、<、>=、<=、< > AND、OR、NOT 4、流程图的基本符号;流程图的作用。 5、循环语句 循环变量、循环体、循环初值、循环终值、步长的概念;循环语句的基本格式。 6、常用函数 数值函数 INT(X)、ABS(X)、SQR(X)、RND(X)、 SGN(X)、SIN(X)、COS(X)、TAN(X) 字符串函数(了解)

ASC、LEN 、TAB (X)、VAL、LOG(X)、STR$、CHR$、 LEFT$、RIGHT$、 MID$ 7、数组及其应用(了解) 下标变量、一维、二维数组的概念;数组说明语句 第一章 BASIC 语言基础 第一节 QBASIC 的环境 1、 QBASIC 的进入 用QBASIC 语言编写程序,首先要进入QBASIC 集成环境。QBASIC 主要由QBASIC.EXE 和QBASIC.HLP 两个文件组成,按照教师的要求进入指定的位置,运行QBASIC.EXE 后,屏幕上会出现一个如图1-1的对话框: 直接单击“确定”按钮,便进入QBASIC 的集成环境,其界面如下图2-2: 图1-1

QBASIC文件操作

QB的文件操作 学习重点: 1、了解文件的概念和分类。 2、掌握文件的打开、关闭以及读文件、写文件的方法,并能熟练运用。 3、会创建数据文件测试程序的正确性。 一、文件的概念 文件(file)也叫作文档,是存放在磁盘(包括硬盘、软盘、U盘、光盘)上的一批数据,每个文件必须有一个文件全名,用文件全名来指明文件。文件全名包括盘符、若干级目录、文件名、文件类型。 例如: d:\mydir\basic\data.txt 这里,盘符= d:,而且有三级目录,每个斜线引出一级目录,文件名= data ,每级目录和文件名都不得超8个字符,文件类型=.txt,这是最常见的正文文件类型。 以下的文件名均合法: C:\a1.bas 代表C盘根目录下的a1.bas文件。 C:\qb\xue.dat 代表C盘中qb子目录中的xue.dat文件。 A:student.dat 代表A盘中当前目录中的student.dat文件。 abc.bas 代表当前盘、当前目录中的abc.bas文件。 我们知道,计算机的内存容量小,造价高,而且还有一个严重的缺点——易失性,就是说一旦关闭了电源,内存中的全部内容就统统丢失了。为此人们引进了磁盘文件作为内存的补充。 那么文件有什么用途呢?举例说吧,假如你是班级学习委员,编了一个记分的程序。第一天你输入了10个同学的各科成绩,然后你就关机睡觉了。第二天打开机器,你的数据就不翼而飞了,还得从头再来。如果你会使用文件,那就好办了。第一天你键入了一些数据,关机前把它们记入文件,即使关机了文件中的数据也不会丢失,第二天只要让QB打开文件并把其中数据读入到内存,就可以继续输入了。 还有一种情况应该使用文件。如果一个程序需要读取许多数据,若是每次都从键盘敲入,那么既麻烦又容易出错。我们可以把数据做成一个文件,并且让程序读取其中的数据。这样一来程序可能具有更大的灵活性。 按照文件中数据的表现形式来分类,可以将文件分成正文文件和二进制文件。正文文件也叫做ASCII文件,其中的数据都是由ASCII代码构成的,例如我们在QB

QBASIC语言程序设计说课

一、说教材 1、教材内容:选自中等职业学校教材《QBASIC语言程序设计》第六章第三节数组的应用——《冒泡排序》。 2、本课教学目的:①让学生掌握冒泡排序的基本思想②能按该思想对一组无序数进行排序③能用QBASIC语言编写冒泡排序的程序。④培养学生勤动手、勤动脑的学习兴趣。 3、本课教学重点:通过本课的学习让学生掌握冒泡排序的基本思想,能编写程序。 4、本课教学的难点:模拟实际排序过程,排序程序的编写——各个循环体的语句。 5、本课课时安排:第一课时:学习冒泡排序相关内容;第二课时:学生上机,在QBASIC 语言编辑界面中完成该程序的编写,并调试通过。 6、本课课前准备:《冒泡排序》CAI辅助课件一。 7、本课教材简析:《冒泡排序》是程序设计中很经典的一种数组排序算法,排序思想清晰,过程可描述性强,学生容易理解、掌握;语言编程的实用性也较强,在各种语言的编写中都能应用,对计算机从业人员来说,是必须掌握的程序算法之一。 二、说学生 本节课面向的学生是中专计算机专业学生,自主学习能力不是很好,学习积极性不是很高。学生虽然已经学习了QBASIC语言一段时间,对基本的语句已经掌握,能进行小程序编写,但总的来说知识掌握还不全面,并且个体差异大,好的好、差的差,这节课对大部分学生来说都比较重要,对算法思想的培养对以后较多的排序、查找算法都是一个开端,所以这一节课是提高他们QBASIC语言程序设计能力的关键。 三、说教法 1、使用讲授引导及演示等方法,从具体实际例子对照算法思想。 2、课堂中,注重学生能动性培养,引导学生主动思考,注意即兴教学。 3、创设良好的多媒体教室环境和学习气氛,充分运用先进教学手段,以CAI课件辅助教学,调动学生的学习兴趣和积极性,使学生有兴趣地学、有意愿地学。充分体现知识性和趣味性相结合的原则。 四、说学法 教学活动是以教师为主导、学生为主体的双边活动。以突出学生为主体的学习模式,学生在教师的引导下,通过观察、分析、思考、设计等方法完成学习内容。然后通过练习让学生主动、积极地参与到实际应用中来,通过程序编写使学生由“要我学”转变到“我要学”,充分调动了学生的学习积极性和求知欲望,使整个课堂充满了浓厚的学习气氛。 五、本课教学步骤

项目教学案例QBASIC一维数组的应用之冒泡排序

项目教学案例Q B A S I C 一维数组的应用之冒泡 排序 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

项目教学案例:QBASIC一维数组的应用之冒泡排序 背景: 传统教学的模式,总是以“知识为本位”,强调学科知识的科学性与系统性,强调识记,忽视对学生能力和创造性的培养,学生得到的知识和技能很多是片面和孤立的,造成了学生学习积极性不高、厌学的情形。 基于项目教学的方法不仅可以激发学生的探求知识的热情、提高课堂参与度,还可以提高他们分析问题、解决问题的能力,使他们具备较强的实践能力、创新能力及团队合作水平。 本课就采用项目教学法来组织教学。 教学过程: 一、【项目情景】 我校刚举行完“爱我中华”大合唱比赛,评委们将各班的成绩也算出来了,学校要对优胜班级颁奖,但首先得对它们排序,这个光荣的任务就交给咱们计算机班的同学,想想看有哪些方法可以完成?怎样快速的实现排序? 二、【项目介绍】 在实际工作中常遇到大批量数据的处理,有时用简单变量很难实现,这时需要引入一种数据结构——数组。排序是一维数组的典型应用,也是程序设计的基本任务之一,目前有很多种排序算法,如:顺序比较法排序、选择排序、冒泡法排序、插入法排序等。其中冒泡排序算法思想较简单,当元素个数不多时,还是用得比较多的。 三、【项目分析】 根据项目的需求,整个项目过程分为以下四个子项目: (1)设计流程图 (2)编写程序实现排序 (3)上机调试运行程序 (4)修改完善程序 四、【学习者分析】

学生学习该项目之前已掌握了一维数组的概念及其定义语句,并通过上网查资料等方式了解了冒泡排序的算法思想、排序原理。 五、【项目目标】 知识目标: 1.掌握冒泡排序的排序原理、过程及排序程序段; 2.熟练掌握一维数组的定义及应用; 能力目标: 培养学生应用QBASIC编程解决简单实际问题的能力及团体合作精神。 六、【项目重、难点】 1.泡排序的排序原理 2.生分工合作完成整个项目 3.合运用所学知识解决实际问题 七、【前期准备】 1.生项目小组4个:由教师帮助学生分组,要求能力强学生和能力弱的学生合理地搭配;男生、女生尽量搭配; 2.生项目小组负责人:可由小组成员推荐产生,该负责人要负责整个项目,从项目规划,到人员分工,到综合测试,直至最后总结汇报。 3.生通过教材、上网等查阅排序的几种方法、冒泡排序的排序原理、一维数组的应用等相关知识。 八、【设备需要】 计算机房(安装多媒体教学软件及QBASIC程序) 九、【冒泡算法演示动画截图】 十、【项目实施过程】

《QBASIC编程语言基础》

《QBASIC编程语言基础》 单行IF条件选择语句说课稿 《QBASIC编程语言基础》 单行IF条件选择语句说课稿 我说课的内容是电子工业出版社出版的中等职业学校电子信息类教材计算机技术专业教材第四章第一节IF条件选择语句。这节课我将分四部分进行介绍,分别是教材分析、教学模式、教学方法、教学过程,首先来看本次说课的第一部分即教材分析部分。 一、教材分析 1、教材的地位和作用:本节课与前面三章有着紧密联系,前面三章讲述了QBASIC语言中的基本概念、基本语句,是本节课的基础,本节课主要讲述了分支结构程序的条件语句,它是结构化程序设计的真正开始,是QBASIC语言的重要语法之一,在所有的程序设计中,分支结构起着至关重要的作用。本课后面的内容都是以分支结构作为基础。所以必须给学生一个完整的知识结构,就必须重视本节课的教学。 2、教学目标: (1)知识目标: ①使学生了解分支结构的含义。正确使用分支结构语句设计程序。 ②能用分支结构的条件语句处理一些简单的日常问题。 (2)能力目标 ①培养学生具体问题程序化的能力。 ②让学生体会到人与计算机在处理问题逻辑思维过程的相同之处。 (3)心理目标 ①在上机调试程序的过程中,强化学生的理解力和注意力。 ②让学生在从无到有的探索过程中感受成功的喜悦。 3、重点、难点 本节重点:条件语句。 本节难点:正确理解分支结构的流程。 二、教学模式 主要是通过讲解与上机调试相结合来完成本节课,这样可以加深学生的直观性和趣味性,提高了教学的效果。根据对分支结构流程进行反复分析的教学流程,让学生逐步掌握单行IF语句。 三、教学方法 1、教法:根据人们对客观事物的认识规律,本节课我是以“提出现象--探索思路――归纳总结――语法分析”为主展开教学。根据本节内容不易理解,且较枯燥的特点,我采取讲解与实践相结合的教学方法,对于正确理解分支结构的流程,我利用了流程图与程序进行对比的方法来突破难点,让学生在生动有趣的环境下了解分支结构流程,掌握条件语句的应用。然后通过学生自己举出日常生活中需要对条件进行判断的例子,来分析流程,设计编程,使学生对分支结构有一个更深刻的理解。 2、学法:根据本节课的特点,我引用生活中的一个实际例子来引入新课,通过分析得出条件语句语法。然后对这个例子进行流程分析,编程设计,加深对条件语句的理解。采用仔细观察,认真思考,积极讨论的学习方法。从实际例子中感知,又从理解中去升华,在实际应用中消化是本节课的学法。 四、教学过程 1、导入新课:

VB最简单实例入门教程

VB最简单实例入门教程 目录 (提示:按ctrl,并单击鼠标,可以跳到相应页) 1.1 1 我们需要什么 (3) 1.2 2 第二章:事件、属性及数据类型 (3) 1.3 3 第三章:VB语言 (6) 1.4 4-1第四章按钮(一) (12) 1.5 4- 第四章按钮(二) (19) 1.6 5 第五章菜单 (27) 1.7 6-1第六章输入(一) (34) 1.8 6-2第六章输入(二) (42) 1.9 6-3第六章输入(三) (52) 1.10 7第七章输出 (59) 附录 (63) 2.1 VB教程 (63)

1.1 1 我们需要什么 我们需要什么?当我们在一个精彩的游戏世界中游历了一番之后,或是惊叹于某一工具软件的小巧精致之余,多少总会产生些许编程的冲动。编程吗,在以前如果你对电脑还是一个门外汉,那实在是一件可望而不可及的事情。如果运用基于DOS下的编程语言,譬如C、Qbasic、Pascal等等,真不知何年何月才能有所成就。 编程是需要天赋的,你必须在大脑中对整个程序有一个清晰的轮廓,一个高效的流程,这并不是每个人都能做到的,你必须思之慎之,这也使编程变成一件最枯燥无味的事情。但在第四代计算机语言(可视化编程)出现后,可以确切的说它开发了人们的更多天赋,并不局限于那些头脑异常清晰的人,每一个人都可以发现自己也可以编出一些从前不敢问津的程序,想象力的充分发挥才是第四代语言的精粹。 Visual Basic(以下简称VB)可以说是可视化语言的先驱了,而且它也是可视化程度最高的一个,从几年前VB诞生之日起到现在,它已经经历了五个版本,而且现在微软正在紧张的进行着VB6.0的研制、测试,这么高的更新率,不外乎说明两个问题:用户对VB的热衷,微软对VB的重视。不可否认微软对市场的预测能力是极为高明的,而它强大的技术、财力支持也使它在许多以前未进入的领域,在不长的时间内有成为最有力的竞争对手,如IE之于浏览器领域,《帝国时代》之于游戏都是最好的例证。对于VB现在也有一个很强的竞争对手――Delphi,有人把它称作VB杀手,这显然有偏激之处,VB的确有它的不足之处,但Delphi 又何尝不是呢,而且以微软对VB的倾心,VB的功能必然会越来越强大。 VB的诞生 VB的出现可以说是Microsoft Windows的日渐成熟的必然产物。Microsoft Windows为程序员和最终用户提供了一个共同的人机界面。对用户,Windows提供了一个图形鼠标的操作环境,该环境对所有的应用程序都一样;对于程序员,Windows提供了一组预定义工具----称之为Microsoft Windows 的软件开发工具箱(SDK),该工具能使程序员建立一个与Windows界面相同的应用程序,而且,程序员不必关心最终用户的硬件配置情况。在这一开发环境中,程序员唯一困难的是Microsoft SDK提供了六百多个函数和与其一致的事件驱动(event-driven)编程技术。两种新方法的交叉使众多的程序员重新陷入困境,程序员不仅要掌握程序驱动编程技术和六百多个函数的功能,而且还得用C语言描述这些问题。因此一般情况下,程序员首先要掌握C程序设计技术,而后再开始学习SDK。这样的条件下就要求在Microsoft多任务环境下出现一种操作方便,使用简单的新工具----Visual Basic由此诞生。 何为可视 英文Visual的意思是“视觉的”,“可视的Baisc”这个名字可能抽象了点,但实际上它却是最直观的编程方法,之所以叫做“可视”,你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤。在VB中引入了控件的概念,在Windows中控件的身影无处不在,各种各样的按钮、文本框、无线钮,都是控件的种类,VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法。这样你就可以象在画板上一样,随意点几下鼠标,一个按钮就完成了,这些在以前的编程语言下是要经过相当复杂的工作的。

甘教版八年级信息技术下教案 QBASIC程序的实现

模块一制作动漫 第二节 教学目的: 知识目标: 1、熟悉QBASIC程序的工作窗口; 2、学会程序的输入、运行和保存。 能力目标:学会程序的输入、运行和保存。 情感目标:通过本课的学习,体验计算机语言。 教学重点与难点:学会程序的输入、运行和保存。 教学方法:讲授、练习、拓展 教学准备:QBASIC程序 教学过程: 第一教时 一、导入新课:教师讲解,什么是程序设计。 二、学习新课: 讲授:什么是QBASIC 程序设计语言? QBASIC语言与人类语言有着相同之处,也是用于表达思想、进行交流和解决问题的工具。人们使用QBASIC语言把解决问题的步骤和方法编成一条条有序的指令,计算机通过执行一条条指令完成交给它的任务。 三、自主活动: 1、“做中学”:启动QBASIC程序

双击“我的电脑”-“本地硬盘”(存放有QBASIC系统)-“QBASIC”文件夹-“QBASIC”或“QB”可执行文件,进入QBASIC系统环境。 2、教师讲授: (1)菜单栏:单击每个菜单项都可以看到一个下拉式菜单的菜单名,它们是QBASIC的操作命令。 (2)文件名:显示正在编写的程序文件名。如果新的程序文件还没有存盘,则显示“Untiled”(无名)。 (3)提示栏:显示一些按键的提示信息,如按F5键是运行程序。 四、实践与提高: 自主探索:单击菜单栏中的File、Edit和Run菜单项,想想下拉式菜单中各项的中文含意,并记录下来。 File Run New Cut Save Paste 第二教时 一、导入新课:复习巩固。

二、学习新课: “做中学”:QBASIC系统环境下的操作 1、输入QBASIC程序 将光标移至空白编辑区的第一行,输入如下加法程序: REM program A1.BAS ‘说明语句 CLS ‘清屏 LET a=10 ‘将10赋值给变量a LET b=20 ‘将20赋值给变量b LET c=a+b ‘将a+b的和,赋值给变量c PRINT a;”+”;b”;=”;c ‘打印出c的值 END ‘结束 2、运行QBASIC程序 在QBASIC的工作窗口下,单击菜单栏中的“Run”菜单项下的“Start”命令。程序被运行,结果显示在“输出屏幕上”,屏幕上10+20=30是程序运行的结果。 3、保存程序文件 (1)单击菜单栏中的“File”菜单项,单击“Save As”(保存到…)命令,弹出保存文件位置窗口。 (2)在“File Name”框中输入要保存的程序文件名,例如“A1.BAS”。系统默认保存位置是QBASIC系统文件夹内,即保存的文件被存放QBASIC系统的文件夹。 (3)单击“”保存。

Qbasic编程语言基础

《Qbasic编程语言》练习 一、填空题(每空2分,共30分) 1. 和都与具体的计算机有关,因而被称为面向机器的语言。 2 .编程语言进行程序设计的过程是设计人员根据实际任务提出问题,然后确定,构造数学模型,画出,选择合适的,编写并上机反复调试,直到满足实际需要为止。 3. 单精度实数有形式和形式两种,用形式表示的单精度实数,后面可以加类型符”!”。 4. 赋值语句的作用是。如果被赋值的数值变量与赋值号右边的数值数据属于不同类型,则在赋值时以赋值号边的变量类型为准。 5. QBASIC把一行划分为五个标准输出区,每一区占14列,第五区占列。 6. 所谓循环,是指对同一个程序段重复执行若干次,被重复执行的部分称为。 7. 语句根据程序运行到此时的某些条件来决定后面的流程,判断的条件可以是关系表达式或表达式。 二、选择题(每小题3分,共30分。每小题选项中只有一个答案是 正确的,请将正确答案的序号填在题后的括号内) 1.下列四项作为QBASIC语言中的常量,非法的是: A)PI B)“HELLO”C)3.5E-01 D)56.34 2.变量IJK是: A)整形变量B)单精度变量C)双精度变量D)字符串变量 3.表达式Y=5*SIN(3.14159/10)是: A)算术表达式B)关系表达式C)逻辑表达式D)代数表达式 4.下列QBASIC语句中正确的语句是: A) READ A,B,C B) READ A;B;C C) READ A B C D) READ A,B,C, 5..运行下面程序,内层循环的循环总次数是: FOR K=1 TO 2 FOR L=1 TO K NEXT L NEXT K END A)1 B)2 C)3 D)4 6.阅读下面程序,并选择输出结果: X=1

相关主题
文本预览
相关文档 最新文档