Top Banner
SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they are posted on SP1 site, for example, http://www.dcs.bbk.ac.uk/~mirkin/sp109/ - see in menu on the left) PLEASE BRING YOUR QUESTIONS on the exam questions !!!
29

SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

Jan 13, 2016

Download

Documents

Lucy Ward
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

SOFTWARE AND PROGRAMMING 1

Revision Lecture 11/5/2011:

Review of concepts involved in lectures and exam

Review of questions in previous exam papers (they are posted on SP1 site, for example,

http://www.dcs.bbk.ac.uk/~mirkin/sp109/ - see in menu on the left)

PLEASE BRING YOUR QUESTIONS on the exam questions !!!

Will try to address them all

Page 2: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

2

Fundamental concepts• How a Java program works• Class; object; instance• Method; constructor• Parameter• Variable (local, static, instance)• Expression• Control structures: looping, branching• Input/output• Data type, including that user-defined• Array, 2D array

Page 3: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

3

Objects and classes

• Classes: program templates– represent all objects of a kind

(example: “student”)• Object = instance

– A template copy to represent a specific element of the class (“an individual student”)

– Instances are created with the so-called constructors, explicitly in JDK or somewhat easier in BlueJ

Page 4: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

4

Variables, methods and parameters

• classes contain data stored in the so-called variables and operations which can be invoked (they are called methods in Java)

• methods may have inputs (they are called parameters in Java) to get additional data needed to get them executed

Page 5: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

5

Structure of a method

modifiers return-type name ( parameter-list ) {

statements;return variable/expression;   //if return type is not void

}Modifiers:

– static -       method/variable that belongs to class as whole and is shared by all

– public -    method/variable that is accessible from anywhere

– private -    method/variable that is accessible from only within the class

Output’s type Inputs

Page 6: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

6

Constructor• Constructor is a special method that

– Has the same name as the class– No return type (nor “return”)– Is called with modifier “new”

• to reserve a memory space for an object of class type (an instance)

• List of parameters, as well as the block, can be user defined

• The constructor with no parameters is available by default (like Const(){ }; )

Page 7: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

7

Assigning values

• Values are stored into fields (and other variables) via assignment statements:– variable = expression;– price = ticketCost;

• The value on the right is assigned to a variable on the left.

• A variable stores a single value, so any previous value is lost.

Page 8: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

8

Variable• It provides for multiple uses of the

same program• A variable is a name for a location in

memory that can hold data. • Variables are declared and/or

initialised A variable declaration includes the following:– A data type that identifies the type of data that is stored in

the variable

– An identifier that is the variable’s name– An optional assigned initial value

Page 9: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

9

Scope of a variable:

       - The range of statements that can access the variable.

It stretches from the declaration point to the end of the block containing the declaration

Q: WHAT is BLOCK ? (part within curly braces{…} )

Q: WHAT is DECLARATION? (type name ; 3-part command)

Page 10: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

10

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;

Page 11: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

11

Static and instance variables

Static variable: belongs to its class, and it is shared by all class instances, with the same value

Instance variable: a class variable without the “static” modifier, is shared by all class instances, but its values can differ in different instances

Local variable: is created within a method or instance in a { } block. Its scope is limited within the block.

Page 12: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

12

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 { }

Page 13: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

13

Loop while 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

Page 14: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

14

Double loopclass AddTable {public static void main(String[ ] args){int sum; for (int ite1=1;ite1<3; ite1++) {//loop1for (int ite2=1;ite2<5; ite2++) {//loop2

sum=ite1+ite2;System.out.print(sum +" ");}//loop2System.out.println();}//loop1

} //method main ends} //class ends

Page 15: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

15

Java branching structure :

if( ) … else if( ) … else if( ) … else

if(BooleanExpr1)

Statement1; (e.g. Tax=2;)

else if(BooleanExpr2)

Statement2; (e.g. Tax=18;)

else

Statement3; (e.g. Tax=7;)• Note: No (Boolean Expression) at else

Page 16: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

16

Input/Output TextIO classTextIO.java, added to the directory

that contains your class, eases input of data from the keyboard

 To input an integer:  

int UsInput = TextIO.getInt();Computer will wait for the user to

type in an integer value to UsInput.

Page 17: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

17

Input with Scanner classimport java.util.*class PrintDot{ int num=0; public static void main(String[ ] args){ Scanner scap = new

Scanner(System.in); System.out.println(“How many dots

to print? “); num=scap.nextInt();

for (ik=0; ik<num; ik++) System.out.print(‘.’); System.out.println(); } //end of main } //end of class

Page 18: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

18

Strings(1)

Declaring a String Object

String variable

•      An object of the class String

–    The class String is defined in java.lang.String and is automatically imported into every program

     Create a String object by using the keyword new and the String constructor method

•      String aGreeting = new String(“Hello”);

or String aGreeting = “Hello”;

Page 19: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

19

Strings(2)

Comparing String Values•     Strings are never actually changed; instead new Strings are

created and String variables hold the new addresses; A part of the Java system called the garbage collector will discard the unused strings

•     It is impossible to make a simple comparison of Strings; thus a number of methods are:

–   equals() method  if s1 and s2 are declared and initialised as

String: s1.equals(s2) true if s1 and s2 are exactly

the same sequences of characters NEVER s1==s2 !!! This is wrong, == applies

to numbers only.

Page 20: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

20

Class MathMath.pi =3.14…, the ratio of the circumference to its diameter Math.abs(a) a if a >= 0, or -a if a < 0 Math.log(a) the natural logarithm (base e) of a Math.sqrt(a) square root of a Math.pow(a,b) ab , if b is integer then ab =aa…a (b times) 

 

  Math.random() pseudorandom number: double within interval [0.0, 1.0) (zero included, unity not) How to use it to generate a random integer between 1 and 6 (inclusive), to mimic casting a dice? double aa=Math.random();//aa, a real number between 0 and 1int an= 6*aa; //a real number between 0 and 6int rand=(int) an; // whole number between 0 and 5int randw=rand+1;// whole number betw. 1 and 6 Casting in Java: converting from higher number types to lower types int randw= (int) (6*Math.random()+1); How to generate a random integer between 10 and 20 inclusive? Answer:int rdt= (int) (11*Math.random()+10); 

Page 21: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

21

Math.random()pseudorandom number: double

within interval [0.0, 1.0) (zero included, unity not)

How to use it to generate a random integer between 1 and 6 (inclusive), to imitate casting a dice?

 

Page 22: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

22

Array (1) Array is an indexed list of elements of the

same type A string array nam[ ]: contains both entries and

index.String nam[]

={“John”,“Paul”,“George”,“Ringo”}; Index   is        0          1          2         3

Length (the number of entries) is  4  

An integer array age[ ]: int age[ ]= {23, 32, 19, 30, 25, 25, 23, 30}; Index  is    0  1    2  3   4   5   6  7

Length is  8  

Page 23: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

23

Array (2)

bmi[ ]=new double[5];

for (int I = 0; I < 5; I + +)

bmi[I]=weight[I] / (height[I]height[I]);

 If we do not know the length of student

arrays or it is variable: bmi[ ]=new double[height.length];

for (int I = 0; I < height.length; I + +)

bmi[I]=weight[I] / (height[I]height[I]);

 

Page 24: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

24

User defined typeFollows classes: - Oblong and OblongTester,

sections 6.3 and 7.2, Charatan and Kans, “Java in two semesters”

- Counter and CounterTest, sections 6.3-6.6, Pohl and McDowell, “Java by dissection”

- Employee and TwoEmployee, p. 96-112, Ch.3, Farrell, “Java programming”

Page 25: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

25

2D arraysSummary sales: •     int sum =0; •     for (int shop = 0; shop < 4; shop ++) •     for(int day = 0; day < 7; day ++) •     sum = sum + sales[shop][day]; As a method:  public int sum( int[][] a) { •  int total = 0; • for (int row = 0; row < a.length; row ++) •  for( int col = 0; col < a[0].length; col ++) •  total = total + a [row][col]; •                     return total;               }

Page 26: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

26

Array of user-defined type(1)

• The setting: We have a number of applicants for whom we have separate, but matching, lists of names and id’s organised as arrays.

• We would like to develop a new type for an Applicant to hold all individual data of the applicant, in this case just id and name, but it can have as many attributes as it takes.

• With this new type, we would like to organise a list of applicants as an array of this type

Page 27: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

27

Array of user-defined type(2)

• To develop an array of applicants, we need

– A named class, say Appl, with variables declared to hold all individual applicant data (A);

– A constructor in this class that would take values from the arrays holding id and name information (B);

– Representation of the id and name arrays (C);

– Generation of an instance of array of new type, Appl (D);

– Feeding the Id’s and names into the Appl array (E);

• We can show that this does work by printing out data of all the entries in the Appl array.

Page 28: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

28

Array of user-defined type(3)

• class Appl{

• public int ids;• public String nms;• public Appl(int iden, String nnn){• ids=iden;• nms=nnn;}

• static int[] iden(){• int ii[]={12, 15, 22, 18, 11};• return ii;}

• static String[] namen(){• String jj[]={"Aa", "Bb", "Cc", "Dd", "Ee"};• return jj;}

Page 29: SOFTWARE AND PROGRAMMING 1 Revision Lecture 11/5/2011: Review of concepts involved in lectures and exam Review of questions in previous exam papers (they.

29

Array of user-defined type(4)

• public static void main(String[] args){• int id[]=iden();• String name[]=namen();• Appl[] many=new Appl[id.length];• for(int i=0;i<id.length;i++)• many[i]=new Appl(id[i],name[i]);• //many – array of Appl type objects. Check:• for(int i=0;i<name.length;i++){• System.out.println(i +"th applicant data:");• System.out.println("Id: "+many[i].ids);• System.out.println("Name: "+many[i].nms);• System.out.println(); }• }• }