您的位置:首页 > 其它

认识Pascal

2015-10-20 14:00 295 查看

注释:

//这类文章的分类是理解编程。当然,这一类的书籍有很多,请自行百度。以及对编程不理解的童鞋请点击这里。----For
初学者(大牛勿喷)

//这类文章只是由浅入深学习编程,各位大牛不喜勿喷

//另本系列文章从教学语言Pascal开始,到后面会转到c/c++

对,我一直认为编程从pascal开始学比较方便,初学者一般很难在短时间内理解c/c++。关于pascal的信息请点击这里

配置编译环境:

在学习前,需要配置编程环境。进入这个网站,单击“Download”,在“Binaries”下找到适合自己电脑的版本,打开进入SourceForge下载。

Windows下,下载安装即可,右击快捷方式-属性-选项,将“当前代码页”改成“437(OEM-美国)”,即可使用。

Linux下,安装FPC SDK,然后安装下载下来的压缩包中的安装文件(安装方法详见百度)。

写代码一般不在IDE中写,Windows下初学者可以用自带的记事本,一般用Sublime Text。Linux下用用Gedit(Gnome)、Kate(KDE)或Sublime Text。

例一:最简单的程序

begin
end.
以上是一个最简单的pascal程序。如果你编译这个程序,运行的效果是什么都没有。。。。。。
从这个例子中,可以看出一个pascal包含最基本的Begin、End和.
直接翻译这个程序,就是开始、结束。所以几乎所有的程序都包含在这两条语句中间。
在Pascal中,是忽略语句的位置的。因此,你也可以这么写:
begin end.


或者是
begin

end.


但是不能写成
beginend.


或是
endbegin.


因为忽略语句位置,所以你可以空出空行或者空格,不影响编译。但是不能黏在一起,因为这样“begin”和“end”变成了一句话(而不是两句话),所以会错。并且在pascal中,语句顺序是不能颠倒的。一般来说,最基本的程序结构是顺序结构,pascal也遵循这一结构,所以pascal一般从上向下编译。

例二:Hello World!

这是个无比经典的例子,以至于几乎所有的程序员在问及初学编程的时候都能脱口而出 ==

具体程序如下:
program hello_world;
begin
write('Hello World!');
end.
第一行被称为程序首部,第二行被称为程序体。一般来说,语句之间用半角英文分号隔开(begin end算特例,他们不用)。
并且,程序体的end后面一定要加半角英文句号。
这里出现了两条新语句。一条就是程序首部,以program开头,一般阐明该程序的用途,可以忽略不写。所以这个程序等效于:
begin
write('Hello World!');
end.
----程序首部也要加分号!!!
另一条新语句是以write开头的输出语句,在括号中的内容就是输出的内容。编译时,会以原本的格式输出。----‘’表示字符串,但不会输出引号

在pascal中,write与writeln的效果是类似的。以上程序也可以写成:
begin
writeln('Hello World!');
end.
效果基本不变,在考试中或是一些考核中是可以互换的,但有时候不行。因为writeln的效果是“输出并换行”,write的效果是“输出”
另外,write;或是write();这样的写法是错误的,但writeln;可以(该语句不加括号),意思是换行。

例三:加法计算

var
a,b:longint;
begin
readln(a,b);
writeln(a+b);
end.


以上程序的效果是:读入两个数,并输出他们的和。
其中有三条新语句,分别是var部分的两条,及readln开头的一条。

var表示定义变量。这里定义了两个长整型变量a和b。在Pascal中,常用的有word、integer、longint、qword和int64。
列举的五个类型都表示整数,但范围不同。可分两类,一类是正整数(无符号整形):word和qword;另一类是整数(有符号整形):integer、longint和int64。
pascal中,它们的大小关系如下
word<qword
integer<longint<int64

一般的,变量定义如下
var
... ...
... ...
变量名:类型


一般来说,var只有一个。在定义时,多个不同类型的变量分开写,同类型的变量一般写在一句,用逗号隔开。

程序中,readln开头的一句意为读入,这里读入两个变量a和b。通过类比write和writeln,这里也有read和readln,效果同样是在读入后自动换行,也支持readln();
这里writeln语句的输出内容变成了一个表达式a+b,整条语句先算出a+b的值,再输出。

但是这个程序在运行时有点让人看不懂,那么写点提示时可以吗?
可以,比如:
var
a,b:longint;
begin
writeln('Please input two numbers to plus them:');
readln(a,b);
writeln('The result is:',a+b);
end.


这里新增了两处修改,一处输出了一个字符串,提示用户输入。另一处是在原来的基础上增加了  'The result is:', 
这里增加了一个字符串,并用逗号隔开。
write、writeln语句中,这样的输出是可以的,如:write(变量,表达式,'字符串');
各个输出的部分用逗号隔开。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  学习 pascal 初学者