关于free pascal的实用性

作者&投稿:窄桑 (若有异议请与网页底部的电邮联系)
关于Free Pascal~

我以前用的时候有两种情况:
一、程序正常运行完成,键盘按任意键就可以退出了
二、程序陷入死循环之类的,一直在运行的情况,点击窗口右上角的关闭按钮。

如果以上两种方法都关闭不了的话,可能pascal已经死掉了。。。直接开任务管理器关闭

常见错误有:
1 无效DOS功能号
2 文件末找到
3 路径未找到
4 打开文件过多
5 禁止文件存取
6 无效文件句柄
12 无效文件存取代码
15 无效驱动器号
16 不能删除当前目录
17 不能跨驱动器改文件名
100 Disk read error 磁盘读错误
101 Disk write error 磁盘写错误
102 文件变量末赋值
103 File not open 文件未打开
104 File not open for input 文件未用输入方式打开
105 File not open for output 文件末用输出方式打开
106 Invalid numeric format 无效数字格式
150 磁盘写保护
151 未知单元
152 驱动器未准备好
153 未知命令
154 数据CRC校验错
155 驱动器请求的结构长度错
156 磁盘定位错
157 未知媒介类型
158 扇区末找到
159 打印机缺纸
160 设备写失败
161 设备读失败
162 硬件故障
200 Division by zero 被零除
201 Range check error 数据范围检查错
202 Stack overflow error 堆栈溢出错
203 Heap overflow error 堆溢出错
204 Invalid pointer operation 无效指针操作
205 Floating point overflow 浮点上溢出
206 Floating point underflow 浮点下溢出
207 Invalid floating point operation 无效浮点运算
208 未安装覆盖管理程序
209 覆盖文件读错
210 Object not initialized 对象未初始化
211 Call to abstract method 调用抽象方法
212 Stream registration error 流登计错
213 Collection index out of range 集合下标越界
214 Collection overflow error集合溢出
215 Arithmetic overflow error 算术上溢错误
216 General protection fault 存取非法
217 控制-C
218 授权指令
219 无效的TYPECAST
220 无效的变体TYPECAST
221 无效的变体操作
222 没有变体方法调用DISPATCHER
223 不能建立变体数组
224 变体不包含数组
225 变体数组边界错误
226 TLS初始化错误
这些是编译错误:
l内存溢出
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定义
53EXTRN定义过多
54缺0F
55缺INTERFACE
56无效重定位引用
57缺THEN
58缺T0或DOWNTO
59未定义的向前引用
60过程过多
61无效类型转换
62被零除D
63无效文件类型
64不能读写该类型的变量
65缺指针变量
66缺字符串变量
67缺字符串表达式
68单元循环引用
69单元名不匹配
70单元版本不匹配
71单元重名
72单元文件格式错误
73缺IMPLEMENTATl0N
74常数与CASE类型不相匹配
75缺记录变量
76常数越界
77缺文件变量
78缺指针变量
79缺整型或实型表达式
80标号不在当前块中
81标号已定义
82标号未定义
83无效参数
84缺UNIT
85缺“;”
86缺“:”
87缺“,”
88缺“(”
89缺“)”
90缺“=”
91缺“:=”
92缺“[”或“(.”
93缺“]”或“.)”
94缺“.”
96变量过多
97无效FOR控制变量
98缺整型变量
99此处不允许用文件和
100字符串长度不匹配
101无效字顺序
102缺字符串常数
103缺整型或实型变量
104缺有序变量
105INLINE错
106缺字符表达式
107重定位项过多
112CASE常量越界
113语句错
114不能调用中断过程
116必须在8087方式下编译
117末找到目标地址
118此处不允许包含文件
120缺NIL
121无效限定符
122无效变量引用
123符号过多
124语句部分过长
126文件必须为变量参数
127条件符号过多
128条件指令错位
130初始条件定义错
13l过程和函数头与前面定义的不匹酉
132严重磁盘错误
133不能计算该表达式
134表达式错误结束
l35无效格式说明符
136无效间接引用
137此处不允许结构变量
138无SYSTEM单元不能计算
l39不能存取该符号
140无效浮点运算
141不能将覆盖编译至内存
142缺过程和函数变量
143无效过程或函数引用
144不能覆盖该单元
147缺对象类型
148不允许局部对象类型
149缺VIRTUAL
150缺方法标识符
151不允许虚拟构造方法
152缺构造方法标识符
153缺释放方法标识符
154FAIL只允许在构造方法内使用
155无效的操作符和操作数组合
156缺内存引用
l57不能加减可重定位符号
158无效寄存器组合
159未激活286/287指令
160无效符号引用
161代码生成错
162缺ASM

