In the last weeks of 2020, the NIN issue which hounded JAMB registration in the early part of 2020 reared its ugly head.
Amidst the panic caused by the sudden announcement that everyone must link their SIM cards to their NIN, we have made it into a new year.
I once wrote the article My Top 10 Predictions for 2020 for the year 2020. Considering the fact that I missed the most important event of the year 2020, I won’t be making any prediction for the New Year.
However, I wish everyone reading this a prosperous 2021.
Euclid’s Algorithm allows you to find the HCF of two numbers. The steps of the algorithm are given below:
Ask the user for 2 numbers
Test which one is bigger
Make the bigger number m and the smaller number n
Set r to be the remainder when m is divided by n
Set n to m
Set r to n
If r is 0, the HCF is n. Stop
Else go back to step 5
This article will cover steps 1 to 3. The first step is to create a script and name it euclid.py.
To write the code for step 1, enter the code shown below into the script:
# Ask the user for the first number
first_number = int(input("Please enter the first number: "))
# Ask the user for the second number
second_number = int(input("Please enter the second number: "))
To test which of the input numbers is bigger, we will use the greater than symbol. We will ignore other cases. The code to do this is shown below:
# Test if the second number is bigger than the first number
if (second_number > first_number):
# Swap if the first number is greater than the second number
temp = second_number
second_number = first_number
first_number = temp
# Print out to check the swap
Now the program can receive input and swap them correctly. Below is an image of a running program.
The SVG path element is used for drawing complex shapes in the SVG path specification. It is the most complex element for drawing built-in shapes.
Paths represent the geometry of the outline of an object using commands. They take a single attribute to describe what to draw. In SVG the path element is represented by d will take the path string. In RaphaelJS, the path string is given to the library to handle drawing.
We will use a grid of 500 by 500 pixels to cover the topic of paths. The code to create the grid is given below:
Now let us examine the commands that create the arrow.
M100 200 makes the starting point of the drawing at 100, 200 of the grid. Note that the origin of the drawing is in the top left corner of the grid.
H300 V150 draws a horizontal line to the point that is 300 from the origin and then a vertical line to 150 on the grid is drawn.
L450 250 L300 350 draws a line to point 450, 250 and then 300, 350 on the grid.
V300 H100 draws a line vertically to the point 300 on the y axis of the grid and a horizontal line of back to point 100 on the x axis.
Z completes the shape by drawing a line back to the initial point M.
To use relative paths, we would do this differently as we would have to take the relative position of each point. The advantage of using relative paths is that we can move the shape just by moving one point.
The code to draw the arrow using relative paths is shown below:
rx ry x-axis rotation y-axis rotation large arc flag sweep flag x y
paper.path("M100 200 A100 100, 0, 0 1, 200 200");
Will draw the curve shown below:
Paths become too complex to create manually and you should use a vector graphics editor like Inkscape. However, understanding the above commands will help you understand what the program is doing under the hood.