 #### 联系方式

• QQ：99515681
• 邮箱：99515681@qq.com
• 工作时间：8:00-23:00
• 微信：codinghelp2 #### 您当前位置：首页 >> OS作业OS作业

###### 日期：2018-09-24 01:45

[HW-01] Square root approximation

1. Description

The square root of a number N can be approximated by repeated calculation using the formula:

NG = 0.5(LG + N/LG)

where

NG = next guess

LG = last guess

Write a function that calculates the square root of a number using this method. The initial

guess will be the starting value of LG = 1.0. The program needs to calculate a value of NG using

the given formula. It is considered to be the root is found when |NG-LG| < 0.005. In this case

NG is accepted as the square root: otherwise, the new guess (NG) becomes the last guess (LG)

and the process is repeated.

2. Output

Check the validity of all input values as shown in <Input handling example 1>.

※ note: Gray colored background area is where the user needs to input

<Input handling example 1>

Enter a number to find the square root value (0.01 ~ 1000000.00) : 4.0

Square root of 4.00 is : 2.000

Enter C/c for continue or Q/q for quit : C

Enter a number to find the square root value (0.01 ~ 1000000.00) : 5

Square root of 5.00 is : 2.336

Enter C/c for continue or Q/q for quit : Q

Program Terminating. Bye!

<Input handling example 2>

Enter a number to find the square root value (0.01 ~ 1000000.00) : 0

Not a valid number. Try again.

Enter a number to find the square root value (0.01 ~ 1000000.00) : 0.75

Square root of 0.75 is : 0.866

Enter C/c for continue or Q/q for quit : Q

Program Terminating. Bye!

2 / 6

3. Output Guidelines

1) Display a friendly message to explain the program.

2) Display a friendly message to receive input from user.

3) Display a friendly message for the invalid inputs.

4) Define macros as needed

5) Leave a space line after receiving the inputs and before the result is displayed.

6) Follow the format of the outputs shown in <example 1> and <example 2>.

<Supporting information>

When the inputs needs to be read several times in the program, there could be a input buffer issue that will

cause some trouble reading the input.

Use fflush() in the <stdio.h> or define a macro FLUSH in your program as below and use this before a new

#define FLUSH while (getchar() != ‘\n’)

fflush() or FLUSH macro will empty the previous input line so that another input can read from a new input

line.

3 / 6

[HW-02] Prime Fibonacci number

1. Description

Write a program that checks whether the nth Fibonacci number is prime. Main function should call two subfunctions

to accomplish this task: one to find nth Fibonacci number and another one to find whether the

number is prime number.

2. Output

Check the validity of all input values as shown in <Input handling example 1>.

※ note: Gray colored background area is where the user needs to input

<Input handling example 1>

Enter a number to find whether nth Fibonacci number is prime (3 ~ 20) : 3

Fibonacci (3) = 3 is a prime number.

Enter C/c for continue or Q/q for quit : C

Enter a number to find whether nth Fibonacci number is prime (3 ~ 20) : 5

Fibonacci (5) = 8 is not a prime number.

Enter C/c for continue or Q/q for quit : Q

Program Terminating

<Input handling example 2>

Enter a number to find whether nth Fibonacci number is prime (3 ~ 20) : 2

Not a valid number. Try again.

Enter a number to find whether nth Fibonacci number is prime (3 ~ 20) : 5

Fibonacci (5) = 8 is not a prime number.

Enter C/c for continue or Q/q for quit : Q

Program Terminating

3. Output Guidelines

1) Display a friendly message to explain the program.

2) Display a friendly message to receive input from user.

4 / 6

3) Display a friendly message for the invalid inputs.

4) Leave a space line after receiving the inputs and before the result is displayed.

5) Follow the format of the outputs shown in <example 1> and <example 2>.

5 / 6

[HW-03] N Locker door problem

1. Description

N students are assigned lockers 1 through N. The student assigned to locker number 1 closes all N

lockers. The student assigned to locker number 2 then opens all lockers whose numbers are

multiples of 2. The student assigned to locker number 3 changes the status of all lockers whose

numbers are multiples of 3 (e.g. locker number 3, which is open gets closed, locker number 6, which

is closed, gets opened). The student assigned to locker number 4 changes the status of all locker

whose numbers are multiples of 4, and so on for all N lockers.

Write a program that read input N, process door alteration as described, and display the results as

shown in the output examples.

2. Output

Check the validity of the input value as shown in <Input handling example 1>.

※ note: Gray colored background area is where the user needs to input

<Input handling example 1>

Enter a number of lockers (1 ~ 1000): 5

Door 1 closed

Door 4 closed

There are 3 lockers open and 2 lockers closed.

Enter C/c for continue or Q/q for quit : C

Enter a number of lockers (1 ~ 1000): 10

Door 1 closed

Door 4 closed

Door 9 closed

There are 7 lockers open and 3 lockers closed.

Enter C/c for continue or Q/q for quit : Q

Program Terminating

<Input handling example 2>

6 / 6

Enter a number of lockers (1 ~ 1000): 0

Invalid input. Try again.

Enter a number of lockers (1 ~ 1000): 5

Door 1 closed

Door 4 closed

There are 3 lockers open and 2 lockers closed.

Enter C/c for continue or Q/q for quit : Q

Program Terminating

3. Output Guidelines

1) Display a friendly message to explain the program.

2) Display a friendly message to receive input from user.

3) Display a friendly message for the invalid inputs.

4) Leave a space line after receiving the inputs and before the result is displayed.

5) Follow the format of the outputs shown in <example 1> and <example 2>