Pascal程序设计基本教程.docx

上传人:b****7 文档编号:9526764 上传时间:2023-02-05 格式:DOCX 页数:18 大小:27.86KB
下载 相关 举报
Pascal程序设计基本教程.docx_第1页
第1页 / 共18页
Pascal程序设计基本教程.docx_第2页
第2页 / 共18页
Pascal程序设计基本教程.docx_第3页
第3页 / 共18页
Pascal程序设计基本教程.docx_第4页
第4页 / 共18页
Pascal程序设计基本教程.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Pascal程序设计基本教程.docx

《Pascal程序设计基本教程.docx》由会员分享,可在线阅读,更多相关《Pascal程序设计基本教程.docx(18页珍藏版)》请在冰豆网上搜索。

Pascal程序设计基本教程.docx

Pascal程序设计基本教程

第一部分预备知识

第一课Pascal程序基本知识

一、科学记数法

7.8530000000E+01=78.537.8530000000E+02=785.3

.853*******

.853*******

.853*******

10位小数

二、基本结构

例1.1计算半径为R的圆面积S

programli1;{程序首部}

constpi=3.14159;{说明部分——数据描述}

vars,r:

real;

begin          

readln(r); {程序体}

s:

=pi*sqr(r); {执行部分}

writeln('s=',s);

end. 

二、各部分说明

1、程序首部

  例1.1的第一行称为程序首部。

program是保留字,接着是程序名(字母和数字的组合,开头必须是字母),最后以分号表示程序首部结束,下面是程序主体的开始。

2、程序体

(1)说明部分

说明部分用于定义和说明程序中用到的数据,比较常用的常量说明和变量说明。

常量说明用const,变量说明用var。

变量的类型有:

实型变量(real)、整型变量(integer)、字符型变量(char)。

举例:

定义变量x,y,z

var;x,y:

integer;

z:

real;

(2)执行部分

执行部分描述了程序要执行的操作。

它必须以一个TurboPascal保留字begin开始,以保留字end后跟句点结束,其间是一些执行具体操作的语句,并且以分号作为语句之间的分隔符。

begin和end必须成对出现。

紧跟end之后的句号表示执行部分的结束,也表示整个程序的结束。

此后的任何语句都无效。

练习:

1、课本P12练一练2、同步P7练习赛场一

第二部分顺序结构程序设计

包括四个语句:

一是输出语句;二是赋值语句;三是复合语句;四是输入语句。

第二课输出语句

计算机是如何把图形或解决问题的结果显示在屏幕上的呢?

pascal语言给我们提供了一条实现这一目的的语句write(writeln)。

举例:

programli2;

begin

