PFC - Workshop 2
Question 1: Input and check ISBN number.
ISBN
This problem is slightly more difficult than the above problem. This one requires a data type that stores 10 digits.
Background
Publishers and bookstores use a number system called the International Standard Book Number (ISBN) system to identify books. At the start of publication, each book is assigned a unique ISBN. An ISBN, once assigned, can never be re-used. Click here for detailed information on this numbering system.
An ISBN consists of exactly 10 digits. The rightmost digit is the check digit. The check digit is validated modulo 11.
• multiply each digit from the first to the ninth by a weight from 10 to 2 respectively (the first digit by 10, the second by 9,..., the ninth by 2).
• the sum of the products plus the check digit should be divisible without remainder by 11.
• if there is a remainder, the whole number is not a valid ISBN.
Consider the following example:
ISBN 0003194876
|
check digit is 6
add first set of alternates to themselves
0 0 0 3 1 9 4 8 7
10 9 8 7 6 5 4 3 2
0 0 0 21 6 45 16 24 14 = 126
add check digit 6
total 132
divide by 11 12
remainder 0
Therefore this ISBN is valid
Specifications
Design a program that validates an ISBN. Your program keeps accepting a whole number and determining if that whole number is a valid ISBN. Your program terminates when the user enters 0 as the whole number.
The output from your program looks something like:
ISBN Validator
==============
ISBN (0 to quit): 0003194876
This is a valid ISBN.
ISBN (0 to quit): 0003194875
This is not a valid ISBN.
ISBN (0 to quit): 0
Have a Nice Day!
The data type long only guarantees room for 9 digits. The data type long long guarantees room for an integer with well over 12 digits (at least 64 bits of precision). The conversion specifier for a long long integer is %lld. The Borland 5.5 compiler does not include the long long data type, but instead provides __int64 and %I64d instead of %lld as the conversion specifier.
Question 2: Calculate approximately ex for given x.
Suppose epsi is a constant given by preprocessor directive statement
#define epsi 0.0001
write a program which input x real (double type) number, then calculate ex approximately by the formula:
ex ~ S = 1+ + + ... +
here n is the first integer for which | | epsi is satisfied.
Additional requirements:
Draw a flow chart on separate paper OR write pseudo-code as comment at the beginning of your programs to explain you algorithm.