free pascal-如何下载FreePascal2.6.0

本文目录1、如何下载FreePascal2.6.0?2、请问PAS是什么文件?3、FreePascal中real最大是多少啊?4、free pascal教程?5、pascal中nod是什么意?1、如何下载FreePascal2.6.0?首先确认你安装了Command Line Tool(你要是安装Pascal成功这个应该是有的),然后假设你在/home文件夹里有test.pas这个pascal文件

如何下载FreePascal2.6.0?

第一确认你安装了Command Line Tool(你要是安装Pascal成功这个应该是有的),第二假设你在/home文件夹里有test.pas这个pascal文件,那么你就cd到/home,第二在命令行里敲

fpc test.pas

回车之后pascal的编译器会运行并生成一个叫test的可执行文件,你在命令行里敲

./test就可以尝试执行了

请问PAS是什么文件?

准确地说,用任何一种文本文件编辑器都可打开,最简单当属记事本.但它是PASCAL源程序文件,所以要想打开编译的话,可能用以下程序:

1.TurboPascal,这是Borland公司早期的Pascal开发软件.

2.Delphi,这是Borland公司近期的Pascal开发软件.

3.FreePascal,这是一种开放源码的Pascal开发软件.当然还有其它的程序.不过如果你不是学pascal的,你也不可能去安装这些软件,而且打开它也没有什么意义.

FreePascal中real最大是多少啊?

类型 范围 位数 字节中的e-39是指10的-39次方最大为1.7*10的38次方位数,是指real型的数据最多 有11~12位有效数字(11位能保证,12位时不超过1.7*10的38次方)

free pascal教程?

第一章、pascal介绍

一、pascal的基本语法单位

1、基本符号

A——Z;a——z;0——9;+,-,*,/,=,<>,<=,>=,<,>,(,),[,],{,},:=,,,;,.,:,..,’,^

注意:pascal语言除了能使用以上规定的基本符号外,不得使用任何其它符号。

2、保留字

AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DIWNTO,ELSE,END,FILE,FOR,FUNTION,GOTO,IF,LABEL,MOD,NIL,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH。

注意:所起的文件名不能与保留字相同。

3、标识符

以字母打头的字母数字串,长度小于等于8。

标准标识符(共三十九个):

标准常量:

false,true,maxint

标准类型:

integer,real,char,boolean,text

标准文件:

input,output

标准函数:

abs,arctan,chr,cos,eof,eoln,exp,ln,odd,ord,ored,round,sin,sqr,

sqrt,succ,trunc

标准过程:

get,new,pack,page,put,read,readln,reset,rewrite,unpack,write, writeln

二、程序结构

1、由三大部分组成:程序首部,说明部分,语句部分。

PROGRAM 程序名(input,output);

{……} 解释

CONST

pi=3.14159;

VAR

r,l,s:real;

BEGIN

write(‘input r:’);

read(r);

l:=2*pi*r;

write(‘l=’,l,’s=’,s);

END;

2、大量使用标点符号,保留字后不加标点符号(END除外)。

第二章、顺序结构程序设计

一、标准数据类型

1、实型(real)

小数表示法、指数表示法

2、整型(integer)

正、负整数和零

maxint=32767

pred:前导;succ:后继

[例]:pred(3)=2;succ(3)=4;

pred(true)=false;

succ(false)=true

3、字符型(char)

是指在两个单引号中的一个字符。

ord:取序数

[例]:ord(‘A’)=65

4、布尔型(boolean)

false;true

用于布尔型的运算:NOT、AND、OR

ord(true)=1;ord(false)=0

二、常量和变量的定义

常量的定义:CONST

pi=3.14159;

blank=’ ‘;

变量的定义:VAR

r,l,s:read;

cl:char;

三、表达式及赋值语句

[例]:b2-4ac 写成:sqt(b)-4*a*c

赋值:<变量>:=<表达式>

四、输入输出语句

1、输入语句:read(<变量表>);readln(<变量表>)

注:表达式里面变量与变量之间用逗号隔开;

readln表示下一个语句将从下一行开始**作;

输入时,整型或实型用空格或回车隔开,字符型之间无需分隔,一个接一