1、““学好了编程就能把自己心中所想用电脑表达出来,可学了两年FP后发现编程只是做些题而已””
有这种想法,说明free pascal没有学好。写不出诗能怪字不好写?写诗的功夫都在诗外。编程语言只是一个表达工具。说明还不能对fpc运用自如。说明你现在的能力,用pascal对电脑的大多数资源都不能操控,觉得束手。

2、“接触了易语言(那个号称中文编程的),并且似乎有了些那种可以“自己创造”的感觉”
恰恰说明你不是要自己创造,而是要更好“自己山寨”。易语言就是本地化支持更好、可用的方便控件和环境、文档更清晰。

3、图灵完备的语言环境(包括易、pascal)本质都是一样的。里面的算法原理本质一样。
你学其中一个也就在学另一个。为什么学一个会做另一个不会做?说明会做的那个你也没学原理。只是学着使用。就像用一个音箱。你学了个开电源调音量就说会创造了,没学电磁原理。
举个例说明原理的重要。老外一个20岁的小伙,他先用C写了一个BASIC编译器,然后用自己写BASIC写了这个BASIC编译器的新版,以后他的编译器就自己编译自己,逐渐加入对图形、数据库、高精计算、游戏影音等一些库。他开发的这个语言现在什么可以做。。他会觉得自己的当年这个简陋basic语言没实用性吗?这也就是近年从无到有的FreeBASIC语言。

如果你是参加NOIP 那肯定只是解一些数学题,不过这对你的编程思想是一个很好的锻炼。
你看到易语言有“自己创造”的感觉是因为可以写出图形界面的程序吗?那我更要推荐你Lazarus了,他是用Free Pascal 实现的一个类似Delphi的跨平台编程工具,这个肯定是比易语言强大更何况你学过Pascal 应该能很快掌握。
如果你想在大学更深一步的学习编程 那么一定不能错过C语言, 现在很多语言都是由C语言衍生出来的。而且C语言对于系统底层,更加紧密。

哈哈。我也是初中开始接触FP。当初我也以为可以做一些游戏之类的,结果学着学着发现与自己想像的差别颇大。不过也一直学了下去。最近拿了NOIP初赛一等复赛二等。
其实这种想法就有点像上课时候在想“这学来有什么用呢?”。我以前是玩FLASH的,当时一直弄不懂Action(也就是算法结构)。在学了FP以后,我慢慢就开始有点懂了。
大部分编程语言应该都差不多吧?个人觉得学FP最大的用处就是了解算法的结构。像什么动态规划啊,分支算法结构啊,递归啊之类的东西放之四海而皆准。就像学数学一样,不会什么时候都要用三角函数,但它锻炼的是脑子灵活性,对学别的东西总会有帮助的。
既然学了个头,不妨就学下去吧。我学校的编程班就有个同学学过FP开始学C语言。虽然书写方面当然完全不同,不过学过FP总会有帮助。就像跑过马拉松的人去学游泳,总比直接去学游泳的人要有经验得多。
写了不少貌似。总之一句,FP的作用(或者说所有这类语言的作用)就是为了更复杂的其他编程语言做准备,还有锻炼脑子。不学走,怎么学跑呢?
希望对你有帮助。

等你看到delphi 时,你就知道pascal 还能干什么了,再者,锻炼思维,好处远不止你现在看靠到的。

