Расчет простого процента и вывод в табличную форму - PullRequest
1 голос
/ 14 апреля 2019

Я пытаюсь написать код QBASIC, который позволяет пользователю вводить Принцип и Время из 5 Инвесторов для расчета Простых процентов из этих 5 инвесторов и Выход их, Начисленная сумма , Основные и Время / Продолжительность вa Табличная форма. Все с процентной ставкой 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раз в 5 разных таблицах

Я ожидаю результатов, как показано ниже:

Amount Accrued    Principal   Time/Duration
44,400            30,000      4
68,000            50,000      3
95,200            70,000      5

Ответы [ 2 ]

2 голосов
/ 14 апреля 2019

Это происходит потому, что вы перезаписываете P и t на каждой итерации цикла WHILE.Вместо этого инициализируйте P и t и другие последующие переменные как массивы и сохраняйте разные значения под разными их индексами.Также обратите внимание, что вы всегда печатаете FirstInvestor'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
1 голос
/ 15 апреля 2019

Более простой пример кодирования для начисленных процентов:

Примечание. Массивы по умолчанию равны 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
...