Qbasic 以表格形式计算简单利息和产出

Qbasic 以表格形式计算简单利息和产出,qbasic,Qbasic,我正在尝试编写一个QBASIC代码,允许用户输入5名投资者的本金和时间,以计算5名投资者的单利和输出, 应计金额、本金和时间/期限以表格形式列示。利率均为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 Princ

我正在尝试编写一个QBASIC代码,允许用户输入5名投资者的本金时间,以计算5名投资者的单利输出应计金额本金时间/期限表格形式列示。利率均为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

这是因为在
WHILE
循环的每次迭代中,您都在覆盖
p
t
。将
P
t
以及其他后续变量初始化为数组,并在它们的不同索引处存储不同的值。还请注意,在每次迭代中,您总是先打印
投资者的本金和时间。投资者编号也应该重复。我已修复以下代码中的问题:

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

是的,这正是我所需要的,但是我不理解你代码中的x-1,你能给我解释一下吗。索引是从0开始的。假设你想存储3个元素(投资者的详细信息),你会将它们存储在0,1,2个指数上;不是在1,2,3。但是,也可以从1开始建立索引,但随后必须将
P
定义为
DIM P(1到x)正如DOUBLE
一样,它也适用于其他变量。BASIC不要求数组从0开始:->@eoredson这也是我在上面的评论中提到的,因为它是一个“C”的东西——当它们变暗[10]时,它们总是从0开始,它们只从[0]到[9],而不是我从未理解的[10]。
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