software and programming 1 lecture: gor b4 7:40-9:00 (from 24.01.07) lab: sh131, bbk536 6:00-7:30...

Post on 12-Jan-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 NgSCSIS, 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 MirkinSCSIS, room 111, tel. 020 7631 6746E-mail: mirkin@dcs.bbk.ac.uk

2

Webpages

Course web page at webCT: 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.uk/~mirkin/sp105

3

Formerly Recommended Texts

1. David J. Barnes & Michael KöllingObjects First with Java: A Practical

Introduction using BlueJ, Second edition, Pearson Education, 2005, ISBN 0-13-124933-9The publisher supplies a helpline (team’s telephone included) in installing the related software

2. J. FarrellJava 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

Currently Recommended Text

Q. Charatan, A. KansJava 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 thematerial: an excellent text for slow learners.

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

– Run “bluejsetup-202.exe” and follow the given instructions

Software is free

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

Compiling with JDK

• Name of the JDK compiler: javac• To invoke:javac <source name>

• compiles <source name> and all classes it depends on into an executable on JVM file <source name>.class

• Example:

javac NicTe.javaproduces file NicTe.class

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

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

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

Concepts to be learnt

• Arithmetic expression and precedence

• Casting• Boolean expression• Statement• Loops for, while• Choice structure if/elseif/else

12

Five arithmetic operations in Java

• * multiplication 53=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

• + summation 5 + 3 = 8

• - subtraction 5 – 3 = 2

• Other operators such as Abs or exp or log are in class Math of Java (to be explained later)

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

Unifying TypeUnifying Type:   The type of result when calculations

use different types

 Order for Implicitly Establishing Unifying Type:•              double•              float•              long•              int•              short•              byte

 

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

Boolean expressions: true or false• |, || or• &, && and• ! not• == equal to• < less than• > greater than• <= < or ==• >= > or ==Always after arithmetic; If not sure,

useparentheses (…): first performed

inside

17

Condition

int x=2;x+4*2>5 true

at what x is this false?

int x=3;int y=1;x-4 == 1.5*(y+2)

can this be true?

18

Precedence table

19

Loop forfor(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

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

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

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

Example: answer 2 int K = 10;

while(K >1) {

if (K< 7)

break;

else

System.out.print(“ ” + K);

K--;

}

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

BlueJ HelloWorld N timespublic 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

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

Three branching structures

(1) Do under a condition; otherwise do nothing [if… structure]

if(BooleanExpr) Statement orif(BooleanExpr) {Statements}

(2) Do under a condition; otherwise do differently [if…else… structure]

if(BooleanExpr)

{Statements1}

else

{Statements2}

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

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

Statements

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

31

This is what was covered tonight

• Arithmetic expression and precedence

• Casting• Boolean expression• Statement• Loop for• Loop while• Choice structure if/elseif/else

top related