Циклы LMC для наибольшего числа и количества чисел (N =) (Макс =) - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь реализовать цикл, который принимает числа на вход столько, сколько пожелает пользователь, а затем распечатывает наибольшее из них как Max = highest number и N = total number of inputs

Программа должна остановиться, когда вводэто 0

Это то, что я сделал до сих пор, но N и Макс не распечатывает?

LOOP    INP
        BRZ F
        STA first
        BRA LOOP
LOOP    INP
        BRZ F
        STA second
        BRA LOOP
        SUB second
        BRP secondBig
        LDA second
        OUT 
F       LDA \n
        OTC
        LDA N
        OTC
        LDA =
        OTC
secondBig LDA second
        LDA \n
        OTC
        LDA M
        OTC
        LDA a
        OTC
        LDA x
        OTC
        LDA =
        OTC
END     HLT
N       DAT 78
=       DAT 61
\n      DAT 10
M       DAT 77
a       DAT 97
x       DAT 120
first   DAT
second  DAT 

Вот что я пытаюсь сделать в коде Python

number = 0
max = 0
x = int(input(""))
while x != 0:
if x > max:
max = x
number = number + 1
x = int(input(""))
print("n=", number)
if number > 0:
    print("max=", max)

1 Ответ

0 голосов
/ 19 октября 2018

Я тоже борюсь с этим, но получил несколько советов: вам нужен только один INP.Считайте ввод, запустите цикл BRZ и в этом цикле вызовите метод, который сравнивает newinp и max (как и подсчет количества входов в этом цикле).

Что касается моего кода, я не могу заставить его печатать максимум, только последний ввод.Я попытался: (вместо своих собственных INP он получает те из метода read)

findMax LDA newinp    
        STA newinp
        LDA max
        STA max
        SUB newinp
        [...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...