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.
{输入三个字符,然后以不同次序输出并依次打印它们的序号}
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.
{输入一个三位数,并以相反次序输出}
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.
{根据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.
{输入一元二次方程的系数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.
{根据输入的班号输出对应人数}
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