COMP 110 LOOPS Instructor Prasun Dewan PREREQUISITE Conditionals
- Slides: 26
COMP 110 LOOPS Instructor: Prasun Dewan
PREREQUISITE Conditionals . 2
LOOPING print. Hello(2); print. Hello(3); hello hello 3
LOOPS public static void print. Hellos(int n) { int counter = 0; if (counter < n) { counter = counter + 1; System. out. println (“hello”); } } 4
LOOPS public static void print. Hellos(int n) { int counter = 0; while (counter < n) { counter = counter + 1; System. out. println (“hello”); } } 5
IF VS. WHILE STATEMENT if (<bool expr>) <statement>; while (<bool expr>) <statement>; 6
IF STATEMENT true <statement> <boolean expression> false 7
WHILE STATEMENT true <statement> <boolean expression> false 8
WHILE LOOP <statement> <boolean expression> true false 9
SENTINEL-BASED FOLDING 10
ADDING FIXED NUMBER OF LOANS Loan loan 1 = read. Loan(); Loan loan 2 = read. Loan(); Loan loan 3 = read. Loan(); Loan loan 4 = read. Loan(); Loan sum. Loan = ALoan. add( loan 1, ALoan. add(loan 2, ALoan. add(loan 3, loan 4)) ); print(sum. Loan); 11
GENERALIZING TO VARIABLE NUMBER OF LOANS Loan loan 1 = read. Loan(); Loan loan 2 = read. Loan(); Loan loan 3 = read. Loan(); Loan loan 4 = read. Loan(); … Loan loan. N = read. Loan(); Variable Number of Statements Loops and Arrays Loan sum. Loan = ALoan. add(loan 1, ALoan. add(loan 2, ALoan. add(loan 3, ALoan. add(loan 4, ……( ALoan. add(loan. N-1, loan. N)*; print (sum. Loan); Variable Number of Subexpressions (function calls) Recursion 12
SPACE-EFFICIENT ADDING OF FIXED NUMBER OF LOANS Loan loan 1 = read. Loan(); Loan loan 2 = read. Loan(); Loan sum. Loan = ALoan. add(loan 1, loan 2); loan 1 = read. Loan(); // 3 rd loan sum. Loan = ALoan. add(sum. Loan, loan 1); loan 1 = read. Loan(); // 4 th loan sum. Loan = ALoan. add(sum. Loan, loan 1); print (sum. Loan); 13
MORE SPACE-EFFICIENT ADDING OF FIXED NUMBER OF LOANS Loan sum. Loan = read. Loan(); //first loan Loan next. Loan = read. Loan(); //second loan sum. Loan = ALoan. add(next. Loan, sum. Loan); next. Loan = read. Loan(); // 3 rd loan sum. Loan = ALoan. add(sum. Loan, next. Loan); next. Loan = read. Loan(); // 4 th loan sum. Loan = ALoan. add(sum. Loan, next. Loan); print (sum. Loan); 14
MORE SPACE-EFFICIENT ADDING OF VARIABLE NUMBER OF LOANS Loan sum. Loan = read. Loan(); //first loan Loan next. Loan = read. Loan(); //second loan sum. Loan = ALoan. add(next. Loan, sum. Loan); next. Loan = read. Loan(); // 3 rd loan sum. Loan = ALoan. add(sum. Loan, next. Loan); next. Loan = read. Loan(); // 4 th loan sum. Loan = ALoan. add(sum. Loan, next. Loan); next. Loan = read. Loan(); //Nth loan sum. Loan = ALoan. add(sum. Loan, next. Loan); next. Loan = read. Loan(); //sentinel print (sum. Loan); N-1 Repetitions 15
WHILE LOOP Loan sum. Loan = read. Loan(); //first loan Loan next. Loan = read. Loan(); //second loan while (next. Loan(). get. Principal() >= 0) { sum. Loan = ALoan. add(next. Loan, sum. Loan); next. Loan = read. Loan(); // next loan or sentinel } print (sum. Loan); Input -1 Result Program waits forever for second loan Boundary Condition 16
CORRECT SOLUTION Loan sum. Loan = new ALoan(0); //initial value Loan next. Loan = read. Loan(); //second loan while (next. Loan(). get. Principal() >= 0) { sum. Loan = ALoan. add(next. Loan, sum. Loan); next. Loan = read. Loan(); // next loan or sentinel } print (sum. Loan); ALoan. add(new ALoan(0), add(loan 1, add (…. , loan. N) Identity 17
A SINGLE SENTINEL VALUE Loan sum. Loan = new ALoan(0); //initial value Loan next. Loan = read. Loan(); //second loan while (next. Loan(). get. Principal() >= 0) { sum. Loan = ALoan. add(next. Loan, sum. Loan); next. Loan = read. Loan(); // next loan or sentinel } print (sum. Loan); 18
A SINGLE LOAN Loan sum. Loan = new ALoan(0); //initial value Loan next. Loan = read. Loan(); //second loan while (next. Loan(). get. Principal() >= 0) { sum. Loan = ALoan. add(next. Loan, sum. Loan); next. Loan = read. Loan(); // next loan or sentinel } print (sum. Loan); 19
TWO LOANS Loan sum. Loan = new ALoan(0); //initial value Loan next. Loan = read. Loan(); //second loan while (next. Loan(). get. Principal() >= 0) { sum. Loan = ALoan. add(next. Loan, sum. Loan); next. Loan = read. Loan(); // next loan or sentinel } print (sum. Loan); 20
MULTIPLYING NUMBERS (EDIT) public class ANumber. Multiplier { public static void main(String[] args) { int product = 1; int next. Int = Console. read. Int(); while (next. Int >= 0) { product = product * next. Int; next. Int = Console. read. Int(); } System. out. println(product); } } 21
MULTIPLYING NUMBERS int product = 1; int num = Console. read. Int(); while (num >= 0) { product = product*num; num = Console. read. Int(); } print (product); 1 * 20 * 2 * 3 Identify 22
COMPARING TWO SOLUTIONS result next. Val int product = 1; int num = Console. read. Int(); while (num >= 0) { product = product*num; num = Console. read. Int(); } print (product); Binary folding function Read first value Read other value Identity !is. Sentinel(next. Val) Loan sum. Loan = new ALoan(0); //initial value Loan next. Loan = read. Loan(); //second loan while (next. Loan(). get. Principal() >= 0) { sum. Loan = ALoan. add(next. Loan, sum. Loan); next. Loan = read. Loan(); // next loan or sentinel } print (sum. Loan); 23
GENERALIZED FOLDING OF A SENTINEL-TERMINATED LIST a 1 a 2 a 3 an a 1 f: T, T T F(x, I) x a 1 24
GENERALIZED FOLDING FUNCTION Loan, int new ALoan(0), 1 T result = I; T next. Value = get. Next. Value() while (!is. Sentinel(next. Value)) { result = f(result, next. Value); next. Value = get. Next. Value(. . ); } ALoan. add(), * ≥ 0 25
COMPARING TWO SOLUTIONS (COMMENTS) int product = 1; //identity int num = Console. read. Int(); // read next list value while (num >= 0) { // sentinel checking product = product*num; // binary folding function num = Console. read. Int(); // read next value } print (product); // print value Loan sum. Loan = new ALoan(0); //identity Loan next. Loan = read. Loan(); // read next list value while (next. Loan(). get. Principal() >= 0) {// sentinel checking = Aloan. add(next. Loan, sum. Loan); // binary folding function next. Loan = read. Loan(); // read next list value } print (sum. Loan); // print value sum. Loan 26
- Prasun dewan
- Prasun dewan
- 011 101 110
- Numero niss
- Eecs 110
- Prerequisite of equality?
- Haccp meaning
- Ics prerequisite clearing
- Dbms prerequisite
- Prerequisite skills for algebra 2
- Group discussion definition
- Performance management process prerequisites
- Webreg uci
- Prerequisite program template
- Critical reading active
- Support programs for haccp
- Ics 31 credit by exam
- Kata adjektif pancaindera
- Bidang ketenteraan
- Jenis rumah selangorku
- Ciri ciri polis dalam tamadun yunani
- Ibu pejabat dewan bahasa dan pustaka
- Hukum go- food dewan fatwa al- irsyad
- Dewan satuan pandu berfungsi untuk
- Dewan tanvir ahmed
- Dewan taklimat serdang
- Ubblu