2X: 额外练习

这堂课我们来做一些额外的练习。其中有一些问题比较有难度,如果你在一个问题上卡住了,你可以跳到下一个问题或下一堂课,把这个问题留到以后做。我的进展 可以用来查看以前的练习题。

第一个练习是关于调试。该程序需要得出人口增长。

编程练习: 增长调试
改正该程序中的逻辑错误:假设从2012年的1000人口开始算起,每年人口增长10%,该程序需计算出接下来3年每年的人口数。最多可更改3个字符。
如果卡住了,点击这里。

剩下的问题是关于最小函数值 和最大函数值得问题。

简化以下复杂的式子

选择题练习: 简化
下列式子的最简形式是什么?

max(x - 3, min(x + 10, x + 5))
正确!因为x + 5永远小于x + 10,我们可以简化min(x + 10, x + 5)x + 5。接着,式子就变成了max(x - 3, x + 5). 因为x + 5永远是两个中大的那个,所以它就是答案。

复杂化一个简单的式子

编程练习: 复杂化
假设判卷人已经定义了两个变量AB。请编写一个程序使得其打印

min(A, B)
要求:你的程序不可以运用min。运用max来达到min的效果。提示,方法 1 提示,方法 2

费用计算

编程练习: 还款计算器
一家信用卡公司根据以下计算方式得出了一位客户的“最低还款 额”。最低还款额为$10和客户余额的2.1%中的较大值;但如果该值超出了余额,那么最低还款额为余额本身。请编写一段程序,使用 minmax。假设变量balance代表客户余额。程序不需要打印出$符号。
例 1:如果balance1000,程序应输出 21
例 2: 如果balance600,程序应输出12.6
例 3: 如果balance25,程序应输出10
例 4: 如果balance8,程序应输出8
Hint

排列

最后一个问题有些难度,是关于排列数字的。在完成入门课程后,你会学到更好的,更简单的,更快捷的排列方法

如果觉得无从下手,你可以跳过这个问题,放到以后再来解决。此外,你可以查询问题的完成状况通过访问我的进展页面.

综合练习: 组合排序
代码问题: 编写程序来从小到大排列三个数字xy 和 z,其中x 代表最小值, y 代表中间值,z代表最大值。
点击每一行并拖动鼠标来排列他们的顺序。点击这里查看提示。
  • x = min(x, y)
  • x = min(x, y)
  • tmp = max(x, y)
  • y = tmp
  • y = min(y, z)
  • tmp = max(x, y)
  • tmp = max(y, z)
  • y = tmp
  • z = tmp

继续上第3课!