KEMBAR78
OOP Chapter 5 : Program Looping | PDF
Object-Oriented Programming Language
                                                      Chapter 5 : Program Looping


                                                Atit Patumvan
                                Faculty of Management and Information Sciences
                                              Naresuan University




วันจันทร์ท่ี 27 กุมภาพันธ์ 12
2



                                                                                      Contents



              •        The for statement

              •        The while statement

              •        The do statement

              •        The break and continue Statements




 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University              Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
3



                                                                        Triangular Number




                                                                                      n=4


                                                                                      sum = 1 + 2 + ... + n




 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University                       Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
4



                                                        Triangular Number Example

Program 5.1
01: #import <Foundation/Foundation.h>
02:
03:// Program to calculate the eighth triangular number
04:
05: int main(int argc, const char * argv[])
06:{
07:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
08:! int triangularNumber;
09:
10:! triangularNumber = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8;
11:
12:! NSLog(@"The eighth triangular number is %i", triangularNumber);
13:
14:! [pool drain];
15:! return 0;
16:}


      The eighth triangular number is 36




 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University   Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
5



                                                                          The for Statement

Program 5.2

01: #import <Foundation/Foundation.h>
02:
03:
04: int main(int argc, const char * argv[])
05: {
06:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
07:! int n, triangularNumber;
08:
09:! triangularNumber = 0;
10:
11:! for(n = 1; n <= 200; n = n + 1)
12:! ! triangularNumber +=n;
13:
14:! NSLog(@"The 200th triangular number is %i", triangularNumber);
15:
16:! [pool drain];
17:! return 0;
18: }


   The 200th triangular number is 20100



 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University           Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
6



                                                                          The for Statement


      for( init_expression; loop_condition; loop_expression)
         program_statement;
         11:!for(n = 1; n <= 200; n = n + 1)
         12:!! triangularNumber +=n;



                    1. The initial expression is evaluate first.
                    2. The looping condition is evaluated.
                    3. The program statement is executed.
                    4.The looping expression is evaluated.
                    5. Return to step 2.
 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University           Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
7



                                                         Table ot Triangular Number

Program 5.3
01: #import <Foundation/Foundation.h>
02:
03:
04: int main(int argc, const char * argv[])
05: {
06:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
07:! int n, triangularNumber;
08:
09:! NSLog(@"TABLE OF TRIANGULAR NUMBERS");
10:! NSLog(@" n Sum from 1 to n");
11:! NSLog(@"-- ----------------");         for( init_expression; loop_condition; loop_expression)
12:
13:! triangularNumber = 0;
                                                  program_statement;
14:
                                                                      TABLE OF TRIANGULAR NUMBERS
15:! for(n = 1; n <= 10; ++n){                                          n Sum from 1 to n
16:! ! triangularNumber +=n;                                           -- ----------------
17:! ! NSLog(@" %i    t%i", n, triangularNumber);                      1   1
18:! }                                                                  2   3
                                                                        3   6
19:                                                                     4   10
20:! NSLog(@"The 200th triangular number is %i", triangularNumber); 5 15
21:                                                                     6   21
                                                                        7   28
22:! [pool drain];                                                      8   36
23:! return 0;                                                          9   45
24: }                                                                   10    55
                                                                                      The 200th triangular number is 55

 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University               Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
8



                                                                               Keyboard Input

Program 5.4
01: #import <Foundation/Foundation.h>
02:
03: int main(int argc, const char * argv[])
04: {
05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
06:! int n, number, triangularNumber;
07:
08:! NSLog(@"What triangular number do you want?");
09:! scanf("%i", &number);
10:
11:! triangularNumber = 0;
12:
13:! for(n = 1; n <= number; ++n){
14:! ! triangularNumber +=n;
15:! }
16:
17:! NSLog(@"Triangular number %i is %in", number, triangularNumber);
18:
19:! [pool drain];
20:! return 0;
21: }                                What triangular number do you want?
22:                                  100
                                     Triangular number 100 is 5050


 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University             Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
9



                                                                            Nested for Loops

Program 5.5
05: #import <Foundation/Foundation.h>
05:
05: int main(int argc, const char * argv[])
05: {
05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
05:! int n, number, triangularNumber, counter;
05:
05:! for(counter = 1; counter <= 5; ++counter){
05:! ! NSLog(@"What triangular number do you want?");
05:! ! scanf("%i", &number);
05:
05:! ! triangularNumber = 0;
05:
05:! ! for(n = 1; n <= number; ++n){
05:! ! ! triangularNumber +=n;
05:! ! }
05:
05:! ! NSLog(@"Triangular number %i is %i", number, triangularNumber);
05: ! }
05:! [pool drain];
05:! return 0;
05: }



 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University            Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
10



                                                                     The while Statement


                 while( expression )
                   program_statement


                 init_expression;
                 while( loop_condition )
                 {
                     program_statement;
                     loop_expression;
                 }

 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University        Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
11



                                                                      The while Statement

Program 5.6
01: #import <Foundation/Foundation.h>
02:
03: int main(int argc, const char * argv[])
04: {
05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
06:! int count = 1;
07:
08:! while( count <= 5){                  init_expression;
09:! ! NSLog(@"%i", count);               while( loop_condition )
10:! ! ++count;
11:! }                                    {
12:                                           program_statement;
13:! [pool drain];                            loop_expression;
14:! return 0;                            }
15: }
16:!

    1
    2
    3
    4
    5


 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University         Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
12



                                             Find the greatest common divisor

Program 5.7
01: #import <Foundation/Foundation.h>
02:
03: int main(int argc, const char * argv[])
04: {
05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
06:! unsigned int u, v, temp;
                                                                                      30 18
07:
08:! NSLog(@"Please type in two nonnegative integers.");
09:! scanf("%u%u", &u, &v);
10:                                                                                   30 /18 = 1R12
11:! while( v != 0){
12:! ! temp = u % v;                                                                  18 /12 = 1R6
                                                                                      12 / 6 = 2R0
13:! ! u = v;
14:! ! v = temp;
15:! }
16:
17:! NSLog(@"Their greatest common advisor is %u", u);
18:
19:! [pool drain];
20:! return 0;            Please type in two nonnegative integers.
21: }                     30 18
22:                       Their greatest common advisor is 6
!


 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University           Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
13



                                  Program to reverse the digits of number

Program 5.8
01: #import <Foundation/Foundation.h>
01:
01: int main(int argc, const char * argv[])
01:{
01:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
01:! int number, right_digit;
01:
01:! NSLog(@"Enter your number.");

                                                                                      1234 % 10 = 4
01:! scanf("%i", &number);
01:
01:! while( number != 0){
01:! ! right_digit = number % 10;
01:! ! NSLog(@"%i", right_digit);
                                                                                      1234 / 10 = 123
01:! ! number /= 10;
01:! }
01:
01:! [pool drain];                                                                    123 % 10 = 3
01:! return 0;
01:}    Enter your number.
                                                                                      123 /10 = 12
                                                                                              :
01:     1234
!       4
                  3
                  2
                  1

 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University                  Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
14



                                                                          The do Statement


                 do
                   program_statement
                 while( expression )


                 init_expression;
                 do {
                     program_statement;
                     loop_expression;
                 } while( loop_condition )

 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University          Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
15



                                  Program to reverse the digits of number

Program 5.9
01: #import <Foundation/Foundation.h>
02:
03: int main(int argc, const char * argv[])
04: {
05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
06:! int number, right_digit;
07:
08:! NSLog(@"Enter your number.");
09:! scanf("%i", &number);
10:
11:! do{                                               init_expression;
12:! ! right_digit = number % 10;                      do{
13:! ! NSLog(@"%i", right_digit);
14:! ! number /= 10;                                       program_statement;
15:! }while( number != 0);                                 loop_expression;
16:                                                    } while( loop_condition        );
17:! [pool drain];
18:! return 0;
19: }
01:!




 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University   Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12
