目录

  • 1 从这里开始你的学习
    • 1.1 欢迎词
    • 1.2 单元学习目标
    • 1.3 课程学习说明
      • 1.3.1 课程概述与内容
      • 1.3.2 学习目标
      • 1.3.3 学习安排
      • 1.3.4 学习活动
      • 1.3.5 考核标准
      • 1.3.6 学习准则
    • 1.4 先修知识与必备技能
      • 1.4.1 学习平台使用及技术支持
      • 1.4.2 必备基础要求
      • 1.4.3 学习资源使用指南
      • 1.4.4 教材电子版下载
      • 1.4.5 相关软件下载与安装方法
      • 1.4.6 答疑安排与教师课表
      • 1.4.7 作业和考试反馈
    • 1.5 FAQ:常见问题解答
    • 1.6 教师自我介绍和学生自我介绍
    • 1.7 计算思维能力调查
    • 1.8 学习风格调查
    • 1.9 交流协作分组情况
    • 1.10 第0讲 单元测试
  • 2 计算思维概述——第1周
    • 2.1 单元学习目标
    • 2.2 本章课件下载
    • 2.3 课程思政
      • 2.3.1 线上思政(自主学习)
      • 2.3.2 线下课程思政
    • 2.4 计算无所不在
    • 2.5 计算思维概述
    • 2.6 计算工具与计算机
    • 2.7 第1讲 单元测试
    • 2.8 上机实验1-1:计算思维概述——系统自动评阅
    • 2.9 延伸学习
  • 3 计算基础——第2~3周
    • 3.1 单元学习目标
    • 3.2 本章课件下载
    • 3.3 课程思政
      • 3.3.1 线上课程思政(自主学习)
      • 3.3.2 线下课程思政
    • 3.4 初识二进制
    • 3.5 二进制的运算(自主学习)
    • 3.6 数制转换
    • 3.7 数的表示
    • 3.8 字符编码
    • 3.9 声音图像编码(自主学习)
    • 3.10 第2讲 单元测试
    • 3.11 上机实验2-1:进制转换——系统自动评阅
    • 3.12 延伸学习
  • 4 计算平台——第4周
    • 4.1 单元学习目标
    • 4.2 本章课件下载
    • 4.3 课程思政
      • 4.3.1 线上课程思政(自主学习)
      • 4.3.2 线下课程思政
    • 4.4 计算机系统
    • 4.5 硬件之主板(自主学习)
    • 4.6 硬件之接口与总线(自主学习)
    • 4.7 硬件之CPU(自主学习)
    • 4.8 硬件之内存(自主学习)
    • 4.9 硬件之外存(自主学习)
    • 4.10 硬件之输入输出设备(自主学习)
    • 4.11 计算机基本工作原理
    • 4.12 操作系统之处理机功能
    • 4.13 操作系统之其他功能
    • 4.14 第3讲 单元测试
    • 4.15 上机实验3-1:计算机硬件系统——系统自动评阅
    • 4.16 延伸学习
  • 5 问题求解——第5~7周
    • 5.1 单元学习目标
    • 5.2 本章课件下载
    • 5.3 课程导图与设计
    • 5.4 典型课例(课堂实录)
    • 5.5 线上思政(自主学习)
    • 5.6 线下思政
    • 5.7 纸版教材在线阅读
    • 5.8 什么是问题求解?
    • 5.9 算法与算法描述
    • 5.10 顺序结构
    • 5.11 选择结构
    • 5.12 循环结构
    • 5.13 算法策略基础之数组
    • 5.14 算法策略基础之函数
    • 5.15 算法策略之枚举法
    • 5.16 算法策略之递归法
    • 5.17 算法策略之递推法
    • 5.18 算法策略之迭代法
    • 5.19 算法策略之分治法(自主学习)
    • 5.20 算法策略之动态规划(自主学习)
    • 5.21 算法策略之贪心算法(自主学习)
    • 5.22 算法策略之回溯法(自主学习)
    • 5.23 算法策略之查找
    • 5.24 算法策略之排序
    • 5.25 实验4-1:Raptor 软件基本操作(教师手工评阅)
    • 5.26 实验4-2:算法设计与分析(生生互评)
    • 5.27 实验4-3:问题求解(自主学习)
    • 5.28 实验7-1:解题报告
    • 5.29 实验7-2:解题报告
    • 5.30 实验7-3:解题报告(自主学习)
    • 5.31 第7讲 单元测试
    • 5.32 延伸学习
  • 6 网络技术与信息共享——第8周
    • 6.1 单元学习目标
    • 6.2 本章课件下载
    • 6.3 课程思政
      • 6.3.1 线上思政(自主学习)
      • 6.3.2 线下思政
    • 6.4 初识网络
    • 6.5 网络分类(自主学习)
    • 6.6 网络体系结构
    • 6.7 网络设备(自主学习)
    • 6.8 局域网的搭建(自主学习)
    • 6.9 IP与域名系统
    • 6.10 划分子网
    • 6.11 Internet 服务(自主学习)
    • 6.12 数字公民与网络安全(自主学习)
    • 6.13 组网实例(自主学习)
    • 6.14 第4讲 单元测试
    • 6.15 上机实验4(PBL):网络互联训练——生生互评
      • 6.15.1 思科网络实验室1:网络布线
      • 6.15.2 思科网络实验室2:将计算机添加到现有网络
      • 6.15.3 思科网络实验室3:连接无线路由器
      • 6.15.4 思科网络实验室4:测试无线连接
    • 6.16 延伸学习
  • 7 数据库技术与数据管理——第9-10周
    • 7.1 单元学习目标
    • 7.2 本章课件下载
    • 7.3 课程思政
      • 7.3.1 线上思政(自主学习)
      • 7.3.2 线下思政
    • 7.4 数据库基本概念(自主学习)
    • 7.5 数据库的设计方法
    • 7.6 数据库的规范化设计1
    • 7.7 数据库的规范化设计2
    • 7.8 Access数据库的创建与查询(自主学习)
    • 7.9 关系代数理论
    • 7.10 SQL语句编程(自主学习)
    • 7.11 实验5-1:数据库设计——互评作业
    • 7.12 实验5-2:窗体与报表——互评作业
    • 7.13 第5讲 单元测试
    • 7.14 延伸学习
  • 8 逻辑思维——第10-11周
    • 8.1 单元学习目标
    • 8.2 本章课件下载
    • 8.3 课程导图与设计
    • 8.4 典型课例(课堂实录)
    • 8.5 线上思政(自主学习)
    • 8.6 线下思政
    • 8.7 实验6-1:逻辑推理(PBL个人项目——教师手工评阅)
    • 8.8 前6章思维导图训练(PBL小组项目——互评)
    • 8.9 纸版教材在线阅读
    • 8.10 逻辑思维及其训练方法(自主学习)
    • 8.11 命题与命题判断
    • 8.12 命题符号化
    • 8.13 布尔代数与真值表
    • 8.14 命题演算与逻辑推理
    • 8.15 习题课
    • 8.16 实验6-1:解题报告
    • 8.17 第6讲 单元测试
    • 8.18 延伸学习
  • 9 数据分析与数据挖掘——第11~12周
    • 9.1 单元学习目标
    • 9.2 本章课件下载
    • 9.3 课程导图与设计
    • 9.4 课程思政
    • 9.5 线上思政(自主学习)
    • 9.6 线下思政
    • 9.7 上机实验8-1:数据分析(PBL个人项目——系统自动评阅)
    • 9.8 上机实验8-2:数据挖掘(自主学习)
    • 9.9 纸版教材在线阅读
    • 9.10 数据挖掘概述(自主学习)
    • 9.11 数据采集(自主学习)
    • 9.12 数据探索之数据质量分析
    • 9.13 数据探索之数据特征分析
    • 9.14 数据特征分析之分布分析
    • 9.15 数据特征分析之集中统计分析
    • 9.16 数据特征分析之离散统计分析
    • 9.17 数据预处理
    • 9.18 分类
    • 9.19 预测
    • 9.20 聚类分析(自主学习)
    • 9.21 关联规则(自主学习)
    • 9.22 第8讲 单元测试
    • 9.23 延伸学习
  • 10 课程思政案例篇
    • 10.1 课程思政案例
  • 11 特色思维训练库
    • 11.1 数学思维(50篇)
    • 11.2 逻辑思维(50篇)
    • 11.3 AI智能思维(50篇)
    • 11.4 专业思维(50篇)
  • 12 游戏编程案例篇
    • 12.1 编程游戏关卡(30篇)
    • 12.2 编程游戏制作(10关)
  • 13 大工程思训项目库
    • 13.1 综合性案例——北京冬奥会智能餐厅设计
    • 13.2 综合性案例——北京冬奥会运动员密码设置
    • 13.3 综合性案例——北京冬奥电脑装配
    • 13.4 综合性案例——北京冬奥网络安全培训
    • 13.5 综合性案例——北京冬奥会商品销售数据库系统设计
    • 13.6 综合性案例——北京冬奥金牌榜预测
    • 13.7 综合性案例——北京冬奥会奖牌榜自动更新算法设计
    • 13.8 综合性案例——北京冬奥会线上销售大数据分析
  • 14 考试专栏
    • 14.1 教材及教材修订
    • 14.2 考试纪律
    • 14.3 考试注意事项
    • 14.4 逻辑符号的录入方法
    • 14.5 期末考试模拟样卷
