Whenever writing a code, we have to ensure that it is well organised. An important way to reuse blocks of code lines many times in the same program is to make a function and simply call it each time instead of writing it again and again. Let us continue from the last lesson.
Header Files
•Header files contain
–Function
prototypes
–Definitions of
data types and constants
•Header files ending with .h
–Programmer-defined
header files
#include “myheader.h”
•Library header files
#include
<cmath>Random Number Generation
•
rand function (<cstdlib>)
–
i = rand();
–
Generates unsigned integer between 0 and
RAND_MAX (usually 32767)
•
Scaling and shifting
–
Modulus (remainder) operator: %
•
10 % 3 is 1
•
x % y is between 0 and y – 1
–
Example
i = rand()
% 6 + 1;
•
“Rand() % 6” generates a number between 0
and 5 (scaling)
•
“+ 1” makes the range 1 to 6 (shift)
–
Next: program to roll dice
•
Next
–
Program to show distribution of rand()
–
Simulate 6000 rolls of a die
–
Print number of 1’s, 2’s, 3’s, etc. rolled
–
Should be roughly 1000 of each
•
Calling rand() repeatedly
–
Gives the same sequence of numbers
•
Pseudorandom numbers
–
Preset sequence of "random" numbers
–
Same sequence generated whenever program run
•
To get different random sequences
–
Provide a seed value
•
Like a random starting point in the sequence
•
The same seed will give the same sequence
–
srand(seed);
•
<cstdlib>
•
Used before rand() to set the seed
•
Can use the current time to set the seed
–
No need to explicitly set seed every time
–
srand( time( 0 ) );
–
time( 0 );
•
<ctime>
•
Returns current time in seconds
Game of Chance and Introducing "enum"
•
Enumeration
–
User defined data type
enum typeName {constant1, constant2…};
–
Constants start at 0 (default), incremented by 1
–
Constants need unique names
•
Example
enum Status {CONTINUE, WON,
LOST};
Status enumVar;
enumVar = WON; // cannot do
enumVar = 1
•
Enumeration constants can have preset values
enum Months { JAN = 1, FEB, MAR,
APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC};
–
Starts at 1, increments by 1
•
Next: craps simulator
–
Roll two dice
–
7 or 11 on first throw: player wins
–
2, 3, or 12 on first throw: player loses
–
4, 5, 6, 8, 9, 10
•
Value becomes player's "point"
•
Player must roll his point before rolling 7 to
win
Post a Comment