Presentation is loading. Please wait.

Presentation is loading. Please wait.

Intro to Programming Week # 4 Control Structure Lecture # 8

Similar presentations


Presentation on theme: "Intro to Programming Week # 4 Control Structure Lecture # 8"— Presentation transcript:

1 Intro to Programming Week # 4 Control Structure Lecture # 8
Department of Computer Science & Engineering Air University Intro to Programming Week # 4 Control Structure Lecture # 8 By: Saqib Rasheed

2 Increment operator ++ counter ++ ; same as counter = counter + 1;

3 Decrement operator -- counter -- ; same as counter = counter - 1

4 Post/Pre Increment Int x = 10 //Post Increment x++; cout<<x;
int y = 10; cout<<y<<endl; cout<<y++<<endl; cout<<++y<<endl; cout<<y--<<endl; cout<<--y<<endl; 10 12

5 Post/Pre Increment int y = 10; int y = 5, x = 6; y--; y--;
cout<<y<<endl; cout<<y--<<endl; cout<<++y<<endl; cout<<y<<endl int y = 5, x = 6; y--; cout<<y<<endl; cout<<y-- + x++<<endl; cout<<++y + --x<<endl; cout<<y + x<<endl; cout<<"y = "<<y <<endl; cout<<"x = "<<x <<endl; 4 10 Y = 4 X = 6 9

6 Compound Assignment Operators Operator =

7 += counter += 3 ; same as counter = counter + 3 ;

8 -= counter -= 5 ; same as counter = counter – 5 ;

9 *= x*=2 x = x * 2

10 /= x /= 2 x = x / 2

11 %= x %= 2 ; same as x = x % 2 ;

12 C++ Iterative Constructs
Three constructs while statement for statement do-while statement

13 Why we use loops Add these Numbers 1+2+3+4+5+6+7+8+9= 55 Add these
………… = ?

14 The For Statement Syntax for (ForInit ; ForExpression; PostExpression)
Action Example for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; }

15

16 Execution Trace i for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl;

17 Execution Trace i for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl;

18 Execution Trace i for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0

19 Execution Trace i for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0

20 Execution Trace i 1 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0

21 Execution Trace i 1 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl;

22 Execution Trace i 1 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1

23 Execution Trace i 1 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1

24 Execution Trace i 2 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1

25 Execution Trace i 2 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1

26 Execution Trace i 2 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2

27 Execution Trace i 2 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2

28 Execution Trace i 3 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2

29 Execution Trace i 3 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2

30 Execution Trace i 3 for (int i = 0; i < 3; ++i) { cout << "i is " << i << endl; } cout << "all done" << endl; i is 0 i is 1 i is 2 all done

31 Sum of 10 int x=0; for (int i =0; i<=10; i++) { x = x+i; }
cout<<x<<endl;

32 While Syntax

33 While Semantics

34 Example int sum , number ; sum = 0 ; number = 1 ; while ( number <= 1000 ) { sum = sum + number ; number = number + 1 ; } cout << “ The sum of the first 1000 integer starting from 1 is ” << sum ;

35 (User Defined) while (number <= UpperLimit)

36 Example int sum, number , UpperLimit ; sum = 0 ; number = 1 ; cout << “ Please enter the upper limit for which you want the sum ” ; cin >> UpperLimi t; while (number <= UpperLimit) { sum = sum + number ; number = number +1 ; } cout << “ The sum of the first ” << UpperLimit << “ integer is ” << sum ;

37 Sum Of Even Numbers if ( number % 2 == 0 ) { sum = sum + number ; } number = number + 1 ;

38 Example sum = 0; number = 1; cout << “ Please enter the upper limit for which you want the sum ”; cin >> UpperLimit; while (number <= UpperLimit) { if (number % 2 == 0) sum = sum + number; number = number + 1; } cout << “ The sum of all even integer between 1 and ” << UpperLimit << “ is” << sum;

39 Computing an Average int listSize = 4; int numberProcessed = 0;
double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl;

40 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl;

41 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl;

42 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum

43 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum

44 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum value --

45 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum value 1

46 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 1 value 1

47 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 1 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 1 value 1

48 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 1 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 1 value 1

49 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 1 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 1 value --

50 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 1 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 1 value 5

51 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 1 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 6 1 value 5

52 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 2 1 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 6 value 5

53 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 2 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 6 6 value 5

54 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 2 2 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 6 value --

55 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 2 2 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 6 value 3

56 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 2 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 9 6 value 3

57 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 3 2 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 9 value 3

58 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 3 3 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 9 value 3

59 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 3 3 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 9 value --

60 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 3 3 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 9 value 1

