当前位置: 高中信息技术 / 综合题
  • 1. (2023高三上·浙江月考) 某医院的团体体检流程如下:

    编号登记:为n位体检者设置体检编号1~n。

    体检呼叫:体检项目处空闲时呼叫下一个体检者(编号小的优先),若多个项目同时呼叫,体 检者到优先级小的项目处体检。仅考虑常规体检项目,各个项目的优先级及体检时间如表1所示:

    前去体检:各个体检项目之间相互独立,互不影响;病人排队体检和体检完毕到下一科室之 间没有时间延迟。

    1. (1) 某日下午,仅1个团队4人(分别用编号1,2,3,4表示)参加体检 ,开始体检后第5分钟,4在检查 (填写项目名称)项目。
    2. (2) 定义如下lst(n)函数,生成n人体检队列 。若体检人数为4人,则 que生成结果如表2所示。

      deflst(n):

          que=[]

         

              que.append(temp)

          return que

      若加框处语句改为:

      则执行语句lst(4),que的生成结果 (选填:是/否)相同。

    3. (3) 用 python程序模拟一个10人团队参加体检的流程。程序运行后,体检完成顺序如图1所示:

      Python部分程序如下 , 请在划线处填入合适的代码。

      n=10

      head=0

      que=lst(n)

      tail=10

      dis=[['B超', 12],[ '心电图' , 5],['抽血', 2],['尿常规' , 2],['C14检测', 2],['胸透' , 2], ['一般常规(身高体重血压)', 1]]

      t=[-1]*7         #t记录各个项目当前体检的开始时间

      f=[-1]*7         #f记录各个项目当前体检人员编号

      def jh(num):

          global tail            #global能够实现在自定义函数中改变公共变量tail

          p=head

          while p<tail:

              if que[p][0]not in fand num not in que[p][1]:  #p体检者等待中且未体检num项目

                  que[p][1].append(num)

                 

                  t[num]=time

                  if len(que[p][1])==7:

                      temp=que[p]

                          for i in range(p , tail-1):

                              que[i]=que[i+1]

                          que[tail-1]=temp

                          tail-=1

                      break

              p=p+1

      time=0

      while tail! =head:

          i=0

          while i<7:

              if t[i]==-1:

                  jh(i)

              elif  :

                  t[i]=-1

                  f[i]=-1

                  i-=1

              i+=1

          time+=1

      print('体检完成顺序:')

      for i in range(  ):       #按体检完成顺序输出体检者及其的体检项目顺序

          item= que[i][1]

          s= '  '

          for j in item:

              s+=dis[j][0]+'→'

          print('编号%d:%s'%(que[i][0], s[:-1]))

微信扫码预览、分享更方便