不要换,fp也有它的乐趣 你可以试着编个小游戏玩玩 给你看一个 fp能存在这么久 肯定有它的理由
uses crt;
const x=12;
var p:array[1..x,1..x] of string;
t:array[1..x,1..x] of boolean;
i,k,j,n,l,s,a,b,c,d,e,f,g,h,a1,a2,a3,a4,a5,a6,a7,a8,e3,a9,a10,shu,yin,v,w,ss,as,q12,pp,we,zet,vt:longint;
z:char;
q,doy:string;
vv:string;
b1,b2:boolean;
begin
vt:=1;
writeln('Welcome to <eat been> game');
readln;
writeln('How to play:');
writeln(' Do not go the same way(the starts means that you can''t go)');
writeln;
readln;
writeln(' w up');
writeln('a s d left down right');
writeln;
readln;
writeln('jump to the second place,and ''ss'' must>0');
writeln('(every 20 walks can make one''ss'',and every level will be higher)');
writeln(' i up');
writeln('j k l left down right ');
writeln;
readln;
writeln('p It means:I think I lose,and I want to go out');
readln;
writeln('There are 5 levels at all');
readln;
ss:=1;
l:=1;
we:=20;
repeat
begin
if l=6 then break;
if zet=1 then break;
//输入棋盘
gotoxy(1,1);
ClrScr;
Clreol;
shu:=0;
yin:=0;
gotoxy(1,1);
textbackground(green);
for i:=1 to 80 do
begin
for j:=1 to 15 do
write(' ');
writeln;
end;
gotoxy(1,1);
ClrScr;
Clreol;
if l=5 then
begin
for i:=1 to 10 do writeln;
for i:=1 to 30 do write(' ');
write('Level:',l,'(BOSS)');
delay(1200);
end;
ClrScr;
Clreol;
if l<>5 then
begin
for i:=1 to 10 do writeln;
for i:=1 to 35 do write(' ');
write('Level:',l);
delay(1200);
end;

gotoxy(1,1);
for i:=1 to x do
for j:=1 to x do p[i,j]:='. ';
randomize;
a1:=random(x-3);
a2:=random(x-2);
p[a1,a2]:='* ';
a3:=random(x-5);
a4:=random(x-4);
p[a3,a4]:='* ';

for i:=1 to x do
for j:=1 to x do
t[i,j]:=TRUE;
for i:=1 to x do
begin
t[1,i]:=FALSE;
t[i,1]:=FALSE;
t[x,i]:=FALSE;
t[i,x]:=FALSE;
p[1,i]:='__';
p[i,1]:=' |';
p[x,i]:='--';
p[i,x]:='| ';
end;
p[1,x]:=' ';
p[1,1]:=' ';
p[x,1]:=' ';
p[x,x]:=' ';
t[a1,a2]:=FALSE;
t[a3,a4]:=FALSE;

if l>2 then
begin
t[6,5]:=FALSE;
p[6,5]:='* ';
t[7,2]:=FALSE;
p[7,2]:='* ';
end;

if l>1 then
begin
p[4,9]:='* ';
t[4,9]:=FALSE;
end;

if l>3 then
begin
p[5,10]:='* ';
t[5,10]:=FALSE;
t[2,9]:=FALSE;
p[2,9]:='* ';
t[7,6]:=FALSE;
p[7,6]:='* ';
end;

if l>4 then
begin
we:=we+6;
t[3,2]:=FALSE;
p[3,2]:='* ';
t[4,2]:=FALSE;
p[4,2]:='* ';
t[6,4]:=FALSE;
p[6,4]:='* ';
t[10,8]:=FALSE;
p[10,8]:='* ';
t[8,8]:=FALSE;
p[8,8]:='* ';
end;

randomize;

a:=random(x-2); b:=random(x-2);
a:=a+2;
b:=b+2;
p[a,b]:='0 ';
t[a,b]:=FALSE;
repeat
begin
for v:=1 to x do
begin
for j:=1 to x do write(p[v,j]);
writeln;
end;

gotoxy(38,2);
write('Level:',l);
if l=5 then writeln('(BOSS)');
gotoxy(38,3);
writeln('ss:=',ss);
gotoxy(38,4);
writeln('walks:=',as,'/',we);
gotoxy(1,1);

while not keypressed do;
z:=readkey;
writeln(z);
if (z='w') and (a-1>0) and (t[a-1,b]=TRUE) then
begin
p[a,b]:='* ';
a:=a-1;
p[a,b]:='0 ';
t[a,b]:=FALSE;
pp:=pp+1;
end;
if (z='a') and (b-1>0) and (t[a,b-1]=TRUE) then
begin
p[a,b]:='* ';
b:=b-1;
p[a,b]:='0 ';
t[a,b]:=FALSE;
pp:=pp+1;
end;
if (z='s') and (a+1<x+1) and (t[a+1,b]=TRUE)then
begin
p[a,b]:='* ';
a:=a+1;
p[a,b]:='0 ';
t[a,b]:=FALSE;
pp:=pp+1;
end;
if (z='d') and (b+1<x+1) and (t[a,b+1]=TRUE)then
begin
p[a,b]:='* ';
b:=b+1;
p[a,b]:='0 ';
t[a,b]:=FALSE;
pp:=pp+1;
end;