61 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 3 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 10 9 value 1

62 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 4 3 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 10 value 1

63 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 4 3 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 10 value 1

64 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 4 3 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 10 average 2.5

65 Execution Trace Suppose input contains: 1 5 3 1 6 listSize 4
numberProcessed 4 3 int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; sum 10 average 2.5

66 Stays in stream until extracted
Suppose input contains: Execution Trace Stays in stream until extracted int listSize = 4; int numberProcessed = 0; double sum = 0; while (numberProcessed < listSize) { double value; cin >> value; sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl;

67 Table of Two const int TableSize = 20; int i = 0; long Entry = 1;
cout << "i" << "\t\t" << "2 ** i" << endl; while (i < TableSize) { cout << i << "\t\t" << Entry << endl; Entry = 2 * Entry; ++i; }

68 Better Way of Averaging
The value of the input operation corresponds to true only if a successful extraction was made int numberProcessed = 0; double sum = 0; double value; while ( cin >> value ) { sum += value; ++numberProcessed; } double average = sum / numberProcessed ; cout << "Average: " << average << endl; What if list is empty?

69 Even Better Way of Averaging
int numberProcessed = 0; double sum = 0; double value; while ( cin >> value ) { sum += value; ++numberProcessed; } if ( numberProcessed > 0 ) { double average = sum / numberProcessed ; cout << "Average: " << average << endl; else { cout << "No list to average" << endl;

70 Table Revisiting const int TableSize = 20; long Entry = 1;
cout << "i" << "\t\t" << "2**i" << endl; for (int i = 0; i <= TableSize; ++i) { cout << i << "\t\t" << Entry << endl; Entry *= 2; }

71 Table Revisiting const int TableSize = 20; long Entry = 1;
cout << "i" << "\t\t" << "2**i" << endl; for (int i = 0; i < TableSize; ++i) { cout << i << "\t\t" << Entry << endl; Entry = 2 * Entry; } cout << "i is" << i << endl; // illegal The scope of i is limited to the loop!

72 Out Put? int Counter1 = 0; int Counter2 = 0; int Counter3 = 0; int Counter4 = 0; int Counter5 = 0; ++Counter1; for (int i = 1; i <= 10; ++i) { ++Counter2; for (int j = 1; j <= 20; ++j) { Counter3; } ++Counter4; } ++Counter5; cout << Counter1 << " " << Counter2 << " " << Counter3 << " " << Counter4 << " " << Counter5 << endl;

73 Only extracts nonblank characters
Counting Characters int NumberOfNonBlanks = 0; int NumberOfUpperCase = 0; char c; while (cin >> c) { ++NumberOfNonBlanks; if ((c >= 'A') && (c <= 'Z')) { ++NumberOfUpperCase; } cout << "Nonblank characters: " << NumberOfNonBlanks << endl << "Uppercase characters: " << NumberOfUpperCase << endl; Only extracts nonblank characters

74 Counting Characters int NumberOfNonBlanks = 0;
int NumberOfUpperCase = 0; char c; cout<<“To Terminate Press 0 ”; while (cin >> c && C !- ‘0’) { ++NumberOfNonBlanks; if ((c >= 'A') && (c <= 'Z')) { ++NumberOfUpperCase; } cout << "Nonblank characters: " << NumberOfNonBlanks << endl << "Uppercase characters: " << NumberOfUpperCase << endl; Use to terminate

75 Counting All Characters
char c; int NumberOfCharacters = 0; int NumberOfLines = 0; while (cin.get(c) && c !='0') { ++NumberOfCharacters; if (c == '\n') { ++NumberOfLines } } cout << "Characters: " << NumberOfCharacters << endl << "Lines: " << NumberOfLines << endl; Extracts all characters

76 File Processing #include <iostream> #include <fstream>
using namespace std; int main() { ifstream fin("mydata.txt"); int ValuesProcessed = 0; float ValueSum = 0; float Value; while ( fin >> Value ) { ValueSum += Value; ++ValuesProcessed; } if (ValuesProcessed > 0) { ofstream fout("average.txt"); float Average = ValueSum / ValuesProcessed; fout << "Average: " << Average << endl; return 0; else { cerr << "No list to average" << endl; return 1;

77 Iteration Do’s Key Points
Make sure there is a statement that will eventually terminate the iteration criterion The loop must stop! Make sure that initialization of loop counters or iterators is properly performed Have a clear purpose for the loop Document the purpose of the loop Document how the body of the loop advances the purpose of the loop


Download ppt "Intro to Programming Week # 4 Control Structure Lecture # 8"

Similar presentations


Ads by Google