# Mark Brown Tuition

Physics, Mathematics and Computer

Science Tuition & Resources

# Longer Exercises using Python

Posted on 22-05-19 in Exercises

## Q : School trip to the theme park!¶

Our program needs to estimate the cost per ticket sold to students. Each ticket will cost £25 however the theme park gives 1 free ticket for every 10 sold. Each coach can hold 50 people maximum and costs £300 per coach.

```
1. *N* Students have promised they wish to come.
Use this to calculate the cost per ticket based on *N* students going.
If the cost per ticket is greater than £50 cancel the trip.
2. Keep track of each student who has paid/not-paid.
Tell the teacher who has not yet paid and how much in profit or in debt the school is for the trip.
```

Ensure user inputs are validated at each step.

```
N = 50
cost_per_ticket = 50
# ...
```

## Q : Ask for Parcels¶

A post office would like a program to classify (and charge!) customers sending parcels.

```
1. Ask user for parcels.
For each parcel ask for the following Information (length, width, height, weight)
Continue to ask until the user wishes to stop.
Reject parcels with any dimension greater than a metre.
Reject weights > 100kg.
2. After collection of parcel information classify according to the following:
small : all dimensions < 10cm
medium : one dimension can be upto 50cm. All other dimensions below 20cm.
large : all dimensions < 1m
light : weight < 1kg
normal : weight inbetween
heavy : weight > 50kg
For example
length : 0.1, width : 0.4, height : 0.15, weight : 0.5
would be a medium-normal parcel
3. Parcels are charged at different rates.
1st class parcels have a base price of £1.00
2nd class parcels have a base price of £0.50
small : additional 50 pence
medium : additional 100 pence
large : additional 200 pence
light : no additional charge
medium : additional 20 pence per kg
heavy : additional 50 pence per kg
```

```
# ...
```

## Q. List all factors of a given number¶

Input a positive integer and output the total number of factors along with what they are.

`For example: value = 12 12 has 5 factors these are : 2, 3, 4, 6 and 12`

Calculate the number of factors for all numbers between 2 and the user input integer

*N*. Output the number with the highest number of factors`For example: N = 10 should output : In the range 1 to 10: 6 has the most number of factors (3)`

```
value = 15
# ...
```

## Q. Count frequency from a list¶

Create a list of *N* random numbers between 1 and 100. Count the frequency of each number 1 to 100.

```
For example:
N = 1000
39 occurs 52 times
53 occurs 82 times
24 occurs 74 times
0 occurs 39 times
11 occurs 18 times
...
```

```
# ...
```

## Q. Convert number into arbitrary base¶

Take a number *N* and turn it into an arbitrary base (between 2 and 32 inclusive)

```
For example
N = 7 in base 2 is 111
N = 255 in base 16 is ff
N = 16 in base 8 is 20
```

```
# ...
```

## Q. Summation Upto Limit¶

```
Create an empty list
Add a random number between -50 and 50 to the list
Continue to do so until the list has a total over 200
Output the list and how many numbers were added
```

```
# ...
```

## Q. Implement the sieve of eratosthenes¶

The sieve of eratosthenes is a method to calculate primes[1].
Implement this in Python for numbers between 1 and *N*

```
# ...
```

## Q. Output Overlapping Terms¶

Two words are passed. Only output letters from the first which appear in the second, otherwise '_'

```
For example first = 'cheese' second = 'he'
outputs : '_hee_e'
```

**extension** Use this to produce a game of hangman

```
# ...
```

## Q. Output the times table¶

Create a times table from 1x1 to $N \times N$

```
1 2 3 4 5 6 7 8 9 10 11 12
2 4 6 8 10 12 14 16 18 20 22 24
3 6 9 12 15 18 21 24 27 30 33 36
4 8 12 16 20 24 28 32 36 40 44 48
5 10 15 20 25 30 35 40 45 50 55 60
6 12 18 24 30 36 42 48 54 60 66 72
7 14 21 28 35 42 49 56 63 70 77 84
8 16 24 32 40 48 56 64 72 80 88 96
9 18 27 36 45 54 63 72 81 90 99 108
10 20 30 40 50 60 70 80 90 100 110 120
11 22 33 44 55 66 77 88 99 110 121 132
12 24 36 48 60 72 84 96 108 120 132 144
```

```
# ...
```

## Q. Number of chocolate bars that can be bought¶

```
If chocolate bar costs X and money is Y (Y > x)
How many chocolate bars can we afford?
How much change do we get?
```

```
# ...
```

## Q. Produce Pascal's Triangle¶

Output Pascal's triangle[1] upto the *N*th row

[1]https://simple.wikipedia.org/wiki/Pascal%27s_Triangle

```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
```

```
# ...
```

## Q. Multiplication and Division of positive numbers¶

Implement multiplication and division using '+' and '-' **not built-in x or /**

```
# ...
```