实验7-3:解题报告(自主学习)

题目一:珍贵的宝石(分治法)

珍贵的宝石,晶莹剔透,不小心混入到了高仿玻璃制品中,真正的宝石比玻璃制品重,除此之外,无法肉眼区分它们。现给你一架托盘天平,聪明的你设计一个算法,如何才能快速将宝石从高仿玻璃制品重找出来?

输入一个整数n,代表有n-1个高仿玻璃制品和那个要找的宝石,输出天平称重的次数。请根据下面的伪代码,绘制Raptor流程图,计算出结果。

input n, t=0

while n>1 do

    t=t+1

    n=(n+2)/3

endwhile

output t

-----------------------------------------------------------------------------------------------

题目二:顺序查找(查找技术)

给定n个整数,请你在这n个整数中查找是否包含指定的数值,如果包含,输出该数的位置,如果没找到,则输出未找到指定数值。

输入:首先输入n,代表n个整数,随后输入n个整数,最后,输入一个数,表示待查找的数。

输出:该数的位置

样例输入1:

6

8 6 9 3 2 7

5

样例输出1:

not find 5

样例输入2:

7

8 6 9 3 2 7 9

9

样例输出2:

3

请根据下面的伪代码,绘制Raptor流程图。

input n

for i=1 to n

   input a[i]

