FREE PASCAL入门文件输入与输出

FREE PASCAL入门文件输入与输出
FREE PASCAL入门文件输入与输出

使用文件输入输出数据

任何程序都需要产生一些输出,有时也需要接受若干个输入。这些输入、输出实际上是可以用文件的方式来实现的,在Pascal中可以用标准文件“input”和“o utput”来实现,它们分别对应标准的输入设备和标准输出设备(可省略不写),这也就是一些程序的首部如下书写的原因:

program ex(input,output);

……

或:program ex;

对于大量数据的输入和输出都是用文件来实现的,因此,这就要求我们必须熟练掌握在程序中实现对文件的操作。

第1节产生随机数文件

【问题描述】

编写一个程序,产生500个1000以内的随机正整数,存放在data.out文件中,并同时统计从其中大于等于500的数据个数。

【问题分析】

本题有两个问题需要解决,一要掌握随机数的生成原理,让计算机自动生成随机数;二是将计算机产生的随机数据存入文件中。

【程序实现】

Program p4_1(input,output);

const n=500; {n为控制随机数个数的变量}

var

i,a,s:integer; {i为循环变量、a为暂时存放随机数的变量、s为>=500的数的个数}

f:text; {定义f为文本文件变量}

begin

assign(f,'data.out'); {关联文件变量f到一个外部文件data.out}

rewrite(f); {以新建写文件的方式打开文件}

randomize; {设置随机种子}

s:=0; {统计变量清零}

for i:=1 to n do

begin

a:=random(1001); {产生随机数}

write(f,a:5); {将随机数写到文件里}

if i mod 10 =0 then writeln(f);{每写10个数换一行}

if a>=500 then s:=s+1;{统计>=500的数的个数} end;

close(f); {关闭文件}

write('>=500 :', s); {在屏幕上打印>=500的数的个数s } end.

【相关知识】

1.pascal程序中写文件的5个步骤

在Pascal程序重创建文件并写入数据要经历5个步骤,即:定义文件变量、关联、写准备、写数据、关闭文件变量。

①定义:在变量说明部分定义文件变量,变量名自己取,类型定义为text型。

②关联:将一外部磁盘文件名赋于文本文件变量,使该文本文件与一相应外部磁盘文件相关联。命令格式为:

assign(f,name)

其中f为定义的文本文件变量,name为实际磁盘上文件的文件名

如:assign(file1, ' fileout.dat ' )

或:assign(f1,'e:\aq2006\a1.out ')

磁盘文件如包含路径,如'e:\aq2006\a1.out ' ,则表示将文件存放到e:\aq20 06文件夹中,文件名为a1.out,如果不加路径,则存放在pascal工作目录中,如果工作目录没有更改,Free Pascal默认的工作目录一般为“C:\”。

经过关联后,在程序中,如果对文本文件变量file1或f1的操作,也就是对外部实际磁盘文件fileout.dat或e:\aq2006\a1.out的操作。

③写准备:如果要向文件中写入数据,则在写入数据之前应先以写入方式打开。具体的写打开方式有两种:

命令格式1:rewrite(f)

功能:创建并打开新文件准备写,若已有同名文件则删除再创建

命令格式2:append(f)

功能:打开已存在的文件并追加

④写数据:写入数据时,就使用输出语句write和writeln语句,写入的效果就如同将屏幕上的数据原样写入文件中。只是在使用这两条语句时,必须先使用文件变量指明写入对象。如:

Write(f,s) 或 writeln(file1,a(5),a(6))

前者含义为向文件f中写入变量s的值,后者的含义为向文件file1写入数组变量a(5)、a(6)的值。注意,这些数据实际上是写入这些文件变量所关联的磁盘文件中。

⑤关闭:文件写完后,必须关闭,关闭的格式为:Close(f),即关闭文件变量f。

2.查看文本文件

由于文本文件是以ASCII码的方式存储,故查看文本文件的内容是极为方便,在DOS状态可使用 DOS中TYPE等命令进行查看,在Pascal中可以象取程序一样取出文件进行查看。而在windows操作系统中,最方便的方法是按下键盘

上空格键两边的windows键,切换到桌面,再找到刚才程序生成的数据文件,用记事本查看该数据文件的内容,如图1.1图4.1所示的就是用记事本打开示例数据文件的效果。

图4.1用记事本打开数据

3.文本文件的特点

①行结构

文本文件由若干行组成,行与行之间用行结束标记隔开,文件末尾有一个文件结束标记。由于各行长度可能不同,所以无法计算出给定行在文本文件中的确定位置,从而只能顺序地处理文本文件,而且不能对一文本文件同时进行输入和输出。

②自动转换功能

文本文件的每一个元素均为字符型,在将一个变量写入文本文件时,也会自动转移为字符型。与此相反,在将文件元素读入到一个变量(整型,实型或字符串型)中时,Free Pascal会自动将其转换为与变量相同的数据类型。

4.计算机自动生成随机数

随机数是计算机程序中方便获得大量模拟数据的一个重要手段。在pascal中,可以利用random 函数自动生成随机数,其格式为:

random(range)

不指定range时,结果是[0,1]之间的随机实数([0,1]表示≥0并且≤1)。如果指定了range,range必须是整型表达式,结果为[0,range]之间的随机正整数,如果range为0则,返回0。

随机数产生程序由randomize命令初始化,因此在使用random函数之前,应先使用randomize命令进行随机种子的初始化。

【同步练习】

1.已知斐波那契(faibonacci)数列的前几个数分别是0、1、1、2、3、5、8……,编写程序求此数列的前100项,并将前100项输出到一个文件中。

问题分析:

此问题的解决利用以前章节所学的知识完全可以解决,只要掌握斐波那契数列从第3项开始,任意一项的值等于前两项值的和,即:

F(n)= F(n-1)+ F(n-2)

需要注意的是循环的次数要控制准确,因为第1项是从0开始的,而不想通常的题目是从1开始的。本题中练习的重点是如何将这些数输入到文件中,只要掌握的血文件的基本要领,本题是不难完成的。

程序设计:略

2.照使用pascal语言程序写文件的步骤有如下5步,请将它们正确排序:

①用write或writeln向文件中写入数据。

②用close命令关闭文件。

③在程序说明的var区用text类型标志定义一个文件变量。

④用rewrite或者用append命令以新建或追加方式打开文件,准备存放数据。

⑤用assigh命令设定要操作的磁盘文件。

正确的步骤是:__________________________________

第2节对文件中的数据进行排序

【问题描述】

在上一课由程序生成的文件data.out中,读入500个随机数,将它们排序后存放到datasort.out中。

【问题分析】

