关于free pascal的实用性

我是上初中时接触FP编程的,一直还都算挺认真的在学。可在去年11月参加了17届NOIP后突然有了些困惑。一直认为学好了编程就能把自己心中所想用电脑表达出来,可学了两年FP后发现编程只是做些题而已。好像没有一点实用性。可后来我也接触了易语言(那个号称中文编程的),并且似乎有了些那种可以“自己创造”的感觉。但我又觉得不能中途放弃,所以现在还是在学着FP。请问是我想错了吗?求高人指点。

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

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

3、图灵完备的语言环境(包括易、pascal)本质都是一样的。里面的算法原理本质一样。
你学其中一个也就在学另一个。为什么学一个会做另一个不会做?说明会做的那个你也没学原理。只是学着使用。就像用一个音箱。你学了个开电源调音量就说会创造了,没学电磁原理。
举个例说明原理的重要。老外一个20岁的小伙,他先用C写了一个BASIC编译器,然后用自己写BASIC写了这个BASIC编译器的新版,以后他的编译器就自己编译自己,逐渐加入对图形、数据库、高精计算、游戏影音等一些库。他开发的这个语言现在什么可以做。。他会觉得自己的当年这个简陋basic语言没实用性吗?这也就是近年从无到有的FreeBASIC语言。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-26
如果你是参加NOIP 那肯定只是解一些数学题,不过这对你的编程思想是一个很好的锻炼。
你看到易语言有“自己创造”的感觉是因为可以写出图形界面的程序吗?那我更要推荐你Lazarus了,他是用Free Pascal 实现的一个类似Delphi的跨平台编程工具,这个肯定是比易语言强大更何况你学过Pascal 应该能很快掌握。
如果你想在大学更深一步的学习编程 那么一定不能错过C语言, 现在很多语言都是由C语言衍生出来的。而且C语言对于系统底层,更加紧密。
第2个回答  2012-02-26
哈哈。我也是初中开始接触FP。当初我也以为可以做一些游戏之类的,结果学着学着发现与自己想像的差别颇大。不过也一直学了下去。最近拿了NOIP初赛一等复赛二等。
其实这种想法就有点像上课时候在想“这学来有什么用呢?”。我以前是玩FLASH的,当时一直弄不懂Action(也就是算法结构)。在学了FP以后,我慢慢就开始有点懂了。
大部分编程语言应该都差不多吧?个人觉得学FP最大的用处就是了解算法的结构。像什么动态规划啊,分支算法结构啊,递归啊之类的东西放之四海而皆准。就像学数学一样,不会什么时候都要用三角函数,但它锻炼的是脑子灵活性,对学别的东西总会有帮助的。
既然学了个头,不妨就学下去吧。我学校的编程班就有个同学学过FP开始学C语言。虽然书写方面当然完全不同,不过学过FP总会有帮助。就像跑过马拉松的人去学游泳,总比直接去学游泳的人要有经验得多。
写了不少貌似。总之一句,FP的作用(或者说所有这类语言的作用)就是为了更复杂的其他编程语言做准备,还有锻炼脑子。不学走,怎么学跑呢?
希望对你有帮助。
第3个回答  2012-03-03
等你看到delphi 时,你就知道pascal 还能干什么了,再者,锻炼思维,好处远不止你现在看靠到的。
第4个回答  2012-03-03
不要换,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.
第5个回答  2012-03-01
你要学下去,大学也要学,我小学6年级,我学了2年,好玩的

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

Free Pascal简介
然而,Free Pascal突破了这一局限,理论上支持高达4GB的内存使用,这为开发者带来了全新的可能性。在使用Free Pascal编程时,开发者可以将更多的精力投入到程序逻辑和算法优化上,而不是频繁地考虑内存限制,从而显著提高开发效率和程序性能。因此,对于追求大内存应用和高效开发的程序员来说,Free Pascal提供...

Free Pascal 的用途是什么
free pascal 和TUBUR PASCAL相比,FREE PASCAL 可以定义更大的数组,不用考虑空间问题,而TUBUR PASCAL 的内存只有64KB,并且FREE PASCAL中有表,不用出去看时间.但是FREE PASCAL 没有帮助,这是他的缺点(CTRL+F1只出一空白对话框)

free pascal 是什么
总之,Free Pascal是一种功能强大的Pascal和Object Pascal编程语言编译器和运行时系统。它支持跨平台开发,提供了丰富的库和工具,以及开源的特性,使得开发者能够轻松地构建各种应用程序。无论是初学者还是经验丰富的开发者,都可以通过Free Pascal来学习和应用Pascal编程语言,实现各种有趣和实用的项目。

free pascal 和 lazarus的利弊之处
free pascal 的好处主要在于书写比turbo Pascal 自由,并且对于TP有所更新. 但是编译情况和调试都不如Delphi好,有些版本不够稳定,平常还是建议用Delphi,如果是NOIP考试的时候,最好用FP for noi.Lazarus也是源于FP,主要是窗口化程序的设计,不好用,不稳定,千万别用!

Free Pascal好不好
FreePascal只是为了教学,编写软件、开发工具还是要使用DELPHI。后者开发功能强大,使用中和MS的差不多,编译功能也很强大,可以生成各种EXE、DLL文件。

FreePascal语言与基础算法基础内容简介
《全国青少年信息学奥林匹克竞赛教程?Free Pascal语言与基础算法基础(第3版)》是一本专注于实操教学的书籍,它以提升实用性为核心,旨在帮助学习者快速掌握Pascal语言。书中摒弃了繁杂的语法规则,通过实例解析语言概念、组成和使用方法,将抽象知识融入实际操作,降低初学者的入门难度,激发他们对编程的兴趣...

FreePascal使用技巧
在Turbo Pascal与Free Pascal之间,存在一些语言特性的差异。这些差异主要体现在参数类型、关键字使用、内存管理以及表达式执行顺序等方面。首先,函数和过程在Turbo Pascal中要求参数类型与定义完全一致,而在Free Pascal中则引入了函数重载功能,允许在不同参数类型下重用相同的函数名。其次,Turbo Pascal中的...

Free Pascal区别
Free Pascal与Turbo Pascal在设计上存在一些显著的差异。首先,Free Pascal作为一个32位的编译器,相比Turbo Pascal的16位版本,提供了更大的内存处理能力,理论上支持4GB内存,使得它能够在现代操作系统中充分利用系统资源。其次,Free Pascal具有跨平台的特性,不仅限于Windows和DOS,这意味着你的代码可以在...

free pascal好用吗?
不一定,竞赛不能用库,这是一.其二,你可以选vb,c,c++,看了楼下的,如果你只为竞赛的话,就用fp吧,毕竟竞赛用书比较多,题目也都是用这个语言出的,如果为了日后,学c++吧,强大的库(竞赛不能用库)

相似回答