Write and test a MASM program to perform the following tasks:
- Display the program title and programmers name.
- Get the users name, and greet the user.
- Display instructions for the user.
- Repeatedly prompt the user to enter a number. Validate the user input to be in [-100, -1] (inclusive). Count and accumulate the valid user numbers until a non-negative number is entered. (The nonnegative number is discarded.)
- Calculate the (rounded integer) average of the negative numbers.
- Display:
- the number of negative numbers entered (Note: if no negative numbers were entered, display a special message and skip to )
- the sum of negative numbers entered
- the average, rounded to the nearest integer (e.g. -20.5 rounds to -20)
- a parting message (with the users name)
Requirements:
- The main procedure must be modularized into commented logical sections (procedures are not required this time)
- The program must be fully documented. This includes a complete header block for identification, description, etc., and a comment outline to explain each section of code.
- The lower limit should be defined as a constant.
- The usual requirements regarding documentation, readability, user-friendliness, etc., apply.
- Submit your text code file (.asm) to Canvas by the due date.
Notes:
- There are no new concepts in this programming assignment. It is given for extra practice, to keep MASM fresh in your mind while we study internal/external data representation.
- This is an integer program. Even though it would make more sense to use floating-point computations, you are required to do this one with integers.
Example (see next page)
page 1 of 2
Example (user input in italics):
Welcome to the Integer Accumulator by Austin Miller
What is your name? Caleb
Hello, Caleb
Please enter numbers in [-100, -1].
Enter a non-negative number when you are finished to see results.
Enter number: 15
Enter number: 100 Enter number: 36
Enter number: -10
Enter number: 0
You entered 4 valid numbers.
The sum of your valid numbers is -161
The rounded average is -40
Thank you for playing Integer Accumulator! Its been a pleasure to meet you, Caleb.
Extra-credit options (original definition must be fulfilled):
- Number the lines during user input.
- Calculate and display the average as a floating-point number, rounded to the nearest .001.
- Do something astoundingly creative.
Reviews
There are no reviews yet.