if z='p' then
begin
ClrScr;
Clreol;
writeln('Do you want to go out?(Y/N or YES/NO)');
readln(vv);
if (vv='Y') or (vv='y') or (vv='YES') or (vv='yes') or (vv='Yes') then
begin
shu:=shu+1;
zet:=1;
break;
end
else
begin
writeln('Go on!');
readln;
end;
end;

if (z='i') and (a-2>0) and (t[a-2,b]=TRUE) and (ss>0) then
begin
p[a,b]:='* ';
a:=a-2;
p[a,b]:='0 ';
t[a,b]:=FALSE;
ss:=ss-1;
end;
if (z='j') and (b-2>0) and (t[a,b-2]=TRUE) and (ss>0)then
begin
p[a,b]:='* ';
b:=b-2;
p[a,b]:='0 ';
t[a,b]:=FALSE;
ss:=ss-1;
end;
if (z='k') and (a+2<x+1) and (t[a+2,b]=TRUE) and (ss>0)then
begin
p[a,b]:='* ';
a:=a+2;
p[a,b]:='0 ';
t[a,b]:=FALSE;
ss:=ss-1;
end;
if (z='l') and (b+2<x+1) and (t[a,b+2]=TRUE) and (ss>0)then
begin
p[a,b]:='* ';
b:=b+2;
p[a,b]:='0 ';
t[a,b]:=FALSE;
ss:=ss-1;
end;

for v:=1 to x do
begin
for j:=1 to x do write(p[v,j]);
writeln;
end;
end;

w:=0;
//判断赢了;
for i:=2 to x-1 do
for j:=2 to x-1 do
begin
if t[i,j]=FALSE then w:=w+1;
end;
if w=(x-2)*(x-2) then
begin
sound(200);
ClrScr;
Clreol;
for i:=1 to 10 do writeln;
for i:=1 to 34 do write(' ');

writeln('You win!');
yin:=yin+1;
doy:='y';
l:=l+1;
we:=we+3;
e3:=1;
delay(800);
break;
end;
//判断输了;
if (t[a+2,b]=FALSE) and (t[a-2,b]=FALSE) and (t[a,b+2]=FALSE) and (t[a,b-2]=FALSE) and (t[a+1,b]=FALSE) and (t[a-1,b]=FALSE) and (t[a,b-1]=FALSE) and (t[a,b+1]=FALSE) then
begin
sound(200);
delay(800);
ClrScr;
Clreol;
for i:=1 to 10 do writeln;
for i:=1 to 34 do write(' ');
writeln('GAME OVER!');
shu:=shu+1;
doy:='s';
delay(800);
break;
end;

if (t[a+1,b]=FALSE) and (t[a-1,b]=FALSE) and (t[a,b-1]=FALSE) and (t[a,b+1]=FALSE) and (e3<>1) and (ss=0) then
begin
sound(200);
delay(800);
ClrScr;
Clreol;
for i:=1 to 10 do writeln;
for i:=1 to 34 do write(' ');
writeln('GAME OVER!');
shu:=shu+1;
doy:='s';
delay(800);
break;
end;

e3:=0;
if pp=1 then as:=as+1;
pp:=0;
if as=we then
begin
ss:=ss+1;
as:=0;
end;
ClrScr;
Clreol;
if zet=1 then break;
until 1+1<2;
if doy='y' then vt:=ss;
ClrScr;
Clreol;
if doy='s' then
begin
textbackground(black);
for i:=1 to 40 do
begin
for j:=1 to 20 do write(' ');
writeln;
end;
ClrScr;
writeln('Do you want to try again?(Y/N or YES/NO,small words is OK)');
readln(q);
if (q='Y') or (q='YES') or (q='y') or (q='yes') or (q='Yes')then
begin
writeln('OK!Try again!');
delay(800);
sound(200);
end;
if (q='N') or (q='NO') or (q='n') or (q='no') or (q='No')then break;
end;
doy:='';
textbackground(green);
ss:=vt;
end;
until 1+1<2;
ClrScr;
Clreol;
if l=6 then writeln('What a good boy!!You win the game!!!') else
begin
writeln('You win ',yin,' times,lose ',shu,' times.');
if yin<shu then writeln('What a pig!');
if yin=shu then writeln('Pig!');
if shu<yin then writeln('pig!!!!');
end;
readln;
end.

