Program #3 Solution

$24.99 $18.99

Implementing data validation Implementing an accumulator Integer arithmetic Defining variables (integer and string) Using library procedures for I/O Implementing control structures (decision, loop) Problem Definition Write a MASM program to perform the following tasks: Display the program title and programmer’s name. Display instructions for the user Repeatedly prompt the user to enter the number. Validate…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Categorys:

Description

5/5 – (2 votes)
  1. Implementing data validation

  1. Implementing an accumulator

  1. Integer arithmetic

  1. Defining variables (integer and string)

  1. Using library procedures for I/O

  1. Implementing control structures (decision, loop)

Problem Definition

Write a MASM program to perform the following tasks:

Display the program title and programmer’s name.

Display instructions for the user

Repeatedly prompt the user to enter the 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 non-negative 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 display the

goodbye message with the user’s name at the end)

the sum of negative numbers entered

the average, rounded to the nearest integer (e.g., -20.5 rounds to -21)

a goodbye message that includes the user’s name, and terminate the program.

Requirements

  1. The programmer’s name and the user’s name must appear in the output.

  1. The main procedure must be modularized into commented logical sections (procedures are not required this time).

  1. Recursive solutions are not acceptable for this assignment. This one is about iteration.

  1. 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.

  2. The lower limit must be defined and used as a constant.

  1. The usual requirements regarding documentation, readability, user-friendliness, etc., apply.

Notes

  1. 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 and error detection/correction.

  2. 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 Program Operation

Welcome to the Integer Accumulator by Austin Miller

What’s your name? Roger

Hello, Roger

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: -200

Invalid number, please enter numbers in [-100, -1].

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!

Goodbye, Roger.

(1 pt) Calculate and display the average as a floating-point number, rounded to the nearest .001.

Remember, in order to ensure you receive credit for any extra credit work, you must add one print statement to your program output PER EXTRA CREDIT which describes the extra credit you chose to work on. You will not receive extra credit points unless you do this. The statement must be formatted as follows…

–Program Intro–

**EC: DESCRIPTION

–Program prompts, etc–

Please refer back to the documentation for Program 1 to see a sample of the extra credit format.

Program 3 Rubric

Criteria

Ratings

Files Correctly Submitted

1 pts

0 pts

Submitted file is correct assignment and is an individual .asm file.

Full Marks

No Marks

Program Assembles & Links

2 pts

0 pts

Submitted program assembles and links without need for clarifying work for

Full Marks

No Marks

TA and/or messages to the student.

This assumes the program is actually an attempt at the assignment. Non-

attempts which compile/link earn no points.

Documentation – Identification Block – Header

1 pts

0 pts

Name, Date, Program number, etc as per syllabus are included in

Full Marks

No Marks

Identification Block

Documentation – Identification Block – Program Description

2 pts

0 pts

Description of functionality and purpose of program is included in

Full Marks

No Marks

identification block.

Documentation – Section Comments

4 pts

0 pts

Code section headers describe functionality and implementation of

Full Marks

No Marks

program flow. Should mirror the style guide image.

Pts

  • pts

2 pts

  • pts

2 pts

4 pts

Criteria

Ratings

Documentation – In-line Comments

1 pts

0 pts

In-line comments contribute to understanding of program flow (from section

Full Marks

No Marks

comments) but are not line-by-line descriptions of moving memory to

registers.

Verification – Program Executes

5 pts

0 pts

Program executes and makes some attempt at the assigned functionality.

Full Marks

No Marks

Completeness – Displays Programmer Name

1 pts

0 pts

Program prints out the programmer’s name.

Full Marks

No Marks

Completeness – Gets / Uses User’s name

2 pts

0 pts

Receives input with ReadString. Saves input in a null-terminated BYTE

Full Marks

No Marks

array. Greets user (e.g. “Hello, Username”)

Completeness – Displays Introduction

1 pts

0 pts

Displays program introduction. Program introduction should describe

Full Marks

No Marks

functionality of program.

Completeness – Prompt for Input

2 pts

0 pts

Prompts user to enter data, specifying bounds of acceptable inputs.

Full Marks

No Marks

Pts

1 pts

  • pts

1 pts

2 pts

  • pts

2 pts

Criteria

Ratings

Pts

Completeness – Gets data from user

1 pts

0 pts

Utilizes ReadInt to receive user input. Saves values in appropriately-named

Full Marks

No Marks

1 pts

identifiers for validation.

Completeness – Validates User Data

4 pts

2 pts

0 pts

Validates that user-entered values are within the advertised limits.

Full

Partial validation

No

Marks

Validates only one end or neglects to check

Marks

4 pts

edge cases.

No

validation

Completeness – Displays Results (number of valid numbers, sum, and

4 pts

2 pts

0 pts

rounded average)

Full Marks

Partial Display

No Marks

4 pts

display a special message if no negative numbers were entered (-2 if

missed)

Completeness – Displays Closing Message

1 pts

0 pts

1 pts

Full Marks

No Marks

Correctness – Number of Valid Numbers

2 pts

1 pts

0 pts

Correct number of valid numbers is displayed.

Full

Incorrect for small numbers

No

Marks

Correct number of valid numbers for values

Marks

2 pts

greater than 2, but fails for one or more of the

following values (0, 1, 2)

Criteria

Ratings

Pts

Correctness – Calculation of rounded average is correct

3 pts

2 pts

0 pts

Full Marks

Calculates average but not rounded

No Marks

3 pts

Correctness – Calculation of Sum is correct

3 pts

0 pts

3 pts

Full Marks

No Marks

Requirements – Solution is non-recursive

1 pts

0 pts

1 pts

Full Marks

No Marks

Lower limit is defined and used as a constant

1 pts

0 pts

1 pts

Full Marks

No Marks

Requirements – Well-Modularized

4 pts

0 pts

Program is divided into logical sections, separated by Section Comment

Full Marks

No Marks

4 pts

blocks.

Coding Style – Appropriately named identifiers

2 pts

1 pts

0 pts

Identifiers named so that a person reading the code can intuit the purpose

Full

Partial

No

of a variable, constant, or label just by reading its name.

Marks

Some identifiers are named well, with others

Marks

2 pts

having no relevance to their functionality.

Criteria

Ratings

Pts

Coding Style – Readabilty

2 pts

1 pts

0 pts

Program uses readable white-space, indentation, and spacing as per the

Full

Marginally Readable

No

Indentation Style Guide. Logical sections are separated by white space.

Marks

Program is marginally readable but lacks proper

Marks

2 pts

alignment and white space.

(1pt) Extra Credit for rounded average

0 pts

0 pts

Rounded average is rounded to the nearest .001.

Full Marks

No Marks

0 pts

Late Penalty

0 pts

0 pts

Remove points here for late assignments. (Enter negative point value, 15%

Full Marks

No Marks

0 pts

of ‘earned’ points per day late)

Total Points: 50

Program #3 Solution
$24.99 $18.99