Program #2 Solution

$24.99 $18.99

Objectives Getting string input Designing and implementing a counted loop Designing and implementing a post-test loop Keeping track of a previous value Implementing data validation Problem Definition Write a program to calculate Fibonacci numbers. Display the program title and programmer’s name. Then prompt the user for their name and greet them (by name). Prompt the…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Categorys:

Description

5/5 – (2 votes)

Objectives

  1. Getting string input

  1. Designing and implementing a counted loop

  1. Designing and implementing a post-test loop

  1. Keeping track of a previous value

  1. Implementing data validation

Problem Definition

Write a program to calculate Fibonacci numbers.

Display the program title and programmer’s name. Then prompt the user for their name and greet them (by name).

Prompt the user to enter the number of Fibonacci terms to be displayed. Advise the user to enter an integer in the range [1 .. 46].

Calculate and display all of the Fibonacci numbers up to and including the nth term. The results should be displayed 4 terms per line with at least 5 spaces between terms.

Display a parting 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 loop that implements data validation must be implemented as a post-test loop.

  1. The loop that calculates the Fibonacci terms must be implemented using the MASM loop instruction.

  1. Numeric user input must be aquired using the ReadInt Irvine procedure (as a signed integer).

  1. The main procedure must be modularized into at least the following sections (procedures are not required in this program):

introduction

displayInstructions

getUserInfo

displayFibs

goodbye

  1. Note that each of the above sections (introduction, displayInstructions, getUserInfo, etc) needs to have a header block explaining its purpose.

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

  1. The upper limit must be defined and used as a constant.

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

Notes

  1. It is not necessary to store the Fibonacci numbers in an array. The terms may be displayed as they are generated.

  1. The second-order Fibonacci sequence is defined as:

    1. The first two terms are both 1.

    1. All other terms are calculated as the sum of the two previous terms.

  1. The reason for restricting n to [1 .. 46] is that the 47th Fibonacci number is too big for DWORD data type.

Example Program Operation

Fibonacci Numbers

Programmed by Leonardo Pisano

What’s your name? Paul

Hello, Paul

Enter the number of Fibonacci terms to be displayed.

Provide the number as an integer in the range [1 .. 46].

How many Fibonacci terms do you want? 50

Out of range. Enter a number in [1 .. 46]

How many Fibonacci terms do you want? -6

Out of range. Enter a number in [1 ..

46]

How many Fibonacci terms do you want?

14

1

1

2

3

5

8

13

21

34

55

89

144

233

377

Results certified by Leonardo Pisano.

Goodbye, Paul.

Extra Credit Option (original definition must be fulfilled)

(1 pt) Display the numbers in aligned columns.

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

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

Documentation – Identification Block – Program Description

2 pts

0 pts

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

Full Marks

No Marks

Documentation – Section Comments

4 pts

0 pts

Code section headers describe functionality and implementation of program flow. Should

Full Marks

No Marks

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 comments) but

Full Marks

No Marks

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 array. Greets user

Full Marks

No Marks

(e.g. “Hello, Username”)

Completeness – Displays Introduction

1 pts

0 pts

Displays program introduction. Program introduction should describe functionality of

Full Marks

No Marks

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 identifiers for

Full Marks

No Marks

1 pts

validation.

Completeness – Validates User Data

3 pts

2 pts

0 pts

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

Full

Partial validation

No

rejected.

Marks

Validates only one end or

Marks

3 pts

neglects to check edge cases.

No

validation

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 – Number of Terms

2 pts

1 pts

0 pts

Correct number of terms are displayed.

Full

Incorrect for small numbers

No

Marks

Correct number of terms for

Marks

2 pts

values greater than 3, but fails for

one or more of the following

values (1, 2, 3)

Correctness – Calculations are Correct

2 pts

0 pts

2 pts

Full Marks

No Marks

Criteria

Ratings

Correctness – Numbers displayed 4 per line

2 pts

0 pts

Numbers are displayed 4 per line on sufficiently large console window width. There should

Full Marks

No Marks

be at least 5 spaces between each term. No points granted for implementations that

require console window be a specific size to work.

Correctness – Partial lines displayed correctly

1 pts

0 pts

Full Marks

No Marks

Requirements – Solution is non-recursive

1 pts

0 pts

Full Marks

No Marks

Upper limit is defined and used as a constant

1 pts

0 pts

Full Marks

No Marks

Requirements

– Well-Modularized

4 pts

0 pts

Program is divided into logical sections, separated by Section Comment blocks.

Full Marks

No Marks

Requirements – Counted loop implemented with LOOP instruction

2 pts

0 pts

Full Marks

No Marks

Requirements – Data validation loop is post-test loop

2 pts

0 pts

Full Marks

No Marks

Pts

2 pts

  • pts

  • pts

  • pts

4 pts

  • pts

  • pts

Criteria

Ratings

Pts

Coding Style – Appropriately named identifiers

2 pts

1 pts

0 pts

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

Full

Partial

No

constant, or label just by reading its name.

Marks

Some identifiers are named well,

Marks

2 pts

with others having no relevance to

their functionality.

Coding Style – Readabilty

2 pts

1 pts

0 pts

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

Full

Marginally Readable

No

Guide. Logical sections are separated by white space.

Marks

Program is marginally readable

Marks

2 pts

but lacks proper alignment and

white space.

(1pt) Extra Credit for columns

0 pts

0 pts

Fibonacci numbers are displayed in aligned columns.

0 pts

Full Marks

No Marks

Late

Penalty

0 pts

0 pts

Remove points here for late assignments. (Enter negative point value, 15% of ‘earned’

Full Marks

No Marks

0 pts

points per day late)

Total Points: 50

Program #2 Solution
$24.99 $18.99