Programming Part I: The basics - University of Calgary

Programming: Part II In this section of notes you will learn about more advanced programming concepts such as looping, functions. James Tam Repetition Problem: what if a program or portion of a program needs to repeat itself. Example: Allowing a player to re-play a game again. Continuing to prompt a person to type in value if they enter in an invalid response. Loops: Allows a program or portion of a program to be repeated There are two main types of loops in Python (for and while).

In this course well focus on the latter. James Tam The For Loop Format: for in : body Example: Available online and is called loop1.py def loop1 (): total = 0 for i in range (1, 4, 1): total = total + i print "i=", i, " total=", total print "Done!"

James Tam Additional For-Loop Examples Available online and is called loop2.py def loop2 (): for i in range (5, 0, -2): print "i=", i print "Done! Available online and is called loop3.py def loop3 (): for i in [5, 2, 3, 10]: print i print "Done!"

James Tam Real: Problem Solving Approaches Bottom up Top down James Tam Bottom Up Approach To Design Start implementing all details of a solution without first developing a structure or a plan.

Here is the first of my many witty anecdotes, it took place in a Tim Hortons in Balzac.. Potential problems: (Generic problems): Redundancies and lack of coherence between sections. (Programming specific problem): Trying to implement all the details of large problem all at once may prove to be overwhelming. James Tam Top Down Design 1. Start by outlining the major parts (structure) My autobiography Chapter 1:

The humble beginnings Chapter 2: My rise to greatness 2. Then implement the solution for each part Chapter 1: The humble beginnings It all started seven and one score years ago with a log-shaped work station James Tam Writing Programs Using The Top Down Approach Functions can be used to break a program down into

manageable parts. Each part of the program is defined by a function. Each function is written one at a time and tested before being added to the main program. James Tam A Very Simple Example Of Using Functions Available online and is called fun1.py4. Statements inside of display execute one-at-a-time. def display (): print "Inside display" 2. First statement inside main runs

def main (): print "Starting main" display () print Display is done, back in main 3. Second statement invokes the function called display 5. Execution returns back to main and the third and final statement here executes. 1. Starting the main program (function called main)

James Tam Issue: Whats Inside A Function Stays Inside A Function Note: This example wont translate into binary so it cant be run. def fun (): Num??? Never heard of it!!! print num def main (): num = 10 print num

fun () James Tam Passing Information Into Functions Parameters/Inputs: Allows the contents of a variable to be passed into a function. (Modified version of the previous example and it will work): def fun (num): print num def main (): num = 10 print num fun (num) The contents of variable

num in main are stored in a local variable called num its num in fun :D Passes the contents of num from the main function into function fun James Tam Passing Multiple Parameters/Inputs Format: def function name (input1, input2,...inputn)

body Example: def fun (num1, num2, num3, string1) num1 = num2 + num3 string1 = dude! James Tam In A Similar Fashion Values Must Be Returned From Functions def fun (): num = 1 print num def start (): fun ()

Num??? Never heard of it???!!! print num James Tam Returning Values From Functions Format (Writing the function being called): def function name (): return value1, value2,...valuen Examples (Writing the function being called): def fun1 ():

num1 = 10 num2 = 20 return num1, num2 def fun2 (num1, num2): num3 = num1 + num2 return num3 James Tam Returning Values From Functions (2) Format (Storing the return values): variable1, variable2,...variablen = function name () Examples (Storing the return values): num1, num2 = fun1 () num3 = fun2 (num1, num2)

James Tam Parameter Passing And Return Values: An Example Available online and is called interest.py: def calculate (principle, rate, time): interest = principle * rate * time total = principle + interest return interest, total def start (): interest, total = calculate (100, 0.1, 5) print "Interest \$ ", interest print "Total \$", total James Tam

Top Down Approach: Example Of Breaking A Programming Problem Down Into Parts (Functions) Calculate Interest Function: Get information Function: Do calculations Function: Display results James Tam

Using Output Statements To Understand How A Program Works Example: what does the following program do? def start (): for i in range (1, 20, 1): An output statement shows the successive values of i inside the loop j=i print j=, j if (i % 5 == 0): An output statement shows the

successive values of i inside the loop and inside the if-branch print i=, i James Tam Information About Pictures In JES Images/pictures consist of pixels Each pixel has a set of coordinates (x, y) that determine its location. Example image (200 pixels x 100 pixels) Top left (x =0, y = 0) X coordinate (200)

Top right (x =200, y = 0) Y coordinate (100) Bottom left (x =0, y = 100) Bottom right (x =200, y = 100) James Tam Picture/Image-Related Functions In JES For more details look under the help menu under Picture functions. addLine (picture, startX, startY, endX, endY)

