湿地保护 > > 学习 > 正文

第一章 简单程序

作者:孟子后生 2012/12/3 10:37:39
心情:开心日期:2012-12-03 星期一天气:地点:学校

无论做任何事情,都要有一定的方式方法与处理步骤。计算机程序设计比日常生活中的事务处理更具有严谨性、规范性、可行性。为了使计算机有效地解决某些问题,须将处理步骤编排好,用计算机语言组成“序列”,让计算机自动识别并执行这个用计算机语言组成的“序列”,完成预定的任务。将处理问题的步骤编排好,用计算机语言组成序列,也就是常说的编写程序。在Pascal语言中,执行每条语句都是由计算机完成相应的操作。编写Pascal程序,是利用Pascal语句的功能来实现和达到预定的处理要求。“千里之行,始于足下”,我们从简单程序学起,逐步了解和掌握怎样编写程序。

 

第一节  Pascal程序结构和基本语句

在未系统学习Pascal语言之前,暂且绕过那些繁琐的语法规则细节,通过下面的简单例题,可以速成掌握Pascal程序的基本组成和基本语句的用法,让初学者直接模仿学习编简单程序。

 

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

  Pascal程序:

Program ex11;

Begin

  Writeln(‘Hello World!’);

  ReadLn;

End.

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

 

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

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

 = 1 \* GB3①从键盘输入自行车的数目a

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

 = 3 \* GB3③输出计算结果。

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 SRC: Real是变量说明,此处说明SRC三个变量均为实数类型变量。只有被说明为某一类型的变量,在程序中才能将与该变量同类型的数值赋给该变量。变量说明的格式为:  

            Var 变量表:类型;

(3)语句部分

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

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

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

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

 

  Program 程序名;                 程序首部

      标号说明;(Label)

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

    类型说明;(Type)

     变量说明;(Var)

     过程或函数说明;                    

        Begin                     程序体(主程序)

             语句系列;                   语句部分

        End.                                        

 

 

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

 

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

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

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

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

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

   输出计算结果。

Pascal程序:

  Program  Ex13                           {程序首部

  Var  RSC: 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.

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

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

        变量:=表达式;

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

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

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

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

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

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

 

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

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

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

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

  求出a除以b的商c

  求出a除以b的余数d

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

Pascal程序:

  Program Ex14

    Var a,b,c,d : integer

    Begin

      Write('INPUT AB')      {给出提示信息}

      Readln(ab)               {输入ab

      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=10262,请输出自然数1996的这种表示形式。(这里的43用自乘三次的形式4*4*4表示;102也用自乘二次的形式10*10表示)

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

设这个自然数为N,两个平方数分别为XY将问题表示为求N3=X2Y2

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

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

输出等式N3=X2Y2N*N*N=X*XY*Y

Pascal程序:

  Program  Ex15

    Const  N=1996       {常量说明

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

      Begin

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

        Y:=X-N

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

        Readln

      End.

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

 

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

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

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

 再用求根公式算出x1x2的值。(x1x2 = ? )

 输出x1x2.

  Pascal程序:

    program Ex16

    Const a=1                        {常量说明

         b=3

         c=2                        abc表示方程系数}

    Var  d  : integer                  d为整型变量}

         X1X2: Real                 X1X2为实型变量}

     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.

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

 

习题1.1  模仿例题编程

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

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

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

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

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

(请用输入语句从键盘输入各科成绩分)

阅读 520
推荐
网友评论

发表

我也说两句
E-File帐号:用户名: 密码: [注册]
评论:(内容不能超过500字。)

*评论内容将在30分钟以后显示!
版权声明:
1.依据《服务条款》,本网页发布的原创作品,版权归发布者(即注册用户)所有;本网页发布的转载作品,由发布者按照互联网精神进行分享,遵守相关法律法规,无商业获利行为,无版权纠纷。
2.本网页是第三方信息存储空间,阿酷公司是网络服务提供者,服务对象为注册用户。该项服务免费,阿酷公司不向注册用户收取任何费用。
  名称:阿酷(北京)科技发展有限公司
  联系人:李女士,QQ468780427
  网络地址:www.arkoo.com
3.本网页参与各方的所有行为,完全遵守《信息网络传播权保护条例》。如有侵权行为,请权利人通知阿酷公司,阿酷公司将根据本条例第二十二条规定删除侵权作品。

 

更多精彩在首页, 首页