我有个白痴的问题,关于Pascal的。

谁能教我如何使用Pascal程序软件来编程。呵呵。
在软件中编好程后,输入数字或直接输出,这应该怎样操作.

Pascal基本语句
hb007 发表于 2006-4-13 13:57:30

名 称 格 式 功 能
赋值语句 变量标识符:=表达式; 先计算表达式的值,再将表达式的值赋给变量。
输入语句 read(变量表);
readln(变量表); 从键盘上为变量表中的变量赋值。
从键盘上为变量表中的变量赋值(换行读入)。
输出语句 write(输出表); 将输出项显示在屏幕上或用打印机输出。
writeln(输出表); 将输出项通过屏幕或打印机输出(换行输出)。
write(输出项:场宽); 输出项占有的位数=场宽表达式的值。
write(输出项:总场宽:小数位数); 输出项占有的位数=总场宽表达式的值。
输出项小数部分占有的位数=小数位数。
条件语句 if 条件 then 语句1; 若条件为真,则执行语句1。
若条件为假,执行if语句的下一个语句。
if 条件 then 语句1
else 语句2; 若条件为真,则执行语句1,否则执行语句2。
分情况语句 case 表达式 of
常数表1:语句1:
常数表2:语句2;
……
常数表n:语句n;
end 先计算表达式的值,然后执行与表达式的值相同的常数所对应的语句。如果所有的常数表中没有与表达式的值相同的常数,则执行case语句的下一个语句。
case表达式of
常数表1:语句1;
常数表2:语句2;
常数表n:语句n;
……
else 语句n+l;
end 先计算表达式的值,再执行与表达式的值相同的常数所对应的语句。如果所有的常数表中没有与表达式的值相同的常数,则执行语句n+l。
循环语句 for 循环变量:=初值 to 终值 do
循环体; 先把初值赋给循环变量,然后将此值与循环终值比较,当此值小于等于终值时,执行循环体语句。
for 循环变量:=初值 downto 终值 do
循环体; 先把初值赋给循环变量,然后将此值与循环终值比较,当此值大于等于终值时,执行循环体语句。
while 布尔表达式 do 语句: 先计算布尔表达式的值,当其值是真时,执行do后面的语句,若是假则退出循环。
repeat
语句1;
语句2;
……
语句n
until 布尔表达式; 先执行语句1到语句n,再对布尔表达式进行判断。当布尔表达式值为真时重复执行语句1到语句n,直到布尔表达式的值为假时退出循环,执行until语句下面的语句。
转向语句 goto 标号; 转到标号指向的语句去执行。
开域语句 with 记录名 do 语句; 简化对记录的引用。

[例1.1]编程在屏幕上显示“Hello World!”。

Pascal程序:

Program ex11;

Begin

Writeln(‘Hello World!’);

ReadLn;

End.

这个简单样例程序,希望大家的程序设计学习能有一个良好的开端。程序中的Writeln是一个输出语句,它能命令计算机在屏幕上输出相应的内容,而紧跟Writeln语句后是一对圆括号,其中用单引号引起的部分将被原原本本地显示出来。

[例1.2]已知一辆自行车的售价是300元,请编程计算a辆自行车的总价是多少?

解:若总售价用m来表示,则这个问题可分为以下几步处理:

①从键盘输入自行车的数目a;

②用公式 m=300*a 计算总售价;

③输出计算结果。

Pascal程序:

Program Ex12; {程序首部}

Var a,m : integer; {说明部分}

Begin {语句部分}

Write(‘a=’);

ReadLn(a); {输入自行车数目}

M := 300*a; {计算总售价}

Writeln(‘M=’,m); {输出总售价}

ReadLn; {等待输入回车键}

End.

此题程序结构完整,从中可看出一个Pascal 程序由三部分组成:

(1)程序首部

由保留字Program开头,后面跟一个程序名(如:Exl1);其格式为:

Program 程序名;

程序名由用户自己取,它的第一个字符必须是英文字母,其后的字符只能是字母或数字和下划线组成,程序名中不能出现运算符、标点符和空格。

(2)说明部分

程序中所用的常量、变量,或类型、及过程与自定义函数,需在使用之前预先说明,定义数据的属性(类型)。[例1.2] 程序中 Var S,R,C: Real; 是变量说明,此处说明S,R,C三个变量均为实数类型变量。只有被说明为某一类型的变量,在程序中才能将与该变量同类型的数值赋给该变量。变量说明的格式为:

Var 变量表:类型;

(3)语句部分

指由保留字 Begin (开始)至 End. (结尾)之间的语句系列,是解决问题的具体处理步骤,也是程序的执行部分。

Pascal程序不管是哪部分,每句末尾都必须有分号(;),但允许最接近 End 的那个语句末尾的分号省略;程序结束的End末尾必须有圆点(. ),是整个程序的结束标志。

程序中花括号“{ }”之间的部分为注释部分。

Pascal程序结构可归纳用如下的示意图来表示:

Program 程序名; 程序首部

标号说明; (Label)

常量说明; (Const) 说明部分

类型说明; (Type)

变量说明; (Var)

过程或函数说明;

Begin 程序体 (主程序)

语句系列; 语句部分

End.

图1.1 Pascal程序的结构

把处理问题的步骤编成能从上到下顺序执行的程序,是简单程序的基本特征。再来分析下面两道例题的Pascal程序结构和继续学习基本语句。

〔例1.3〕编程计算半径为R的圆的面积和周长。

解:这是一个简单问题,按数学方法可分以下几步进行处理:

① 从键盘输入半径的值R; { 要求告诉圆的半径R }

② 用公式 S=πR2 计算圆面积;

③ 用公式 C=2πR 计算圆周长;

④ 输出计算结果。

Pascal程序:

Program Ex13; {程序首部 }

Var R,S,C: Real; {说明部分 }

Begin {语句部分 }

Write ('R=?');

Readln(R); {输入半径 }

S:=Pi*R*R; {圆面积公式S=πR2}

C:=2*Pi*R; {圆周长公式C=2πR}

Writeln('S=',S); {输出结果 }

Writeln('C=',C);

Readln {等待输入回车键}

End.

程序中Pi是Pascal提供的标准函数,它返回圆周率的近似值:3.1415926…。

(:=)是赋值符号,赋值语句的格式为:

变量:=表达式;

赋值语句的作用是将:=右边表达式的值记录到左边的变量中。

Writeln是输出语句,输出语句有三种格式:

① Write (输出项1,输出项2) ; {执行输出后光标不换行}

② Writeln (输出项1,输出项2) ; {执行输出后光标换到下一行}

③ Writeln {仅输出空白且光标换到下一行}

Writeln语句后面的圆括号以内部分均为输出项,可以是多项,各项间用逗号分隔; 对单引号里的内容按照引号内的原样(字符)输出显示。如果输出项是表达式,则只输出表达式的值,而不是表达式本身。

[例1.4] 输出两个自然数相除的商和余数。

解:设被除数、除数、商和余数,分别为A,B,C,D,均为变量,且都是整数类型。题中未给出具体的自然数A、B,可采用键盘输入方式。

① 给出提示,从键盘输入a, b;

② 显示两数相除的数学形式;

③ 求出a除以b的商c;

④ 求出a除以b的余数d;

⑤ 紧接等式后面输出显示商和余数。

Pascal程序:

Program Ex14;

Var a,b,c,d : integer;

Begin

Write('INPUT A,B:'); {给出提示信息}

Readln(a,b); {输入a,b}

Writeln; {输出一空行}

Write(a,'/',b,'='); {输出等式之后不换行}

c:=a div b; {整除运算,取商的整数部分}

d:=a mod b; {相除求余运算,取商的余数部分}

Writeln(C,'…',d); {输出后自动换行 }

Readln {等待输入回车键 }

End.

执行本程序中第一个Write语句,输出其引号以内的一串提示信息,是给紧接着的输入语句提供明确的提示(要求),有“一目了然,人机对话”之效果。