addRect (picture, startX, startY, width, height) addRectFilled (picture, startX, startY, width, height, color) addText (picture, xpos, ypos, text): Explanation of the function values picture: the name of the picture that you want to edit startX: the starting pixel coordinate on the x axis startY: the starting pixel coordinate on the y axis endX: the ending pixel coordinate on the x axis endY: the ending pixel coordinate on the y axis width: the width of the rectangle in pixels weight: the height of the rectangle in pixels color: the color to fill the rectangle with (red, green, blue etc.) James Tam Example Of Editing A Picture

Available online and is called picture1.py def picture1(): lion = makePicture ("lion.jpg") addLine (lion,0,0,100,100) addRectFilled (lion,100,100,100,200,red) addText (lion,200,300,"Lion dance for the Lions Club") show (lion) Important: Typically you want to show a picture only after you have finished all your edits! James Tam Review: The 24 Bit Color Model Each pixels color is specified with 24 bits:

8 bits (256 combinations) for the red component 8 bits (256 combinations) for the blue component 8 bits (256 combinations) for the green component In JES the color value is an integer ranging from 0 255. Smaller numbers result in darker pixels. Larger numbers result in lighter pixels. James Tam JES Pixel-Related Functions Get functions: find out the color level of a particular pixel getRed: returns the red level (0 255) of a pixel getBlue: returns the blue level (0 255) of a pixel getGreen: returns the green level (0 255) of a pixel

Set functions: change the color of a particular pixel setRed: change the red level of a pixel (to a value from 0 255) setBlue: change the blue level of a pixel (to a value from 0 255) setGreen: change the green level of a pixel (to a value from 0 255) James Tam Example: Seeing The Color Values Of A Picture Available online and is called picture2.py. It also requires that you download and save the picture smallLion.jpg into the folder that you run JES from. def picture2 (): picture = makePicture ("smallLion.jpg") show (picture) allPixels = getPixels (picture) for pixel in allPixels:

red = getRed (pixel) blue = getBlue (pixel) green = getGreen (pixel) print "RBG:", red, blue, green James Tam Example: Changing The Color Values Of A Picture Available online and is called picture3.py. It also requires that you download and save the picture mediumLion.jpg into the folder that you run JES from. def picture3 (): picture = makePicture ("mediumLion.jpg") show (picture) allPixels = getPixels (picture) for pixel in allPixels: red = getRed (pixel) blue = getBlue (pixel)

green = getGreen (pixel) if ((red + 50) <= 255): setRed (pixel, (red+50)) if ((blue + 50) <= 255): setBlue (pixel, (blue+50)) if ((green + 50) <= 255): setGreen (pixel, (green+50)) repaint (picture) Show the original picture loaded from file. Show the original picture after it has been manipulated. James Tam You Should Now Know What is the purpose of a loop How to write a for-loop in JES How functions are a way of implementing a top down approach to program design How to write and trace through a program that employs functions How to pass information to and from functions via parameters and return values A technique for tracing programs: using output statements Functions for working with images/pictures in JES James Tam

Recently Viewed Presentations

• Booster Club. Another key difference - Clear Horizons does not have a PTA, we have a Booster Club. Booster Club supports us through donating time and funds toward celebrating our students. They are here tonight to answer questions and give...
• verse - poem - poesy - rhyme. Lyric:A type of poetry that expresses the poet's emotions. It often tells some sort of brief story, engaging the reader in the experience. ... A slant rhyme or half rhyme occurs when the...
• Benchlearning among Western Balkan PES. 3. Strengthen the capacities of Public Employment Services (PES) to facilitate the SEE 2020 labour mobility objective and prepare for future participation in the European Employment Services. Benchlearning initiative - conduct comprehensive benchmarking and follow...
• Net Present Value Last Time We spent the time developing our basic approach to DCF analysis. We discussed: The importance of a financial market to the economy and why investors receive interest (compensation) for saving/lending.
• CSE211 Computer Organization and Design Lecture : 3 Tutorial: 1 Practical: 0 Credit: 4 Deepak Kumar (Asst. Professor, LPU) * Register Transfer and Micro-operations * CSE 211 Overview Register Transfer Language Register Transfer Bus and Memory Transfers Arithmetic Micro-operations Logic...
• Repositories simultaneously available via CIFS/NFS Migration time depends on speed of the old and new environment Approach for replacement of optical jukeboxes, NetApp SnapLock etc.
• Behind the Scene of an Excellent Customer Experience. Jean-Pierre Renaud. ... R&D investment, best-in-class products. ... (PCI DSS) and you may need to create separation between organizations or businesses. [click] You could isolate traffic by configuring every network device, including...
• Moved to Chicago to begin career in Pharmaceuticals, started going by H. H. Holmes. 1893 built 3-story block-long hotel called the World's Fair Hotel (AKA the Murder Castle) It was a maze of dead end hallways, trap doors, torture chambers,...