[pascal]第二次pascal试验课上机时写的小程序

本文分享了2007年Pascal编程课程中的实验内容,包括字符操作、数学计算、一元二次方程求解及根据班级编号查询班级人数等程序设计实例。

2007年3月23日 第二次pascal试验课 上机内容是顺序和选择结构程序设计

以下是我课上写的几段代码,文件名就是课本上题目的位置,例如P14_1_2.PAS即为第14页的习题1.2

P37_2_8.PAS

PROGRAM chars(input,output);
  {输入三个字符,然后以不同次序输出并依次打印它们的序号}
  VAR
    ch1,ch2,ch3:char;
  BEGIN
    {读入这三个字符}
    writeln(
'Please input three letters ...');
    readln(ch1,ch2,ch3);
    {顺序输出它们}
    writeln(ch1,ch2,ch3);
    {依次输出它们的序号}
    writeln(ord(ch1),ord(ch2),ord(ch3));
    {逆序输出它们}
    writeln(ch3,ch2,ch1)
  END.

 

P37_2_10.PAS

PROGRAM chars(input,output);
  {输入一个三位数,并以相反次序输出}
  VAR
    ch1,ch2,ch3:char;
  BEGIN
    {读入一个三位数,把每一位当作一个字符}
    writeln(
'Please input a three-figure number ...');
    readln(ch1,ch2,ch3);
    {以相反次序输出这三个字符}
    writeln(ch3,ch2,ch1)
  END.

 

P52_3_1.PAS

PROGRAM account(input,output);
  {根据x的值计算y和z并输出}
  CONST
    pi
=3.14159;
  VAR
    x,y,z:real;
  BEGIN
    {读入x和y的值并进行回打}
    writeln(
'Please input two numbers x and y...');
    readln(x,y);
    writeln(
'The numbers you input is x=',x:4:2,' y=',y:4:2);
    {计算y的值}
    IF x
<=2.5
      THEN y:
=sqr(x)+1
      ELSE y:
=sqr(x)-1;
    {计算z的值}
    IF x
=0
      THEN z:
=0
      ELSE IF x
<0
             THEN z:
=-pi/2*x+3
             ELSE z:
=pi/2*x-5;
    {输出y和z的值}
    writeln(
'y=',y:4:2,' z=',z:4:2)
  END.

 

P52_3_6.PAS

PROGRAM extract(input,output);
  {输入一元二次方程的系数a,b,c确定方程根x的值}
  VAR
    a,b,c,x1,x2,x,delta:real;
  BEGIN
    {读入a,b,c的值并回打给用户}
    writeln(
'Please input the coefficient a,b,c');
    read(a,b,c);
    writeln(
'The coefficient you input is',a:4:2,b:4:2,c:4:2);
    {计算并输出delta的值以便用户检查结果是否正确}
    delta:
=b*b-4*a*c;
    writeln(
'The delta is ',delta:10:8);
    {判断delta是否等于零,若是则计算并输出x的值}
    IF delta
=0
      THEN BEGIN
             x:
=-b/(2*a);
             writeln(
'x=',x:4:2)
           END
      ELSE IF delta
>0
             {delta不等于零时再次判断其是否大于零,若是则以实根形式计算并输出,若否则以虚根形式计算并输出}
             THEN BEGIN
                    x1:
=(-b+sqrt(delta))/(2*a);
                    x2:
=(-b-sqrt(delta))/(2*a);
                    writeln(
'x1=',x1:4:2,' x2=',x2:4:2)
                  END
             ELSE BEGIN
                    writeln(
'x1=',-b/(2*a):5:4,'+',sqrt(abs(delta))/(2*a):5:4,'i');
                    writeln(
'x2=',-b/(2*a):5:4,'-',sqrt(abs(delta))/(2*a):5:4,'i')
                  END
  END.

 

P52_3_9.PAS

PROGRAM population(input,output);
  {根据输入的班号输出对应人数}
  VAR
    {其中cls代表班号,stu代表人数}
    cls,stu:integer;
  BEGIN
    {读入班号}
    writeln(
'Plaese input the class number (from 91 to 96)');
    readln(cls);
    {查询对应人数}
    CASE cls OF
      
91:stu:=30;
      
92:stu:=32;
      
93:stu:=30;
      
94:stu:=30;
      
95:stu:=32;
      
96:stu:=25
    END;
    {输出对应人数}
    writeln(
'The population of class ',cls:2,' is ',stu:2)
  END.

 

2007年4月8日 sch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值