Solution of the simple task: Begin3
This section contains description of solving the following simple task in Python:
Begin3°. The sides a and b of a rectangle are given.
Find the area S = ab and the perimeter P = 2(a +
b) of the rectangle.
We shall use the IDLE Python as a programming environment, however the same results may be
received in the VS Code, PyCharm, and Wing IDEs that are also supported by Programming Taskbook.
Creating a template and acquaintance with the task
To create a template of the required task you should use the PT4Load tool
(starting with version 4.22, you can use the PT4Panel tool
for quick launch of all Programming Taskbook tools;
the PT4Panel shortcut is located on the desktop and in any working directory).
The template created for IDLE Python
consists of two files: the file pt4.py which contains the pt4 module
and the file Begin3.pyw which should contain the task solution. The file Begin3.pyw
will be loaded into the IDLE Python:
The program imports all functions from the pt4 module
and defines the solve function, which
already contains the task function
call that initializes the Begin3 task.
The solution of the task should be entered in the solve function
(of course any other functions may be used).
To run the program, press [F5] in IDLE, VS Code, Wing IDEs (and [Shift]+[F10] in PyCharm).
When the program is launched you will see two new windows:
the Python Shell window and the Programming Taskbook window with
a task text and initial data.
This running is considered as acquaintance running because
the program does not perform input-output operations.
To close the Programming Taskbook window click the Exit button or press [Esc] or {F5]/[F10] key in IDLE/PyCharm.
Note that after closing the Programming Taskbook window
the description of the program running will be output in the Python Shell window.
For return to the IDLE code editor, you should click on its window or press the [Alt]+[Tab] key combination.
Initial data input
Before solving tasks you should input initial data in the program.
In the Begin3 task the initial data are real numbers a and b
that refer to sides of the rectangle.
There are two functions that provide input of the real numbers: the get
function and the get_float function. The get_float function also
checks type of the current data item and
output error message if the type of data item differs from the float.
Let's use the get_float function:
def solve():
task("Begin3")
a = get_float()
b = get_float()
Run the program once again. You will see the new set of initial data. For each running of the
program a new initial data are generated, so it is necessary to develop an algorithm that processes correctly
all admissible sets of initial data.
Data input is performed correctly, but the program does not output results.
In such situation we have
the following message: "Correct data input: all required data are input, no data are output"
(Programming Taskbook version 4.15 or higher) or "Some data are not output" (previous versions).
Calculation and output results
Let's perform the required calculations and output results using the put
function:
def solve():
task("Begin3")
a = get_float()
b = get_float()
p = 2 * (a + b);
s = a * b;
put(P, S)
In this case the running leads to the following information in the status bar:
"Error NameError: name 'P' is not defined". After closing the Programming Taskbook windows
the more detailed error description will be output in the Python Shell window:
To correct the program it is enough to change its last statement as follows:
put(p, s)
When the program is running you can see output values at the panel of results.
Because we output data in inverse order, the status bar contains the error message "Wrong solution".
Right solution and its testing
To correct the last error it is enough to change order of two parameters of the put function:
put(s, p)
When this program is running you will see the testing panel on screen:
This panel appears when the program processes successfully at least one set of input data.
The progress bar shows the amount of tests which are already performed,
the text above the bar allows to determine how much tests should be performed successfully.
The program testing finishes in two cases: when all required tests are performed successfully
or when some test is failed.
In our case the algorithm is correct, therefore the message
"The task is solved!" will be shown.
To browse information about the task solving you can use PT4Results tool
(you may run this tool by pressing the [F2] key or clicking the Results label in the upper-right corner of
the Programming Taskbook window):
Begin3 y23/02 20:13 Acquaintance with the task.
Begin3 y04/02 15:07 Correct data input.
Begin3 y04/02 15:09 Error NameError.
Begin3 y04/02 15:12 Wrong solution.
Begin3 y04/02 15:15 The task is solved!
The letter "y" denotes the programming language being used (Python).
def solve():
task("Begin3")
a = get()
b = get()
put(a * b, 2 * (a + b))
|