Readln是一个特殊的输入语句,要求输入一个回车(换行)才能往下执行。

Readln是输入语句,它的一般格式为:

① Read (变量1,变量2);

② Readln (变量1,变量2);

③ Readln

前两种格式均要从键盘给变量输入数据,输入时,所键入的数据之间以空格为分隔,以回车为输入结束。若多输入了数据(即数据个数超过变量个数),Read语句读完数据之后,能让后续的读语句接着读取多下来的数据;而Readln 语句对本行多输入的数据不能让后续语句接着读取多下来的数据。为了防止多输入的数据影响下一个输入语句读取数据,建议尽量使用Readln语句输入数据。第三种格式不需输入数据,只需按入一个回车键。

[例1.5]自然数的立方可以表示为两个整数的平方之差,比如43=102-62,请输出自然数1996的这种表示形式。(这里的43用自乘三次的形式4*4*4表示;102也用自乘二次的形式10*10表示)

解:此题没有现成的计算公式能直接利用,但可以自行推出处理方法或构建适当的运算公式,按着构想的处理方案编排出各步骤。

设这个自然数为N,两个平方数分别为X,Y, 将问题表示为求 N3=X2—Y2

① 先找出X的值,仔细观察题中的示例,用数学方法归纳可得出X=N*(N+1)/2;(构成本题可用的计算公式)

② 再仔细观察,发现Y值比X小一个N值,即 Y=X—N;

③ 输出等式 N3=X2—Y2 或N*N*N=X*X—Y*Y

Pascal程序:

Program Ex15;

Const N=1996; {常量说明 }

Var X,Y: Longint; {变量说明,此题计算中的数值较大,用长整型 }

Begin

X:=N*(N+1) div 2; { div 是整除运算 }

Y:=X-N;

Writeln(N,'*',N,'*', N,'=', X,'*', X,'—',Y,'*',Y); { 输出结果 }

Readln

End.

本程序中N是常量,X,Y是变量,为长整数类型(Longint); 程序中的div 是整除运算,其结果只取商的整数部分;

[例1.6] 求一元二次方程x2+3x+2=0的两个实数根。

解:方程的系数是常量,分别用a,b,c表示,可运用数学上现成的求根公式求方程的根,采取如下方法:

① 先求出d=b2-4ac;(求根公式中需用开方运算的那部分)

② 再用求根公式算出x1,x2的值。(x1,x2 = ? )

③ 输出x1,x2.

Pascal程序:

program Ex16;

Const a=1; {常量说明 }

b=3;

c=2; {a,b,c表示方程系数}

Var d : integer; {d为整型变量}

X1,X2: Real; {X1,X2为实型变量}

Begin

d:=b*b-4*a*c;

x1:=(-b+sqrt(d))/(2*a); {求方程的根}

x2:=(-b-sqrt(d))/(2*a);

Writeln('X1=',X1,' ':6,'X2=',X2);{输出结果}

Readln {等待输入一个回车键}

End.

本程序中的a,b,c均为常量;变量d是整数类型,而变量x1,x2则是实数类型,因为运算式中的Sqrt(d)开平方运算和(/)除法运算使结果为实数。Sqrt( ) 是开平方函数,是Pascal系统的一个标准函数。

习题1.1 模仿例题编程

1. 加法计算器:编程由键盘输入两个整数a和b,计算出它们的和并输出到屏幕上。

2. 某梯形的上底、下底和高分别为8,12,9,求该梯形的面积。

( 梯形面积公式为 S=

3. 求右图所示边长为5.6 的正立方体表面积。

4. 已知图园柱体的高为12,底面园的半径为7,求园柱体表面积。

5. 计算某次考试语文、数学、英语和计算机等四科的总成绩与平均成绩。

(请用输入语句从键盘输入各科成绩分)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-28
网上有很多教程,不妨上百度搜pascal资料,你会得到很多有用的信息
第2个回答  2009-03-28
说是说不清的。去百度搜一下或者去买本Pascal的书。
第3个回答  2009-03-29
买本书
用法太多了
相似回答