找回密码
 点一下
查看: 3548|回复: 1

[转自亦游社区]free pascal基本语法

[复制链接]
发表于 2013-3-16 22:11:38 | 显示全部楼层 |阅读模式
说回自己的老本就是free pascal
或许是机缘或许是注定,学校有信息学比赛,于是我就加了进去学习了编程语言
戏剧性的是,学了这个编程语言直接让我学会了T和轻松掌握了J
而小学六年我可是无聊的在那玩了六年物编啊!!!
感觉有些不可思议,一年前我还是WEer白痴,一年后我就在这里做管理写教程了!
其实一开始学编程首先是觉得好玩,也是认为编程对与以后非常有用,至少现在我是对的,你们有兴趣可以去学学free pascal这个语言

free pascal语言设计简洁,语法简单,对于文件的读写有着强大功能
接下来带来一段代码,对free pascal的语法进行简单的说明
这个代码是我用来加密一些日记文件的。。。
var                                                【FP中定义变量要在var下】
  ZL,CDK:string;                            【定义格式为: 变量名1,变量名2...:变量类型;(分号不能忘记)】
  st:char;                                       【数组则是:变量名1,变量名2...:array[起始..结尾]of 变量类型;(起始结尾可以是数字,也可以是字符)】
  key:integer;

procedure WR;                             【定义一个过程叫做WR,相当于JASS中function没有takes和returns。FP也有function,就是有takes和returns】
begin                                             【 FP程序部分在begin和end.(别忘了end后面的 "." ) 之间】
  assign(input,'SOBAD.txt');            【这是将一个文件与FP读入文件对应起来】
  assign(output,'daily.txt');               
  reset(input);                                 【将input作为读入文件】
  rewrite(output);                            【将output作为输出文件】
  readln(key);                                  【读入一整行的字符并存入变量key】
  while not eof do                            【while 布尔语句 do begin end;  这个意思是当布尔语句结果是true时运行 begin与end;间的语句】
  begin
    read(st);                                     【读入一个字符并存入st】
    write(chr(ord(st)-key));               【wirte();输出字符,    chr()是转化数字为字符,ord()效果相反,都是用Ascii码来转变的,比如"A"=65】
  end;
  close(input);                                 【关闭输入文件,要不无法打开这个文件】
  close(output);
end;

procedure RE;
begin
  assign(input,'daily.txt');
  assign(output,'SOBAD.txt');
  reset(input);
  rewrite(output);
  randomize;                                   【这是随机化random出来的结果,要不然只会随机出714.....(....代表数字)】
  key:=random(10)+1;                   【 FP的赋值语句是  变量:=表达式;】
  writeln(key);
  while not eof do
  begin
    read(st);
    write(chr(ord(st)+key));
  end;
  close(output);
  close(input);
end;

begin                                               【这是主程序的开始】
  writeln('please input CD-key');        【 如果没有对应输出文件,则是在程序运行面板上显示这句话】
  readln(CDK);
  if CDK='SBYL' then                         【 if语句出现啦~~~语法有啥不同自己看吧(SBYL是什么意思哦?不告诉你)】
  while true do
  begin
    writeln('please input 指令');
    readln(ZL);
    if ZL='RE' then re                         【调用过程re】
    else if ZL='WR' then wr                【调用过程wr,这里为什么没有";"呢,因为if语句是一句话,还没结束,后面还有else】
    else if ZL='BR' then break;
  end;
end.                                                【主程序的结束】

还有FP是不分大小写的
好了,FP的基本语法就介绍完了(FP支持递归)
深入的还有hash表,链表的运用和各种的算法(SPFA,qsort,top排序,二叉树遍历。。。。。等等)


ps:有任何想做游戏动漫类论坛的各个志同道合的朋友加下群,
来论坛当版主吧!
我们一起打造一个好论坛!
论坛主要是WE,作图的非常欢迎你们来哦!
想版主的请进,不需要你多牛逼,只要你会就可以了!
QQ群:
285044839
站长:zero、小宁
这篇教程就出自本论坛
发表于 2013-3-25 11:40:25 | 显示全部楼层
物编也是很重要的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-24 02:15 , Processed in 0.793004 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表