endfor

input m

flag=0

i=1

while flag=0 and i<=n do

    if a[i]=m then

         output i

          flag=1

    endif

    i=i+1

endwhile

if flag=0 then

       output "not find."

endif


-----------------------------------------------------------------------------------------------

题目三:简单排序(排序技术)

给定n个整数,请你对这些整数进行升序排列并输出。下面的伪代码的功能是比较排序,请根据下面的伪代码,绘制Raptor流程图。

输入:首先输入n,代表有n个整数,随后输入这n个整数

输出:排序后的n个整数

样例输入:

6

8 6 9 3 2 7

样例输出:

2 3 6 7 8 9

伪代码如下:

input n

a[n]=0

for i=1 to n

   input a[i]

endfor

for i =1 to n-1

   for j=i+1 to n

        if a[i]>a[j] then

            t=a[i]

            a[i]=a[j]

            a[j]=t

        endif

    endfor

enfor

------------------------------------------------------------------------------------------------

题目四:合法抢劫(贪心算法)

超市举行活动,给你一个箱子。超市里面的东西只要能装进这个箱子就可以免费拿走。如果物品都是可以分割的(如:大米、金粉),那么最优策略是什么?

输入:首先输入两个正整数s,m。s表示有s个物品。接下来输入s个物品的v,w。v表示单位重量的价值,w表示重量。

输出:背包内的物品的价值和。

样例输入:

3 15

5 10

2 8

3 9

样例输出:65

分析:背包荷载15kg,现有3个物品,单位重量的价值分别为5,、2、3,重量分别为10、8、9。贪心策略是什么?拿最贵的?扛一个冰箱走,那是笨蛋,拿性价比最高的?如果商品可分,回答:Yes。拿金条、金砖、金戒子、如果拿不了整个的,还可以切割为小块,或磨成粉,带走。

