Program #4 Solution

$24.99 $18.99

Objectives 1. Designing and implementing procedures 2. Designing and implementing loops 3. Writing nested loops 4. Understanding data validation Problem Definition Write a program to calculate composite numbers. First, the user is instructed to enter the number of composites to be displayed, and is prompted to enter an integer in the range [1 .. 300].…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Categorys:

Description

5/5 – (2 votes)

Objectives

1. Designing and implementing procedures

2. Designing and implementing loops

3. Writing nested loops

4. Understanding data validation

Problem Definition

Write a program to calculate composite numbers. First, the user is instructed to enter the number of composites to be displayed, and is prompted to enter an integer in the range [1 .. 300]. The user enters a number, n, and the program verifies that 1 ≤ n ≤ 300. If n is out of range, the user is re-prompted until they enter a value in the specified range. The program then calculates and displays all of the composite numbers up to and including the nth composite. The results should be displayed 10 composites per line with at least 3 spaces

between the numbers.

Requirements

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

2. The counting loop (1 to n) must be implemented using the MASM loop instruction.

3. The main procedure must consist (mostly) of procedure calls. It should be a readable “list” of what the program will do.

4. Each procedure will implement a section of the program logic, i.e., each procedure will specify how the logic of its section is implemented. The program must be modularized into at least the following procedures and sub-procedures:
introduction

getUserData

validate
showComposites

isComposite

goodbye

5. The upper limit should be defined and used as a constant.

6. Data validation is required. If the user enters a number outside the range [1 .. 300] an error message should be displayed and the user should be prompted to re-enter the number of composites.
7. Each procedure must have a procedure header that follows the format discussed during lecture.

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

Notes

1. For this program, you may use global variables instead of passing parameters. This is a one-time relaxation of the standards so that you can get accustomed to using procedures. In future homework, global variables will not be allowed.
2. A number k is composite if it can be factored into a product of smaller integers. Every integer greater than one is either prime or composite. Note that this implies that

1 is not composite.

The number must be positive.

3. If you choose to use the LOCAL directive while working on this program be sure to read section 8.2.9 in the Irvine textbook. LOCAL variables will affect the contents of the system stack!

Example Program Operation

Welcome to the Composite Number Spreadsheet

Programmed by Author Name

This program is capable of generating a list of composite numbers.
Simply
let me
know how
many you
would like to see.
I’ll accept orders for
up to 300 composites.
How
many composites do
you want to view? [1 .. 300]: 400
Out
of
range. Please try again.

 

How
many composites do
you want to view? [1 .. 300]: 0
Out
of
range. Please try again.

 

How
many composites do
you want to view? [1 .. 300]: 23
4
6
8
9
10
12
14
15
16
18
20
21
22
24
25
26
27
28
30
32

33
34
35

 

 

 

Thanks for using my program!

 

 

Extra Credit Option (original definition must be fulfilled)
(2 pts) When the program runs, give the user the option to display only composite numbers that are also odd numbers. The user should get a choice when the program first starts (e.g. enter 0 to view all composite numbers or enter 1 to view only odd composites). For example, if the user chooses to view only odd composites, they would see the numbers 9, 15, 21, 25, 27, 33, 35, 39, 45…

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 4 Rubric

Criteria

Ratings
Pts

 

 

Files Correctly Submitted
1 pts

0 pts

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

 

 

Full Marks

No Marks
1 pts

 

 

Program Assembles & Links
1 pts
0 pts
Submitted program assembles and links without need for clarifying work for TA and/or

 

Full Marks
No Marks
messages to the student. This assumes the program is actually an attempt at the

assignment. Non-attempts which compile/link earn no points.

1 pts

 

 

 

Documentation – Identification Block – Header
1 pts
0 pts
Name, Date, Program number, etc as per syllabus are included in Identification Block

 

Full Marks
No Marks
1 pts

 

Documentation – Identification Block – Program Description
1 pts
0 pts

 

Full Marks
No Marks
Description of functionality and purpose of program is included in identification block.

1 pts

 

Documentation – Procedure Headers
4 pts
2 pts
0 pts

Procedure headers describe functionality and implementation of program flow. Should

 

 

Full
Headers without Conditions
No

also list pre- and post-conditions and registers changed.
Marks
Descriptive headers but lacking
Marks
4 pts

pre- and post-conditions and

 

 

 

 

‘registers changed’

 

 

 

Criteria

Ratings
Pts

 

 

Documentation – In-line Comments
2 pts

0 pts

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

 

 

Full Marks

No Marks

but are not line-by-line descriptions of moving memory to registers.

 

