Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOFTWARE AND PROGRAMMING 1 Lecture: Gor B4 7:40-9:00 (from 24.01.07) Lab: SH131, BBK536 6:00-7:30 (from 24.01.07) [each student must have obtained access.

Similar presentations


Presentation on theme: "SOFTWARE AND PROGRAMMING 1 Lecture: Gor B4 7:40-9:00 (from 24.01.07) Lab: SH131, BBK536 6:00-7:30 (from 24.01.07) [each student must have obtained access."— Presentation transcript:

1 SOFTWARE AND PROGRAMMING 1 Lecture: Gor B4 7:40-9:00 (from 24.01.07) Lab: SH131, BBK536 6:00-7:30 (from 24.01.07) [each student must have obtained access to Birkbeck computing] Lab SH131: students whose family names (surnames) begin A-L Instructor: Ms Marie-Helene Ng SCSIS, room NG26, tel. 020 7631 6725 E-mail: marie-helene@dcs.bbk.ac.uk Lab BBK536 : students whose family names (surnames) begin M-Y Instructor: Prof. Boris Mirkin SCSIS, room 111, tel. 020 7631 6746 E-mail: mirkin@dcs.bbk.ac.ukmirkin@dcs.bbk.ac.uk

2 2 Webpages Course web page at webCT: http://vle.bbk.ac.uk http://vle.bbk.ac.uk Please check it regularly. It will be used for announcements and assignments. Another page, at an open-to-all web- site, functions with relevant materials too: www.dcs.bbk.ac.ukwww.dcs.bbk.ac.uk/~mirkin/sp105

3 3 Formerly Recommended Texts 1.David J. Barnes & Michael Kölling Objects First with Java: A Practical Introduction using BlueJ, Second edition, Pearson Education, 2005, ISBN 0-13-124933-9 The publisher supplies a helpline (team’s telephone included) in installing the related software 2. J. Farrell Java Programming, Second edition, Course Technology, Thompson, 2003, ISBN 0-619-21500-3 3. I. Pohl, C. McDowell Java by dissection, Addison-Wesley, 2000, ISBN 0201751585 4. Free: ON-LINE text by D. Eck (on my web site) and other useful URLs

4 4 Currently Recommended Text Q. Charatan, A. Kans Java in Two Semesters, Second edition, The McGrow-Hill Education, 2006, ISBN 978-0-07-710889-2 In fact, either will do. One more: Edward Currie (2006), Fundamentals of Programming Using Java, Thomson Learning, ISBN-10: 1-84480-451-8. This book contains well explained examples but covers not all the material: an excellent text for slow learners.

5 5 Available on BBK’s network –Java JDK (which allows you to compile and execute your program) –BlueJ (Preferred editor) Installing BlueJ (for home use) –First download the Java JDK from http://java.sun.com/j2se/1.5.0/download.jsp –Download BlueJ from http://www.bluej.org/download/download.html http://www.bluej.org/download/download.html –Run “ bluejsetup-202.exe” and follow the given instructions Software is free

6 6 Conventional JDK: Editing A source code can be edited in any text editor: Notepad, emacs, PFE,... MS Word caveat: by default, Word does not save in ASCII text format Make sure to save the code before compiling! The file name: the same as that of the class, with extension: say, class NicTe{…} must be saved as file NicTe.java, case sensitive

7 7 Compiling with JDK Name of the JDK compiler: javac To invoke: javac compiles and all classes it depends on into an executable on JVM file.class Example: javac NicTe.java produces file NicTe.class

8 8 Execution “java” starts the Java virtual machine: java NicTe The named class is loaded and execution is started. Other classes are loaded as needed. Only possible if class has been compiled into a file, say, NicTe.class

9 9 Getting JDK on a system’s path Click “Properties” on right-buttoned “My computer” Click “Advanced” Click “Environmental variables” Enter new path (to the directory in which javac.exe and java.exe reside)

10 10 Concepts from lecture 1 Compiler (javac.exe) and Interpreter (java.exe), should be on system’s path JDK and BlueJ for running Java Class (template) and Object (its instantiation); every Java program must be a class Variable and its type; primitive types Method (input-output operation) and its Parameters (inputs - with their types at method’s declaration)

11 11 Concepts to be learnt Arithmetic expression and precedence Casting Boolean expression Statement Loops for, while Choice structure if/elseif/else

12 12 Five arithmetic operations in Java * multiplication 5  3=15 /division 36/9=4, 39/9=4, 39/50=0 (integers) 36.0/9=4.0, 39.0/9=4.3333333, 39.0/50=0.78 (reals) %remainder 36%9=0, 39%9=3, 39%50=39 +summation5 + 3 = 8 -subtraction5 – 3 = 2 Other operators such as Abs or exp or log are in class Math of Java (to be explained later)

13 13 Arithmetic expressions Precedence : */% first, then +- If not sure, use (…): first performed inside 2 * 6 / 4 + 5 – 2 * 3 = 3 + 5 – 6 = 2 (integers) 2 * 6.0 / (4 + 5) – 2 * 3 = 12.0/9 – 6 = – 4.67 (reals are here) 2 * 6 / 4 + (5 – 2) * 3 = 12

14 14 Unifying Type Unifying Type: The type of result when calculations use different types Order for Implicitly Establishing Unifying Type: double float long int short byte

15 15 Type casting The unifying type can be overridden by explicitly stating a type cast: Place the desired type result in parentheses followed by the variable or constant to be cast (int) 6.0+7=13 Example: int bankbalance=931786; float weeklybudget = (float) bankbalance /4;

16 16 Boolean expressions: true or false |, || or &, && and !not ==equal to <less than >greater than <=< or == >=> or == Always after arithmetic; If not sure, use parentheses (…): first performed inside

17 17 Condition int x=2; x+4*2>5true at what x is this false? int x=3; int y=1; x-4 == 1.5*(y+2) can this be true?

18 18 Precedence table

19 19 Loop for for(int var=1;var<=st;var++) % no ‘;’ here!!! { do operation depending on var } var++ is var=var+1, not var=var+2; Two types of parentheses: (loop specified) and {body to do} The expression in () consists of three items in this order: –initialising the counting variable once, –variable update, and –stop-condition First, –var is intialised, –stop-condition is tested; if true, block {} is executed, if no, the program proceeds further on, after the block { } –control returns to ( ) After control returns to ( ), –var is updated; –stop-condition is checked; if true, block {} is executed, then control returns to ( ), if no, the program proceeds further on, after the block { }

20 20 Loop while: less rigid for(init; test; update){ statements } All three in the parentheses refer to a counter that is initialised, updated and tested over reaching the pre-specified threshold Structure of while loop, less rigid – init, test and update are not necessarily based on counter: init; while(test){ statements; update } Similar elements: ( ), { }, initialisation, test condition (not necessarily involving the counter!), and update

21 21 Example: for (int K = 10; K > 1 ; K--) { //k-- is k=k-1; if (K < 7) { break; } // Stops execution of the loop else System.out.print(“ ” + K); } 1. What this loop does? 2. Can it be rewritten in the while format?

22 22 Example: answer 1 for (int K = 10; K > 1 ; K--) { if (K < 7) { break; } else { System.out.print(“ ” + K);} } What this loop does? Prints 10 9 8 7

23 23 Example: answer 2 int K = 10; while(K >1) { if (K< 7) break; else System.out.print(“ ” + K); K--; }

24 24 Simplest program /* HelloWorld.java Purpose: printing a message to the screen */ class HW { // Each program is organised as a class public static void main(String[] args) { System.out.println("Hello, World!"); } } // end of class HW /* Always Three Types of Elements ONLY: comments class (with modifiers) methods (with modifiers and parameters)*/

25 25 BlueJ HelloWorld N times public class HelloN { int number; \\ variable declared public void go() { System.out.println("Hello, world"); } public HelloN(int howmany) {number=howmany; } \\constr-r to initialise an object public void prrt() \\printing number times { for(int i=1;i<=number;i++) \\loop go(); System.out.println("ok"); } }

26 26 No { } in for-loop in HelloN Why? A: Because loop covers one next statement y default Let us add { }: where? Is there any difference between before and after “ok”? A: Yes, there is. If after, HW and ok alternate in the out-print.

27 27 Three branching structures (1) Do under a condition; otherwise do nothing [if… structure] if(BooleanExpr) Statement or if(BooleanExpr) {Statements} (2) Do under a condition; otherwise do differently [if…else… structure] if(BooleanExpr) {Statements1} else {Statements2}

28 28 Java branching structure (3): (3)Several conditions to do differently [if…else if… … else if… else structure] if(BoolExpr1) Statement1; else if(BoolExpr2) \\and not BoolExpr1 Statement2; else \\ (not BoolExpr1) and (not BoolExpr2) Statement3; Note NO Bool. Exp at else

29 29 If/else example Ticket’s price is £5, 60+ concession £3, children 12 or less go for free Need a variable for the age, say YourAge, and the price, say Price; The fragment can be as: if (YourAge<=12) Price=0; else if (YourAge<=60) Price=5; else //note NO CONDITION here Price=3;

30 30 Statements Assignment (followed by ;) Method call (followed by ;) if/ifelse/else (block, no ;) for/while loop (block, no ;) break (followed by ;)

31 31 This is what was covered tonight Arithmetic expression and precedence Casting Boolean expression Statement Loop for Loop while Choice structure if/elseif/else


Download ppt "SOFTWARE AND PROGRAMMING 1 Lecture: Gor B4 7:40-9:00 (from 24.01.07) Lab: SH131, BBK536 6:00-7:30 (from 24.01.07) [each student must have obtained access."

Similar presentations


Ads by Google