Я пытаюсь написать код 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

Но он продолжает печатать результат последний 5 раз в 5 разных таблицах

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

Amount Accrued    Principal   Time/Duration
44,400            30,000      4
68,000            50,000      3
95,200            70,000      5
1
Safianu Ibrahim Mohammed 14 Апр 2019 в 15:00

2 ответа

Лучший ответ

Это происходит потому, что вы перезаписываете P и t на каждой итерации цикла WHILE. Вместо этого инициализируйте 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
2
Sardar Usama 14 Апр 2019 в 16:17

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

Примечание. Для массивов по умолчанию используется 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
1
eoredson 15 Апр 2019 в 03:50