青少年信息学竞赛语言教程一:简单程序_杯赛竞赛-查字典奥数网
 
请输入您要查询的关键词

青少年信息学竞赛语言教程一:简单程序

2012-12-13 15:07:19     标签:信息学

查字典合肥奥数网讯:青少年信息学奥赛语言教程一:简单程序。

简单程序

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

Pascal程序结构和基本语句

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

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

Pascal程序:

Programex11;

Begin

Writeln(‘HelloWorld!’);

ReadLn;

End.

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

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

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

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

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

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

Pascal程序:

ProgramEx12;{程序首部}

Vara,m:integer;{说明部分}

Begin{语句部分}

Write(‘a=’);

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

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

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

ReadLn;{等待输入回车键}

End.

下一页阅读Pascal程序三部分组成

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

(1)程序首部

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

Program程序名;

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

(2)说明部分

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

Var变量表:类型;

(3)语句部分

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

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

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

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

Program程序名;程序首部

标号说明;(Label)

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

类型说明;(Type)

变量说明;(Var)

过程或函数说明;

Begin程序体(主程序)

语句系列;语句部分

End.

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

下一页阅读例1.3 编程计算半径为R的圆的面积和周长

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

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

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

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

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

④输出计算结果。

Pascal程序:

ProgramEx13;{程序首部}

VarR,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 输出两个自然数相除的商和余数

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

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

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

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

③求出a除以b的商c;

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

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

Pascal程序:

ProgramEx14;

Vara,b,c,d:integer;

Begin

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

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

Writeln;{输出一空行}

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

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

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

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

Readln{等待输入回车键}

End.

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

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

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

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

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

③Readln

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

下一页阅读例1.5 的解题

[例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程序:

ProgramEx15;

ConstN=1996;{常量说明}

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

Begin

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

Y:=X-N;

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

Readln

End.

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

下一页阅读例1.6的解题

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

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

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

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

③输出x1,x2.

Pascal程序:

programEx16;

Consta=1;{常量说明}

b=3;

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

Vard: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.1模仿例题编程

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

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

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

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

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

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

更多阅读,请参加查字典合肥奥数网“杯赛竞赛”频道。

》》“信息学竞赛”

信息学奥赛语言教程PASCAL函数表

信息学竞赛可能用到的c++语法

信息学奥林匹克竞赛与编程语言的关系

全国青少年信息学奥林匹克竞赛规则

点击显示
上一篇:信息学编程语言教程二:顺序结构程序与基本数据类型
下一篇:信息学奥赛语言教程PASCAL函数表
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关文章
热门文章
最新文章
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •   青少年信息学竞赛语言教程一:简单程序_杯赛竞赛-查字典奥数网
     
    请输入您要查询的关键词

    青少年信息学竞赛语言教程一:简单程序

    2012-12-13 15:07:19     标签:信息学

    查字典合肥奥数网讯:青少年信息学奥赛语言教程一:简单程序。

    简单程序

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

    Pascal程序结构和基本语句

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

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

    Pascal程序:

    Programex11;

    Begin

    Writeln(‘HelloWorld!’);

    ReadLn;

    End.

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

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

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

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

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

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

    Pascal程序:

    ProgramEx12;{程序首部}

    Vara,m:integer;{说明部分}

    Begin{语句部分}

    Write(‘a=’);

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

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

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

    ReadLn;{等待输入回车键}

    End.

    下一页阅读Pascal程序三部分组成

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

    (1)程序首部

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

    Program程序名;

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

    (2)说明部分

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

    Var变量表:类型;

    (3)语句部分

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

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

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

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

    Program程序名;程序首部

    标号说明;(Label)

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

    类型说明;(Type)

    变量说明;(Var)

    过程或函数说明;

    Begin程序体(主程序)

    语句系列;语句部分

    End.

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

    下一页阅读例1.3 编程计算半径为R的圆的面积和周长

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

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

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

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

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

    ④输出计算结果。

    Pascal程序:

    ProgramEx13;{程序首部}

    VarR,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 输出两个自然数相除的商和余数

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

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

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

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

    ③求出a除以b的商c;

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

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

    Pascal程序:

    ProgramEx14;

    Vara,b,c,d:integer;

    Begin

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

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

    Writeln;{输出一空行}

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

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

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

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

    Readln{等待输入回车键}

    End.

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

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

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

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

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

    ③Readln

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

    下一页阅读例1.5 的解题

    [例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程序:

    ProgramEx15;

    ConstN=1996;{常量说明}

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

    Begin

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

    Y:=X-N;

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

    Readln

    End.

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

    下一页阅读例1.6的解题

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

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

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

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

    ③输出x1,x2.

    Pascal程序:

    programEx16;

    Consta=1;{常量说明}

    b=3;

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

    Vard: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.1模仿例题编程

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

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

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

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

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

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

    更多阅读,请参加查字典合肥奥数网“杯赛竞赛”频道。

    》》“信息学竞赛”

    信息学奥赛语言教程PASCAL函数表

    信息学竞赛可能用到的c++语法

    信息学奥林匹克竞赛与编程语言的关系

    全国青少年信息学奥林匹克竞赛规则

    点击显示
    上一篇:信息学编程语言教程二:顺序结构程序与基本数据类型
    下一篇:信息学奥赛语言教程PASCAL函数表
    推荐文章
    猜你喜欢
    附近的人在看
    推荐阅读
    拓展阅读
    相关文章
    热门文章
    最新文章
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •