1 / 51

Structured Problem Solving 2009-2010

Structured Problem Solving 2009-2010. Week 7: Java basics Stewart Blakeway blakews@hope.ac.uk 0151 291 3113. Java: The Basics. Pages 69 - 87. What we have done already. Seen what an algorithm is a set of instructions that, if carried out, will lead to a successful conclusion

aldan
Télécharger la présentation

Structured Problem Solving 2009-2010

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. Structured Problem Solving2009-2010 Week 7: Java basics Stewart Blakeway blakews@hope.ac.uk 0151 291 3113

  2. Java: The Basics Pages 69 - 87

  3. What we have done already • Seen what an algorithm is • a set of instructions that, if carried out, will lead to a successful conclusion • Learned how to represent algorithms in • Structured English • Flow charts • Used variables to remember • Applied the top down, stepwise refinement approach to creating algorithms • Looked at problems more oriented towards being solved on a computer – stacks, queues, functions, procedures

  4. What we shall do today • What a computer program is • Low level programming • High level programming • The Java programming language

  5. What we shall do today • What a computer program is. • Low level programming • High level programming • The Java programming language

  6. A computer program • .. is a set of instructions • Stored on disc • Patterns of 0s and 1s • Copied into main memory when required • Executed by CPU fetching and executing the instructions from main memory

  7. ThreeBit • Machine code (non-mnemonics mode)

  8. What we shall do today • What a computer program is. • Low level programming • High level programming • The Java programming language

  9. ThreeBit Instruction format 001 01101

  10. ThreeBit Instruction format 001 01101 Op code What the instruction is to do (add, multiply, move)

  11. ThreeBit Instruction format 001 01101 Op code What the instruction is to do (add, multiply, move) Operand What the instruction is to do it to

  12. Programming in machine code • Almost impossible to spot errors. • Easy to mistype a 1 for a 0 and vice versa without noticing • Boring to do • Meaningless to read

  13. Programming in machine code • First generation language

  14. 1950s solution: Assembly language • Assembly language • uses mnemonics for op codes • like ThreeBit • LDI • LDD • STD • ADD • SUB • JMP • JEZ • STP

  15. 1950s solution: Assembly language

  16. 1950s solution: Assembly language • LDI 20 • Load the CPU accumulator register with the value 20 • STD 30 • Copy the CPU accumulator register contents to memory location 30 • ADD 10 • Add the contents of memory location 10 to the CPU accumulator register

  17. 1950s solution : Assembly language • Other processors use different mnemonics • mov a, 0 • moves 0 into a register labelled a • Special program translates assembly language into machine code • Assembler

  18. 1950s solution : Assembly language • One line of assembly code for one line of machine code • Assembly language is a low level language – it is very close to being in written in terms the machine understands

  19. 1950s solution : Assembly language • Easier to write but still difficult to get right • Many hundreds of instructions to do simple things like input and output • Can only run on one type of machine • Not easy to tell what an assembler program is intended to do by reading it

  20. What we shall do today • What a computer program is. • Low level programming • High level programming • The Java programming language

  21. 1960s solution: High level languages • Pioneers decided to: • enable scientist, engineer and business programmers to write programs in a language that looked familiar to them • avoid needing to know the internal structure of the computer • high level programming language • Invented compiler programs that would translate high level programs into machine code automatically • the compiler can generate machine code from the high level language • E.g. GOTO becomes JMP op code • the compiler knows the internal structure of the computer

  22. 1960s solution: High level languages • FORTRAN, COBOL were the earliest • FORTRAN aimed at scientist and engineers • COBOL aimed at business people • Look like Structured English

  23. FORTRAN Example READ *, A, B, C X1 = (-B + SQRT(B*B - 4*A*C)) / (2*A) X2 = (-B - SQRT(B*B - 4*A*C)) / (2*A) Science and Engineering Oriented Language FORmula TRANslation

  24. COBOL Example IF HOURS_WORKED OF PAYROLL_RECORD IS GREATER THAN 40 PERFORM PAY_CALCULATION_WITH_OVERTIME ELSE PERFORM_PAY_CALCULATION_NO_OVERTIME COMPUTE GROSS_PAY = REGULAR_PAY + OVERTIME_PAY Business oriented language COBOL == COmmon Business Oriented Language

  25. 1960s solution: High level languages • Key features of a high level language • Written in a language the user can understand • Program looks like an algorithm so easier to write • Does not depend on knowledge of internal workings of the computer • Can be run in different types of machines

  26. 1960s solution: High level languages • Compiler • Special program translates high level language into machine code • Lots of different languages • C, C++, Java, Python, PHP, Basic, Visual Basic, C#, Pascal, Fortran, COBOL, Lisp, Prolog • which one to use ? • discussion on page 71

  27. Compiling a program • This program is written in C • another high level language

  28. On this module ... • ... we shall use the high level programming language called Java • But what we do with Java can be done with many other languages e.g. Pascal, C, C++

  29. Making a Program • The steps to be followed in creating a successful program include: • writing down a design for the program in Structured English • translating the design into the chosen high level language: Java in your case

  30. Three spaces in indentation Programming house style • Using a house style looks more professional • Follow the Liverpool Hope house style • See Appendix B, page 106 • variable names and method names in lower case • Three spaces for each indentation • while (a>b) • { • System.in.read(first); • }

  31. Structure of a Java program in Java Trainer

  32. Structure of a Java program in Java Trainer

  33. Translating a design into Java A := 8 B := 11 C := A + B display ‘Answer is ‘, C The design …

  34. Translating a design into Java • We need to create two sections • declarations • statements Design A := 8 B := 11 C := A + B display ‘Answer is ‘, C

  35. Translating a design into Java • Create a data table Design A := 8 B := 11 C := A + B display ‘Answer is ‘, C

  36. Translating a design into Java • Create the declarations int a; int b; int c;

  37. Translating a design into Java If we want to store numbers with a decimal fractional part e.g. money values, then we must declare the variable as a real number having double precision:double x;

  38. Translating a design into Java • Create the statements Design A := 8 B := 11 C := A + B display ‘Answer is ‘, C a = 8; b = 11; c = a + b; System.out.println(“Answer is: ” + c);

  39. Read and write/display in Java Design read(X) display X display ‘X is’, X Java System.in.read(x); System.out.println(x); System.out.println(“x is ”+x);

  40. print and println System.out.print(“One ”); System.out.print(“Two ”); System.out.print(“Three ”); System.out.println(“One ”); System.out.println(“Two ”); System.out.println(“Three ”); Produces: One Two Three Produces: One Two Three

  41. Printing text and variable values double a; int b; a = 4.7; b = 8; System.out.println(“a is ” + a + “ b is “ + b); Output: a is 4.7 b is 8

  42. Printing text and variable values double a; int b; a = 4.7; b = 8; System.out.println(“a is ” + a + “ b is “ + b); Output: a is 4.7 b is 8 Text between quotes printed exactly as written

  43. Printing text and variable values double a; int b; a = 4.7; b = 8; System.out.println(“a is ” + a + “ b is “ + b); Output: a is 4.7 b is 8 Text outside quotes treated as variable names – print their values

  44. Pascal and Java Pascal Program PROGRAM AddVat; VAR Price, VAT, Total: Integer; BEGIN Price := 20; VAT := 3; Total := Price + VAT; WriteLn(VAT, Total); END. Java Trainer equivalent int Price; int VAT; int Total; Price = 20; VAT = 3; Total = Price + VAT; System.out.println(VAT, Total);

  45. Pascal and Java: declarations Pascal Program PROGRAM AddVat; VAR Price, VAT, Total: Integer; BEGIN Price := 20; VAT := 3; Total := Price + VAT; WriteLn(VAT, Total); END. Java Trainer equivalent int Price; int VAT; int Total; Price = 20; VAT = 3; Total = Price + VAT; System.out.println(VAT, Total);

  46. Pascal and Java: statements Pascal Program PROGRAM AddVat; VAR Price, VAT, Total: Integer; BEGIN Price := 20; VAT := 3; Total := Price + VAT; WriteLn(VAT, Total); END. Java Trainer equivalent int Price; int VAT; int Total; Price = 20; VAT = 3; Total = Price + VAT; System.out.println(VAT, Total);

  47. Let’s try a program int age; intyearOfBirth; System.out.print ("How old are you?"); System.in.read(age); yearOfBirth = 2010 - age; System.out.println ("Ah, you must of been born in " + yearOfBirth); • int age; • System.out.print ("How old are you?"); • System.in.read(age); • System.out.println ("Ah, you must of been born in " + (2010-age) );

  48. Another String name; String doing; System.out.println ("Who are you?"); System.in.read (name); System.out.println ("What are you doing"); System.in.read (doing); System.out.println ("Hello " + name + " why are you " + doing + " when you could be programming?");

  49. Arrgh! Syntax! int a; intB; int c; a = 9; b = 12; C = 0; c = a; a = b; b = c 3 Syntax Errors Can you spot them?

  50. Arrgh! Syntax! 3 Syntax Errors Can you spot them? double wages; double tax; System.out.println ("How much did you get paid this week?"); System.In.read(wages); tax = wage * 0.20; System.out.println ("You owe £" + tax " in taxes");

More Related