计算单利并输出为表格形式
Calculating Simple Interest and output into tabular form
我正在尝试编写一个 QBASIC 代码,允许用户输入 5 位投资者的 Principal 和 Time 来计算 单利 5 位投资者 和 输出 他们的,
应计金额、本金 和Time/Duration 表格形式。 利率均为 12%
我试试:
DIM P AS DOUBLE
DIM r AS DOUBLE
DIM t AS DOUBLE
DIM A AS DOUBLE
DIM rt AS DOUBLE
CLS
DIM x AS INTEGER
CLS
WHILE x <> 5
INPUT "Enter First Investor's Principal: ", P
INPUT "Enter First Investor's Time: ", t
x = x + 1
WEND
r = 0.12
rt = 1 + (r * t)
A = P * rt
FOR i = 1 TO x
PRINT "Amount Accrued", "Principal Amount", "Time"
PRINT
PRINT A, , P, , t
NEXT i
但它会在 5 个不同的表中打印 last 结果 5 次
我期待如下结果:
Amount Accrued Principal Time/Duration
44,400 30,000 4
68,000 50,000 3
95,200 70,000 5
发生这种情况是因为您在 WHILE
循环的每次迭代中都覆盖了 P
和 t
。将 P
和 t
以及其他后续变量初始化为数组,并将不同的值存储在它们的不同索引处。另请注意,您总是在每次迭代中打印 First
Investor's Principal and Time
。投资者数量也应该迭代。我已修复以下代码中的问题:
CLS
DIM x AS INTEGER
INPUT "Number of Investors: ", x
DIM P(x - 1) AS DOUBLE
DIM r AS DOUBLE
DIM t(x - 1) AS DOUBLE
DIM A(x - 1) AS DOUBLE
DIM rt(x - 1) AS DOUBLE
FOR i = 0 TO x - 1
PRINT "Enter Investor-" + STR$(i + 1) + "'s Principal: "
INPUT "", P(i)
PRINT "Enter Investor-" + STR$(i + 1) + "'s Time: "
INPUT "", t(i)
NEXT i
PRINT "Amount Accrued", "Principal Amount", "Time"
PRINT
r = .12
FOR i = 0 TO x - 1
rt(i) = 1 + (r * t(i))
A(i) = (P(i) * rt(i))
PRINT A(i), P(i), , t(i)
NEXT i
一个更简单的应计利息编码示例:
注意:数组默认为 10 项而不需要 DIM,变量默认为单个..
FOR i = 1 TO 5
PRINT "Enter Investor-" + STR$(i) + "'s Principal";: INPUT p(i)
PRINT "Enter Investor-" + STR$(i) + "'s Time";: INPUT t(i)
NEXT
PRINT "Amounts:"
PRINT "Accrued", "Principal", "Time"
PRINT "-------", "---------", "----"
r = .12
FOR i = 1 TO 5
rt(i) = 1 + (r * t(i))
a(i) = (p(i) * rt(i))
PRINT a(i), p(i), t(i)
NEXT
END
我正在尝试编写一个 QBASIC 代码,允许用户输入 5 位投资者的 Principal 和 Time 来计算 单利 5 位投资者 和 输出 他们的, 应计金额、本金 和Time/Duration 表格形式。 利率均为 12%
我试试:
DIM P AS DOUBLE
DIM r AS DOUBLE
DIM t AS DOUBLE
DIM A AS DOUBLE
DIM rt AS DOUBLE
CLS
DIM x AS INTEGER
CLS
WHILE x <> 5
INPUT "Enter First Investor's Principal: ", P
INPUT "Enter First Investor's Time: ", t
x = x + 1
WEND
r = 0.12
rt = 1 + (r * t)
A = P * rt
FOR i = 1 TO x
PRINT "Amount Accrued", "Principal Amount", "Time"
PRINT
PRINT A, , P, , t
NEXT i
但它会在 5 个不同的表中打印 last 结果 5 次
我期待如下结果:
Amount Accrued Principal Time/Duration
44,400 30,000 4
68,000 50,000 3
95,200 70,000 5
发生这种情况是因为您在 WHILE
循环的每次迭代中都覆盖了 P
和 t
。将 P
和 t
以及其他后续变量初始化为数组,并将不同的值存储在它们的不同索引处。另请注意,您总是在每次迭代中打印 First
Investor's Principal and Time
。投资者数量也应该迭代。我已修复以下代码中的问题:
CLS
DIM x AS INTEGER
INPUT "Number of Investors: ", x
DIM P(x - 1) AS DOUBLE
DIM r AS DOUBLE
DIM t(x - 1) AS DOUBLE
DIM A(x - 1) AS DOUBLE
DIM rt(x - 1) AS DOUBLE
FOR i = 0 TO x - 1
PRINT "Enter Investor-" + STR$(i + 1) + "'s Principal: "
INPUT "", P(i)
PRINT "Enter Investor-" + STR$(i + 1) + "'s Time: "
INPUT "", t(i)
NEXT i
PRINT "Amount Accrued", "Principal Amount", "Time"
PRINT
r = .12
FOR i = 0 TO x - 1
rt(i) = 1 + (r * t(i))
A(i) = (P(i) * rt(i))
PRINT A(i), P(i), , t(i)
NEXT i
一个更简单的应计利息编码示例:
注意:数组默认为 10 项而不需要 DIM,变量默认为单个..
FOR i = 1 TO 5
PRINT "Enter Investor-" + STR$(i) + "'s Principal";: INPUT p(i)
PRINT "Enter Investor-" + STR$(i) + "'s Time";: INPUT t(i)
NEXT
PRINT "Amounts:"
PRINT "Accrued", "Principal", "Time"
PRINT "-------", "---------", "----"
r = .12
FOR i = 1 TO 5
rt(i) = 1 + (r * t(i))
a(i) = (p(i) * rt(i))
PRINT a(i), p(i), t(i)
NEXT
END