编写MARIE程序,以计算正数列表上的一些基本统计数据

时间:2019-12-19 06:48:48

标签: simulator marie

  

程序将要求用户一一输入数字。假定所有数字都在1到1000的范围内。要终止数据输入,用户将输入任何负数。数据输入完成后,程序将显示有关数字列表的四个统计信息:(i)计数,(ii)最小值和(iii)数字总和。

     

例如,如果用户输入以下十进制数字作为输入(一个接一个)

     

23,6,78,36,3,250,127,210,–5

     

程序将分别输出以下值作为计数,最小值和总和:

     

8      3      733

     

假定用户将始终提供有效的数字作为输入,即不必担心处理无效的输入数据。

我尝试了这段代码,但是输出错误:

LOOP, LOAD T
SUBT TEN
SKIPCOND 000 /if T = 10
JUMP LOO /take average after T = 10;

CLEAR /BEGIN INPUTING NUMBERS FOR AVERAGE
INPUT
STORE TEMP
CLEAR

IF, LOAD T
SUBT 1
SKIPCOND 800
JUMP STOREFIRST

CLEAR
LOAD TEMP
SUBT MIN
SKIPCOND 000
JUMP FINDMAT

ELSE, SKIPCOND 800
JUMP FINDMIN

CONTINUE, CLEAR
LOAD TEMP
ADD P /add P to the input
STORE P /save new value
CLEAR
LOAD T /INCREMENT COUNTER
ADD ONE
STORE T
CLEAR
JUMP LOOP /RESTART LOOP

FINDMAT, CLEAR
LOAD TEMP
STORE MAT
JUMP CONTINUE

FINDMIN, CLEAR
LOAD TEMP
STORE MIN
JUMP CONTINUE

STOREFIRST, LOAD TEMP
STORE MIN
STORE MAT
JUMP CONTINUE

LOO, LOAD P /LOAD ALL THE ADDED NUMBERS
SKIPCOND 800 /WHEN P = 0
JUMP PRINT /GO TO OUTPUT

SUBT TEN /SUBTRACT 10 UNTIL REACH 0
STORE P /STORE NEW NUMBER
CLEAR
LOAD AVERAGE /EACH LOOP ADD 1 TO AVERAGE
ADD ONE
STORE AVERAGE
CLEAR
JUMP LOO

PRINT, LOAD AVERAGE
OUTPUT
CLEAR
LOAD MIN
OUTPUT
CLEAR
LOAD MAT
OUTPUT
CLEAR

HALT

TEN, DEC 10
ONE, DEC 1
T, DEC 0 /USE TO INPUT 10 NUMBERS, COUNTER
P, DEC 0 /ALL NUMBERS INPUT ADDED
MIN, DEC 0   
MAT, DEC 0
TEMP, DEC 0
AVERAGE, DEC 0 /AVERAGE OF P DIVIDED BP T

当我在MARIE模拟器上编译该程序时,则没有得到所需的输出。通过此代码,用户可以输入10个输入。这段代码取的是负值,但我只希望东西为正值。 请帮助我解决此错误。

0 个答案:

没有答案