你要学下去,大学也要学,我小学6年级,我学了2年,好玩的


龙文区15652071773: 关于free pascal的实用性 -
闵泻洛屈: 1、““学好了编程就能把自己心中所想用电脑表达出来,可学了两年FP后发现编程只是做些题而已”” 有这种想法,说明free pascal没有学好.写不出诗能怪字不好写?写诗的功夫都在诗外.编程语言只是一个表达工具.说明还不能对fpc运用...

龙文区15652071773: Free Pascal 的用途是什么
闵泻洛屈: Pascal是一种计算机通用的高级程序设计语言.它由瑞士Niklaus Wirth教授于六十年代末设计并创立. 以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行...

龙文区15652071773: 用free pascal编写的程序都能干什么? -
闵泻洛屈: 主要是计算类的.可以综合各种算法,数据结构,从而写出程序解决某一个或某一类问题,优势就是比人算得快.经常应用的例如:模拟计算推理过程,解决最优化问题,应该还可以有Dos的功能,例如计算时间,链接路径等,因为Pascal本来就是在Dos的基础上发展来的(不过这方面很少用).所以说Pascal程序主要是计算程序,不过可以应用到生活中,比如我就用Pascal程序处理过大量的公司数据,还写过一个求一元高次方程的解的程序,可以辅助解决现实生活中的问题.但是如果LZ是想做一些软件的话,就用Delphi或者干脆改学c++吧.....

龙文区15652071773: free pascal的具体介绍
闵泻洛屈: Free Pascal是pascal的一个版本,可以说是Turbo Pascal的升级版本...就是数组可以开到10的8次方左右,但一般都不会开到超过10的7次方,因为内存开太大运行速度也会减慢! 现在中学的计算机竞赛一般是用FP的,因为结构化的程序格式对程序的可读性、编程的严谨性有很大帮助.而且FP的库函数不丰富,比较单一,所以能调用的算法少,更能够锻炼自己编写各种算法的能力!

龙文区15652071773: free pascal uses crt; -
闵泻洛屈: 1、uses CRT,表示引用CRT.pas单元.CRT.pas单元是Pascal最重要的单元之一,主要用于字符界面的操作,里面内置了清屏、光标定位、删除行、调整字符亮度、前景色、背景色等功能函数.2、学Pascal,CRT是必须熟悉的单元之一.

龙文区15652071773: free pascal的基本语言及用法
闵泻洛屈: var 变量;beginread();readln();{读入}write()writeln();{输出}end. for i:=1 to n do {让i从1到n循环}

龙文区15652071773: Free pascal 和 Turbo pascal 的主要区别 -
闵泻洛屈: 虽然Free Pascal尽量设计得和Turbo Pascal接近,但是由于以下的两个原因,两者之间还是有一些区别的:1.Free Pascal是一个32位的编译器,而Turbo Pascal只是16位编译器;2.

龙文区15652071773: 请问Free Pascal与Turbo Pascal的区别.它们能通用吗? -
闵泻洛屈: turbo pascal: Pascal是一门编程语言,而Turbo Pascal/Free Pascal是Pascal程序的编译系统.. Pascal只是一门语言,而Turbo Pascal/Free Pascal是编译器,这两个是不能比较的 . 你可以把两个语言放在一起比较,或者两个编译器放在一起...

龙文区15652071773: 关于Free Pascal的使用问题
闵泻洛屈: 貌似有点问题,你是不是打了 assign reset rewrite close 这些都是文件输入输出的格式,在你调试得时候可不打 或 用花括号隐去, 当你在测评的时候才需要(网上测评一般也不用). 若真的要用的时候,在你运行的FPC的文件夹里面新建输入文本,文件名要匹配,然后在那里输入数据,再运行,就会有相应的输出文件出来,那里的数据就是输出数据.

龙文区15652071773: 会用free pascal的高手来看看
闵泻洛屈: 圆面积 program area_of_circle; const pi=3.1416; var s:real; r:real; begin writeln( 'Please input radius' ); readln(r); s:=pi*r*r; writeln( 's=',s ); readln; end.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网