Chris Pollett>Old Classes>PIC 10a, Spring 2000>Hw2>Hw2 Solutions
//
//Program Name: RandomPlotter.cpp
//Purpose: Get the parameters of a linear congruential
// generator from the user. Then prints out that
// many rows of the generator.
//Known Bugs: none
#include < iostream.h >
void RandomPlotter( int modulus, int scalar, int offset, int seed, int numberOfRows);
// Prints out numberofRows many rows of the generator
void PrintRow(int columns);
// Prints out columns spaces followed by a * and a newline
//
// Function Name: main()
// Purpose: Gets generator parameters from user then call RandomDrawer
// to draw out the random number generator
//
// Known Bugs: none
//
void main()
{
// Get inputs from user
//
int modulus, scalar, offset, seed, numberOfRows;
cout <<"Welcome to the linear congruential\n"
<<"random number plotter.\n\n"
<<"Please enter the data asked for below to see a plot.\n"
<<"All inputs should be positive integers.\n\n";
cout << "Enter a modulus:\n";
cin >> modulus;
cout << "\nEnter scalar:\n";
cin >> scalar;
cout << "\nEnter offset:\n";
cin >> offset;
cout << "\nEnter start seed:\n";
cin >> seed;
cout << "\nEnter number of rows:\n";
cin >> numberOfRows;
// Now do drawing...
//
RandomPlotter( modulus, scalar, offset, seed, numberOfRows);
}
//
// Function Name: RandomPlotter()
// Purpose: Prints out numberofRows many rows of the generator
// uses the function PrintRows to print out an individual
// row.
//
// Known Bugs: none
//
void RandomPlotter( int modulus, int scalar, int offset, int seed, int numberOfRows)
{
int i=0;
while (i < numberOfRows)
{
PrintRow(seed);
seed = (scalar*seed+offset)%modulus; //formula
//to get next random number
i++;
}
}
//
// Function Name: PrintRow
// Purpose: Prints out columns spaces followed by a * and a newline
// used by RandomPlotter for printing out a row
//
// Known Bugs: none
//
void PrintRow(int columns)
{
int i=0;
while(i< columns)
{
cout << " ";
i++;
}
cout << "*\n";
}