3个物品,谁的性价比最高?物品1:单位价值为5、物品2:单位价值为2,物品3:单位价值为3。排序后,显然是物品1、物品3、物品2,也就是说,先可物品1装,可以装重量10,总价值为50,背包荷载重量还剩5,由于没有物品1了,只能拿性价比第二大的物品3了,物品3重量还有9,不过背包只剩下5了,不能全拿,由于物品可分,那就拿重量5的物品,3,总价值为15,共计拿了总价值65的物品1和物品3。

请根据下面的伪代码,绘制Raptor流程图,计算出结果。

伪代码如下:

input n,w                              // 输入物品数量和背包重量

for i =1 to n                         // 输入每个物品的单位价值和重量 

   input a[i]

   input b[i]

endfor

for i=1 to n-1                          // 排序

   for j=i+1 to n

       if a[i]<a[j] then

           t=a[i], a[i]=a[j], a[j]=t

           t=b[i], b[i]=b[j], b[j]=t

      endif

   endfor

endfor

i=1

sum=0

while w>0 do

    if w>=b[i] then

        sum=sum+b[i]*a[i]

        w=w-b[i]

    else

        sum=sum+w*a[i]

        w=0

    endif

     i=i+1

endwhile

output sum

-------------------------------------------------------------------------------------------------

题目五:渊子赛马(贪心算法)

赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都。赛马是当时最受齐国贵族欢迎的娱乐项目。上至国王,下到大臣,常常以赛马取乐,并以重金赌输赢。田忌多次与国王及其他大臣赌输赢,屡赌屡输。一天他赛马又输了,回家后闷闷不乐。孙膑安慰他说:“下次有机会带我到马场看看,也许我能帮你。”孙膑仔细观察后发现,田忌的马和其他人的马相差并不远,只是策略运用不当,以致失败。比赛前田忌按照孙膑的主意,用上等马鞍将下等马装饰起来,冒充上等马,与齐王的上等马比赛。第二场比赛,还是按照孙膑的安排,田忌用自己的上等马与国王的中等马比赛,在一片喝彩中,只见田忌的马竟然冲到齐王的马前面,赢了第二场。关键的第三场,田忌的中等马和国王的下等马比赛,田忌的马又一次冲到国王的马前面,结果二比一,田忌赢了国王。 

就是这么简单,现在渊子也来赛一赛马。假设每匹马都有恒定的速度,所以速度大的马一定比速度小的马先到终点(没有意外!!)。不允许出现平局。最后谁赢的场数多于一半(不包括一半),谁就是赢家(可能没有赢家)。渊子有n匹马参加比赛。对手的马的数量与渊子马的数量一样,并且知道所有的马的速度。聪明的你来预测一下这场世纪之战的结果,看看渊子能否赢得比赛。

输入:先输入n,代表每队匹马数量,然后分别输入渊子的n匹马速度和对手的n匹马速度。

输出:在你的安排下,如果渊子能赢得比赛就输出Yes,否则输出No

样例输入1:

5

3 3 2 4 5

1 2 3 4 5

样例输出1:Yes

样例输入2:

4

2 2 1 2

2 2 3 1

样例输出2:No

分析:渊子赛马的贪心策略是什么?

如果渊子当前的马匹速度比对手当前的马匹速度慢,那么就pk掉对手的最快的马,让当前马死得其所,反正是死,索性死得价值最大。如同下军旗,师长后面是炸弹,死得其所。

伪代码如下:

主调函数:

input n

a[n]=0

b[n]=0

for i=1 to n           // 输入渊子的马匹速度

    input a[i]

endfor

for i=1 to n         // 输入对手的马匹速度

   input b[i]

endfor

sort(a,n)            // 渊子的马匹速度进行排序

sort(b,n)            // 对手的马匹速度进行排序

i=1

j=1

flag=0

while i<=n and flag=0 do

     if a[i]<=b[j] then

          lose=lose+1

     else

          win=win+1

          j=j+1

      endif

      if win>n/2 or lose>n/2 then

           flag=1

      endif

      i=i+1

endwhile

if win>lose then

     output "Yes"

else

     output "No"

endif

被调函数:

function sort  ( x,n )                   // 排序函数

    for i =1 to n-1

         for j=i+1 to n

              if x[i]>x[j] then

                  t=x[i]

                  x[i]=x[j]

                  x[j]=t

               endif

          endfor

      endfor

endfunction

主调函数:

被调函数: