Presentation is loading. Please wait.

Presentation is loading. Please wait.

Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383 CSC530 Data Structures - LOOP 7/9/20161.

Similar presentations


Presentation on theme: "Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383 CSC530 Data Structures - LOOP 7/9/20161."— Presentation transcript:

1 Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383 zjiang@wcupa.edu CSC530 Data Structures - LOOP 7/9/20161

2 Price is right. Sample execution (click on this link to try)this link Each button in the above sample REPEAT …? Loop 7/9/20162

3 While loop Format & Logic 7/9/20163

4 4 ; while ( ) { ; }

5 Do-while loop Format Logic 7/9/20165

6 6 How does this differ from the while loop? The controlled will always execute the first time, regardless of whether the is true or false. 7/9/2016

7 For loop Format Logic 7/9/20167

8 8 for ( ; ; ) { ; } 7/9/2016

9 9 Summary Body first, and then event change/update

10 Development process 7/9/201610

11 7/9/201611

12 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. 7/9/201612

13 7/9/201613

14 7/9/201614

15 15 Code: for (int i = 1; i <= 4; i++) { cout << i << " squared is " << (i * i) << endl; } Output: 1 squared is 1 2 squared is 4 3 squared is 9 4 squared is 16 7/9/2016

16 16 Code: cin >> n; // try 6! for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { cout << “*”; } cout <<endl; } Output: ****** 7/9/2016

17 17 Code: cin >> n; // try 5! for (int i = 1; i <= n; i++) { for (int j = 1; j <= 10; j++) { cout <<(i * j) << " "; } cout << endl; } Output: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 7/9/2016

18 18 Code: cin >> n; // try 6! for (i = 1; i<=n; i++) cout << “*”; cout <<endl; for (i = 1; i <= n-2; i++) { cout << “*”; for (int j = 1; j <= n-2; j++) cout <<“ ”; cout <<“*” <<endl; } for (i = 1; i<=n; i++) cout <<“*”; cout << endl; Output: ****** * ****** 7/9/2016

19 19 Code: cin >> n; // try 6! for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { cout << "*"; } cout <<endl; } Output: * ** *** **** ***** ****** 7/9/2016

20 20 Code: cin >> n; // try 6! for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { cout << i; } cout << endl; } Output: 1 22 333 4444 55555 666666 7/9/2016

21 21 Code: cin >> n; // try 5! for (int i = 1; i <= n; i++) { for (int j = 1; j <= (n - i); j++) { cout << " "; } for (int k = 1; k <= i; k++) { cout << i; } cout << endl; } Output: 1 22 333 4444 55555 7/9/2016

22 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 7/9/201622 Controlling Event of Loop Iterations

23 7/9/201623

24 24 Finds and prints a number's first factor other than 1: cin >> n; // try 91 int f = 2; while (n % f != 0) { f++; } cout << "First factor:“ << f <<endl; Sample run: First factor:7 7/9/2016

25 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 7/9/2016

26 26 cout << "Type a non-negative integer: "; cin >> n; while (n < 0) { cout << "Invalid number, try again: "; cin >> n; } int square = n * n; cout << n << " squared is " << square<<endl; Notice that the number variable had to be declared outside the while loop in order to remain in scope. 7/9/2016

27 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: 29107 prints 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? 7/9/2016

28 28 cin >> n; int sum = 0; while (n > 0) { sum += n % 10; // add last digit to sum n = n / 10; // remove last digit } cout << “sum = “ << sum << endl; 7/9/2016

29 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. cin >> n; int sum = 0, k = ?; while ( ) { } cout << “sum = “ << sum <<endl; 7/9/2016

30 Exercise population TV purchase 1+2+4+8+... 1+2+3+4+...+99 7/9/201630

31 7/9/201631

32 Solution 7/9/201632


Download ppt "Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA 19383 CSC530 Data Structures - LOOP 7/9/20161."

Similar presentations


Ads by Google