2 pts

 

 

 

 

 

Verification – Program Executes
3 pts
0 pts

Program executes and makes some attempt at the assigned functionality.

 

Full Marks
No Marks
3 pts

 

 

Completeness – Displays Title & Programmer Name
1 pts
0 pts
Program prints out the programmer’s name and Program Title

 

Full Marks
No Marks
1 pts

 

Completeness – Displays Introduction
1 pts
0 pts
Displays program introduction. Program introduction should describe functionality of

 

Full Marks
No Marks
program.

1 pts

 

 

 

 

Completeness – Prompts for Input (with Bounds)
1 pts
0 pts
Prompts user to enter data, specifying bounds of acceptable inputs.

 

Full Marks
No Marks

1 pts

 

Criteria

Ratings

Pts

 

 

 

 

Completeness – Gets data from User
1 pts

0 pts

 

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

 

 

 

 

Full Marks

No Marks

1 pts

identifiers for validation.

 

 

 

 

 

 

 

 

Completeness – Validates User Data
2 pts

1 pts
0 pts

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

 

 

 

Full

Partial validation
No
2 pts

Marks

Neglects to check edge
Marks

 

 

 

 

 

cases.

 

 

 

 

 

 

Completeness – Displays Results
2 pts

0 pts

 

 

 

 

 

2 pts

Full Marks

No Marks

 

 

 

 

 

 

Completeness – Displays closing message
1 pts

0 pts

 

 

 

 

 

1 pts

Full Marks

No Marks

 

 

 

 

 

 

Correctness – Displays correct number of composite numbers
4 pts
3 pts

0 pts

 

 

 

 

 

 

 

 

Full
Mostly Correct

No

 

 

 

 

Marks
Edge cases are neglected or

Marks
4 pts

 

 

 

 

display incorrectly.

 

 

 

 

 

 

Correctness – Calculations are Correct
6 pts

0 pts

 

All displayed values are in fact composites, beginning with the number ‘4’ (if running in

 

 

 

 

Full Marks

No Marks

 

extra credit mode, the numbers should start with ‘9’)

 

 

6 pts

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Criteria

Ratings

Pts

 

 

 

Correctness – Numbers are displayed 10 per line
2 pts

0 pts

 

 

 

2 pts

Full Marks
No Marks

 

 

 

 

Correctness – Partial lines displayed correctly
1 pts

0 pts

 

 

 

1 pts

Full Marks
No Marks

 

 

 

 

Requirements – Limit is a CONSTANT
1 pts

0 pts

Max number allowable is defined and used as a CONSTANT.

 

 

Full Marks
No Marks

1 pts

 

 

 

Requirements – Program is well-modularized
10 pts
8 pts
2 pts
0 pts

Program is divided into logical sections based on function. Program implements all

 

 

Full
Lacking some
No
No

required procedures with good logical flow according to class lectures.
Marks
Procedures
procedures
Marks

Note: as a reminder, the required procedures are introduction, getUserData, validate,

Well
Well

showComposites, isComposite, goodbye.

 

 

 

modularized,
modularized,

10 pts
Adding extra procedure is allowed.

 

 

 

but lacking all
but fails to

 

 

 

 

 

required
utilize

 

 

procedures
procedures

 

 

 

 

 

 

 

 

 

 

 

Requirements – Counted loop uses LOOP instruction when displaying the correct number
1 pts

0 pts

of composite numbers

 

 

Full Marks
No Marks

1 pts

 

 

 

 

 

 

Criteria

Ratings
Pts

 

 

Coding Style – Uses appropriately named identifiers
1 pts

0 pts

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

 

 

Full Marks

No Marks

constant, or label just by reading its name.

 

1 pts

 

 

 

 

 

Coding Style – Readability
1 pts
0 pts
Program uses readable white-space, indentation, and spacing as per the Indentation Style

 

Full Marks
No Marks
Guide. Logical sections are separated by white space.

1 pts

 

 

 

Output Style – Readability
1 pts
0 pts

Program output is easy to read

1 pts

Full Marks
No Marks

 

 

Extra Credit
0 pts
0 pts

Program has an extra mode that will only display composite numbers that are also odd

 

Full Marks
No Marks

numbers (+2).

 

 

 

For example, if the user chooses to operate in extra credit mode and asks to view 3

0 pts
composite numbers, they will see “9, 15, 21”.

 

 

 

 

 

Late Penalty
0 pts
0 pts

Remove points here for late assignments. (Enter negative point value)

 

Full Marks
No Marks
0 pts

 

Total Points: 50

Program #4 Solution
$24.99 $18.99