Question
This question provides an opportunity for you to demonstrate your understanding of the problem-solving approach taught in TM112 and the patterns introduced in Block 1
This question provides an opportunity for you to demonstrate your understanding of the problem-solving approach taught in TM112 and the patterns introduced in Block 1 Part 4 and Block 2 Part 2. You can find an overview of the problem-solving approach and a list of all the patterns TM112 teaches in the Problem solving and Python quick reference and you will need to refer to this document as you work on the question.
Important note: you do not need to get a working program in part a. in order to attempt part b.
A student wants to design and implement a Python program to convert any 6-bit unsigned binary number to its decimal equivalent. There are many ways of doing this, but here is their initial top-level decomposition:
> Convert binary to decimal
>> Input a list of six 1s and 0s corresponding to the binary number to be converted
>> Input a list of six column weightings consisting of powers of two
>> Create a new list that contains the decimal values of each binary digit of 1 in the input list
>> Add up the decimal values in the new list and print result
a. In this part of the question you will consider only this section of the top-level algorithm:
>> Input a list of six 1s and 0s corresponding to the binary number to be converted
>> Input a list of six column weightings consisting of powers of two
>> Create a new list that contains the decimal values of each binary digit of 1 in the input list.
In order to test your code you should also add the step
>> print the new list
In order to test this part of your program, you will create a binary number based on your PI. [Your PI is the long number that starts with a letter, followed by either seven digits or 6 digits and an X].
Perform the following steps with pen and paper you should not write code for these steps:
For each of the first 6 digits in your PI, create an input list of 1s and 0s of length 6 as follows:
If a digit in your PI is even, append 0 to the input list, if it is odd, append 1 to the input list.
For example, for the PI B0381720, the first six digits (in order) are even (0), odd (3), even (8), odd (1), odd (7), even (2).
So your input list would be [0,1,0,1,1,0]
The list of conversion values for converting binary to decimal will always be [32, 16, 8, 4, 2, 1].
So the input list [0,1,0,1,1,0] would result in the output list [16, 4, 2].
i. Describe the type of the input and output data for this first task and describe the allowable values for each.
ii. Specify one further test list in addition to the list you have created using your PI number. Make sure that you state the test input, the expected output and a brief explanation of why you selected this test.
iii. Write an algorithm based on Pattern 2.3 Note that you will need to modify step 4ai.
iv. Implement your algorithm as Python code. Your code must match the steps of your algorithm and you should use comments in the code to make it clear how the two correspond. Marks will be lost if the program does not follow the algorithm. Copy your Python code, as text, into your Solution document. Name your Python file Q2a_OUCU.py, where OUCU is your OU computer username, e.g. abc123. Then include the code file in your TMA zip file.
(Filters an existing list and generates a new list that only includes those values of the input list that satisfy some condition.) 2 initialise other inputs of the problem 3 initialise the output_list to the empty list 4 for each input_value of the input_list: 4a if the input_value satisfies the condition: 4ai append the input_value to the output_list 5 print the output_list
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started