【问题标题】:How to calculate the perimeter of a cuboid?如何计算长方体的周长?
【发布时间】:2021-09-28 15:37:14
【问题描述】:

给出的是长方体的长度、宽度和高度。你的任务是计算它的周长。

注意:长方体周长的公式是4(Length + Breadth + Height)

输入

  • 用户任务:
    由于这将是一个功能问题,因此您不必接受输入。您只需要完成以整数 L、B 和 H 作为参数的函数 Perimeter()。

  • 约束:
    1

输出

  • 返回长方体的长度。

【问题讨论】:

  • 我们这里不做家庭作业,做你自己的工作,如果不工作就展示出来。
  • 您不清楚这项任务的哪些方面?显然,赋值指令非常简单:P = (L + B + H) * 4。另外,请务必提及这是关于哪种 BASIC。
  • 分享您编写的程序并指出具体哪里出错。

标签: function basic


【解决方案1】:

这个任务的步骤比较简单。

  1. 获取长度、宽度和宽度。
  2. 验证这些值是否在要求的范围内。
  3. 计算周长。
  4. 提供计算出的周长或长度,具体取决于编写这些要求的人的迂腐程度。

第四个可能是这项任务中最难的部分,您需要联系编写需求的人以验证 输出:返回长方体的长度实际上是一个错字并且你应该返回长方体的周长

在此示例中,我将假设这是一个技巧问题并提供长度;但是,如果这不是一个技巧问题,而是一个错字,您需要在输出行 (80) 上将长度变量 (LE) 替换为周长变量 (PE)。

10 IF NOT (LE < 1 OR LE > 100 OR BR < 1 OR BR > 100 OR WI < 1 OR WI > 100) THEN 60
20 INPUT "LENGTH, BREADTH, WIDTH"; LE, BR, WI

30 IF LE < 1 OR BR < 1 OR WI < 1 THEN PRINT "YOU HAVE ENTERED THE":PRINT "MICROVERSE. PLEASE ENSURE THAT":PRINT "ALL DIMENSIONS ARE AT LEAST 1":PRINT "UNIT."
40 IF LE > 100 OR BR > 100 OR WI > 100 THEN PRINT "YOU HAVE LEFT THE BOUNDS OF":PRINT "THE KNOWN UNIVERSE. PLEASE":PRINT "ENSURE THAT ALL DIMENSIONS ARE":PRINT "NO MORE THAN 100 UNITS."

50 GOTO 10

60 PE = LE + BR + WI
70 PE=PE*4
80 PRINT "THE CUBOID'S LENGTH IS:";LE

90 END

BASIC 的可读性从来不为人所知,即使是这个简短的程序也可能难以理解。下面是同一个程序,形式更易读:

loop while (%length% < 1 or %length% > 100 or %breadth% < 1 or %breadth% > 100 or %width% < 1 or %width% > 100)
    input "Length, Breadth, Width"; %length%, %breadth%, %width%

    switch
    case (%length% < 1 or %breadth% < 1 or %width% < 1)
        wrap You have entered the microverse. Please ensure that all dimensions are at least 1 unit.
    case (%length% > 100 or %breadth% > 100 or %width% > 100)
        wrap You have left the bounds of the known universe. Please ensure that all dimensions are no more than 100 units.
    endswitch
endloop

%perimeter% = %length% + %breadth% + %width%
%perimeter% *= 4
print "The cuboid's length is:";%length%

这使用SuperBASIC,不是作为推荐(除非你碰巧使用的 BASIC 是在 TRS-80 彩色计算机上),只是因为我熟悉那个 BASIC 预处理器。这两个程序在某种程度上是等价的,因为我编写了更具可读性的代码,然后使用脚本将其转换为 BASIC。

您可以看到我上面概述的步骤:input 长方体的尺寸;验证尺寸是否在要求的范围内;或者loop返回input请求,如果不是,或者计算周长和print长度。

请注意,循环使用大多数 BASIC 实现的特性,即在第一次遇到数字变量时,变量被设置为零,这超出了规定的要求范围。如果您的 BASIC 变体不这样做,您将需要分配初始值,很可能使用 DEFINTLET 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多