本例中先要打开data.out文件,将其中的数据读入到一个数组中,然后进行排序,最后将排序的结果输出到文件datasort.out 中。只要认真仔细的按照文件数据的读取和写入的步骤来编程,程序的实现应该是不成问题的。

【程序实现】

Program p4_2(input,output);

const n=500; {n为控制随机数个数的变量}

var

i,j,p,t:integer;

f1,f2:text; {定义f1、f2为文本文件变量}

a:array[1..n] of integer; {定义数组a}

begin

assign(f1,'data.out'); {关联文件变量f1到外部文件data.out}

reset(f1); {复位文件指针,以读方式打开文件}

for i:=1 to n do read(f1,a[i]); {读入数据存放到数组a中}

close(f1);

for i:=1 to n-1 do {选择法排序}

begin

p:=i;

for j:=i+1 to n do

if a[j]

t:=a[i];a[i]:=a[p];a[p]:=t;

end;

assign(f2,'datasort.out'); {关联文件变量f2到输出文件datasort.out}

rewrite(f2); {以新建写文件的方式打开文件f2}

for i:=1 to n do

begin

write(f2,a[i]:5); {将数组中的数依次写到文件里}

if i mod 10 =0 then writeln(f2);{每写10个数换一行} end;

close(f2); {关闭文件}

end.

程序运行后,用记事本程序打开datasort.out文件,可以看到排列好的数据如图4. 2所示。

图4.2排序后的数据文件内容

【相关知识】

1.pascal程序中读文件的5个步骤

在Pascal程序中读入也要经历5个步骤,即:定义文件变量、关联磁盘文件、读准备、读数据、关闭文件变量。

定义文件变量、关联磁盘文件、关闭文件变量等几步和写文件操作类似,这里就不再赘述了。

读准备是在读数据之前,先以读方式,复位文件指针,命令格式是reset(文件变量)。

读数据时,就使用读语句read和readln语句。和写文件数据一样,读数据时也要指定从那个文件变量中读入数据。如:

read(f,s) 或 readln(file1,a(5),a(6))

即从文件f中读入数据,赋值给变量s;从文件file1中读入两个数据,赋值给数组变量a(5)、a(6)。

以读文件方式时打开文件时,实际上有一个文件指针指向第1个数据,读完一个数据后,指针自动指向下一个数据,当程序中再有读数据操作时,将读入指针所指的数据。碰到readln语句时,读完readln语句所需数据后,文件指针自动换行,指向下一行的第1个数据。

2.与文本文件相关的函数:

与文本文件相关的函数有两个,即eof(f)和eoln(f),它们的含义是:

(1)eof(f) —布尔函数,用于判断文件结束否。其中f是文件变量,函数的返回结果为true时,表示到达文件尾,反之则未到文件尾。eof是end of file 的缩写。

(2)eoln(f) —布尔函数,用于判断行结束否。其中f是文件变量,函数的返回结果为true时,表示到达本行结尾,反之则未到行尾。eoln是end of line的缩写。

【同步练习】

1.现有两个已经按从小到大排好序的整数文件f1和f2,请编写程序将f1和f2合并成一个文件f12,使得合并后的文件也是按从小到大排好序的。

问题分析:

解决本题需要处理好以下几个方面的问题。

①本文题涉及到同时对三个文件的操作,同时从f1和f2中读取数据,再向f3中写数据。只要思路清晰,文件的读写部分难度不大。

②由于数据量不定,读取数据用while循环,循环的条件由eof(f)函数来控制。

③合并的算法可以采用如下思路:

先从f1和f2各读一个数a1、a2,比较大小,将小的(假如a2小)写入f3;接着再在f2中读一个数,跟a1比,小的写入f3,依此类推,直到某个文件中的数读完,再将另外一个文件中剩下的数依次写入f3。

这个算法就好像两个已经按高矮排好队的队列合并成一个新队列一样。请你想象一下就会明白这个算法的思路了。

2.编写一程序,计算英文文章文本文件中,字母e出现了多少次。

3.编写一程序,统计一个文本文件f中共有多少行和多少字符。

4.编写程序从磁盘上读取一个由100个实数组成的实型数据文件(indata.dat),以此文件中所有大于平均值的实数建立一个名为“above.dat”的文件,其余的建立一个名为“rest.dat”的文件。

第3节利用文件测试程序

【问题描述】

某学习小组有10人,参加某次测验,考核6门功课,统计每人的总分及各门的平均分,将原始数据及结果数据放入文本文件中。

【问题分析】

本文题的程序设计部分所涉及的知识都是前面学习过的文件知识,这里主要是讨论如何编写制作测试数据来检验程序的正确性。

利用Windows的“记事本”程序建立原始数据文件textin.dat存贮在磁盘中,其内容如下:

10 6

1 78 89 67 90 98 67

2 90 9

3 86 8

4 86 93

3 93 85 78 89 78 98

4 67 89 76 67 98 74

5 83 75 92 78 89 74

6 76 5

7 89 84 73 71

7 81 93 74 76 78 86

8 68 83 91 83 78 89

9 63 71 83 94 78 95

10 78 99 90 80 86 70

程序读入原始数据文件,求每人的总分及各门的平均分;同时建立结果数据文件,文件名为textout.dat。

【程序实现】

program p4_3(input,output);

var

f:text;

i,j,n,m,s:integer;

data:array [1..11,0..7] of integer;

p:array [1..6] of integer;

begin

assign(f,'textin.dat'); {从文本文件中读取数据}

reset(f);

read(f,n);readln(f,m);

for i:=1 to n do

for j:=0 to m do

read(f,data[i,j]);

close(f);

fillchar(p,sizeof(p),0); {将数组p中元素全部赋值为0} for i:=1 to n do

begin

s:=0;

for j:=1 to m do {求每人总分,各科总分}

begin

s:=s+data[i,j];

p[j]:=p[j]+data[i,j];

end;

data[i,m+1]:=s;

end;

for i:=1 to n do {显示输出数据}

begin

for j:=0 to m+1 do

write(data[i,j]:4);

writeln;

end;

write(' ');

for j:=1 to m do {求各科平均分}

begin

p[j]:=p[j] div n;

write(p[j]:4);

end;

writeln;

assign(f,'textout.dat'); {将数据写入文件}

rewrite(f);

for i:=1 to n do

begin

for j:=0 to m+1 do

write(f,data[i,j]:4);

writeln(f);

end;

write(f,' ');

for j:=1 to m do

write(f,p[j]:4);

writeln(f);

close(f);

end.

【相关知识】

1.手工测试的问题

实际上,我们在未使用文件来编写程序时,通过read语句输入数据时,可以在运行过程中换用不同的数据来测试程序,但是有些程序往往无法手工进行测试,这是由于有时数据量较大时,手工输入测试费时费力,而且容易出错,像本例中要测试一组数据要输入60个数据,非常麻烦;还有的时候,由于数据量太大,根本无法手工完成测试数据,比如,本章第1课中测试一组数据要500个数据,手工测试几乎不可能。因此,必须使用文件来测试程序

2.测试文件的制作

程序所需测试数据文件的制作一般采用两种方法,一是利用“记事本”程序手工编写的方法,另一种是利用程序来自动生成。本章第2课问题中测试一组数据要500个随机数,这种情况往往需要另外编写一段程序来自动生成。这里我们重点讨论第1种方法。

“记事本”程序是Windows自带的文本文件编辑程序,利用它可以快速的编写我们想要的数据文件。具体的操作步骤是:

①按键盘上空格键两边的“Windows”键,切换回桌面。

②进入需要建立测试数据的文件夹,如“2005pas”,按如错误!未找到引用源。所示操作,使Windows显示文件的扩展名。

图4.3显示文件的扩展名

③在“2005pas”文件夹中,按如图4.4所示操作,建立文本文件,并改名为“tex tin.dat”。

图4.4建立文本文件

④新建的文件默认文件名为“新建文本文档.txt”,右击该文件,选择“重命名”菜单,按如所示操作,将文件改名为程序所需的测试文件名,如“textin.dat”。在出现“可能会导致文件不可用”提示时,确认更改。

图4.5修改文件扩展名

⑤按住键盘上的Shift(上档)键不放,右击该文件,选择“打开方式”菜单命令,在弹出的“打开方式”对话框中按如图4.6A所示操作,将该文件关联到“记事本”程序。

A 调整打开方式

B 输入数据

图4.6制作测试文本文件

⑥双击该文件,在打开的记事本界面中输入测试数据,最后选择“文件”→“保存”菜单命令保存。

⑦单击桌面底端任务栏上的freepascal程序,修改好程序中调用测试文件的路径和文件名,运行程序,测试程序的正确性。

【同步练习】

1.有两个文本文件name.in和age.in,两个文件的行数相同,其中第1个文件中每行是人名,第2个文件中每行是年龄。编写一程序生成一个新的文件i nfo.out,它的每一行由name.in人名和age.in年龄的对应行数据组成。

利用记事本事先制作好name.in和age.in这两个测试文件

C++文件的输入输出(讲解非常清晰)

C++中的文件输入/输出(1) 原作:Ilia Yordanov, loobian@https://www.360docs.net/doc/9d15073584.html, 简介 本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。 你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。 你的第一个程序 首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件,并写入一些字符: #include void main() // 程序从这里开始运行 { ofstream SaveFile(“cpp-home.txt”); SaveFile << “Hello World, from https://www.360docs.net/doc/9d15073584.html, and Loobian!”; SaveFile.close(); } 仅仅如此吗?没错!这个程序将在当前运行目录下建立一个名为 cpp-home.txt的文件,并向它写入“Hello World, from https://www.360docs.net/doc/9d15073584.html, and Loobian!”。 下面给出各行的含义: #include ——你需要包含此文件以使用C++的文件输入/输出函数。注意:一旦包含了这个文件,你不再需要(为了使用cout/cin)包含iostream.h,因为fstream.h已经自动包含了它。 在这个头文件中声明了若干个类,包括ifstream,ofstream及fstream,它们都继承自istream和ostream类。 ofstream SaveFile(“cpp-home.txt”); 1)ofstream即“output file stream(输出文件流)”。它将建立一个句柄(handle),以便我们以后能以一个文件流的形式写入文件。 2)SaveFile ——这是文件句柄的名字,当然,你还可以换用任何一个你想要的名称。

PASCAL错误一览表

1、Run Time Errors 运行错误(A)DOS 错误代码: 1:无效DoS功能号 2:文件末找到 3:路径未找到 4:打开文件过多 5:禁止文件存取 6:无效文件句柄 12:无效文件存取代码 15:无效驱动器号 16:不能删除当前日录 17:不能跨驱动器改文件名(B)I/O错误 100:磁盘读错误 101:磁盘写错误 102:文件变量末赋值 103:文件未打开 104:文件未用输入方式打开105:文件末用输出方式打开106:无效数字格式 (C)严重错误 150:磁盘写保护 15l:未知单元 152:驱动器未准备好 153:未知命令 154:数据CRC校验错 155:驱动器请求的结构长度错156:磁盘定位错 157:未知媒介类型 158:扇区末找到 159:打印机缺纸 160:设备写失败 161:设备读失败 162:硬件故障 (D)致命错误 200:被零除 201:范围检查错 202:堆栈溢出错 203:堆溢出错 204:无效指针操作 205:浮点上溢出 206:浮点下溢出 207:无效浮点运算 208:未安装覆盖管理程序209:覆盖文件读错 210:对象未初始化211:调用抽象方法 212:流登计错 213:集合下标越界 214:集合溢出 215:算术上溢错误 216:存取非法 217:控制-C 218:授权指令 219:无效的TYPECAST 220:无效的变体TYPECAST 221:无效的变体操作 222:没有变体方法调用 DISPATCHER 223:不能建立变体数组 224:变体不包含数组 225:变体数组边界错误 226:TLS初始化错误 2、编译错误对照表 下面列出在编译程序时可能出 现的错误,在集成环境下,Pascal 将自动加载源程序并定位于出 错处。 1:内存溢出 2:缺标识符 3:标识符未定义 4:标识符重定义 5:语法错误 6:实型常量错 7:整型常量错 8:字符串常量跨行 9:文件嵌套过多 10:非正常文件结束 11:行过长 12:缺类型标识符 13:打开文件过多 14:无效文件名 15:文件未找到 16:磁盘满 17:无效编译指示 18:文件过多 19:指针定义中未定义类型 20:缺变量标识符 21:类型错误 22:结构过长 24:文件分量不能为文件 25:无效字符串长度 26:类型不匹配 27:无效子界基类型 28:下界大于上界 29:缺有序类型 30:缺整型常数 31:缺常数 32:缺整型或实型常数 33:缺指针类型标识符 34:无效的函数结果类型 35:缺标号标识符 36:缺BEGIN 37:缺END 38:缺整型表达式 39:缺有序表达式 40:缺布尔表达式 41:操作数类型与操作符不匹配 42:表达式错 43:非法赋值 44:缺字段标识符 45:目标文件过长 46:未定义外部标识符 47:无效*.OBJ文件记录 48:代码段过长 49:数据段过长 50:缺DO 51:无效PUBLIC定义 52:无效EXTRN定义 53:EXTRN定义过多 54:缺0F 55:缺INTERFACE 56:无效重定位引用 57:缺THEN 58:缺T0或DOWNTO 59:未定义的向前引用 60:过程过多 61:无效类型转换 62:被零除D 63:无效文件类型 64:不能读写该类型的变量 65:缺指针变量 66:缺字符串变量 67:缺字符串表达式 68:单元循环引用 69:单元名不匹配 70:单元版本不匹配 错误一览表

Pascal语言编程基础程序

Pascal语言编程基础程序 (常州市) 十进制转二进制 var i,n,j:longint; a:array[1..100] of longint; begin readln(n); i:=1; while n<>0 do begin a[i]:=n mod 2; i:=i+1; n:=n div 2; end; write('Bin:'); for j:= i-1 downto 1 do write(a[j]) end. 数组元素删除 var a:array[1..10]of longint; i,t,x:longint; begin read(x); for i:=1 to 10 do a[i]:=2*i-1; t:=a[x]; for i:=x+1 to 10 do a[i-1]:=a[i]; for i:=1 to 9 do write(a[i]:4); end. 数组元素删除2 var a:array[1..11]of longint; i:longint; begin for i:=1 to 10 do a[i]:=i; a[11]:=a[1]; for i:= 1 to 10 do a[i]:=a[i+1]; for i:= 1 to 10 do write(a[i]:4); end. 数组元素的移动 var a:array[1..10] of longint; s,n,i,x,t:longint; begin readln(n); for i:=1 to n do read(a[i]); readln(x); s:=a[x]; for i:=x+1 to n do a[i-1]:=a[i]; for i:=1 to n-1 do write(a[i],' '); write(s); end. 排除所有异形基因 var a:array[1..100] of longint; n,g,j,i,wz:longint; begin readln(n); for i:=1 to n do read(a[i]); g:=0; for i:=1 to n do if sqr(a[i]) mod 7=1 then begin wz:=i; for j:=wz+1 to n do a[j-1]:=a[j]; g:=g+1 end; write(a[1]); for i:=2 to n-g do write(' ',a[i]); writeln; end. 排除第一个异形基因 var a:array[1..100] of longint; n,i,wz:longint; begin readln(n); for i:=1 to n do read(a[i]); for i:=1 to n do if sqr(a[i]) mod 7=1

pascal 过程与函数教程

第十二课过程与函数 前面我们曾经学习了程序设计中的三种基本控制结构(顺序、分支、循环)。用它们可以组成任何程序。但在应用中,还经常用到子程序结构。 通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复出现,此时可以将这些程序段作为相对独立的整体,用一个标识符给它起一个名字,凡是程序中出现该程序段的地方,只要简单地写上其标识符即可。这样的程序段,我们称之为子程序。 子程序的使用不仅缩短了程序,节省了内存空间及减少了程序的编译时间,而且有利于结构化程序设计。因为一个复杂的问题总可将其分解成若干个子问题来解决,如果子问题依然很复杂,还可以将它继续分解,直到每个子问题都是一个具有独立任务的模块。这样编制的程序结构清晰,逻辑关系明确,无论是编写、阅读、调试还是修改,都会带来极大的好处。在一个程序中可以只有主程序而没有子程序(本章以前都是如此),但不能没有主程序,也就是说不能单独执行子程序。pascal中子程序有两种形式:函数和过程。 一、函数 在此之前,我们曾经介绍并使用了pascal提供的各种标准函数,如ABS,SUCC等等,这些函数为我们编写程序提供了很大的方便。但这些函数只是常用的基本函数,编程时经常需要自定义一些函数。 (一)函数的说明 在pascal中,函数也遵循先说明后使用的规则,在程序中,函数的说明放在调用该函数的程序(主程序或其它子程序)的说明部分。函数的结构主程序的结构很相似。 函数定义的一般格式: function <函数名> (<形式参数表>):<类型>; {函数首部} 说明: ①函数由首部与函数体两部分组成。 ②函数首部以关键字function开头。 ③函数名是用户自定义的标识符。 ④函数的类型也就是函数值的类型,所求得的函数值通过函数名传回调用它的程序。可见,函数的作用一般是为了求得一个值。 ⑤形式参数简称形参,形参即函数的自变量。自变量的初值来源于函数调用。在函数中,形参一般格式如下: 变量名表1:类型标识符1;变量名表2:类型标识符2;…;变量名表n:类型标识符n 可见形参表相当于变量说明,对函数自变量进行说明,但应特别注意:此处只能使用类型标识符,而不能直接使用类型。 ⑥当缺省形参表(当然要同时省去一对括号)时,称为无参函数。 ⑦函数体与程序体基本相似,由说明部分和执行部分组成。 ⑧函数体中的说明部分用来对本函数使用的标号、常量、类型、变量、子程序加以说明,这些量只在本函数内有效。 ⑨函数体的执行部分由begin开头,end结束,中间有若干用分号隔开的语句,只是end后应跟分号,不能像程序那样用句号"."。 ⑩在函数体的执行部分,至少应该给函数名赋一次值,以使在函数执行结束后把函数值带回调用程序。 (二)函数的调用

C语言中文件_数据的输入输出_读写

C语言中文件,数据的输入输出,读写. 文件是数据的集合体,对文件的处理过程就是对文件的读写过程,或输入输出过程。 所谓文件是指内存以外的媒体上以某种形式组织的一组相关数据的有序集合。文件分类: 顺序文件,随机文件。 文本文件和二进制文件。 文本文件也称为ASCII文件,在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。 文本文件可以在屏幕上按字符显示,源程序文件就是文本文件,由于是按字符显示,所以能读懂文件内容。 二进制文件是按二进制编码方式来存放的。这里主要讨论文件的打开,关闭,读,写,定位等操作。 文件的存取方法 C程序的输入输出(I/O)有两种方式:一种称为标准I/O或流式I/O,另一种称为低级I/O。流式I/O是依靠标准库函数中的输入输出函数实现的。低级I/O利用操作系统提供的接口函数(称为底层接口或系统调用)实现输入输出,低级I/O 主要提供系统软件使用。 在C语言中用一个FILE类型的指针变量指向一个文件,(FILE类型是系统在stdio.h中定义的描述已打开文件的一种结构类型),这个指针称为文件指针。FILE *指针变量标识符; 如 FILE *fp; 文件的打开与关闭 所谓打开文件,指的是建立文件的各种有关信息,并使文件指针指向该文件,以便对它进行操作。 关闭文件则是断开指针与文件之间的联系,也就禁止再对该文件进行操作。 1、fopen 函数原型:FILE *fopen(const char *filename,const char *mode); Fopen函数用来打开一个文件,前一部分用来说明文件路径及文件名,后一部分mode指出了打开文件的存取方式;返回值是被打开文件的FILE型指针,若打开失败,则返回NULL。打开文件的语法格式如下: 文件指针名=fopen(文件名,使用文件方式); 文件指针名必须被说明为FILE类型的指针变量。 FILE *fp; fp=fopen(“C:\\Windowss\\abc.txt”,”r”); 注意用两个反斜杠\\来表示目录间的间隔符。 存取文件的模式是一个字符串,可以由字母r,w,a,t,b及+组合而成,各字符的含

PASCAL语言函数集

Pascal语言函数集(含Delphi控件属性) abort函数 引起放弃的意外处理 abs函数绝对值函数 addexitproc函数将一过程添加到运行时库的结束过程表中 addr函数返回指定对象的地址 adjustlinebreaks函数将给定字符串的行分隔符调整为cr/lf序列align属性使控件位于窗口某部分 alignment属性控件标签的文字位置 allocmem函数在堆栈上分配给定大小的块 allowgrayed属性允许一个灰度选择 ansicomparestr函数比较字符串(区分大小写) ansicomparetext函数比较字符串(不区分大小写) ansilowercase函数将字符转换为小写 ansiuppercase函数将字符转换为大写 append函数以附加的方式打开已有的文件 arctan函数余切函数 assignfile函数给文件变量赋一外部文件名 assigned函数测试函数或过程变量是否为空 autosize属性自动控制标签的大小 backgrounddi2001.jpg属性背景色 beginthread函数以适当的方式建立用于内存管理的线程 bevelinner属性控件方框的内框方式 bevelouter属性控件方框的外框方式 bevelwidth属性控件方框的外框宽度 blockread函数读一个或多个记录到变量中 blockwrite函数从变量中写一个或多个记录 borderstyle属性边界类型 borderwidth属性边界宽度 break命令终止for、while、repeat循环语句 brush属性画刷 caption属性标签文字的内容 changefileext函数改变文件的后缀 chdir函数改变当前目录 checked属性确定复选框选中状态 chr函数返回指定序数的字符 closefile命令关闭打开的文件

PASCAL语言基础

第一章、什么是计算机语言 计算机语言是计算机软件中非常独特的一部份,它属于系统软件,但又和应用软件息息相关。它的作用是:使人类能够用某些命令、指令去让计算机为人类进行数值、逻辑运算。计算机语言中,只有一种语言是计算机能自己识别的,就是最底层、最难的机器语言,这是一般人类所无法接受的语言,所以在此基础上,人们发展出了许多高级的语言,这些语言的共同特点是:人类无需去掌握高深的机器语言,只要掌握这些更容易理解、更贴近人类的高级语言,用高级语言编出程序后,再由语言解释、编译系统去把程序解释、编译成机器语言让计算机去执行。目前最常用的高级语言大致有以下几种: BASIC语言:是一般计算机入门者的首选语言,命令少,容易掌握,从BASIC,BASICA,GWBASIC,TRUE BASIC,TURBO BASIC,QUICK BASIC等一直发展到目前的WINDOWS环境下的VB。 PASCAL语言:最适合科学计算、数据处理的语言,运行、编译速度最快,从TURBO PASCAL 5 .5, 6.0, 7.0一直到现在的WINDOWS环境下的DELPHI以及LAZARUS等面向对象的PASCAL,以及目前信息学竞赛使用的FREE PASCAL各个版本。 C语言:主要适用于应用软件的开发,是计算机人员的必修课,但在算法实现、建模方面不如PASCAL方便。从C,C++,一直到现在的WIONDOWS环境下的VC、C++等。 实际上,我们日常所用的各种软件,包括Windows,WORD、EXCEL、各种游戏等等,全部都是使用程序设计语言编写出来的软件,我们只有掌握了程序设计语言,才能进行计算机软件的开发。 在我们的信息学竞赛中,所有的题目都是非常复杂的数值与逻辑运算,所以世界上广泛采用PASCAL语言作编程工具,我们采用的是FREE PASCAL2.0版本或者相近版本。 我们学习信息学竞赛除了要掌握程序设计语言,能够使用程序设计语言编写程序外,还有一部分要掌握的更加重要的内容就是——算法设计,它能够使我们的程序运行速度更快、效率、精度更高,使我们的程序取得快人一步的优势,算法设计在本书中我们将接触一部分。 第二章、PASCAL语言入门 第一节、PASCAL语言的特点 以法国数学家命名的PASCAL语言是世界上使用最广泛,最有效的语言之一。其主要特点是:严格的结构化形式;丰富完备的数据类型;运行能力、效率高;查错能力强等等。与BASIC、C等语言相比,PASCAL语言更适合科学计算,运行速度最快,编译能力最强,编译成的可执行文件也最小。 PASCAL语言是编译执行的语言(BASIC语言是解释执行),因此在速度与效率上都比BASIC语言提高了一个档次。所谓解释执行,是在程序环境下编写好程序后,执行它时是一句一句地由语言解释器翻译成机器语言,由计算机去执行,计算机能在程序编辑时就发现程序中错误,但程序运行速度慢;而编译执行是在程序环境中编写好程序后,执行时先由编译器把整个程序编译成机器语言,然后再由计算机执行,计算机必须在编译程序时才能发现程序中的错误,但程序运行速度快。 第二节、FREE PASCAL的集成环境

matlab使用指导(2012)

一、基础知识 1.1 常见数学函数 如:输入x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则: ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) = -5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 1.2 系统的在线帮助 1 help 命令: 1.当不知系统有何帮助内容时,可直接输入help以寻求帮助: >>help(回车) 2.当想了解某一主题的内容时,如输入: >> help syntax(了解Matlab的语法规定) 3.当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数sqrt的相关信息)

2 lookfor命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 1.3 常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意 1 数值型向量(矩阵)的输入 1.任何矩阵(向量),可以直接按行方式 ...输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([ ])内; 例1: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] >> X_Data = [2.32 3.43;4.37 5.98] 2

上面函数的具体用法,可以用帮助命令help得到。如help zeros,可查到zeros的具体用法。 例:meshgrid(x,y) 输入x=[1 2 3 4]; y=[1 0 5]; [X,Y]=meshgrid(x, y),则 X = Y = 1 2 3 4 1 1 1 1 1 2 3 4 0 0 0 0 1 2 3 4 5 5 5 5 目的是将原始数据x,y转化为矩阵数据X,Y。 2 符号向量(矩阵)的输入 1.用函数sym定义符号矩阵: 函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制。只需将方括号置于单引号中。 例2: >> sym_matrix = sym('[a b c;Jack Help_Me NO_WAY]') sym_matrix = [ a, b, c] [Jack, Help_Me, NO_WAY] 2.用函数syms定义符号矩阵 先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。 例3: >> syms a b c ; >> M1 = sym('Classical'); >> M2 = sym(' Jazz'); >> M3 = sym('Blues'); >> A = [a b c;M1,M2,M3;sym([2 3 5])] A = [ a, b, c] [Classical, Jazz, Blues] [ 2, 3, 5]

Win10使用pascal入门教程fpc

WIN10如何使用Free Pascal ——从安装、消除乱码、编写个简单的hello谈起{ ******* author: Josan ******* date:2016/10/27 ********************************************************************* } 闲来无事,突然想“学”一门新的语言Pascal,不要求精通,只要求能安装、运行一些简单程序就行。所以,抽出一个上午的时间来了解Pascal的历史,以及编译器以及它的IDE。再用一个下午的时间来整理一下上午的所获所得,希望可以帮到一些入门者,能让他们少走弯路。同时,我也要感谢那些给我帮助过的网友们。来,开始正题。 一、安装 1 What is Pascal? 首先,来看下什么是Pascal程序设计语言。 参考: (1)维基百科:Pascal https://https://www.360docs.net/doc/9d15073584.html,/wiki/Pascal_(programming_language)[1] (2)百度百科:Pascal https://www.360docs.net/doc/9d15073584.html,/link?url=VnmJnZwjlW8JuW5XTiHdUk3d34nQrznt_2BZbYj_X06Ye KEwt2fBqgchtlv-S5H6iO7b0vjbjEtzp0OyVSlFt4pahjeS3RtX4-p-QyGSWpsxXCZsSX16NZ hpBaxAX9bp7TUUVBGQ0fuY9xhVW3m51DyCRAkJ-cDEMLLMelc23lYn2NYNwvvItQ M749UCPj5gxndgACERXQG89ghqW1NV4h2SFuXCuWFJBz_ngeakKlC[2] 小结:Pascal由Niklaus Wirth(不认识这人?他说过:程序=算法+数据结构。有印象了吧-:))创建,纪念法国数学家Blaise Pascal。Pascal起初是一个面向过程的程序设计语言,之后发展出Object Pascal。Delphi是一个IDE,使用的核心就是Object Pascal。 2 Frequently used compilers or IDE 任何一个程序设计语言,都要有个编译器。接下来,来看看Pascal常用的compilers有哪些。 (1)Free Pascal(abbre. FPC or FP) https://www.360docs.net/doc/9d15073584.html,[3] (2)GNU Pascal http://www.gnu-pascal.de/gpc/h-index.html[4]

pascal2011.3.28

第一题:得分计算器(t1.pas) 【问题描述】 学校举行校园歌曲演唱赛,共设7个评委,去掉一个最高分,去掉一个最低分,其余评委的平均分即为选手的最终得分。试编程,输入7个评委的分数后,输出选手的最终得分。(顶格输出,保留一位小数) 【输入文件】 输入文件为t1.in,共1行,输入7个评委的分数。 【输出文件】 输出文件为t1.out,输出文件只有1行,即为此选手的最终得分。 【样例输入】 8 6 7.5 5 8.5 9 7 【样例输出】 7.4 第二题:圣经数(t2.pas) 【问题描述】 人们把l 5 3叫做“圣经数”,因为1 5 3具有一个有趣的性质:任写一个3的倍数, 把各位数字的立方(一个数的立方=三个该数相乘的结果,如53=5*5*5=125)相加,得出和,再把和的各位数字立方相加,如此反复进行,最后则必然出现l 5 3。 例如:2 4是3的倍数,按照上述规则,进行变换的过程是: 24→23+43→72→73+23→351→3 3+5 3+13→153 经过3次变换,153出现了!请编一程序,输入某一3的倍数,输出变换成153所需要的次数。 【输入文件】 输入文件为t2.in,从文件的第一行读入某一3的倍数。 【输出文件】 输出文件为t2.out,输出文件只有一行,即为变换成153所需要的次数。 【样例输入】 12 5 三、数列计算(shulie.pas) [题目描述]:王老师上数学课时,在黑板上给同学们写出了一串数字中的前四个数字是:1,9,8,7,并告诉同学们:“这串数字从第五个数起,每一个数都是它前面相邻四个数字之和的个位数字”,请同学们比试一下看哪位同学能很快地找出这串数的规律,然后打印输出这个数列的前N项,并计算前N项的和。 [题目名称]:shulie.pas [输入文件] 文件名:shulie.in 文件中只有一行,包含1个整数N(其中5≤N≤20) [输出文件] 文件名:shulie.out 文件中共有二行。第一行为这个数列的前N项;第二行为这个数列的前N项的和。

Pascal基本教程

Pascal基本教程 Pascal基本教程第一章 第一章 Pascal语言概述与预备知识 1 关于Turbo Pascal Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth 教授于六十年代末设计并创立。 以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。 正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一, NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。 在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于Turbo Pascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。 下面列出Turbo Pascal编年史 出版年代 版本名称 主要特色 1983 Turbo Pascal 1.0 Turbo Pascal 2.0 Turbo-87 Pascal 提高实数运算速度并扩大值域

1985 Turbo Pascal 3.0 增加图形功能 Turbo BCD Pascal 特别适合应用于商业 1987 Turbo Pascal 4.0 提供集成开发环境(IDE),引入单元概念 1988 Turbo Pascal 5.0 增加调试功能 1989 Turbo Pascal 5.5 支持面向对象的程序设计(OPP) 1990 Turbo Pascal 6.0 提供面向对象的应用框架和库(Turbo Vision) 1992 Turbo Pascal 7.0 面向对象的应用系统、更完善的IDE Turbo Vision 2.0 1993 Borland Pascal 7.0 开发 Object Windows库、 (For Windows) 提供对OLE多媒体应用开发的支持 1995 Delphi Visual Pascal Turbo Pascal语言是编译型程序语言,它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体。 1.2 Turbo Pascal 或 Borland Pascal 的启动

PASCAL语言教程

? SDVFDO1" SDVFDO ) Ρ? $üü= Düü] üü ! ! ! > @ ^ ` A SDVFDO) -$? t ? ?J? p $1' $55$< %(*,1 &$6( &2167 ',9 '2 ',:172 (/6( (1' ),/( )25 )817,21 *272 ,) /$%(/ 02' 1,/ 2) 25 3$&.(' 352&('85( 352*5$0 5(&25' 5(3($7 6(7 7+(1 72 7<3( 817,/ 9$5 :+,/( :,7+ ?? $ p ? p ? p p? ǎ?ǎ O ? ? Γ? O / IDOVH WUXH PD[LQW Oń LQWHJHU UHDO FKDU ERROHDQ WH[W O LQSXW RXWSXW O DEV DUFWDQ FKU FRV HRI HROQ H[S OQ RGG RUG RUHG URXQG VLQ VTU VTUW VXFF WUXQF O? JHW QHZ SDFN SDJH SXW UHDG UHDGOQ UHVHW UHZULWH XQSDFN ZULWH ZULWHOQ ? ?" . ? ? . ) . ) . 352*5$0 ? LQSXW RXWSXW ^ff` ? &2167 SL 9$5 U O V UHDO %(*,1 ZULWH LQSXW U UHDG U O SL U ZULWH O O V V (1' /? ? p ? ? (1' ?? ?" ??? O ?ń ? UHDO LQWHJHU ? * < PD[LQW SUHG ? VXFF " >7@ SUHG VXFF

对文件的输入与输出

对文件的输入与输出 10.1 C文件的有关基本知识 什么是文件: 文件有不同的类型,在程序设计中,主要用到两种文件: (1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。 (2)数据文件。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序中供读入的数据。 操作系统把各种设备都统一作为文件来处理。 所谓“文件”一般指存储在外部介质上数据的集合。 输入输出是数据传送的过程,称为流(stream),即数据流。 C语言把文件看作是一个字符(或字节)的序列,即由一个一个字符(或字节)的数据顺序组成。 文件名: 一个文件要有一个唯一的文件标识,以便用户识别和引用。 文件标识包括3部分: 1.文件路径 2.文件名主干 3.文件后缀 如下: D:\CC\temp\ file.dat 文件路径文件名主干文件后缀 文件名主干的命名规则遵循标识符的命名规则。 文件的分类: 根据数据的组织形式,数据文件可分为ASCII文件和二进制文件。

ASCII文件又称文本文件(text file),每一个字节放一个字符的ASCII代码。 ANSI C标准采用“缓冲文件系统”处理数据文件,所谓缓冲文件系统是指系统自动地在内存区为程序中第一个正在使用的文件开辟一个文件缓冲区。 定义一个指向文件类型数据的指针变量: FILE *fp; 定义fp是一个指向FILE类型数据的指针变量。可以使fp指向某一个文件的文件信息区(是一个结构体变量),通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到与它相关联的文件。 注意:指向文件的指针变量并不是指向外部介质上的数据文件的开头,而是指向内存中的文件信息区的开头。 10.2 打开与关闭文件 所谓“打开”是指为文件建立相应的信息区(用来存放有关文件的信息)和文件缓冲区(用来暂时存放输入输出的数据)。 用fopen函数打开数据文件: ANSI C规定了用标准输入输出函数fopen来实现打开文件。fopen函数的调用格式: fopen(文件名,使用文件方式); 例如: fopen(“a1”,”r”); 用fclose函数关闭数据文件: “关闭”就是撤销文件信息区和文件缓冲区,使文件指针变量不再指向该文件,也就是文件指针变量与文件“脱钩”,此后不能再通过该指针对原来与其相联系的文件进行读写操作,除非再次打开,使该指针变量重新指向该文件。 关闭文件用fclose函数。fclose函数调用的一般形式: fclose(文件指针);

pascal语言基础知识

2.1 Pascal程序基本组成 例1.1计算半径为R的圆面积S program Area; {程序首部} {已知半径求圆的面积} const pi=3.14159; {说明部分——数据描述} var s,r:real; begin{执行部分} readln(r); s:=pi*sqr(r); writeln('s=',s); end. 上述程序第一行称为程序首部。其中用花括号(注释可以用{ }或(* *)来表示)括起来的内容是注释,程序第二行就是一个注释,注释除了给人看,增加程序的可读性外,对程序编译和运行不起作用。一个程序可以包含多个出现在不同处注释,亦可无注释。程序第三行是常量说明,程序第四行是变量说明。程序从begin到end都是执行(语句)部分 (1)程序首部 例1.1的第一行称为程序首部。program是保留字,接着是程序名(由你依据“标示符”规则自行定义),最后以分号表示程序首部结束,下面是程序主体的开始。程序首部在一个Turbo Pascal(仅在Turbo Pascal中有效)程序中并非必须出现,它是可选的。写上它仅起了文档作用。因此,在时间有限的情况下,如果用Turbo Pascal编程完全可以省略程序首部。 (2)程序体 a.说明部分 说明部分用于定义和说明程序中用到的数据,由单元说明、标号说明、常量说明、类型说明、变量说明、函数或过程说明组成,并且这些数据的说明次序必须按照以上次序。但是一个简单的Turbo Pascal程序也可以不包含说明部分,也就是说说明部分是可选的。 b.执行部分

执行部分描述了程序要执行的操作。它必须以一个Turbo Pascal保留字begin开始,以保留字end后跟句点结束,其间是一些执行具体操作的语句,并且以分号作为语句之间的分隔符。begin 和end必须成对出现,这是一个Turbo Pascal程序所必须有的。紧跟end之后的句号表示执行部分的结束,也表示整个程序的结束。此后的任何语句都无效。Turbo Pascal规定紧随end之前出现的分号允许省略。 (3)一个完全的Pascal程序结构 program 程序名; uses 已知单元说明; label 标号说明; const 常量说明; type 类型说明; var 变量说明; function 函数说明; procedure 过程说明; begin 语句; 语句;

1-语言基础习题

《Delphi 语言基础》习题 一、填空 1. Delphi 应用程序中项目文件的扩展名是 。 2. Delphi 中与窗体文件对应的文件是单元文件,其最常用的文件扩展名是 *. 。 3. 在Delphi 集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对象查 看器(Object Inspector )中的 窗口直接进行设置。属性 或 Properties 4. 在Delphi 中新建一个工程后,用户需要保存.pas 文件和 文件。 5. 对象查看器由对象列表、属性选项卡和 三部分组成。 6. 与数学表达式 ab y b a -++2 3)sin(对应的Object Pascal 表达式是 。 7. 与数学表达式 a xy a b a +++22)(cos 对应的Object Pascal 表达式是 。 8. 结构化程序设计的基本原则是取消goto 语句,程序中仅采用顺序、 和循环三 种控制结构。 9. 与数学表达式 ) sin()(sin 222y x y x ++对应的Object Pascal 表达式是 。 10. 结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构只能 有 个入口和一个出口。 11. 与数学表达式 a x a by a ++22)(sin 对应的Object Pascal 表达式是 。 12. 与数学表达式 53)(cos 2++x b a 对应的Object Pascal 表达式是 。 13. 对于下面的条件表达式: ((3 <= x )AND (x < 0)) OR (x in [1..10]) 当x = 3 时, 该表达式的值为 。True 14. 与数学表达式 ab y b a ++3)(sin 2对应的Object Pascal 表达式是 。 15. 表达式Trunc (12345.6789*100+0.5)/100的值为 。 12345.68

Pascal上机与函数【教程】

1.2上机操作 一、启动pascal D:\TP\ F10或ALT+F,可使用键盘方式实现启动主功能菜单方式。 File/new:新建一个编辑窗口(打开名为Noname0.pas的新文件) 注意:可同时打开多个窗口,但任意时刻只有一个窗口是处于活动状态(活动窗口的边框为双线,静止窗口的边框为单线),活动窗口指拥护当前正在其上工作的窗口。 当多个窗口时,可用alt+(1-9),其中“1-9”表示窗口编号,以数字号选择当前活动窗口。 关闭窗口,则可用alt+F3(关闭当前窗口) F2存盘 Change Dir…修改当前文件操作路径。 CTRL+F9 运行程序,若中途需要终止程序运行的话,可:CTRL+C。 切换到输出屏幕: 对于WIN98:ALT+F5 对于WINXP:在程序结束前,加入Readln语句。 每一种程序设计语言都有自己规定的格式和词汇,词汇集由上述的保留字、标识符和特殊字符数组成的,当我们学习一种程序设计语言时,还应该注意,它的语法和语义,就如我们学习英语语法:表示语言的各种构成记号之间的组合规则。 语义:表示的含义。 1.3 pascal的程序组成 例1、求半径为R的圆的面积和周长。 PROGRAM circle(input,output); CONST pi=3.1415926; V AR r,s,l:integer; BEGIN Write(‘r=’); Readln(r); s:=2*pi*r*r; l:=2*pi*r; writeln(‘s=’,s);;‘;’ writeln(‘l=’,l); END. 上面的例子,就是一个完整的pascal 的程序。一个“完整”的pascal程序应该有以下的部分组成):

文件输入输出流

C++中的文件输入/输出收藏 简介 本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。 你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。 你的第一个程序 首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件,并写入一些字符: #include void main() //程序从这里开始运行 { ofstream SaveFile(“cpp-home.txt”); SaveFile << “Hello World, from https://www.360docs.net/doc/9d15073584.html, and Loobian!”; SaveFile.close(); } 仅仅如此吗?没错!这个程序将在当前运行目录下建立一个名为cpp-home.txt的文件,并向它写入“Hello World, from https://www.360docs.net/doc/9d15073584.html, and Loobian!”。 下面给出各行的含义: #include ——你需要包含此文件以使用C++的文件输入/输出函数。注意:一旦包含了这个文件,你不再需要(为了使用cout/cin)包含iostream.h,因为fstream.h已经自动包含了它。 在这个头文件中声明了若干个类,包括ifstream,ofstream及fstream,它们都继承自istream 和ostream类。 ofstream SaveFile(“cpp-home.txt”); 1)ofstream即“output file stream(输出文件流)”。它将建立一个句柄(handle),以便我们以后能以一个文件流的形式写入文件。 2)SaveFile——这是文件句柄的名字,当然,你还可以换用任何一个你想要的名称。 3)(“cpp-home.txt”); ——打开名为cpp-home.txt的文件。如果程序运行的当前目录已经存在这样一个文件,则它将被替换掉;万一不存在,程序也会为你创建一个为文件,你不必为此而担心。 现在,让我们稍微深入一点点。首先,我要指出的是:ofstream是一个类。因此ofstream SaveFile(“cpp-home.txt”);这一语句将创建一个该类的对象;而我们在括号中所传递的参数实际上将传给构造函数:在这里我们将我们要建立的文件的名称作为实际参数传递给了该类的构造函数。当然,我们还可以传递其它的一些信息,不过我以后再对其进行讲解。 SaveFile << “Hello World, from https://www.360docs.net/doc/9d15073584.html, and Loobian!”;——“<<”看起来是不是很亲切?不错,想必你已经在cout << 中见到过。这是一个预定义好的运算符。不管怎么

Pascal程序基本组成与符号

Pascal程序基本组成与符号 hb007 发表于 2006-3-22 8:55:50 一、Pascal程序基本组成 例1计算半径为r的圆的周长C和面积S。 上述程序第一行称为程序首部。用花括号(注释可以用{ }或(* *)来表示)括起来的内容是注释,注释除了给人看,增加程序的可读性外,对程序编译和运行不起作用。一个程序可以包含多个出现在不同处注释,亦可无注释。程序第二行是变量说明。程序从begin到end都是执行(语句)部分。 (1)程序首部 例1的第一行称为程序首部。program是保留字,接着是程序名(由你依据“标示符”规则自行定义),最后以分号表示程序首部结束,下面是程序主体的开始。程序首部在一个Turbo Pascal(仅在Turbo Pasca l中有效)程序中并非必须出现,它是可选的。写上它仅起了文档作用。因此,时间有限的情况下,如果用Turbo Pascal编程完全可以省略程序首部。 (2)程序体 ①说明部分 说明部分用于定义和说明程序中用到的数据,由单元说明、标号说明、常量说明、类型说明、变量说明、函数或过程说明组成,并且这些数据的说明次序必须按照以上次序。但是一个简单的Turbo Pascal程序也可以不包含说明部分,也就是说说明部分是可选的。 ②执行部分 执行部分描述了程序要执行的操作。它必须以一个Turbo Pascal保留字begin开始,以保留字end后跟句点结束,其间是一些执行具体操作的语句,并且以分号作为语句之间的分隔符。begin和end必须成对出现,这是一个Turbo Pascal程序所必须有的。紧跟end之后的句号表示执行

部分的结束,也表示整个程序的结束。此后的任何语句都无效。Turbo Pascal规定紧随end之前出现的分号允许省略。 (3)一个完全的Pascal程序结构 program 程序名; uses 已知单元说明; label 标号说明; const 常量说明; type 类型说明; var 变量说明; function 函数说明; procedure 过程说明; begin 语句; 语句; …… 语句 end. 二、Pascal字符与符号 1、保留字(关键字) 所谓保留字是指在Pascal语言中具有特定的含义,你必须了解它的含义,以便于正确的使用,否则会造成错误。Turbo Pascal语言一共有5 0多个。下面是Pascal语言的保留字:

相关文档
最新文档