Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383
description
Transcript of Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383
![Page 1: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/1.jpg)
Zhen Jiang
Dept. of Computer Science
West Chester University
West Chester, PA 19383
CSC141 Computer Science I
04/21/23 1
![Page 2: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/2.jpg)
Price is right. Sample execution (click on this link to
try) http://www.cis.temple.edu/~jiang/price_is_right.exe
Each button in the above sample REPEAT …?
Loop
04/21/23 2
![Page 3: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/3.jpg)
While loop Format & Logic, page 197, Figure 4-1. Sample, code 4-3, page 198.
04/21/23 3
![Page 4: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/4.jpg)
404/21/23
<initialization>;while (<test>) {
<body>;}
![Page 5: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/5.jpg)
Do-while loop Format, page 208 Logic, page 209, Figure 4-6. Sample, code 4-6, page 209.
04/21/23 5
![Page 6: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/6.jpg)
6
How does this differ from the while loop?
The controlled <statement(s)> will always execute the first time, regardless of whether the <test> is true or false.
04/21/23
![Page 7: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/7.jpg)
For loop Format, page 212, Figure 4-7. Logic, page 212, Figure 4-8. Sample, code 4-7, page 213.
04/21/23 7
![Page 8: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/8.jpg)
8
for (<init>; <test>; <update>) { <body>;
}
04/21/23
![Page 9: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/9.jpg)
04/21/23 9
Summary
Body first, and thenevent change/update
![Page 10: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/10.jpg)
Development process http://www.cis.temple.edu/~jiang/
LoopDevelopment.htm
04/21/23 10
![Page 11: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/11.jpg)
04/21/23 11
![Page 12: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/12.jpg)
Controlling Number of Loop Iterations If the number of iterations is known
before the loop starts, the loop is called a count-controlled loop. Counter =0, counter++, counter
<number Counter = 1, counter++, counter
<=number Use for loop for an easy
development.
04/21/23 12
![Page 13: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/13.jpg)
04/21/23 13
![Page 14: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/14.jpg)
04/21/23 14
![Page 15: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/15.jpg)
15
Code:for (int i = 1; i <= 4; i++) { System.out.println(i + " squared is " + (i * i));}
Output:1 squared is 12 squared is 43 squared is 94 squared is 16
04/21/23
![Page 16: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/16.jpg)
16
Code:n=keyboard.nextInt(); // try 6!for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { System.out.print("*"); } System.out.println();}
Output:************************************
04/21/23
![Page 17: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/17.jpg)
17
Code: n=keyboard.nextInt(); // try 5!
for (int i = 1; i <= n; i++) { for (int j = 1; j <= 10; j++) { System.out.print((i * j) + " "); } System.out.println(); }
Output:1 2 3 4 5 6 7 8 9 102 4 6 8 10 12 14 16 18 203 6 9 12 15 18 21 24 27 304 8 12 16 20 24 28 32 36 405 10 15 20 25 30 35 40 45 50
04/21/23
![Page 18: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/18.jpg)
18
Code:n=keyboard.nextInt(); // try 6!for (i = 1; i<=n; i++) System.out.print(“*”);System.out.println(“”);for (i = 1; i <= n-2; i++) {
System.out.print(“*”); for (int j = 1; j <= n-2; j++)
System.out.print(“ ”); System.out.println(“*”);}for (i = 1; i<=n; i++) System.out.print(“*”);System.out.println(“”);
Output:******* ** ** ** *******
04/21/23
![Page 19: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/19.jpg)
19
Code:n=keyboard.nextInt(); // try 6!for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { System.out.print("*"); } System.out.println();}
Output:*********************
04/21/23
![Page 20: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/20.jpg)
20
Code:n=keyboard.nextInt(); // try 6!for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { System.out.print(i); } System.out.println();}
Output:122333444455555666666
04/21/23
![Page 21: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/21.jpg)
21
Code:n=keyboard.nextInt(); // try 5!for (int i = 1; i <= n; i++) { for (int j = 1; j <= (n - i); j++) { System.out.print(" "); } for (int k = 1; k <= i; k++) { System.out.print(i); } System.out.println();}
Output: 1 22 333 44445555504/21/23
![Page 22: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/22.jpg)
Otherwise (unknown or unclear), the loop is called a event-controlled loop. Use a while loop or a do-while loop for an
easy checkpoint development. Asking the user before each iteration if it is
time to end the loop is called the ask-before-iterating technique.
Appropriate status update (or event initializing) for a sequence of iterations
04/21/23 22
Controlling Event of Loop Iterations
![Page 23: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/23.jpg)
04/21/23 23
![Page 24: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/24.jpg)
24
Finds and prints a number's first factor other than 1:
int n = keyboard.nextInt(); // try 91int f = 2;while (n % f != 0) { f++;}System.out.println("First factor:" + f);
Sample run:First factor:7
04/21/23
![Page 25: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/25.jpg)
25
Write a program that will repeatedly prompt the user to type a number until the user types a non-negative number, then square it.
Example log:
Type a non-negative integer: -5
Invalid number, try again: -1
Invalid number, try again: -235
Invalid number, try again: -87
Invalid number, try again: 11
11 squared is 121
04/21/23
![Page 26: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/26.jpg)
26
System.out.print("Type a non-negative integer: ");int n = keyboard.nextInt();
while (n < 0) { System.out.print("Invalid number, try again: "); n = keyboard.nextInt();}
int square = n * n;System.out.println(n + " squared is " + square);
Notice that the number variable had to be declared outside the while loop in order to remain in scope.
04/21/23
![Page 27: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/27.jpg)
27
Write a class named DigitSum that reads an integer from the user and prints the sum of the digits of that number. You may assume that the number is non-negative.
Example:
Enter a nonnegative number: 29107prints out 19 (i.e.,2+9+1+0+7 )
Hint: Use the % operator to extract the last digit of a number. If we do this repeatedly, when should we stop?04/21/23
![Page 28: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/28.jpg)
28
import java.util.Scanner;public class DigitSum {
public static void main(String [] args) { Scanner keyboard = new Scanner(System.in); int n = keyboard.nextInt();
int sum = 0; while (n > 0) { sum += n % 10; // add last digit to sum n = n / 10; // remove last digit } System.out.println(“sum = “ + sum);
}}
04/21/23
![Page 29: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/29.jpg)
29
Write a program named CountFactors that reads in an integer and displays its number of factors.
For example, if the user enters 60, CountFactors displays 12 because 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, and 60 are all factors of 60.
Scanner keyboard = new Scanner(System.in); int n = keyboard.nextInt();
int sum = 0, k = ?; while ( ) {
} System.out.println(“sum = “ + sum);
04/21/23
![Page 30: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/30.jpg)
Exercise population
http://www.cis.temple.edu/~jiang/6billion.exe TV purchase
http://www.cis.temple.edu/~jiang/tv563.exe 1+2+4+8+...
http://www.cis.temple.edu/~jiang/1_2_4.exe 1+2+3+4+...+99
http://www.cis.temple.edu/~jiang/1to99.exe
04/21/23 30
![Page 31: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/31.jpg)
04/21/23 31
![Page 32: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/32.jpg)
Solution
04/21/23 32
![Page 33: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/33.jpg)
File writing, page 237-240 Filename PringWriter Println Close Sample, code 4-17, page 237
04/21/23 33
![Page 34: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/34.jpg)
Appending data to a (existing) file FileWriter (, true), page 240
04/21/23 34
![Page 35: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/35.jpg)
File Reading, page 241-245 File Scanner nextXXXX( ) close Sample, code 4-18, page 242.
04/21/23 35
![Page 36: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/36.jpg)
Detecting the end of a file hasNext Code 4-19, page 245.
Detecting the existence of a file exists Code 4-21, page 249.
04/21/23 36
![Page 37: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/37.jpg)
Random number generator randomNumbers.nextXXX( ) Sample, code 4-23, page 253.
04/21/23 37
![Page 38: Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814f6a550346895dbd1fb5/html5/thumbnails/38.jpg)
38
Objects of the Random class generate pseudo-random numbers.
Class Random is found in the java.util package.import java.util.*;
The methods of a Random object
returns a random real number in the range [0.0, 1.0)nextDouble()
returns a random integer in the range [0, max)
in other words, from 0 to one less than max
nextInt(max)
returns a random integernextInt()
DescriptionMethod name
04/21/23