1 / 63

Computers and Programs

Computers and Programs. A Whirlwind tour. The Basics. Programs perform computation on data Variables provide temporary locations to store data while the program is running Statements are the instructions for performing computations on data. Getting The Lecture Code.

nizana
Download Presentation

Computers and Programs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computers and Programs A Whirlwind tour slides draw freely on those of previous Professors Flinn, Severance and Prakash

  2. The Basics • Programs perform computation on data • Variables provide temporary locations to store data while the program is running • Statements are the instructions for performing computations on data

  3. Getting The Lecture Code • In Eclipse, right-click on lectures project • Team • Update to HEAD

  4. Variables • Programs perform computations on variables • A variable provides a location to store a value • Examples: • x = 3 • y = 'Paul' x 3 y 'Paul'

  5. Variables • Programs perform computations on variables • A variable provides a location to store a value • Examples: • x = 3 • y = 'Paul' • Subsequent statements can change a variable’s value by storing a new value • x = 4 x 3 4 y 'Paul'

  6. Variables (cont) • Each variable has: • A name (uniquely defines each variable) • A value (which can be changed) • A type, which defines: • A range of possible values • The set of operations that can be done to that variable

  7. Variable Names / Identifiers • Must start with a letter or _ • Must consist of letters, numbers, and _’s • Good: spam eggs spam23 • Bad: 23spam #sign var.12 • Case SenSitiVe • Different: spam SpamSPAM Z-2.3.1

  8. Reserved Words • You can not use reserved words as variable names / identifiers and del for is raise assert elif from lambda return break else global not try class except if or while continue exec import pass yield def finally in print Z-2.3.1

  9. Check Your Understanding (CYU) • Which of the following are valid variable names? • Paul • paul • jason42 • 42jason • for • forever

  10. Assignment and output • A statement can assign a value to a variable: • Syntax: <variable name> = <value> • Example: class_name = '182'

  11. Types • Some examples of data types: • 3, 5 Integer (whole numbers) • 4.0, -1.345 Floating point (rational numbers) • 'EECS 182' String • These are all atomic types • Composite types also possible • [1, 2, 3]: a list of integers • In time, you’ll define your own complex types

  12. Aside: Static vs. Dynamic Typing • Python is dynamically-typed • An assignment may change the type of a variable • Var = 3 (type is integer) • Var = "Hello, there!" (type is string) • I recommend you don’t do this! • Other languages (e.g., C) are statically-typed • Must declare variable’s type before using it • intVar = 3 (declares type as integer) • Var = "Hello, there!" (illegal statement)

  13. Expressions • A statement can assign the value of an expression to a variable: • x = 3 + 4 • An expression can contain variables: • E.g., (x + 2) * 2 • The assigned variable can be in the expression • y = y + 1

  14. Operations on Types • What did you learn?

  15. Evaluation of Expressions y Right side is an expression. The assignment statement : Plugs values of variables into expression Evaluates the expression. Sets value of variable on left to the result x 0.6 y =3.9 * x * ( 1 - x )

  16. Evaluation of Expressions y Right side is an expression. The assignment statement : Plugs values of variables into expression Evaluates the expression. Sets value of variable on left to the result x 0.6 0.6 0.6 y =3.9 * x * ( 1 - x )

  17. Evaluation of Expressions y Right side is an expression. The assignment statement : Plugs values of variables into expression Evaluates the expression. Sets value of variable on left to the result x 0.6 0.6 0.6 y =3.9 * x * ( 1 - x ) 0.4 0.936

  18. Evaluation of Expressions y 0.936 Right side is an expression. The assignment statement : Plugs values of variables into expression Evaluates the expression. Sets value of variable on left to the result x 0.6 0.6 0.6 y =3.9 * x * ( 1 - x ) 0.4 0.936

  19. Assignment Happens in Slow Motion • We can use the same variable on the left and right side of an assignment statement • Remember that the right side is evaluated *before* the variable is updated Z-34

  20. Evaluation of Expressions Right side is an expression. The assignment statement : Plugs values of variables into expression Evaluates the expression. Sets value of variable on left to the result x 0.6 x =3.9 * x * ( 1 - x )

  21. Evaluation of Expressions Right side is an expression. The assignment statement : Plugs values of variables into expression Evaluates the expression. Sets value of variable on left to the result x 0.6 0.6 0.6 x =3.9 * x * ( 1 - x )

  22. Evaluation of Expressions Right side is an expression. The assignment statement : Plugs values of variables into expression Evaluates the expression. Sets value of variable on left to the result x 0.6 0.6 0.6 x =3.9 * x * ( 1 - x ) 0.4 0.936

  23. Evaluation of Expressions Right side is an expression. The assignment statement : Plugs values of variables into expression Evaluates the expression. Sets value of variable on left to the result x 0.6 0.936 0.6 0.6 x =3.9 * x * ( 1 - x ) 0.4 0.936

  24. Incrementing • x = 10 • x = x + 1 • print x

  25. Incrementing • x = 10 • x = x + 1 • print x x 10

  26. Incrementing • x = 10 • x = x + 1 • print x x 10 11

  27. Summary of Expressions • Programming languages have lots of expressions • Expression is anything that evaluates to a value • Can be a string, number or virtually anything • Can be a single value or computed from several values using operators Z-2.3.2

  28. Examples of expressions • 2.0 * pi * r • 'My name is ' + first + ' ' + last • 17 • 'The temperature is ' + str ((fahrenheit – 32.0) * 5.0 / 9.0) + ' degrees Celsius' • And so on…

  29. CYU • What are the values of these expression? • (3+7)*2 • 'Hello' + 'world' • 'Hello' + 3

  30. Stored Programs • Like a recipe or installation instructions, a program is a sequence of steps (called statements) to be done in order • Some steps are conditional - they may be skipped • Sometimes a step or group of steps are to be repeated • Sometimes we store a set of steps to be used over and over as needed several places throughout the program Z-14

  31. Output Statements • The print statement takes one or more expressions separated by commas and prints the expressions to the screen separated by spaces. x = 6 print 2 print 2 + x print “Hello”, 4+5 2 8 Hello 9 Z-2.4

  32. hw1.py

  33. CYU • What will the output be? x = 1 y = 2 x = y y = x print x, y x y

  34. CYU • What will the output be? x = 1 y = 2 x = y y = x print x, y x 1 y

  35. CYU • What will the output be? x = 1 y = 2 x = y y = x print x, y x 1 y 2

  36. CYU • What will the output be? x = 1 y = 2 x = y y = x print x, y x 1 2 y 2

  37. CYU • What will the output be? x = 1 y = 2 x = y y = x print x, y x 1 2 y 2 2

  38. Conditional Steps x = 5 Output: Program: x = 5 if x < 10: print "Smaller" ifx > 20: print "Bigger" X < 10 ? print “Smaller” X > 20 ? print “Bigger” Z-199

  39. Conditional Steps x = 5 Output: Program: x = 5 if x < 10: print "Smaller" if x > 20: print "Bigger" X < 10 ? print “Smaller” X > 20 ? print “Bigger” Z-199

  40. Conditional Steps x = 5 Program: x = 5 if x < 10: print "Smaller" if x > 20: print "Bigger" Output: Smaller X < 10 ? print “Smaller” X > 20 ? print “Bigger” Z-199

  41. Conditional Steps x = 5 Program: x = 5 if x < 10: print "Smaller" if x > 20: print "Bigger" Output: Smaller X < 10 ? print “Smaller” X > 20 ? print “Bigger” Z-199

  42. Conditional Steps x = 5 Program: x = 5 if x < 10: print "Smaller" if x > 20: print "Bigger" Output: Smaller X < 10 ? print “Smaller” X > 20 ? print “Bigger” Z-199

  43. Conditional statement • if <expression>: <one or more statements> Read this as: if and only if the logical expression evaluates to true, execute the statement(s)

  44. Repeated Steps Output: Program: foriin range(5): print i i = 0 .. 4 print i Z-233

  45. Repeated Steps Program: for i in range(5): print i Output: 0 1 2 3 4 i = 0 .. 4 print i Z-233

  46. Definite Loops • Loops that run a fixed (i.e. definite) number of times • Loops that “iterate” through an ordered set • Loops that run “for” a number of times for abc in range(5): print abc Output: 0 1 2 3 4 Z-39

  47. Looking at In... • range(n) produces a sequence of numbers from 0 to n-1 • The block of code is executed once for each value in the sequence • The iteration variable moves through all of the values in the sequence Five-element sequence [ 0, 1, 2, 3, 4] Iteration variable for val in range(5) : ... block of code ...

  48. Stored (and reused) Steps Output: Program: def hello(): print "Hello" print "Fun" hello() hello() def print "Hello" print “Fun” hello() hello() We call these little stored chunks of code “subprograms” or “functions”or “procedures” or “methods”.

  49. Functions: Stored (and reused) Steps Output: Hello Fun Hello Fun Program: def hello(): print "Hello“ print "Fun" hello() hello() def print “Hello” print “Fun” hello() hello() We call these little stored chunks of code “subprograms” or “functions”or “procedures” or “methods”.

  50. Syntax: Code Blocks • Code blocks are started by colon • Each line of block is indented • Ends on a statement that is less indented def main(): print "This program illustrates a chaotic function" x = input("Enter a number between 0 and 1: ") for i in range(10): x = 3.9 * x * (1 - x) print x main() Fn block For block

More Related