信息学奥林匹克竞赛培训教案_第1页
信息学奥林匹克竞赛培训教案_第2页
信息学奥林匹克竞赛培训教案_第3页
信息学奥林匹克竞赛培训教案_第4页
信息学奥林匹克竞赛培训教案_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE142信息学奥林匹克竞赛培训教案(PASCAL语言)授课:陈浩Emaill:haao_cch@yyahooo.ccomQQ::651176445466第1章计算机机的发展展与应用用1.1计算机机发展简简史1.1.11第一台台电子计计算机的的诞生1946年年,世界界上第一一台数字字式电子子计算机机由美国国宾夕法法尼亚大大学的物物理学家家约翰··莫克利利(JoohnMauuchlly)和和工程师师普雷斯斯伯·埃埃克特(PresperEckert)领导研制成功,取名为ENIAC(ElectronicNumericalIntegratorAndCalculator)。它可以在1秒进行5000次加减运算,3毫秒便可以进行一次乘法运算,能存储20个字长为10位的十进制数。1.1.22计算机机发展的的几个阶阶段主要电子器器件电子管晶体管中小规模集集成电路路大规模/超超大规模模集成电电路内存汞延迟线磁芯存储器器半导体存储储器半导体存储储器外存储器穿孔卡片、纸纸带磁带磁带、磁盘盘磁盘、光盘盘等大容容量存储储器处理速度(指指令数//秒)几千条几百万条几千万条数亿条以上上第四代计算算机以大大规模集集成电路路VLSSI为计计算机的的主要功功能部件件,用166K、64KK或集成成度更高高的半导导体存储储器作为为主存储储器。新机器要继继承原有有机器指指令系统统中的全全部指令令,使得得同一系系列计算算机的指指令系统统越来越越复杂,这这些计算算机被称称为“复复杂指令令系统计计算机”,简称称CISSC。日趋庞大的的指令系系统降低低了系统统性能,而而机器中中最常常常的是一一些简单单指令,这这些指令令仅占指指令系统统中指令令总数的的20%%,19775年提提出了精精简指令令系统,简简称RIISC。冯·诺依曼曼型计算算机是采采用存储储程序方方式进行行工作。研制中的第第五代计计算机,是是一种智智能计算算机,具具有自动动识别自自然语言言、图形形、图像像有能力力,具有有理解和和推理能能力,具具有知识识获取、知知识更新新能力。研制朝两个方向努力:①创建非冯·诺依曼式语言,LISP、PROLOG、F.P.;②创建以人脑神经系统处理信息的原理为基础的非冯·诺依曼式的计算机模型,生物计算机、光子计算机、量子计算机。1.2计算机机对现代代社会的的影响1.2.11计算机机应用概概述1、科学计计算:利利用计算算机解决决科学研研究和工工程技术术中所提提出的复复杂的数数学问题题。2、数据处处理:利利用计算算机对所所获取的的信息进进行记录录、整理理、加工工、存储储和传输输等。3、人工智智能:利利用计算算机来模模仿人类类的智力力活动。4、自动控控制:利利用计算算机对动动态的过过程进行行控制、指指挥和协协调。5、计算机机辅助设设计和制制造:利利用计算算机来辅辅助工程程师们设设计和制制造产品品。1.2.22由信息息高速公公路热引引发的全全球信息息化浪潮潮在现代,能能源、材材料与信信息是社社会发展展的三大大支柱。以蒸汽机为为中心的的动力革革命,使使人类的的体力劳劳动大大大得到了了解放;;以电子子信息技技术为先先导、以以计算机机和现代代通信产产业为代代表的信信息革命命使人类类的脑力力劳动得得到解放放。社会发展到到每一阶阶段,都都需要有有相应的的基础设设施作支支持。在在农业社社会,田田地是社社会的基基础设施施;199世纪进进行的工工业革命命时代,很很多国家家通过建建设高速速公路和和铁路等等交通运运输方面面的基础础设施取取得了经经济飞速速发展;;而在信信息化时时代,信信息高速速公路就就自然成成为国家家重要的的基础设设施。1993年年美国国国家信息息基础设设施计划划提出了了一个具具有大容容量、高高速度的的电子数数据传递递系统。该该系统由由通信网网络、信信息设备备、信息息资源和和信息环环境组成成。1.2.33我国的的“三金金”工程程1、金桥工工程即国家公用用经济信信息通信信网络工工程,是是我国信信息化建建设的基基础设施施之一。2、金关工工程是金桥工程程的起步步工程之之一。3、金卡工工程即电子货币币工程,是是金融电电子化和和商业流流通现代代化的重重要组成成部分。语言是交流流的工具具,人与与人交流流要用语语言,其其它动物物之间交交流也有有特定的的动物的的语言,人人与计算算机交流流就要用用到一些些符号,这这些符号号的集合合形成了了计算机机的语言言。计算机语言言有一个个发展过过程,从从机器语语言开始始,然后后是汇编编语言,,现在则则使用高高级语言言.机器器语言和和汇编语语言属于于低级语语言,计计算机容容易懂,,但人理理解起来来困难..高级语语言人比比较容易易理解,,因此使使得计算算机得以以普及,,当然这这是指660年代代.实际际上,随随着应用用软件的的发展,,现在人人们连语语言也不不用学了了,也可可以使用用计算机机,而且且使用的的很好..

当然,高级级语言,,人虽然然容易懂懂,但计计算机又又不懂,,因此需需要翻译译.所以以高级语语言都提提供了编编译系统统或解释释系统或或集成的的开发系系统,对对高级语语言进行行翻译,,使得计计算机能能够识别别并运行行程序..高级语语言还在在发展,,比如面面向对象象的语言言,可视视化的语语言,网网络开发发语言等等.机器语言和和汇编语语言也可可以称为为低级语语言.不不要认为为有了高高级语言言,低级级语言就就可以不不用了..恰恰相相反,在在有些领领域,低低级语言言更有用用武之处处,如控控制领域域,电子子信息领领域.因因为这些些领域对对语言运运行的速速度和效效率更感感兴趣,,这正是是低级语语言的特特点.上述语言都都称为形形式化的的语言,,与之相相对应的的是自然然语言,,也就是是人使用用的语言言.人与与计算机机之间能能否通过过自然语语言交流流呢?这这个恐怕怕很难..因为按按照现在在计算机机的原理理,计算算机只有有执行程程序才能能够工作作,语言言就是用用于编出出程序来来,指挥挥计算机机的工作作,没有有程序,,计算机机就不能能工作..除非在在人与计计算机交交流时,,计算机机能把人人的语言言翻译成成程序,,否则,,人与计计算机之之间永远远也不能能实现用用自然语语言进行行交流..而目前前这是不不太可能能的.要要么就是是改变现现在计算算机的结结构,改改变现在在计算机机的运行行模式,,那样的的话,计计算机就就要真正正的实现现更新换换代了..第1课认识PPASCCAL语语言请参阅《全全国信息息学奥林林匹克联联赛培训训教程(一一)》PP87第5章程序序设计语语言5.1程序设设计语言言基础5.1.11程序设设计语言言的组成成PASCAAL语言言是一种种高级语语言。让我们先来来看一个个PASSCALL程序,通通过这个个程序了了解PAASCAAL的规规则。例L1_11已知半半径,求求圆周长长和面积积的程序序PROGRRAMcirrclee(innputt,ooutpput));(**第第1行:程程序首部部**){已知半径径求圆周周长和面面积}(*第2行:注注释*)CONNST((*第3行:常常量说明明*)PI=3..141159;;VARR(*第5行:变变量说明明*)r,l,,s::reeal;;BEGGIN((*第7行:语语句部分分*)read((r);;((*第8行:输输入语句句*)l:=2**PI**r;(**第9行:赋赋值语句句*)s:=PPI*rr*r;;writee(r,,l,ss);(**第11行::输出语语句*))ENDD.(**第12行::语句部部分以EEND..结束*))程序的第一一行为程程序首部部,每个个PASSCALL程序都都必须以以PROOGRAAM开开头;cirrclee是本程程序的名名字,每每个程序序的名字字可以不不同;圆圆括号里里的内容容称为程程序的参参数,程程序参数数指明程程序与外外部联系系的文件件名,iinpuut是标标准输入入文件,例例如键盘盘打字机机,ouutpuut是标标准输出出文件,指指屏幕显显示器或或打印机机,为了了读入数数据和输输出结果果,必须须写上文文件参数数inpput和和outtputt。从第三行到到最后一一行为程程序的分分程序。分分程序一一般由说说明部分分和语句句部分构构成。说明部分可可以包括括多种类类型的说说明。此此例包括括以COONSTT开始的的常量说说明和以以VARR开始的的变量说说明,常常量说明明必须以以CONNST开开始,变变量说明明必须以以VARR开始。语句部分必必须以BBEGIIN开始始,以EEND..结束,特特别注意意其中的的小圆点点(.)不可可缺少。中中间是一一些用分分号分开开的语句句。一个PASSCALL程序由由程序首首部和分分程序组组成,分分程序通通常由说说明部分分和语句句部分组组成(在在特殊情情况下可可以没有有说明部部分)。PROGRAMcircle(input,output);PROGRAMcircle(input,output);CONSTPI=3.14159;VARr,l,s:real;BEGINread(r);l:=2*PI*r;s:=PI*r*r;write(r,l,s);END.程序首部分程序说明部分语句部分上例的第二二行,大大括号{{}中中的内容容,称为为注释。被被小括号号及星号号(**)括括起来的的内容也也是注释释。注释释除了给给人看,以以增加程程序的可可读性外外,对编编译和运运行都不不起作用用,一个个程序可可以包含含多个出出现在不不同地方方的注释释,也可可以没有有注释。程序的书写写格式::1、PROOGRAAM写在在最左边边顶格;;2、注释的的大括号号{、和COONSTT、VARR、BEGGIN、ENDD等语句句上下对对齐,且且它们比比PROOGRAAM向右右移两个个字符;;3、各个语语句和程程序语句句也是上上下对齐齐,它们们比第22点中的的各语句句又向右右移两个个字符;;4、使用大大写字母母的语句句:PRROGRRAM、CONNST、VARR、BEGGIN、ENDD;5、使用大大写字母母的标识识符:常常量标识识符。例L0__0011输输入三角角形底边边和高,求求该三角角形的面面积。写写出程序序。第二课PAASCAAL的数数据类型型、标识识符、表表达式、语语句PASCAAL的数数据类型型数据对于一一门程序序语言是是非常重重要的,数数据的一一个非常常重要的的特征就就是它的的类型。PASCAL规定:程序中出现的变量必须先说明才能使用。PASCAAL的标准数数据类型型数据类型类型标识符符适用的数据据举例实型real有小数表示示法和指指数表示示法(科科学表示示法)1.25,1322.677,0.000255,-1..561.32667e++2(=1..32667×102=1332.667)整型integger包括正、负负整数和和零25,-332,0字符型char单个的字符符‘A’,’’b’,’C’,’0’,’4’,’+’布尔型booleean只有现个值值,即ttruee(真)和和fallse(假假)1、实型(real)实型是最常常用的数数据类型型。在PASCCAL,实实数有两两种表示示方法::小数表表示法和和指数表表示法(或或称科学学表示法法)。1.25,1322.677,0.000255,-1..56,0.00,1000.0以科学表示示法表示示这些数数,可以以写成1.25ee0,1.332677e+22,2.55e-33,-1..56ee0,0e00,1e22在科学表示示法中,e后的数字代表10的幂。上列各数可以解释成:1.25ee0=11.255×100=1..25,1.332677e+22=1..32667×102=1332.667,2.55e-33=2..5×10-33=0..00225,-1..56ee0=--1.556×100=-11.566,0e00=0××100=0..0,1e22=1××102=1000.002、整型(integer)整型数包括括正、负负整数和和零。例例如:225,-322,0。在整整数中不不得包括括不数点点(.)。3、字符型型(chhar)字符型数是是括在两两个单引引号中的的一个字字符。例例如:‘A’,’’b’,’C’,’0’,’4’,’+’,’*’,……‘’代表空空字符‘’’’代代表字符符’‘abc’’不是字字符型数数,因为为单引号号中只能能有一个个字符。所有字符都都有一个个序号与与之对应应。如‘‘0’对应应48,‘‘1’对应应49,‘‘A’对应应65,‘‘B’对应应66。与字符有关关的几个个函数函数功能举例ord())返回与字符符对应的的序号ord(‘‘A’)=665chr())返回与数字字对应的的字符chr(665)==’A’pred(()返回前一字字符pred((‘B’)=AAsucc(()返回后一字字符succ((‘A’)=BB用函数可取取得对应应的序号号,用4、布尔型型(boooleean)布尔类型的的值只有有两个::fallse(假假)和ttruee(真)。且且fallse的的序号为为0,truue的序序号为11。用于布尔量量的运算算有布尔尔运算(或或称逻辑辑运算),它它们是::AND(与与),OOR(或或),NNOT(非非),基基本运算算规则如如下:运算结果0ANDD0假ANDD假0falsee假0ANDD1假ANDD真0falsee假1ANDD0真ANDD假0falsee假1ANDD1真ANDD真1true真0OR0假OR假0falsee假0OR1假OR真1true真1OR0真OR假1true真1OR1真OR真1true真NOT00NOT假假1true真NOT11NOT真真0falsee假例L0-0002写写出下列列PASSCALL语句的的执行结结果AA0:==(1>>5);;AA1:==(1<<5);;wwrittelnn(A00ANNDAA0);;wwrittelnn(A00ANNDAA1);;wwrittelnn(A11ANNDAA0);;wwrittelnn(A11ANNDAA1);;wwrittelnn(A00orrA00);wwrittelnn(A00orrA11);wwrittelnn(A11orrA00);wwrittelnn(A11orrA11);标识符标识符是以以字母开开头的字字母、数数字组合合,用来来表示常常量、变变量、类类型、文文件、函函数、过过程或程程序的名名字。x,y,mmax,minn,summ,a155,a3bb7都是是合法的的标识符符。而5x,x--y,αα,π,εε,exx10..5都是是非法的的标识符符。标识符的长长度一般般不要超超过8个字符符。标识符的选选取最好好有一定定意义,这这样便于于记忆,也也增加了了程序的的可读性性。表达式和运运算符运算符+,--,*,/AND,OOR,NOTT,,,,,,,,,,,,,,,,,,,表达式就是是将数据据和运算算符结合合使用,组组成一组组有意义义的运算算式。在PASCCAL语语言中规规定,表表达式按按下列运运算优先先规则计计算:1、所有括括起来的的子表达达式必须须先计算算,且子子表达式式必须从从里到外外计算;;2、在同一一子表达达式中的的运算符符按下列列次序计计算:①函数;②②NOTT;③ANND,*,/,DIVV,MODD;④ORR,+,-;⑤<,<=,=,>,>=,<>3、在同一一个子表表达式中中,同一一优先级级的运算算按从左左到右的的次序进进行。下面是几个个PASSCALL表达式式的例子子:例L0_0003数学表达式式PASCAAL表达达式b2-4aacb*b-44*a**c(a+b))/(cc+d))(a+b))/c++da*b/((c*dd)或a*bb/c//da2+bxx+c常用的函数数词汇功能abs绝对值sqr平方sqrt开方ord取序号参数为字符符型变量量,结果果为该字字符的序序号(整整型)chr取字符参数为整型型变量,结结果为以以参数为为序号的的字符pred前导字符succ后继字符odd奇函数,判判断是否否为奇数数参数为整型型变量,结结果为布布尔型truncc去掉小数部部分,取取其整数数roundd四舍五入,取取其整数数exp以e为底的的指数ln以e为底的的自然对对数函数的格式式例:开方函函数,在在PASSCALL中可表表示为ssqrtt(2))语句赋值语句(:=)读语句(rreadd,reaadlnn)当实型数据据和字符符型数据据一起读读入时,要要先读字字符型数数据。例如a、bb、c为实型型变量,ch1、ch2、ch3为字符型变量,可以写如下语句:read((ch11,chh2,cch3,,a,bb,c))不能写成::read((a,bb,c,,ch11,chh2,cch3))写语句(wwritte,wriitelln)writee语句是是写语句句(或称称输出语语句)。用用于将计计算结果果通过屏屏幕或打打字机输输出给人人看。例如:writee(suum,aave))将在屏幕或或打字机机上输出出summ和avee的值。它的一般形形式是writee(<输输出表>>)其中输出表表是一些些由逗号号分开的的输出项项。例如如:writee(x,,y,xx+y,,x*yy)若x的值为为2,y的值为为3(整数数类型),则则输出结结果为::23556为了标记输输出结果果,可输输出相应应的字符符串。例例如将上上面的语语句改为为:writee(‘x=’,x,,’y=’,y,,’x+yy=’,x++y,’’x*yy=’,x**y)则输出结果果为:x=2y=33xx+y==5x*yy=6显然,现在在的输出出结果,较较前面清清楚。为了将输出出结果打打印在不不同的行行上,可可以利用用wriitelln语句句。它的的作用是是在印出出输出表表的最后后一个输输出项后后,结束束当前输输出行,使使得下一一个wrritee(或wrriteeln)语语句从下下一个新新行的开开头(左左端)输输出。例例如:writeeln((‘x=’,x,,’y=’,y));writeeln((x+yy=’,x++y,’’x*yy=’,x**y)输出结果为为:x=2y=33x+y=55xx*y==6writee语句可可以输出出实型、整整型、字字符型、布布尔型值值,也可可以输出出字符串串。若在在wriite语语句中不不加场宽宽说明,则则按标准准场宽输输出。在在这里,场场宽是指指输出值值的位数数。数据类型场宽实型以科学表示示法输出出,占116位整型12位字符型1位布尔型输出truue或fallse,分分别占55位和4位当输出值不不满规定定场宽时时,左面面用空格格代替。不不同计算算机系统统的标准准场宽规规定可能能不同。-1.255673341221e+0021132557Affalsse布尔型5位布尔型5位整型12位实型16位字符型字符型1位例L2_22已知三三角形的的两边及及夹角,求求第三边边及面积积。设三角形的的两边及及夹角分分别为aa,b,α,第第三边为为c,面积积为s。则,若α以角度度值输入入,在计计算siin和coss时应转转换为弧弧度。角角度转弧弧度的公公式为::弧度=角度度×PROGRRAMXT22_2;;CONNSTPPI=33.1441599;VARRaa,b,,alffa,cc,s::reaal;BEGGINrreadd(a,,b,aalfaa);aalfaa:=aalfaa*PII/1880;cc:=ssqrtt(a**a+bb*b--2*aa*b**coss(allfa)));ss:=11/2**a*bb*siin(aalfaa);wwritte(aalfaa,c,,s);;ENDD.例L2_33输输入一个个字符,求求其序号号、前导导(即前前一字符符)、后后继(即即后一字字符)。PROGRRAML2__3;VARRcch,ppch,,schh:chhar;;nnum::inttegeer;BEGGINwwrittelnn;wwrittelnn;wwritte(''Pleeaseeinnputtachaaraccterr:'));rreaddln((ch));wwritte(''pchh:',,preed(cch),,',ssch::',ssuccc(chh),'',nuum:'',orrd(cch)))ENDD.例L2_44输入x,y。若在在圆环内内,输出出truue,若若在圆环环外,;;输出ffalsse。圆圆环如图图所示。讨论:如图图所示,若若下式1≤x2++y2≤4成立则在圆圆环内,否否则在圆圆环外。设布尔变量量boool,当当x,y在圆环环内时,让让它取值值为trrue,否否则取值值为faalsee。xxy120“(x,yy)若在在圆环内内”的表表达式::(x2+y2≥12)且(x2+y2≤22)PROGRRAML2__4;VARRxx,y::reaal;bbooll:boooleean;;BEGGINwwrittelnn;wwritte(''x=??');;rreaddln((x);;wwritte(''y=??');;rreaddln((y);;bbooll:=((x*xx+y**y>==1)andd(xx*x++y*yy<=44);wwritte(bbooll);ENDD.习题XT1_11判断下下列标识识符,哪哪些是合合法的??哪些是是非法的的?x3,3xx,a177,p5qq,π,ββ,ε,abcd,x2,ex9.5XT1_22输入三三个数,计计算并输输出它们们的平均均值以及及三个数数的乘积积,写出出程序。XT1_33已知地地球半径径为63371kkm,计计算并输输出地球球的表面面积和体体积,写写出程序序。球表表面积计计算公式式s=44πR2,球体体积计算算公式(其其中R指球半径)。XT1_44已知匀匀加速运运动的初初速度为为10mm/s,加加速度为为2m/ss2,求200s以后后的速度度,200s内走走过的路路程及平平均速度度,写出出程序。设初速度为为v0,加速速度为aa,时间间为t,末速速度为vvt,路程程为s,平均均速度为为vavee,求末末速度公公式:vvt=v0+att,路程程的公式式:,平平均速度度为vavee=XT1_55读入摄摄氏温度度c,将它它转换成成华氏温温度输出出,写出出程序。转转换公式式:XT2_11下列数数据哪些些是整数数?哪些些是实数数?哪些些是非法法的数??256,22.500,1e++06,2.22e5,e100,-7885,e-55,.5,155.,15..0,0.112,0,0.00,25ee,XT2_22确定下下列各常常数、表表达式的的类型和和值,表表达式类类型是指指表达式式值(结结果)的的类型。‘A’,’’3’,3,truue,fallse,12/3,12DIVV3,5>33,5<33,105MMOD10,rouund((17//3,truunc((17//3),sqrt((ordd(‘2’)-oord((‘0’)),sqr(oord((‘2’)-oord((‘0’)),(5>3))ANND((5<33),chrr(677)XT2_33将下列列数学表表达式表表示成PPASCCAL表表达式(1)-((a2+b2)·y4(22)siin2(x++0.55)+33coss(2xx+4))+taan-11x((3)uu0(1++e-00.5tt)(4)((5)(6))(7)((8)||3-eexln((1+xx)|(9))(110)XT2_44写一程程序读入入三角形形的三个个边a,b,c,计算算并打印印三角形形的面积积S。可利利用下列列公式计计算。其中XT2_55按下列列公式计计算和打打印y值rhrh1h2XT2_7图XT2_66输入二二次方程程的系数数a,b,c(输入入数据的的选取应应保证二二次方程程为实根根),计计算并输输出二次次方程的的两个实实根。二二次方程程为:ax2+bbx+cc=0XT2_77求图形的的表面积积与体积积。其中中r,h1,h2的值由由键盘读读入。,,XT2_88输入三三个字符符,然后后按输入入字符次次序输出出这三个个字符,再再输出每每个字符符的序号号,最后后按与输输入字符符相反的的次序输输出这三三个字符符。XT2_99由键盘盘输入两两组x,y值,由由程序根根据它们们是否在在示意图图中的斜斜线区域域内,输输出不同同的值。若若在斜线线区域内内,输出出truue,否否则输出出fallse。XT2_110输入入一个三三位整数数,将它它们反向向输出。例例如输入入1277,输出出应为7721。XT2_111输出出你的中中文(或或英文)名名字。每每个汉字字(或字字母用77行5列字符符描述。例例如王平平输出如如图所示示。xxy22-2-20XT2_9图*********************************************XT2_11图第3课选择结结构程序序设计(22007712224)请参阅《全国信息学奥林匹克联赛培训教程(一)》请参阅《全国信息学奥林匹克联赛培训教程(一)》P1015.3.3选择结构3.1引言通常,计算算机按在在程序中中书写的的顺序执执行语句句。然而而,在许许多情况况下,语语句执行行的顺序序依赖于于输入数数据或中中间运算算结果。在在这种情情况下,必必须根据据某个变变量或表表达式的的值作出出判定,以以决定执执行哪些些语句和和跳过哪哪些语句句不执行行。我们们称这种种程序结结构为选选择结构构(或称称判定结结构)。PASCAAL中有有两个语语句可实实现选择择结构::IF语句句(条件件语句)和和CASSE语句句(情况况语句)3.2IF语语句3.2.11IIF语句句的两种种形式条件语句2语句1假真IF语句又又称如果果语句(或或称条件件语句)。条件语句2语句1假真IF(条条件)THEEN(语语句1)ELSSE(语语句2)其中“条件件”实际际上是一一个布尔尔表达式式,它的的值可以以是真(true)或假(false)。在条件为真时,执行语句1,否则(条件为假)执行语句2。可以利用流流程图来来描述选选择结构构。在流程图中中用菱形形框表示示要执行行的判定定,其余余步骤用用矩形框框表示,箭箭头表示示执行的的顺序。例L3_11火车托运运行李,要要根据行行李的重重量按不不同标准准收费。例例如不超超过500kg,按按每公斤斤0.335元收收费。若若超过550kgg,则其其中500kg按按每公斤斤0.335元收收费,其其余超过过部分按按每公斤斤0.550元收收费。现现输入托托运行李李重量,要要求计算算并输出出托运费费。解:讨论:设托托运行李李重量为为weiightt,该问问题要求求根据wweigght是是否超过过50kkg,按按不同公公式计算算出托运运费。设设托运费费为paay。weiightt和payy均为实实型。下面给出算算法。一级算法1、读入wweigght的的值。2、根据wweigght的的大小选选择不同同的公式式计算ppay。3、输出ppay。其中第2步步需求精精。根据据题意,可可以写出出计算ppay的的公式如如下:weightweight≤50weight>50二级求精weight≤50pay=50×0.35+(weight-50)×0.5weight≤50pay=50×0.35+(weight-50)×0.5pay=weight×0.35假真L3_1图2-1如果weeighht≤502-2则payy=weeighht×0.3352-3否则paay=550×0.335+(weiightt-500)×0..5以上求精步步骤要求求首先判判断weeighht是否否小于等等于500。如果果小于等等于500应执行行算法步步骤2--2,否否则应执执行算法法步骤22-3。即即算法步步骤2--2和2-33不是同同时执行行的,需需根据情情况选择择其一执执行。PROGRRAML3__1;VARRwweigght,,payy:reeal;;BEGGINwwritte(''weiightt='));rreaddln((weiightt);IIFwweigght<<=500THHENpayy:=00.355*weeighhtELLSEpayy:=00.355*500+0..5*((weiightt-500);wwrittelnn('ppay==',ppay))ENDD.除了上面给给出的IIF语句句形式外外,PAASCAAL中还还有另外外一种IIF语句句形式。即即条件语句1假真条件语句1假真THEEN(语语句)在条件为真真时,执执行THHEN后后的语句句。在条条件为假假时,不不执行TTHENN后的语语句,在在两种情情况下的的后继语语句都是是IF语句句的下一一个语句句。例L3_22读入三三个数,找找出并打打印其中中的最大大数。解:PROGRRAML3__2;VARRaa,b,,c:rreall;BEGGINwwritte(''a=??');;rreadd(a));wwritte(''b=??');;rreadd(b));wwritte(''c=??');;rreadd(c));IIFaa<bTHHENa:==b;IIFaa<cTHHENa:==c;wwrittelnn('ZZuiDDaShhu:'',a))ENDD.3.2.22复合语语句在IF语句句中,跟跟在THHEN或或ELSSE后的的语句可可能不止止一个,这这时要用用到复合合语句的的概念。复合语句是是一个以以BEGGIN开开始,以以ENDD结束的的语句。在在BEGGIN与与ENDD之间可可以包括括若干个个语句,每每个语句句之间以以分号分分开。一一般形式式为:BEGINN(语句1);;(语句2);;…(语句n)END一个复合语语句从外外部看来来,相当当于一个个语句。例L3_33读两个个数,将将大数存存于x,小数数存于yy。解:PROGRRAML3__3;VARRxx,y,,temmp:rreall;BEGGINwwritte(''x=??');;rreaddln((x);;wwritte(''y=??');;rreaddln((y);;IIFxx<yTHHENBEGGINttempp:=xx;xx:=yy;yy:=ttemppENDD;wwrittelnn('xx=',,x:88:2,,',yy=',,y:88:2))ENDD.3.2.33复合IFF语句在IF语句句中,TTHENN或ELSSE后的的语句本本身也可可能是IIF语句句。此时时称为IIF语句句的嵌套套(或称称为复合合IF语句句)。条件1条件1语句1假真条件2假真语句2语句3IF(条件件1)THEEN(语语句1)ELSSEIIF(条条件2)TTHENN(语句句2)EELSEE(语句句3)就是一个复复合IFF语句,在在它的EELSEE后又是是一个IIF语句句。例L3_44输入某某学生成成绩,根根据成绩绩的好坏坏输出相相应评语语。如果果成绩在在90分以以上,输输出评语语:优秀秀(ouutsttanddingg);如如果成绩绩在600到90之间间,输出出评语::良好(satisfactory);如果成绩不足60分,输出评语:不及格(unsatisfactory)。有时IF语语句可能能会有两两种不同同的理解解。例如如语句::IF(条条件1)THEENIIF(条条件2)THEEN(语语句1)ELSSE(语语句2)我们可以认认为ELLSE与与后一个个THEEN配对对,其流流程图如如图3__8(11)所示示。但是,我们们也可以以认为EELSEE与前一一个THHEN配配对,其其流程图图如图33_8((2)所所示。条件条件1语句1假真条件2假真语句2图3_8(1)条件条件1语句1假真条件2假真语句2图3_8(2)为了避免产产生不同同的理解解,PAASCAAL系统统规定EELSEE总是与与同一层层前面最最靠近它它的,还还没有EELSEE与之配配对的TTHENN配对。因因此,上上面的语语句肯定定是按第第一种理理解,即即ELSSE与后后一个TTHENN配对。如果要求按按第二种种理解执执行流程程图,可可以通过过在IFF语句中中加BEEGINN、ENDD的办法法来实现现。写成成IF(条件件1)THENBEGGINIF(条件件2)THENN(语句句1)ENNDELSE(语语句2)3.3CASSE语句句CASE语语句是实实现选择择结构程程序设计计的另一一种语句句。它的的使用有有时比IIF语句句来得简简单、直直观。CASE语语句(或或称情况况语句)的的一般形形式是CASE(表达达式)OF(值表1)::(语句句1);(值表2)::(语句句2);……(值表n)::(语句句n)END在CASEE语句头头上的表表达式必必须是有有序类型型(整型型、字符符型、布布尔型以以及后面面要介绍绍的枚举举型、子子界型)。值值表是一一些由逗逗号分开开的常数数。表达达式所有有可能的的值必须须在值表表中出现现,且每每个值只只能出现现一次。如果当前表表达式的的值在某某个值表表i中出现现,则该该程序只只执行对对应该值值表i的语句句,然后后执行整整个CAASE语语句后的的下一语语句。例L3_55输入年年、月,输输出该月月有几天天。讨论:每年年的1、3、5、7、8、10、12月,每每月有331天;;4、6、9、11月,每每月有330天;;2月闰年年有299天,平平年有228天。年号能被44整除,但但不能被被1000整除,或或者年号号能被4400整整除的年年均是闰闰年。用yearr、monnth、dayys分别别表示年年、月、每每月天数数。它们们均为整整数。闰年的条件件可以写写成如下下的布尔尔表达式式:(yearrMOOD44=0)ANDD(yyearrMOOD1100<>0)OR(yeearMODD4000==0))PROGRRAML3__5;VARRyyearr,moonthh,daays::inttegeer;BEGGINwwritte(‘‘yeaar=??’);readlln(yyearr);wwritte(‘‘monnth==?’);readlln(mmontth);;CASEmonnthOF1,33,5,,7,88,100,122:daays::=311;4,66,9,,11::dayy:=330;2::IF((yeaarMMOD4==0))ANND((yeaarMMOD1000<>>0))ORR(yyearrMOOD4400=00)TTHENNdaays::=299EELSEEdaays::=288ENDD;wriitelln(‘‘yeaar=’’,yeear,,’,moonthh=’,moonthh,’,daays==’dayys)ENND.例L3_66输入两两个运算算量及一一个运算算符,输输出运算算结果。这这相当于于计算器器计算。讨论:设两两个运算算量为xx和y,一个个运算符符为opper,运运算结果果为reesullt。现在假定运运算符只只可能是是+、-、*、/,将opper说说明为字字符型。x、y和result说明为实型。习题XT3_11编制程程序,根根据输入入的x值,计计算y与z并输出出。PROGRAMXT3_1;PROGRAMXT3_1;CONSTPI=3.14159;VARx,y,z:real;BEGINwrite('x=?');read(x);IFx<=2.5THENy:=x*x+1ELSEy:=x*x-1;IFx<0THENz:=-PI/2*x+3ELSEIFx=0THENz:=0ELSEz:=PI/2*x-5;writeln('x=',x:6:2,',y=',y:6:2,',z=',z:6:2)END.XT3_22对一批批货物征征收税金金,价格格在1万元以以上的货货物征税税5%,在在50000元以以上,11万元以以下的货货物征税税3%,在在10000元以以上,550000元以下下的货物物征税22%,10000元以以下的货货物免税税。编写写一程序序,读入入货物价价格,计计算并输输出税金金。XT3_33输入某某学生成成绩,若若成绩在在85分以以上,输输出veerygoood,若若成绩在在60分到到85分之之间,输输出goood,若若成绩低低于600分,输输出noogoood。XT3_44输入3个数,将将其中最最小数输输出。XT3_55输入3个字母母,按字字母表顺顺序从小小到大输输出这33个字母母。XT3_66输入二二次方程程的3个系数数a、b、c,计算算二次方方程的根根。程序序应考虑虑实根和和复根两两种情形形。二次次方程如如下:ax2+bbx+cc=0z=lnx+lnysinx+sinye2x+e3xtan(x+y)Ⅰ象限Ⅱ象限Ⅲ象限Ⅳ象限提示:PAASCAAL不能能表示复复数。若若为复根根,应分分别计算算并输出出实、虚虚部,在在输出时z=lnx+lnysinx+sinye2x+e3xtan(x+y)Ⅰ象限Ⅱ象限Ⅲ象限Ⅳ象限XT3_77输入x、y,根据据所处象象限,用用相应公公式计算算z。XT3_88输入x、y及象限限,计算算z。z的计算算公式同同XT33_7题题,要求求用CAASE语语句编程程序。XT3_99输入班班号,输输入该班班学生人人数。应应用CAASE语语句编程程序。班号919293949596人数303230303225阅读学习《全全国信息息奥林匹匹克联赛赛培训教教程(一一)》(信信息学奥奥林匹克克科学委委员会主主编,清清华大学学出版社社)及网网上教案案,阅读读要求见见下表::阅读内容页码要求5.2Passcall程序的的一般结结构和输输入输出出语句《全国信息息奥林匹匹克联赛赛培训教教程(一一)》PP94全看5.3.22顺序结结构《全国信息息奥林匹匹克联赛赛培训教教程(一一)》PP1000全看5.3.22选择结结构《全国信息息奥林匹匹克联赛赛培训教教程(一一)》PP1011看1、条件件选择结结构P1101至至P10045.4.11运算对对象的显显式定义义《全国信息息奥林匹匹克联赛赛培训教教程(一一)》PP1166全看5.4.22表达式式《全国信息息奥林匹匹克联赛赛培训教教程(一一)》PP1200全看5.4.33PPasccal的的简单类类型《全国信息息奥林匹匹克联赛赛培训教教程(一一)》PP1211看1、整型型;2、布尔类类型;44、字符符类型;;6、实数数类型CHH信息息学奥赛赛培训教教案(2000711127)http::////TuooZhaan/NNOI//kwttz_NNOIPP.httm全看阅读后完成成下面题题目1、Passcall程序可可以分为为三个部部分,请请将这三三个部分分的名称称填入下下面括号号中PROGRAMcircle(input,output);PROGRAMcircle(input,output);CONSTPI=3.14159;VARr,l,s:real;BEGINread(r);l:=2*PI*r;s:=PI*r*r;write(r,l,s);END.()()()2、完成下下面有关关数据类类型的表表数据类型类型标识符符举2个例子子实型integger字符型booleean3、请将下下列实型型数据用用另一种种表示法法表示小数表示法法科学表示法法小数表示法法科学表示法法例:12..51.25ee+11e+2132.667-3.055e+110.00225-2.5009e--4-1.5665.2011e-225982..373.8e++20.843.7e--3-0.000713.05ee04、在Paascaal中,有六个算术术运算符符,它们们是_____________________________________________________。有六个关系系运算符符,它们们是_____________________________________________________。有三个逻辑辑运算符符,它们们是_____________________________________________________。5、在Paascaal中,各各种运算算符的运运算优先先规则如如下,请请在下面面直线上上画一个个箭头表表示运算算优先级级由低到到高并在在直线上上面的括括号内填填入优先先级的高高低。优先级(优先级()括号()函数NOTAND*/DIVMODOR+-<<==>=><>优先级()6、填出下下面Paascaal词汇汇所属类类别(在在“语句句、函数数、运算算符、数数据类型型、符号号”中选选择其一一)序号词汇类别功能序号词汇类别功能1:=30sqr平方2abs绝对值31sqrt开方3AND逻辑运算符符“与”32succ后继字符4BEGINN分程序开始始33THEN条件语句IIF…TTHENN…ELLSE的的一部分分5booleean34TOFOR循环环语句的的一部分分6CASE分支结构语语句35truncc去掉小数部部分,取取其整数数7char36VAR说明变量8chr取字符37WHILEE循环语句WWHILLE9CONSTT定义常量38sin10DIV整数商39cos11DOWHILEEDOO语句的的一部分分40arctaan12ELSE条件语句IIF…TTHENN…ELLSE的的一部分分41+13END结束分程序序42-14exp以e为底的的指数43*15FORFOR循环环语句44/16GOTO45<17IFIF条件语语句46<=18integger47=19ln以e为底的的自然对对数48>=20MOD取余,整除除后的余余数49>21NOT逻辑运算符符“非”50<>22odd奇函数,判判断是否否为奇数数51writee23OF分支结构语语句CAASE……OF的的一部分分52writeeln24OR逻辑运算符符“或”53read25ord取序号54readlln26pred前导字符55:27PROGRRAM程序首部56'28real57;29roundd四舍五入,取取其整数数2、在第11题例中中,语句句wriite与与wriitelln有何何不同________________________。3、在第11题例中中,哪些些词属于于保留字字________________________。5、将下列列代数式式写成PPasccal的的表达式式(1)4××[(13--4)÷÷6](2)a-((m-dd)×4÷b+33y=AA2(3)(44)6、下列符符号中,能能作标识识符的是是:AI,WWangg,44D4gg,IIF,MAXX,AABS,,PII,SSIN,,ABBS_11,BBegiin7、写出以以下表达达式的值值及类型型(1)100/2++2重复控制结结构(循循环结构构)循环结构(或或称重复复结构)是是程序中中的一个个基本结结构,在在解许多多问题中中是很有有用的。我我们知道道,在许许多复杂杂的问题题中,常常常需要要做大量量类同的的计算处处理。尽尽管计算算机的运运算速度度很快,然然而要把把这些大大量类同同的计算算处理的的每一步步都写成成语句,并并输入计计算机中中,其工工作量是是相当大大的。有有时是难难以完成成的。循环结构程程序设计计可以帮帮助我们们有效地地解决这这一难题题。利用用循环结结构程序序设计,使使得我们们有可能能只编写写少量的的语句,让让计算机机重复执执行它许许多次,从从而完成成大量类类同的计计算要求求。在PASCCAL中中,实现现循环程程序设计计的主要要语句有有FORR语句、WWHILLE语句句和REEPEAAT语句句。一、FORR语句FORxx:=<初值值>TTO<<终值>DO<语句句>FORX:==1TOO110DOFORX:==10DOOWNTTO1DOFORX:==‘A’TTO‘Z’DDOFORX:==’Z’DDOWNNTO‘A’DDOs=0当n=1s=s+n=0+1=1;当n=2s=s+n=1+2=3当n=3s=s+n=3+3=6当n=4s=s+n=6+4=10当n=5s=s+n=10+5=15当n=6s=s+n=15+6=21当n=7s=s+n=21+7=28当n=8s=s+n=28+8=36当s=0当n=1s=s+n=0+1=1;当n=2s=s+n=1+2=3当n=3s=s+n=3+3=6当n=4s=s+n=6+4=10当n=5s=s+n=10+5=15当n=6s=s+n=15+6=21当n=7s=s+n=21+7=28当n=8s=s+n=28+8=36当n=9s=s+n=36+9=45当n=10s=s+n=45+10=55PROGRRAMT755_0001;VARRss,n::inttegeer;BEGGINs:=0;;FFORn:==1TTO110DDOs::=s++n;writeeln((‘s=’,s))ENDD.T75_0012计算n!!(n!==1×2×3×…×n)T75_0013输入100个任意意整数,求求它们的的和PROGRRAMT755_0001;VARRss,n,,a:iinteegerr;BEGGINss:=00;FFORn:==1TTO110DDOBEEGINNreaad(aa);s:==s+aa;ENND;wwrittelnn(‘s=’,s))ENDD.T75_0014输入入10个任任意整数数,求它它们的平平均值T75_0015按正正序和反反序输出出26个英英文字母母T75_0016输入入20个整整数,输输出其中中最大数数T75_0017输入200个整数,统统计其中中正、负负和零的的个数T75_0001,,T755_0112~TT75__0177共七题题的答案案:PROGRAMT75_012;VARPROGRAMT75_012;VARn,i,sum:integer;BEGINread(n);sum:=1;FORi:=1TOnDOsum:=sum*i;writeln('n!=',sum);END.PROGRAMT75_001;VARs,n:integer;BEGINs:=0;FORn:=1TO10DOs:=s+n;writeln('s=',s)END.PROGRAMT75_014;PROGRAMT75_014;VARave:real;i,n,sum:integer;BEGINsum:=0;FORi:=1TO10DOBEGINread(n);sum:=sum+n;END;ave:=sum/10;writeln('ave=',ave:6:2)END.PROGRAMT75_013;PROGRAMT75_013;VARs,n,a:integer;BEGINs:=0;FORn:=1TO10DOBEGINread(a);s:=s+a;END;writeln('s=',s)END.PROGRAMT75_015;PROGRAMT75_015;VARi:integer;BEGINwriteln();FORi:=1TO26DOwrite(chr(96+i));writeln();FORi:=122DOWNTO97DOwrite(chr(i))END.PROGRAMT75_016;PROGRAMT75_016;VARmaximal,i,n:integer;BEGINread(maximal);FORi:=1TO19DOBEGINread(n);IFmaximal<nTHENmaximal:=n;END;writeln('max=',maximal)END.PROGRAMT75_017;PROGRAMT75_017;VARi,n,Zheng,Fu,Ling:integer;BEGINZheng:=0;Fu:=0;Ling:=0;FORi:=1TO20DOBEGINread(n);IFn>0THENZheng:=Zheng+1ELSEIFn=0THENLing:=Ling+1ELSEFu:=Fu+1;END;{FOR}writeln('ZhengShuYou:',Zheng,';FuShuYou:',Fu,';LingYou:',Ling)END.二、WHIILE语语句当循环次数数未知,例例如它依依赖于某某个布尔尔表达式式的值,而而此值在在循环执执行过程程中会改改变。这这种循环环不可能能由FOOR语句句实现,PASCAL为此提供了WHILE语句和REPEAT语句。WHILEE语句的的一般形形式:WHILEE<<布尔表表达式>>DDO<循环体>>T75_0002输输入一串串字符,以以‘?’’结束,输输出其中中字母个个数与数数字个数数。执行该语句句时,首首先检查查布尔表表达式的的值,如如果它为为真,则则执行循循环体。在在循环体体中通常常包括改改变布尔尔表达式式值的语语句。每每次执行行循环体体后,再再次检查查布尔表表达式,如如果它仍仍为真,继继续执行行循环体体,否则则循环结结束,执执行WHHILEE语句后后的下一一语句。当当一开始始布尔表表达式就就为假时时,循环环体根本本不执行行。在WHILLE语句句中一定定要有能能改变布布尔表达达式值的的语句,否否则循环环将不会会结束。三、REPPEATT语句REPEAAT语句句也用于于循环次次数未知知的循环环,它的的用法与与WHIILE语语句稍有有不同。REPEAAT语句句的一般般形式如如下:REPEAAT<循环体>>UNTILL<<布尔表表达式>>T75_0003计算算直到最最后一项项的绝对对值小于于10-77时停止止计算,x由键盘输入。sin(xx)本来来可以利利用系统统提供的的标准函函数直接接写出。但但是标准准函数是是如何计计算siin(xx)的呢呢?通过过这个例例子,将将使我们们对此有有所了解解,并可可作为使使用REEPEAAT语句句的例子子。T43_0004以以下三种种IF的写法都都是错误误的,请请指出错错在哪里里。…ch:chhar;;…read((ch));IF(cch>==a)ANDD(cch<==z)…IFchh>=’’a’ANNDcch<==’z’…IF‘aa’<=cch<==’z’…三种循环语语句的相相同点与与不同点点FORWHILEEREPEAAT语句格式FOR<<循环变变量>:=<初值值>TTO<<终值>DO<语句句>WHILEE<<布尔表表达式>>DDO<循环体>>REPEAAT<循环体>>UNTILL<<布尔表表达式>>循环变量赋值布尔表达式式无循环变量量循环次数确定,由初初值和终终值决定定不确定,由由循环体体前的布布尔表达达式决定定,当值值为“假假”时,结结束循环环。可能一次循循环也没没有不确定,由由循环体体后的布布尔表达达式决定定,当值值为“真真”时结结束循环环。至少有一次次循环循环体多语句时,需需用BEEGINN和END多语句时,需需用BEEGINN和ENDD多语句时,不不需用BBEGIIN和ENDD用计算机解解题的基基本方法法1、问题分分析计算机是用用于表示示和处理理数据的的工具。因因此解题题的前两两个任务务:一是是定义在在计算机机存储器器中表示示的数据据;二是是描述算算法———列出处处理这些些数据的的步骤。这这两个任任务不是是完全无无关的。当当描述算算法时,可可以改变变数据定定义。然然而在构构造算法法前,应应尽可能能完全和和仔细地地招待数数据定义义。如果果数据定定义有错错,描述述算法是是困难的的,甚至至是不可可能的。定义数据要要求清楚楚地了解解问题。首首先必须须确定由由计算机机计算和和打印的的信息,然然后标识识输入给给计算机机的信息息。一旦旦标识了了输入输输出,我我们要问问,为了了从给定定的输入入计算输输出,是是否有足足够的信信息可利利用?如如果没有有,必须须确定附附加的信信息,以以及提供供这些信信息的手手段。当标识与问问题有关关的数据据项时,要要为每一一项赋一一个助忆忆名。它它可以用用来代表表存储数数据项的的计算机机存储单单元,而而不必考考虑与每每个变量量名相联联系的实实际存储储单元。编编译程序序将为每每个变量量名赋一一个唯一一的存储储单元。2、问题解解的描述述在对问题有有了清楚楚的分析析后,可可以仔细细地构造造求解步步骤———算法。算算法可以以自顶向向下、由由粗到细细,逐步步求精。描述问题由由粗到细细的过程程,一般般可以分分为三步步:一级算法二级求精写出程序四、多重循循环如果一个循循环结构构的内部部(循环环体)又又包括一一个循环环结构,就就称为多多重循环环结构。实实现多重重循环结结构仍可可以用前前面讲的的三种循循环语句句。因为为任一循循环语句句的循环环体部分分都可以以包含另另一个循循环语句句,这种种循环语语句的嵌嵌套为实实现多重重循环提提供了方方便。多重循环的的嵌套次次数可以以是任意意的。可可以按照照嵌套层层次数,分分别叫做做二重循循环、三三重循环环等。处处于内部部的循环环叫作内内循环,处处于外部部的循环环叫作外外循环。在设计多重重循环时时,要特特别注意意内、外外循环之之间的关关系,以以及各语语句安放放的位置置,不要要搞错。T75_0007求1~1100之之间的素素数(质数)..素数是大于于1,且除除了1和它本本身外,不不能被其其它任何何整数所所整除的的整数。讨论:根据据素数的的定义可可知2、3、55、7、11、13、17等是是素数。1、4、66、8、9、10、12、14、15等不不是素数数。为了判断某某数i是否为为素数,一一个最简简单的办办法是用用2、3、4、5、……、i-11这些数数逐个去去除i,看能能否除尽尽。若被被其中一一个数除除尽了,则则i不是素素数,否否则(全全都除不不尽)ii是素数数。当i较大时时,用这这种办法法,除的的次数太太多。可可以有许许多改进进办法,以以减少除除的次数数,提高高运行效效率。下下面介绍绍的是其其中一种种办法。用2、3、4、……去除除,如果果都除不不尽,则则i是素数数。这是因为,如如果小于于等于的的数都除除不尽ii,则大大于的数也也不能除除尽i。用反证法证证明:假假设有大大于的数数j能除尽尽i,则它它的商kk必小于于,且k能除尽尽i(其商商为j)。这这是与原原命题(小小于等于于的数都都除不尽尽i)相矛矛盾的,假设不成立,原命题得到证明。一级算法::FORii:=22TOO1000DDOBEGGIN11、用2到去除i,看看看能否除除尽22、IF除不尽尽THHEN输出素素数iENDD算法需进一一步求精精。用变变量ynn来表示示是否除除尽。一开始让yyn=11,当有一一个数能能除尽时时,让yyn=00表示能能除尽,这这时i不是素素数;若若循环结结束时,yn仍等于1,表示都除不尽,这时i是素数。二级求精11、用2到去除i,看看看能否除除尽11-1ynn:=1111-2WHHILEEn<<sqrrt(ii)DDOBBEGIINn::=n++1IFFiMODDn==0THEENyyn:==0EEND为了每行输输出5个数,还还需增加加一个变变量coountter来来计数。PROGRRAMT755_0007;VARRii,n,,yn,,couunteer:iinteegerr;BEGGINwwrittelnn;ccounnterr:=00;FFORi:==2TTO1100DOBEEGINNn:==1;yn::=1;;WHIILEn<ssqrtt(i))DOOBBEGIINn::=n++1;IFFiMODDn==0THEENyyn:==0;EEND;;{WHHILEE}IFyn<<>0TTHENNBEEGINNcouunteer:==couunteer+11;IFcouunteerMMOD5=00TTHENNwrriteeln((i)EELSEEwrritee(i,,',,'));ENND;{{IF}}ENND;{{FORR}ENDD.T75_0008哥德巴巴赫猜想想验证哥德巴巴赫猜想想(任何何充分大大的偶数数都可由由两个素素数之和和表示)。将将4~22*s(s≤10000)中中的所有有偶数分分别用两两个素数数之和表表示。例例如s==50,则则输出4=2+226=3+338=3+55……100=33+977讨论:哥德德巴赫猜猜想是一一个古老老而著名名的数学学难题。它它的理论论证明很很麻烦,迄迄今未得得出最后后的证明明。在这这方面中中国数学学家陈景景润的研研究成果果处于世世界领先先地位。在陈景润以以前的数数学家只只证明出出:对任任一充分分大的偶偶数evven,可可以找到到4个素数数p、q、r、s。使得得even==p+qq*r**s这也称为11+3问问题陈景润证明明出:对对任一充充分大的的偶数eevenn,可以以找到33个素数数p、q、r。使得得even==p+qq*r这也称为11+2问问题。而真正的哥哥德巴赫赫猜想是是:对任任一充分分大的偶偶数evven,可可以找到到两个素素数p、q。使得得even==p+qq即1+1问问题。此此问题还还未得到到最后的的证明。我们这里只只是对有有限范围围内的数数,用计计算机加加以验证证,不算算严格证证明。读入偶数eevenn,将它它分成pp和q,使evven==p+qq。p从2开始始(每次次加1),q==eveen-pp。如果果p、q均为素素数,则则输出结结果,否否则将pp加1再试。一级算法::1、读入一一个数eevenn;2、判断eevenn是否为为偶数,如如果是偶偶数,则则继续,否否则结束束程序;;3、FORRp:=22TOOtrruncc(evven//2)3-1qq:=eevenn-p3-2判判断p是否为为素数(pyn:=1表示p为素数,pyn:=0表示p不是素数)3-3判判断q是否为为素数(qyn:=1表示q为素数,qyn:=0表示q不是素数)3-4IFFpyn==1AANDqynn=1TTHENNwrriteeln(eveen,’=’,p,,’+’,q)二级求精::1、reaad(eevenn)2、IFeveenMMOD2=00THEN第3步3-2、nn:=22WHILEEn<sqqrt((p)DDOBBEGIINn:=n++1;IFFpMOODnn=0THEENppyn::=0;;EEND;;3-3、nn:=22WHILEEn<sqqrt((q)DDOBBEGIINn:=n++1;IFFqMOODnn=0THEENqqyn::=0;;EEND;;PROGRRAMT755_0008;VARReevenn,p,,q,nn,pyyn,qqyn::inttegeer;BEGGINwwritte(''Pleeaseeinnputtaeveen:'');rreadd(evven));IIFeevennMOOD22=0THHENBEGGINFFORp:==2TTOttrunnc(eevenn/2))DOOBEEGINNq:==eveen-pp;n:==1;pynn:=11;qynn:=11;WHIILEn<ssqrtt(p))DOOBBEGIINn::=n++1;IFFpMODDn==0THEENppyn::=0;;EEND;;{WHHILEE-1}}n:==1;WH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论