Written by Nick Parlante and Juliette Woodrow
This week in section, your first priority is to meet your section leader and discover what sections in CS106A are all about. Your section leader will therefore spend the first part of this week's session on introductions and telling you the things you need to know, such as how to sign up for interactive grading. Afterwards, they will move on to cover some of the important material from class in a setting that is small enough for you to go over practice problems and ask questions. This week, your goal is to gain familiarity with nested loops and images.
Image Range-Loop Problems
You might find nested
y,x range loops helpful in solving these.
Problems like this are well suited to making a drawing first to think
through the algorithm before coding, and especially to get the
arithmetic for each coordinate exactly right. These algorithms are a
magnet for off-by-one errors.
A good first step, as in lecture, is to sketch out the pixel grid
coordinates as in lecture to plan how your algorithm will access the
Understanding Nested For Loops
What does this code print?
for i in range(2): for j in range(4): print(i, j)
In this problem, your job is to write a function
aqua_bars(filename, bar_height) which takes as input a filename of an
image and an integer bar height. In the function, create a new out image
tall enough to hold a copy of the original image, plus extra space at
the top and bottom for horizontal, aqua colored bars. Each bar should
have have the height given in the bar_height parameter. A white pixel
can be changed to aqua by setting its red value to 0. Return the out
image when done.
Here is an example run of the function for the image 'yotter-100.jpg' shown below:
In this probelm your job is to define a function,
which creates an out image 100 pixels wider than the original but the
same height and copies a vertically-flipped version of the original
image to the out image, leaving a 50 pixel wide margin at the left and
right sides untouched (white). At the end of the function return the out
Here is an example run of the function for the image 'poppy-200.jpg' show below:
` make_up1('poppy-200.jpg') `
Here is some artwork to help you visualize how the coordinates change:
This problem starts with the code for up1 already done. Add code to paint the two margin areas purple by setting the green value of every pixel to 0. This can be done by adding a second for/y/x nested loop after the first. Optional: Solving with a second for/y/x loop is fine. However, the for/y part is not actually required. The code can position the second for/x loop inside the existing "up1" for/y loop. Get the code working first, then try deleting the second for/y loop to see it work. Return the out image.
Here is an example run of the function for the image 'poppy-200.jpg' show below:\
` make_up2('poppy-200.jpg') `