一天学会FreePascal.ppt
《一天学会FreePascal.ppt》由会员分享,可在线阅读,更多相关《一天学会FreePascal.ppt(147页珍藏版)》请在三一办公上搜索。
1、一天学会Free Pascal,制作者:ax_pokl,前言,第一章一向是很重要的,无论你是否学过Pascal语言都请看一下。本教程不是为了NOIP的人写的,本教程不会过多涉及算法。那些脑残学很牛逼的牛群们请立即退散。本教程是为了使那些学了C语言(或其它编程语言)能够瞬间看懂pascal语言程序的人写的。本教程也适合初学者观看。本教程是本人写的第一个教程,吐槽是可以的但吐得太多会伤身体。如果有什么问题,欢迎QQ:395838203。发现任何错别字或程序bug,也请联系:395838203。,目录,目录,第一章 Pascal语言介绍第二章 编译写好的程序第三章 编写简单的程序第四章 子程序第五章
2、 单元库第六章 编译指令第七章 子界和枚举第八章 数组集合文件记录指针附录,封面,第一章 Pascal语言介绍,什么是Pascal?好吃么?Pascal语言是什么语言?什么又是机器语言呢?机器语言都是相同的吗?X86指令集包括哪些指令?什么是计算机程序?汇编语言又是什么傻逼东西?为什么需要Pascal语言?如何让计算机读懂Pascal语言?编译器是如何运作的?,目录,什么是Pascal?好吃么?,Pascal的取名是为了纪念十七世纪法国脑残学家BlaisePascal(不来色帕斯卡)。所以Pascal并不好吃。,program hello_world;beginwriteln(Hello Wo
3、rld!);end.,一个好看的Pascal语言程序很可能长得像这样:,第一章,Pascal语言是什么语言?,Pascal语言是计算机程序语言(简称程序语言),使用这种语言不仅能让我们编写计算机程序,例如:Windows操作系统、猜数字小游戏、魔兽争霸3,皮卡丘沙滩排球等等,还可以使我们变得更加脑残。计算机俗称电脑,是一种糟糕物。它通常是一个屏幕,一个鼠标,一个键盘,和一个黑箱子。有时候人们说的计算机仅仅指它的黑箱子。这个黑箱子过去曾经是为了帮助脑残学家研究脑残学才被发明的,它的效果就是帮那些懒惰的脑残学家在研究脑残学时减少运动量。事实上八成的计算机并不能够读懂Pascal语言。计算机只能读懂
4、机器语言,对机器语言作出反应。,第一章,什么又是机器语言呢?,机器语言是一种只有计算机才读得懂的语言,也是计算机唯一能够直接读懂的语言。这种语言只有两个字母:0和1。,人类阅读机器语言时会发生眼残:,第一章,什么又是机器语言呢?,世界上只有个别脑残学家看得懂机器语言,所以我们才需要其它容易看得懂的计算机程序语言来告诉计算机我们要它做什么。机器语言所有的“单词”的集合,叫做计算机的指令集。指令集也就是计算机黑箱子能做的事。比如“01011001010010”是一个机器语言单词,它的意思是告诉计算机在屏幕上画一个白点。而计算机所有能做的事,基本上就只是在屏幕上画白点点了。,第一章,机器语言都是相同
5、的吗?,有些计算机不仅能够在屏幕上画白点,还可以画红点、绿点和蓝点。不是所有计算机懂得的机器语言都是相同的,它们的能力有高低。通常的家用计算器和笔记本计算机都懂得X86指令集。这是一个古老的通用的指令集,即使是今天大多数计算机都认得它。,第一章,X86指令集包括哪些指令?,1.数据传送指令就是把数据传来传去,比如传给屏幕。2.算术运算指令就是做一些0-255内的简单加减法。3.逻辑运算指令就是做一些傻逼的逻辑运算。4.串指令顾名思义,就是一串一串执行指令。5.程序转移指令就是转移去执行其它的指令。6.伪指令计算机不认识的假的指令-_-!7.其它指令比如空指令,高级指令,等等。原来计算机只会做这
6、些傻逼事情。虽然计算机只能够做这些事情,计算机已经显得足够伟大了。,第一章,什么是计算机程序?,计算机程序(Computer Program,简称程序)是语句的集合。语句是单词的集合。为了编写一个机器语言程序,人类发明了汇编语言。汇编语言的词语是一些英文单词的缩略语和一些数字。每条缩略语和一些数字的组合与机器语言指令相对应。这样,人们就不用书写0和1的机器语言代码了。写完程序后对照书本把英文单词和数字翻译成0、1的代码就能完成机器语言程序了。,第一章,汇编语言又是什么傻逼东西?,事实上,即使有了汇编语言(ASM语言),能够使用英文表达自己的意思,计算机也只能做些很傻逼的事。如果要它在屏幕上输出
7、“你好,妈妈”几个汉字,你也许需要让它发送无数个指令给屏幕让屏幕画很多很多点。于是就诞生了更加高级的语言,比如Pascal语言。,一个经过反编译的EXE程序至少不再是乱码了,第一章,为什么需要Pascal语言?,计算机编程语言分三类:机器语言,低级语言,高级语言。机器语言就是0、1构成的语言。之前我们说的汇编语言就是低级语言,它唯一的好处就是使用了英文作为记注符而不是数字。高级语言就多了,最有名的莫过于C语言了。Pascal语言也算一种,除此之外还有:FORTAN,C+,Java,VB,Delphi,Lisp,prolog,等等。还有一些脚本语言虽然不是编程语言,但是也是计算机语言如:bat,
8、vbs,HTML,asp。,第一章,为什么需要Pascal语言?,正因为机器语言、低级语言可读性差,所以我们需要形如Pascal语言的高级语言来编写程序。一个Windows操作系统的程序代码重达1G,它的代码位于%SYSTEMROOT%System32下包含几亿条指令。即使一个人一秒能够写一条指令,它也一辈子都写不完啊!使用Pascal语言我们可以快速准确方便地书写程序,但是计算机并不能够直接读懂Pascal语言,所以我们需要一样很重要的东西。,第一章,如何让计算机读懂Pascal语言?,编译器(Complier)是一个由某个超级脑残编写出来的机器语言程序,它能够让计算机自动将一个Pascal
9、语言程序转换成机器语言程序。,program hello_world;begin writeln(Hello World!);end.,编译器Complier,囧!,第一章,编译器是如何运作的?,将一个高级语言程序转换成机器语言程序的过程叫做编译。将一个高级语言程序转换成机器语言程序的原理叫做编译原理(感觉像是废话)。例如编译器获得“writeln(Hello World!);”这条语句后就会分析这条语句的语法,然后将得知这条语句其实就是在屏幕上输出一些白点而已,便把需要做的事转换成乱七八糟的东西。编译原理十分复杂,因为要理解人类的语言并非易事,所以只有一些脑残人士才能写的出编译器来。有很多人
10、写过编译器,最有名的莫过于Trubo Pascal编译器,它的Inline-Complie技术曾震惊全世界。,第一章,在哪里能够得到编译器?,当然是网上下载啦!由于Trubo Pascal编译器已经过时,这里推荐Free Pascal编译器:http:/,如果使用的不是Windows32位操作系统,也可以去这里下:http:/www.freepascal.org/download.var不同的编译器理解Pascal语言略有不同,这造就了略有不同的Pascal语言语法(语言是随着时代变迁的嘛)。以后讲到的的Pascal语言语法都是基于Free Pascal编译器的。,第一章,第二章 编译写好的程
11、序,编写你的第一个Pascal程序如何查看程序运行结果?程序出错了怎么办?部分中文计算机用户遇到的问题常用快捷键(请熟记!)大致了解你写的第一个程序编译Pascal程序用到文件的类型调试,目录,编写你的第一个Pascal程序,第一步:打开fp.exe(请确定你已经正确安装了free pascal)然后你会看到形如右边的界面:,第二步:点击File,New然后在蓝色的背景中按照左边的图打字。切记:不可错一字,不可倒一字,不可漏一字,不可多一字!,第二章,编写你的第一个Pascal程序,第三步:按F9开始编译会弹出一个对话框叫你保存。输入hello_world后按Ok。如果正常,此时你会看到如下界
12、面:,第四步:按Ctrl+F9运行程序你会发现屏幕闪了一下,这表示你编译并运行成功了。,第二章,如何查看程序运行结果?,想知道刚才程序做了什么事,你可以按Alt+F5查看,或者点击Debug,User Screen来查看。原来傻逼计算机只是在屏幕上输出了一些白点点。,第二章,程序出错了怎么办?,当你编译了程序后如果有错误,会出现以下提示:这时候你按回车,光标会停在错误出现的后一个字符(没准是下一行)上。你必须修改错误的部分直到程序能够正确编译为止。,如图,最常见的错误莫过于分号漏加。图中的“;”except but“BEGIN”found 意思就是分号漏加了。,第二章,程序出错了怎么办?,在编
13、译的时候出的错叫做编译错误,还有种错误是在运行的时候出错的,叫做运行时错误。比如你让计算机去计算3除以0,语法上是没有错误但是不符合逻辑。不同的错误有不同的出错代码,具体请参见附录里的“Pascal错误码表”。,出错提示中的(2,1)是出错的行数和列数。,第二章,部分中文计算机用户遇到的问题,有时候你家的free pascal看上去像这样:请别紧张,这只是脑残计算机在和你看玩笑。这表现出你家计算机逻辑混乱的另一面。,事实上,出现这种情况是因为你的计算机使用了错误的代码页。你可以建立一个bat脚本输入以下内容后再运行:chcp 437 nulfp.exe,第二章,常用快捷键(请熟记!),Alt+
14、EnterAlt+XF2F3F9Alt+F9Ctrl+F9Alt+F5F8F7 Ctrl+F8Ctrl+F7,全屏退出保存打开编译并连接编译编译连接并运行看结果单步步过运行单步步入运行加断点加跟踪变量,第二章,大致了解你写的第一个程序,program hello_world;程序总是以program和一串英文字母开始单词之间用空格隔开begin程序的语句部分开始writeln(Hello World!);输出一个字符串end.程序总是以end和一个英文半角句号结束大括号里写的都是注释注释会被编译器忽略(*除此之外,你还可以用一个半圆左括号加一个星号和一个星号加一个半圆右括号表示一段注释*)1+
15、1=3/程序结束以后加什么内容编译器/都懒得鸟你,一行内的两根斜杠后面的/内容也会被认为是注释。你甚至还可以用/嵌套的方法/表示这是注释!原来一个pascal语言程序就是这么写的。,栗子:hello_world.pas,第二章,编译Pascal程序用到文件的类型,.pas程序源代码.bak程序源代码的备份.o目标文件(经过编译的源代码).exe编好的程序(经过连接的目标文件).pp单元库文件.ppu经过编译的单元库文件.inc源代码的一部分(头文件),.pas.ppu,.o.pp,.exe,编译,连接,第二章,调试,你可以在学习编写简单的程序以后再来看这一节。调试是一种检查程序运行时错误的重要
16、手段。当你学会了一些编程方法并能够熟练书写程序以后,编译错误已经不再是你畏惧的东西了,但运行时错误将永远陪伴你。世界上最讨厌的事不是程序中有错,而是不知程序的错出在哪里。一个程序编写完以后进行运行。如果运行的结果和期望的不同,那就需要调试修改。,第二章,调试,按F8进行一句一句执行。如果错误出线在某个子程序内,可以按F7进入子程序一句一句执行,F7也会跟进其它文件内的子程序。按CTRL+F7输入变量名称,随时查看变量的值。所有的调试功能都在菜单中的debug中。除了F8和F7以外,你还可以使用F4直接执行到某一条语句后停止。除此之外,使用CTRL+F8添加程序断点以后再用CTRL+F9也是一种
17、可取的调试方法。,第二章,第三章 编写简单的程序,语句和程序段最简单的程序更高级的程序常量和变量关键字和标识符数据类型定义常量和变量操作符运算符,优先级让计算机进行简单的数学运算赋值交换两个变量的值条件让计算机求解一元二次方程循环嵌套猜数字游戏空语句,目录,语句和程序段,一条语句就是一个句子(俗称一句话,-_-!我不知道该怎么解释)。除了begin和end.外,Pascal的每条语句都是以;结尾的。一个程序段就是一段程序,程序段又称为复合语句。程序段是由begin,一些语句和end;构成的。语句的种类可多了,在以后的学习中你将一一接触不同的语句。之前我们能遇到的writeln(Hello Wo
18、rld!)是条语句,它其实是调用了SYSTEM单元库中的一个叫做writeln();的过程(过程是子程序的一种)。,第三章,最简单的程序,一个最简单的程序包含一个程序说明和一个主程序段:program program1;主程序说明定义主程序的各种变量和常量begin 主程序段开始writeln(我是一个语句);主程序段内容end.主程序段结束主程序段也是程序段,只不过它结尾的最后一个end是以英文半角句号而非分号结束的。也就是说,pascal语言程序的最后一条语句一定是end.。,第三章,更高级的程序,如果你认为Pascal语言只不过是只能在屏幕上输出“Hello World!”的傻逼语言,那
19、么你就错了,因为其实它还能输出更多东西,比如:“caonima!”。因为,认真你就输了。,program input_output;var s:string;beginreadln(s);writeln(s);end.,栗子:input_output.pas,第三章,常量和变量,虽说魔兽争霸3也只不过是屏幕上的一些白点点,但是要完成魔兽争霸3,我们还需要更多的手段。上面一段程序和hello_world.pas不同的是,它使用了var s:string定义了一个字符串变量。一个变量(或常量)可以用来储存信息,例如一串文字(字符串类型),一个数字(整数类型、实数类型)。貌似只有这些功能。,第三章,
20、常量和变量,使用const关键字来定义常量。使用var关键字来定义变量。var s:string;,中的s就是一个变量,string是它的数据类型(字符串类型)。通过readln(s);语句,我们可以在屏幕里输入一串文字并保存到变量s中,下次就可以直接用writeln(s);输出字符串s了。别忘了,定义一个变量以后也需要加分号。,第三章,关键字和标识符,不是随便一串英文字母都可以用来定义变量的。一个变量(或常量)的名称叫做变量(或常量)的标识符。标识符不能是关键字(又称保留字)。标识符不能重复定义。你可以假定关键字是已经被定义的标识符。标识符不能以数字开头,并且必须由英文字母、数字和下划线组成
21、。标识符是不区分大小写的。关键字就是Pascal语言预定好的有特殊含义的单词,如program,const,var,begin,end等等。如果你打入了一个单词是白色的,那他就是关键字了,所以别把关键字用作标识符。(常用的关键字见附录中的“常用关键字列表”),第三章,数据类型,每个变量或常量都有它自己的数据类型。数据类型决定了数据是如何存储在内存中的。除了字符串类型(string)以外,还有很多数据类型:整数类型(integer)字符类型(char)实数类型(real)布尔类型(boolean)数组类型(array)集合类型(set)枚举类型(())子界类型(.)文件类型(file)指针类型(
22、)记录类型(record)对象类型(object)这些类型都有自己的定义和使用方法,将在之后的章节一一介绍。,第三章,常用数据类型(整数类型),整数类型能表示的数字范围占用内存Shortint-1281271Integer-32768327672Longint-23121474836474Int64-263263-18Byte02551Word0655362Cardinal042949679264能表示的数字范围越大,占用的内存也就越多。,第三章,常用数据类型(实数类型),实数类型能表示的数字范围占用内存RealSingel或Double4或8Single1.5E-45.3.4E384Doub
23、le5.0E-324.1.7E3088Exended1.9E-4951.1.1E493210Comp-2E64+1.2E63-18 内存,又称主存,是你计算机中的一个配件,需要花钱购买。内存越大则价格越高。如果内存不够用了,你的程序就会崩溃。内存使用的单位叫做字节,一个字节相当于八个开关。,第三章,常用数据类型(布尔、字符类型),布尔类型能表示的数字范围占用内存Booleanfalse或true1字符类型能表示的数字范围占用内存Char#001#1281具体1到128号数字表示什么字符,请参见附录中的“ASCII码表”。其它表示方法:Integer&01001000100101001010In
24、teger$7F23A8D2Chara,第三章,常用数据类型(字符串类型),字符串类型能表示的数字范围占用内存String#0 x?8字符串类型其实是一个引用类型,它的值指向内存中的一个地址。字符串类型是一种特殊的类型。输出的字符串必须用单引号括起来,否则计算机会把它当成一个变量,例如writeln(abc);和writeln(abc);的含义是完全不同的。,第三章,定义常量和变量,program pi_const;const PI=3.14159265358979323846264338327950288419716939999999999;其实是个有理数var d:integer;begi
25、nwrite(请输入直径);readln(d);writeln(周长,PI*d);end.,使用=定义常量。使用:定义变量常量的值是不可修改的。虽说可以用变量来代替常量,但是常量的使用可以使程序更简洁并。程序中过多的数字(硬编码)的出现不易于程序的修改和维护。常量先于变量而定义,在定义某些变量时甚至可以直接使用到常量(如数组)。,栗子:pi_const.pas,第三章,操作符,对变量进行运算、赋值的符号叫做操作符(Operator)。运算符是操作符的一种。数学运算符关系运算符逻辑运算符加法:+等于:=且:and减法:-大于:或:or乘法:*小于:=异或:xor整除:div小于等于:,第三章,运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一天 学会 FreePascal
链接地址:https://www.31ppt.com/p-5579791.html