16



                                         The break and continue Statements


              •        Labeled break statement

                     •          Exit from nested control structures

                     •          Proceeds to end of specified labeled block

              •        Labeled continue statement

                     •          Skips remaining statements in nested-loop body

                     •          Proceeds to beginning of specified labeled block




 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University   Object-Oriented Programming Language

วันจันทร์ท่ี 27 กุมภาพันธ์ 12

OOP Chapter 5 : Program Looping

  • 1.
    Object-Oriented Programming Language Chapter 5 : Program Looping Atit Patumvan Faculty of Management and Information Sciences Naresuan University วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 2.
    2 Contents • The for statement • The while statement • The do statement • The break and continue Statements Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 3.
    3 Triangular Number n=4 sum = 1 + 2 + ... + n Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 4.
    4 Triangular Number Example Program 5.1 01: #import <Foundation/Foundation.h> 02: 03:// Program to calculate the eighth triangular number 04: 05: int main(int argc, const char * argv[]) 06:{ 07:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 08:! int triangularNumber; 09: 10:! triangularNumber = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8; 11: 12:! NSLog(@"The eighth triangular number is %i", triangularNumber); 13: 14:! [pool drain]; 15:! return 0; 16:} The eighth triangular number is 36 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 5.
    5 The for Statement Program 5.2 01: #import <Foundation/Foundation.h> 02: 03: 04: int main(int argc, const char * argv[]) 05: { 06:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 07:! int n, triangularNumber; 08: 09:! triangularNumber = 0; 10: 11:! for(n = 1; n <= 200; n = n + 1) 12:! ! triangularNumber +=n; 13: 14:! NSLog(@"The 200th triangular number is %i", triangularNumber); 15: 16:! [pool drain]; 17:! return 0; 18: } The 200th triangular number is 20100 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 6.
    6 The for Statement for( init_expression; loop_condition; loop_expression) program_statement; 11:!for(n = 1; n <= 200; n = n + 1) 12:!! triangularNumber +=n; 1. The initial expression is evaluate first. 2. The looping condition is evaluated. 3. The program statement is executed. 4.The looping expression is evaluated. 5. Return to step 2. Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 7.
    7 Table ot Triangular Number Program 5.3 01: #import <Foundation/Foundation.h> 02: 03: 04: int main(int argc, const char * argv[]) 05: { 06:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 07:! int n, triangularNumber; 08: 09:! NSLog(@"TABLE OF TRIANGULAR NUMBERS"); 10:! NSLog(@" n Sum from 1 to n"); 11:! NSLog(@"-- ----------------"); for( init_expression; loop_condition; loop_expression) 12: 13:! triangularNumber = 0; program_statement; 14: TABLE OF TRIANGULAR NUMBERS 15:! for(n = 1; n <= 10; ++n){ n Sum from 1 to n 16:! ! triangularNumber +=n; -- ---------------- 17:! ! NSLog(@" %i t%i", n, triangularNumber); 1 1 18:! } 2 3 3 6 19: 4 10 20:! NSLog(@"The 200th triangular number is %i", triangularNumber); 5 15 21: 6 21 7 28 22:! [pool drain]; 8 36 23:! return 0; 9 45 24: } 10 55 The 200th triangular number is 55 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 8.
    8 Keyboard Input Program 5.4 01: #import <Foundation/Foundation.h> 02: 03: int main(int argc, const char * argv[]) 04: { 05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 06:! int n, number, triangularNumber; 07: 08:! NSLog(@"What triangular number do you want?"); 09:! scanf("%i", &number); 10: 11:! triangularNumber = 0; 12: 13:! for(n = 1; n <= number; ++n){ 14:! ! triangularNumber +=n; 15:! } 16: 17:! NSLog(@"Triangular number %i is %in", number, triangularNumber); 18: 19:! [pool drain]; 20:! return 0; 21: } What triangular number do you want? 22: 100 Triangular number 100 is 5050 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 9.
    9 Nested for Loops Program 5.5 05: #import <Foundation/Foundation.h> 05: 05: int main(int argc, const char * argv[]) 05: { 05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 05:! int n, number, triangularNumber, counter; 05: 05:! for(counter = 1; counter <= 5; ++counter){ 05:! ! NSLog(@"What triangular number do you want?"); 05:! ! scanf("%i", &number); 05: 05:! ! triangularNumber = 0; 05: 05:! ! for(n = 1; n <= number; ++n){ 05:! ! ! triangularNumber +=n; 05:! ! } 05: 05:! ! NSLog(@"Triangular number %i is %i", number, triangularNumber); 05: ! } 05:! [pool drain]; 05:! return 0; 05: } Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 10.
    10 The while Statement while( expression ) program_statement init_expression; while( loop_condition ) { program_statement; loop_expression; } Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 11.
    11 The while Statement Program 5.6 01: #import <Foundation/Foundation.h> 02: 03: int main(int argc, const char * argv[]) 04: { 05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 06:! int count = 1; 07: 08:! while( count <= 5){ init_expression; 09:! ! NSLog(@"%i", count); while( loop_condition ) 10:! ! ++count; 11:! } { 12: program_statement; 13:! [pool drain]; loop_expression; 14:! return 0; } 15: } 16:! 1 2 3 4 5 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 12.
    12 Find the greatest common divisor Program 5.7 01: #import <Foundation/Foundation.h> 02: 03: int main(int argc, const char * argv[]) 04: { 05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 06:! unsigned int u, v, temp; 30 18 07: 08:! NSLog(@"Please type in two nonnegative integers."); 09:! scanf("%u%u", &u, &v); 10: 30 /18 = 1R12 11:! while( v != 0){ 12:! ! temp = u % v; 18 /12 = 1R6 12 / 6 = 2R0 13:! ! u = v; 14:! ! v = temp; 15:! } 16: 17:! NSLog(@"Their greatest common advisor is %u", u); 18: 19:! [pool drain]; 20:! return 0; Please type in two nonnegative integers. 21: } 30 18 22: Their greatest common advisor is 6 ! Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 13.
    13 Program to reverse the digits of number Program 5.8 01: #import <Foundation/Foundation.h> 01: 01: int main(int argc, const char * argv[]) 01:{ 01:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 01:! int number, right_digit; 01: 01:! NSLog(@"Enter your number."); 1234 % 10 = 4 01:! scanf("%i", &number); 01: 01:! while( number != 0){ 01:! ! right_digit = number % 10; 01:! ! NSLog(@"%i", right_digit); 1234 / 10 = 123 01:! ! number /= 10; 01:! } 01: 01:! [pool drain]; 123 % 10 = 3 01:! return 0; 01:} Enter your number. 123 /10 = 12 : 01: 1234 ! 4 3 2 1 Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 14.
    14 The do Statement do program_statement while( expression ) init_expression; do { program_statement; loop_expression; } while( loop_condition ) Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 15.
    15 Program to reverse the digits of number Program 5.9 01: #import <Foundation/Foundation.h> 02: 03: int main(int argc, const char * argv[]) 04: { 05:! NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 06:! int number, right_digit; 07: 08:! NSLog(@"Enter your number."); 09:! scanf("%i", &number); 10: 11:! do{ init_expression; 12:! ! right_digit = number % 10; do{ 13:! ! NSLog(@"%i", right_digit); 14:! ! number /= 10; program_statement; 15:! }while( number != 0); loop_expression; 16: } while( loop_condition ); 17:! [pool drain]; 18:! return 0; 19: } 01:! Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12
  • 16.
    16 The break and continue Statements • Labeled break statement • Exit from nested control structures • Proceeds to end of specified labeled block • Labeled continue statement • Skips remaining statements in nested-loop body • Proceeds to beginning of specified labeled block Atit Patumvan, Faculty of Management and Information Sciences, Naresuan University Object-Oriented Programming Language วันจันทร์ท่ี 27 กุมภาพันธ์ 12