You are on page 1of 6

Context Diagram

Set head counter Head counter to 0

Initialize Counter Initialize Set Counter

Set Tail Counter Tail Counter to 0

Generate Random Number between 0 and


Generator Generate Number Generated
Number 0.99
Number > 0.5 Increase Head Count

Generate random
Number Generate Generate random
Number

Number <= 0.5 Increase Tail Count

Number of head/1000 *
Head Counter Calculate
100%

Calculate

Calculate Percentage

Calculate

Number of tails/1000 *
Tail Counter Calculate
100%
Head Percentage Print Print Result Print Head Percentage

Print Result

Print

Tail Percentage Print Result Print Tail Percentage

Data Flow Diagram

Generate Number
Number Generate Number
Number Generator

Check Number

Check
Increment head count Head Count
Number

Percentage Calculation
Increment tail count

Display head
Calculate
Tail Count Percentage Calculation Display and tail
Percentage
percentage
Data Dictionary

Coin Toss = Random Number Generator + Random Number Checker + Percentage Calculator

Random Number Generator = Number between low and high


o Low = 0
o High = 0.99
Random Number checker = Head + Tail
o Head = Number > 0.5
o Tail = Number <= 0.5
Percentage Calculator = Head percentage + tail percentage
o Head Percentage = Head Count / 1000 * 100%
o Tail Percentage = Tail Count / 1000 * 100%

Process Specification
Random Number Generator: The system generates a random number between 0 and 0.99.
Random Number Checker: The system uses the number generated to check if the number is
head or tail.
Percentage Calculator: The system calculates the total percentage of head or tails after all the
random numbers are generated.

Structure Chart

Coin Toss Probability


Calculator

Generate Random
Check Random Number Calculate Percentage
Number
Module Specification

Module: Generate Random Number


Purpose: Generate a random number between 0 and 0.99.
Uses: The number is used to verify whether the number should be considered a head or tail.
Returns: random number

Module: Check Random Number


Purpose: Check if the generated number is greater than 0.5 to be considered as head or less than or
equals to consider as tail.
Uses: To check if the generated number is head or tail and increment their counter respectively.
Returns: head or tail count.

Module: Calculate Percentage


Purpose: Calculate the percentage of head or tail after all the random numbers are generated.
Uses: Calculate the head and tail percentage.
Returns: head and tail percentage.

Implementation
Python Implementation
import random

# Variable to count number of head and tails


numHeads = 0
numTails = 0

# Function to generate random Number


def genarateRandom():
return random.random()

# Function to check if the number is head or tails


def checkRandom(number):
global numHeads, numTails

if number > 0.5:


numHeads = numHeads + 1
else:
numTails = numTails + 1

# Calculate head and tail percentage


def calculatePercentage(count):
return count / 1000.0 *100
#-----------Main Script ----------
# Random number variable
rand = 0.0

# Perform the coint toss 1000 times


for i in range(1000):
rand = genarateRandom()
checkRandom(rand)

# Calculate head and tail percentage


headPercentage = calculatePercentage(numHeads)
tailPercentage = calculatePercentage(numTails)

# Print the results


print "Head Percentage: ", headPercentage
print "Tail Percentage: ", tailPercentage

You might also like