writeln(‘‘,”######”);

writeln(‘‘:

2,”######”);

writeln(‘‘:

3,”######”);

writeln(‘‘:

4,”######”);

writeln(‘‘:

5,”######”);

writeln(‘‘:

6,”######”);

end.

输出内容:

######

######

######

######

######

######

1、格式

(1)write(输出项1,输出项2,输出项3,……);

(2)writeln(输出项1,输出项2,输出项3,……);

你想在屏幕上显示什么,就在输出项的位置填上什么。

可以多项输出,中间用逗号隔开。

2、输出项可以是常量、变量、函数名、表达式或字符串等,如果要输出常量、变量、函数名、表达式的值,则就直接输入即可;如果要照原样输出常量、变量、函数名、表达式或字符串等,则需要把输出项用单引号引起来。

3、场宽

(1)单场宽

场宽就是在输出项后面用冒号隔开再加上一个数,它是用来说明这个输出项所占得宽度,主要目的是确定输出项的位置。

(2)双场宽

在双场宽中,第一个场宽意义不变,第二场宽是对常量或变量的值的小数位数进行定义,是什么数,就保留几位小数。

练习课本:

P26练一练;P28例1;P32练一练同步操作:

P15——P18

第三课赋值语句

(一)赋值语句是最简单的语句,其一般形式为:

<变量>:

=<数据或表达式>例:

x:

=15s:

=’ok’m:

=3+5w:

=a+b

赋值语句的作用是计算表达式的值,并赋给变量。

对于任何一个变量必须首先赋值,然后才能引用,否则,未赋初值的变量将以一个随机值参与运算。

另外,赋值号两边的类型必须相同,但表达式值为整数时,它可自动化为实型后赋给该实型变量,即符合赋值相容。

例:

关于赋值的例子

 programexample;

  vara,b:

integer;

 begin

  a:

=3;b:

=2;

  writeln(a);

  writeln(b);

  a:

=a+b;

  writeln(a);

  writeln(b);

  b:

=a-b;

  writeln(a);

  writeln(b);

  a:

=a-b;

  writeln(a);

  writeln(b);

  readln

 end.

(二)算术表达式是由符合pascal语法规定的运算对象、算术运算符、圆括号组成的有意义的式子。

常用的算术运算符由以下6个:

+、-、*、/、div、mod、

补充1、trunc(取整函数)、round(舍入取整函数)

例:

trunc(1.2)=1round(1.2)=1

trunc(1.7)=1round(1.7)=2

trunc(-3.7)=-3round(-3.7)=-4

2、pred(前导函数)、succ(后继函数)

pred(5)=4succ(5)=6

3、chr(取字符函数)、ord(取序号函数)

chr(65)=’A’ord(’A’)=65

chr(97)=’a’ord(’a’)=97

练习课本:

P34练一练;P36练一练;P38第七课;同步操作:

P21——P24;

第四课 复合语句

  复合语句是由若干语句组成的序列,语句之间用分号“;”隔开,并且以begin和end括起来,作为一条语句。

复合语句的一般形式:

    

begin

     语句1;

     语句2;

     ……

     语句n;

    end

例:

变量值的交换

  programjiaohuan;

   var

    a,b,t:

integer;

  begin

   a:

=10;b:

=20;

   begin

    t:

=a;

    a:

=b;

    b:

=t;

   end;

   writeln('a=',a,'b=',b)

end.

练习:

同步操作P26——29(讲解第三题)

第五课输入语句

  通过计算机的外设把数据送到计算机内存的过程称为输入。

TurboPascal语言的输入语句有如下两种形式:

  read(<变量名表>);

  readln(<变量名表>);

<输入项表>是一个或几个由逗号隔开的变量标识符,他们必须在程序说明部分预先说明,他们可以是整型、实型或字符型,布尔型不可以直接读入。

  例如a,b,c为整型变量,read(a,b,c)之后

    键盘输入:

203040表示回车)

    结果:

 a=20,b=30,c=40

  readln语句和read语句不同之处在于输入数据到各变量之后,readln自动换行,从下一行开始再输入数据。

一个read语句执行完后,数据行中多余的未读数据可以被下一个输入语句读入;而一个readln于执行完后,数据行中多余未读数据就没有用了。

readln语句中可以不包含变量名表。

即有以下等价情况:

readln(a,b);readln等价于readln(a,b)

  输入语句输入的数据类型必须和变量一一对应。

如果输入的是一串整数或实数,数据间用空格或回车分隔;若输入的是一串字符,则不用分隔。

例:

输入语句示例

  programshuru;

    var

      x:

real;

      c:

char;

  begin

    write('pleaseinputthenumber:

($XXX.XX)');

    readln(c,x);

    writeln('Thepriceis',c,x);

  end.

练习课本:

P50练一练;同步操作:

P31——P33;

第三部分选择结构程序设计

包括两个部分:

一是if语句;二是case语句。

第六课if语句

.1 if语句

  IF语句是由一个布尔表达式和两个供选择的操作序列组成。

运行时根据布尔表达式求值结果,选取其中之一的操作序列执行。

有两种形式的IF语句:

       if <布尔表达式> then<语句>;

       if <布尔表达式> then<语句1>

           else<语句2>;

  当布尔表达式的值为真,则执行then后面的语句,值为假时有两种情况:

要么什么也不做,要么执行else后面的语句。

注意else前面没有分号,因为分号是两个语句之间的分隔符,而else并非语句。

如果在该处添了分号,则在编译的时候就会认为if语句到此结束,而把else当作另一句的开头,输出出错信息。

例1:

求y=f(x),当x>0时,y=1,当x=0时,y=0,当x<0时,y=-1

 

programlianxi;

  varx,y:

real;

 begin

  readln(x);

ifx>0theny:

=1;

  ifx=0theny:

=0;

  ifx<0theny:

=-1;

  writeln('y=',y);

 end.

  在TurboPascal语言if语句中被构造的语句只能是一条语句,当条件选择某个分支的计算要用多个语句描述时,就必须把该分支用begin和end括来,写成复合语句。

在用if语句连续嵌套时,如果你插入适量的复合语句,有利于程序的阅读和理解。

例2:

当x>0时候,计算x*x,并且输出x和x*x,

programlianxie3;

  varx,x1:

integer;

 begin

 readln(x);

 ifx>=0then

  begin

   x1:

=x*x;

   writeln('x*x=',x1);

   writeln('x=',x);

  end;

 end.

  当if语句嵌套时,TurboPascal约定else总是和最近的一个if配对。

第七课case语句

  case语句是由一个表达式和众多可选择的操作序列组成。

运行时,根据表达式的求值结果,在众多的分支中选取一个分支执行。

其形式为:

    case 表达式 of

     常量1:

语句1;

     常量2:

语句2;

     ……

     常量n:

语句n;

     else 语句n+1{可选项}

   end;

  表达式只能是顺序类型(除了实型以外的简单类型),其值必须是唯一确定并且和表达式类型相同。

case语句执行和表达式值相匹配的case常数所指向的那条语句,如果没有相匹配的值,则执行else部分(如果有的话)或者什么也不做。

在else前面的语句末尾有分号,这是和if语句不同的。

例:

根据学生的成绩给予相应的等低,对应关系如下:

  

90——100 A

  80——89  B

  60——79  C

  60以下    D

 programchengji;

vars:

real;

x:

integer;

ch:

char;

 begin

  write('inputthescore:

');

  readln(s);

x:

=torunc(s);  

if(s>=0)and(s<=100)then

   casexdiv10of

    10,9:

ch:

='A';

    8:

ch:

='B';

    7,6:

='C';

    elsech:

='D';

   end;

  writeln(s,'--',ch);

 end.

补充练习:

试编写一个根据用户键入的两个操作数和一个运算符,由计算机输出运算结果的程序。

这里只考虑加(+)、减(-)、乘(*)、除(/)四种运算。

例1:

Inputx,y:

153

Inputoperator(+,-,*,/):

15.00+3.00=18.00

例2:

Inputx,y:

50

Inputoperator(+,-,*,/):

divideiszero!

第四部分循环结构程序设计

包括部分:

一是for语句;二是while语句;三是repeat语句;

第八课for语句

补充:

类型integerlongintreal

数值范围-32768..32767-2147483648..21474836472.9e-39..1.7e+38

for语句用来描述已知重复次数的循环结构。

for语句有两种形式:

       

(1)for控制变量:

=初值 to 终值 do 语句;

       

(2)for控制变量:

=初值 downto 终值 do 语句;

  第一种形式的for语句是递增循环。

首先将初值赋给控制变量,接着判断控制变量的值是否小于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的后继值,并重新判断是否小于或等于终值。

当控制变量的值大于终值时,退出for循环,执行for语句之后的语句。

第一种形式的for语句是递减循环。

首先将初值赋给控制变量,接着判断控制变量的值是否大于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的前趋值,并重新判断是否大于或等于终值。

当控制变量的值小于终值时,退出for循环,执行for语句之后的语句。

for语句中的初值、终值、控制变量的数据都必须是顺序类型。

当初值和终值确定后,重复的次数就确定不变了,并且控制变量在重复语句内不能施加任何赋值操作。

例:

计算1+2+3+……+99+100

 

programjia;

  varn,sum:

integer;

 begin

  sum:

=0;

  fori:

=1to100do

   sum:

=sum+i;

  writeln(sum);

 end.

(1)5、程输出如下的乘法口诀表:

1*1=1

2*1=22*2=4

3*1=33*2=63*3=9

4*1=44*2=84*3=124*4=16

5*1=55*2=105*3=155*4=205*5=25

6*1=66*2=126*3=186*4=246*5=306*6=36

7*1=77*2=147*3=217*4=287*5=357*6=427*7=49

8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64

9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81

 

(2)25、求1+1*2+1*2*3+......+1*2*3*......*9*10

(3)38、求1+11+111+......共N项之和(1

(4)54、用5元钱买100只纽扣,其中金属纽扣每只5角,有机玻璃纽扣每只1角,小纽扣1分钱买3个,编程求出各种纽扣买了多少只?

(5)56、按字母表顺序和逆序每隔一个字母打印,即

ACEGIKMOQSUWY

ZXVTRPNLJHFDB

(6)64、求1到100的偶数及奇数和

(7)68、“水仙花数”是指一个3位数,其各位数的立方和等于该数,如:

153=13+53+33。

编写程序,输出所有的“水仙花数”.

(8)88、请编制程序输出的结果是如下图所示。

(用循环语句实现)

                  1

                212

              32123

            4321234

        5  43212345

      6  5  432123456

        5  43212345

            4321234

              32123

                  212

                    1

(9)161、输入N值,编程输出如下图形。

Input

一个整数N(1<=N<=7)。

Output

排列成菱形的大写字符,首字符为Z,以后依次为Y,X...

SampleInput

3

SampleOutput

Z

YX

WV

UT

S

(10)162、输入下列图形:

以26英文字母

a

ab

abc

......

........

..........

abcde..............wyz

第九课while语句

while语句用于“当满足某一条件时进行循环”的情况。

while语句的语法格式:

              while布尔表达式 do 语句;

  循环结束条件在进入循环体之前测试,若最初的测试值为false,则根本不进入循环体,也就是说while循环是是属于当型循环。

为了能使while重复能终止,循环体中一定要有影响布尔表达式的操作,否则该循就是一个死循环。

例:

计算从0到某个数之间所有奇数的和。

 

programjishu;

  varodds,limit,sum:

integer;

 begin

  readln(limit);

  sum:

=0;

  odds:

=1;

  whileodds<=limitdo

   begin

    sum:

=sum+odds;

    odds:

=odds+2

   end;

  writeln(sum:

1)

 end.

第十课repeat语句

repeat语句用于“重复执行循环体,一直到指定的条件为真时为止”。

语法格式为:

                 repeat

       语句1;

        ……

        语句n;

                 until 布尔表达式;

  repeat重复基本上有和while重复一样的描述循环计算的能力,但有一些不同:

在repeat语句的结构中,布尔表达式求值在计算操作之后,而while语句中,布尔表达式求值在计算操作之前,也就是说repeat至少执行一次循环体。

while语句的成分语句只能是一个语句。

因此,当重复动作包含多个语句时,要用begin和end,使它变成一个复合语句。

而repeat语句的保留字repeat和until已经起语句括号作用,可以包含多个语句而无须begin和end。

repeat语句中,当布尔表达式为true时结束循环,而while语句中,是当表达式为false时才结束循环。

当描述由计算操作后的情况确定重复是否继续进行的计算时,通常用repeat语句描述。

第四部分数组

1.数组的定义

  数组是程序中最常用的结构数据类型,用来描述由固定数目的同一类型的元素组成的数据结构。

数组的每个元素和下标相关联,根据下标指示数组的元素。

数组的存储方式为按行存储,在编译阶段,计算机根据数组的类型说明,确定其存储空间的大小。

数组可以是任何顺序类型。

  数组的定义形式:

    array[<下标类型1>,……<下标类型n>]of<元素类型>

  其中n称为数组的维数,每维的下标类型必须是一个顺序类型,通常为子界类型或枚举类型,其作用是指定数组下标的编制方式和下标取值范围。

例如:

var a:

array[1..10]ofinteger;{有10个元素的一维数组}

 m,n:

array[1..10]ofinteger;

b:

arrayp[1..5,1..5]ofreal;{有25个元素的二维数组,依次按[1,1]……,[1,5],[2,1]……,[2,5],……[5,1],……[5,5]}

2.数组的操作

  当数组的元素类型为简单类型时,其下标变量和简单类型变量一样使用。

例如:

    a[50]:

=50;    a[20]:

=a[5];

  一个数组,下标的起始值和终止值是在类型定义中给定的,不能在程序执行中再通过其他途径来改变,所以数组元素的个数在程序运行期间是固定不变的。

数组变量作为整体仅允许同类型数组之间的赋值运算。

例如:

varx,y:

array[1..10]ofinteger;

x:

:

=y

例:

读入5个学生的学号和成绩,计算他们的平均分,若比平均分高10分的等第为A,若比平均分高小于10分的等地为B,若低于平均分,则等第为C,输出他们的成绩和等第。

programsample7d1(input,output);

  constn=5;

  type

   no=array[1..n]ofinteger;

   s=array[1..n]ofreal;

  var

   i:

integer;

   k:

real;

   num:

no;

   score:

s;

 begin

  k:

=0;

  fori:

=1tondo

   begin

    readln(num[i],score[i]);

    k:

=k+score[i];

   end;

  k:

=k/n;

  fori:

=1tondo

   begin

   write(num[i],score[i]);

  if(score[i]-k)>=10thenwriteln('A')

else

if((score[i]-k)<10)and((score[i]-k)>0)

thenwriteln('B')

 elsewriteln('C');

   end;

 end.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1