网站大量收购独家精品文档,联系QQ:2885784924

模拟题解题参考.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息学奥赛复赛模拟题解题参考 第一题 交通流量测试(traffic) 1 第二题 走楼梯(strair) 5 第三题 津津的储蓄计划(save) 6 第四题 合唱队形 (chorus) 9 第五题 均分纸牌(card) 10 第一题 交通流量测试(traffic) 【问题描述】 为调查统计车辆流量,在路边设置了一台车辆探测器。探测信号用线路连接到计算机。凡有一辆车通过时,探测器自动传送一个数字信号1给计算机;探测器中有个时钟,统计开始时,启动时钟,此后每一秒钟自动传送一个数字信号2给计算机;统计结束时,探测器向计算机发送一个数字为0的终止信号。编写一个程序,以处理探测器送来的这一系列信息,并输出下列结果: (1)进行了多长时间的调查统计; (2)记录到的车辆总数; (3)在车辆之间最长的时间间隔是多少。 【输入文件】 输入文件traffic.in包括一行整数(有且仅有最后一个整数为0),分别表示探测器发送给计算机的数字信号。 【输出文件】 输出文件traffic.out包括三行,每行一个整数,分别表示调查统计的时间、记录到的车辆总数以及车辆间的最长时间间隔。 【样例输入】 1 1 2 2 1 1 1 1 2 1 2 2 2 2 2 1 1 1 1 1 2 0 【样例输出】 9 12 5 [解]这些结果,要等到探测结束时才能统计完成。在程序中要使用到如下变量: 过往车辆数,以标识符unms表示; 时间以seconds表示; 时间间隔以inter表示; 最长时间间隔以longest表示; 探测器信号以sig表示,分别为:1 车辆信号、2 计时信号、0 结束统计信号。 现在,我们开始学习用伪代码描述程序的开发过程。解决所提问题的程序设计过程,可表示如下: 第一步 把任务写成一个“总语句”: program begin 用车辆探测器统计车辆流量 end. 第二步 把任务分解为几个子任务(功能块): program begin 对有关变量赋以初值,准备开始统计; 当送来的信号不是结束信号时,反复处理探测器送来的信号; 输出统计结果。 end. 第三步 进一步细化各个子任务: program begin 若干个赋初值的赋值语句和读语句 while送来信号不是结束信号时 do begin if是车辆信号 then处理车辆信号 else if是计时信号 then处理计时信号; 送下一个信号 end; 输出统计结果的若干写语句。 end. 第四步 到目前这一步,赋初值与输出统计结果这两个子目标,已完全可以具体到 用语句描述了,但while语句的循环体,尚须进一步细化到用语句描述。 program begin 若干赋初值的赋值语句和读语句 {变量初始化} while sig0 do begin if sig=1 then begin 车辆数nums的值增1; if interlongest then inter的值取代longest的当前值; inter置零; end else if sig=2 then begin seconds的值增1,inter的值增1; 送下一个信号; end end; 输出统计结果的若干写语句; end. 第五步 最终程序 program traffic; { 过往车辆数,以标识符unms表示; 时间以seconds表示; 时间间隔以inter表示; 最长时间间隔以longest表示; 探测器信号以sig表示,取值分别为:1 车辆信号、2 计时信号、0 结束统计信号。 } var unms,secondS,inter,longest,sig:integer; f1,f2:text; begin assign(f1,traffic.in); assign(f2,traffic.out); reset(f1); rewrite(f2); unms:=0; secondS:=0; inter:=0; longest:=0; read(f1,sig); while sig0 do begin if sig=1 then begin unms:=unms+1; if inte

文档评论(0)

tdqm803 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档