个输入。

2、输出语句:write(<输出表>);writeln(<输出表>)

注:对real或integer限定场宽:write(‘a=’,a:2:0) {a为real型}

第三章、选择结构程序设计

一、if 语句

格式:IF<条件>

THEN<语句1>

ESLE<语句2>

注:1、ELSE与最近的并且未被配对的ELSE配对;

2、复合,如果THEN或ELSE带有多个语句,则要用BEGIN——END括起来。

二、CASE语句

格式:CASE <表达式> OF

<值表1>:<语句1>

<值表2>:<语句2>

……

<值表n>:<语句n>

[ELSE<语句>]

END

注:1、值表的三种表达方式:“1:”;“2,4,6:”;“10..100:”

2、CHAR,INTEGER,BOOLEAN有序

第四章、循环结构程序设计

一、FOR语句

格式:1、FOR <循环变量>:=<初值> TO <终值> DO <语句>;

2、FOR<循环变量>:=<终值> DOWNTO <初值> DO <语句>。

[例1]:输入10个数,求最大值、最小值、和、及平均值。

PROGRAM ten(input,output);

VAR

a,s,max,min,avg:real;

i:integer;

BEGIN

write(‘please input:’);

read(a);

s:=a;

max:=a;

min:=a;

FOR i:=2 TO 10 DO

BEGIN

read(a);

s:=s+a;

IF a>max THEN

max:=a

ELSE

IF a<min THEN min:=a

END;

avg:=s/i;

writeln(……);

END.

[例2]:求s=1!+2!+3!+……+10!

program sum_fac(input,output);

var

i,j,s,m:integer;

begin

s:=0:

for j:=1 to 10 do

begin

m:=1;

for j:=1 to i do

m:=m*j;

s:=s+m;

end;

write(……);

end;

二、while语句

格式:WHILE <条件> DO

<循环体>

[例1]:输入一串字符串,求第一个“,”前的大小写字母个数和其它字符个数。

program string(input,output);

var

ch:char;

c,s,o:integer;

begin

write(……);

read(ch);

c:=0;

s:=0;

o:=0;

while ch<>’,’ do

begin

if (ch>=’A’)and(ch<=’Z’) then

c:=c+1

else if (ch>=’a’)and(ch<=’z’) then

s:=s+1

else

o:=o+1;

read(ch);

end;

write(……);

end.

三、REPEAT语句

格式:REPEAT

<循环体>

UNTIL

[例]:以字符(char)的形式读入一实数,以实形(real)输出该数。

第五章、函数与过程程序设计

一、函数(包括标准函数和自定义函数)

1、函数的定义

格式:FUNCTION 函数名(<形参表>):返回值类型;

VAR

<变量说明>

BEGIN

<函数体>

END

[注]:1、形参表每个参数都写明其类型;

2、有且只有一个返回值,并且要将返回值赋值给函数名。

[例]:求五边形的面积

function area(a,b,c:real):real;

var

p:real;

begin

p:=(a+b+c)/2;

area:=sqrt(p*(p-a)*(p-b)*(p-c);

end;

2、函数的调用

1)、函数的调用必然出现在表达式中(等号的右边),不能以单独地在语句出现

2)、调用时,将每个实参传递给对应的形参

program ml_area(input,output);

var

l1,l2,l3,l4,l5,l6,l7,s:real;

function area(a,b,c:real):real;

var

p:real;

begin

p:=(a+b+c)/2;

area:=sqrt(p*(p-a)*(p-b)*(p-c);

end;

begin

write(‘input’);

readln(l1,l2,l3,l4,l5,l6,l7);

s:=area(l1,l2,l6)+area(l2,l6,l7)+……;

writeln(‘s=’,s:10:3);

end.

二、过程

格式:PROCEDURE<过程名>(<形式参数表>)

VAR

<说明部分>

BEGIN

<过程体>

END;

[例1]某过程的形参表为(var a,b:real;c,d:integer;var e:char);

主程序中有如下变量说明:x,y:real; m:integer; next:char;

则以下实参表中合法的有:(1、2、3)

1、(x,y,m+3,70,next)

2、(y,x,m,m,next)

3、(y,x,35,m DIV 10,next)

4、(m,x,30,10,next)

5、(x,y,m,10)

6、(35,0,y,m,10,next)

7、(x,y,m,m/10,next)

8、(A,B,30,10,next)

[例2]求程序输出的结果。

program ex(input,output);

var

x,y,z:integer;

procedure s(x:integer; var y:integer);

var

z:integer

begin

x:=5; y:=6; z:=7;

end;

begin

x:=1; y:=2; z:=3;

s(x,y);

writeln(x,y,z);

end.

输出结果:1 6 3

[例3]:求五个数中的最大值。

program max_in_5(input,output);

var

n1,n2,n3,n4,n5:integer;

procedure lagest_in_three(a,b,c:integer;var e:integer)

begin

e:=a;

if b>e then

e:=b;

if c>e then

e:=c;

end;

begin

write(‘……’);

readln(n1,n2,n3,n4,n5);

lagest(n1,n2,n3,n1);

lagest(n1,n4,n5,n1);

write(n1);

end.

三、嵌套

[例]:计算、

program Cmn(input,output);

function fax(x:integer):integer:

var

i:integer;

begin

fac:=1;

for i:=1 to x do

fac:=fac*i;

end;

function c(a,b:integer):real;

begin

c:=fac(a)/fac(b)*fac(a-b)

end;

begin

writeln(‘c(9,3)=’,c(9,3));

writeln(‘c(8,5=’,c(8,5));

end.

四、递归

函数或过程调用它本身,称为递归。

[例1]、用递归计算n! {=m!/n!(m-n)!}

program fac_n(input,output);

var

n:integer;

function fac(n:integer):integer;

begin

if n=1 then fac:=1

else fac:=n*fac(n-1);

end;

[例2]、用递归计算

1)、function power(a,b:integer):integer;

begin

if b=1 then power:=a

else power:=a*power(a,b-1);

end;

2)、procedure power(a,b:integer;var c:integer);

begin

if b=1 then c:=a

else power(a,b-1,c);

c:=a*c;

end;

[例3]、输入一串字符串(以‘.’结束)按逆顺输出

program revers(input,output);

procedure rever;

var

c:char;

begin

read(c);

if c<>’.’ then rever;

write(c);

end;

begin

rever;

end.

五、标识符的作用域

1、全局变量和局部变量

1)、全局变量:在主程序中被说明,作用域:整个程序;

2)、局部变量:在子程序中被说明,作用域:主程序及其下级的程序。

2、子程序(function、precedure)的作用域

一个子程序可以调用它的下一级了程序,或可以调用在它之前定义的同级子程序。

[例]写出程序运行的结果。

program range(input,output);

var

x,y:integer;

procedure p1;

var

x,z:integer;

begin

x:=10; y:=y+1; z:=10;

writeln(x,y,z);

end;

begin

x:=1; y:=1;

writeln(x,y);

p1;

writeln(x,y,z);

end.

结果为:

(x y z)

1 1

10 2 10

1 2 (error)

3、在子程序中被改变值的变量可以回传的两种方法:

a、变量参数 procedure(var 变量名);

b、在上一级程序定义了的,且在下一级程序未被重新定义的。

[注]如果主程序的变量在子程序被重新定义,在子程序中主程序的变量被稳藏,在主程序中子程序的变量无效。

pascal中nod是什么意?

实型的一种. 在标准pascal中实型是用Real定义的, 但在Turbo Pascal, Delphi, Free Pascal中也支持PC上通用的几种实型(浮点类型)定义: Single, 单精度类型, 在内存中占4个字节, 7到8位有效数字; Double, 双精度类型, 在内存中占8个字节, 15到16位有效数字; Extended, 扩展精度类型, 在内存中占10个字节, 19到20位有效数字; Comp, 二进制组装型, 在内存中占8个字节, 19到20位有效数字, 它比较特殊, 是一种整数的”实型”. 其实这些不用问的, 在Turbo Pascal或Delphi的帮助里都有.

原创文章,作者:小编,如若转载,请注明出处:http://www.wangguangwei.com/248.html