 Download Presentation Computers and Programs

# Computers and Programs - PowerPoint PPT Presentation Download Presentation ## Computers and Programs

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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 ﬁnally 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