Repetition statements

Slides:



Advertisements
Similar presentations
Switch code for Lab 4.2 switch (input) { /* input is a variable that we will test. */ case 'M': printf("The prefix is equal to 1E6.\n"); break; case 'k':
Advertisements

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 4 – C Program Control Outline 4.1Introduction.
Chapter 5 Repetition and Loop Statements Instructor: Alkar & Demirer.
1 ICS103 Programming in C Lecture 7: Repetition Structures.
CS150 Introduction to Computer Science 1
7. C program structure.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved The switch Multiple-Selection Statement switch.
Chapter 5 Repetition and Loop Statements Instructor: Kun-Mao Chao ( 台大資工 趙坤茂 )
CONTROL STATEMENTS Lakhbir Singh(Lect.IT) S.R.S.G.P.C.G. Ludhiana.
- SEARCHING - SORTING.  Given:  The array  The search target: the array element value we are looking for  Algorithm:  Start with the initial array.
+ ARRAYS - SEARCHING - SORTING Dr. Soha S. Zaghloul updated by Rasha M. AL_Eidan 2015.
Chapter 5 Repetition and Loop Statements J. H. Wang ( 王正豪 ), Ph. D. Assistant Professor Dept. Computer Science and Information Engineering National Taipei.
Nested LOOPS.
Looping II (for statement). CSCE 1062 Outline  for statement  Nested loops  Compound assignment operators  Increment and decrement operators.
Lecture 4: Calculating by Iterating. The while Repetition Statement Repetition structure Programmer specifies an action to be repeated while some condition.
The switch Statement.  Occasionally, an algorithm will contain a series of decisions in which a variable or expression is tested separately for each.
Agenda Perform Quiz #1 (20 minutes) Loops –Introduction / Purpose –while loops Structure / Examples involving a while loop –do/while loops Structure /
Chapter 5: Repetition and Loop Statements By: Suraya Alias.
Think Possibility 1 Iterative Constructs ITERATION / LOOPS C provides three loop structures: the for-loop, the while-loop, and the do-while-loop. Each.
LECTURE # 8 : REPETITION STATEMENTS By Mr. Ali Edan.
1 ICS103 Programming in C Lecture 7: Repetition Structures.
1 ICS103 Programming in C Lecture 7: Repetition Structures.
Problem Solving and Program Design in C Chap. 5 Repetition and Loop Statement Chow-Sing Lin.
CHAPTER 4 REPETITION STRUCTURES 1 st semester King Saud University College of Applied studies and Community Service Csc 1101 A.AlOsaimi.
CHAPTER 6: REPETITION AND LOOP STATEMENTS Learning outcomes  Define the concept of repetition structure.  Specify.
CS 106 Introduction to Computer Science I 02 / 15 / 2008 Instructor: Michael Eckmann.
ARRAYS.
Decision making If.. else statement.
Chapter 4: Looping Structures LECTURER : MRS ROHANI HASSAN
Chapter 4 – C Program Control
REPETITION CONTROL STRUCTURE
CHAPTER 6: REPETITION AND LOOP STATEMENTS
ICS103 Programming in C Lecture 7: Repetition Structures
Chapter 4 C Program Control Part I
- Standard C Statements
Lecture 7: Repeating a Known Number of Times
Chapter 4 Loops DDC 2133 Programming II.
Chapter 4 - Program Control
REPETITION STATEMENTS
CS 108 Computing Fundamental Notes for Thursday, October 5, 2017
Chapter 5: Looping Starting Out with C++ Early Objects Seventh Edition
FUNCTIONS EXAMPLES.
Looping.
- Additional C Statements
Lec 7.
Functions.
SELECTION STATEMENTS (2)
Repetition and Loop Statements
Lec 6.
Chapter 4 - Program Control
1) C program development 2) Selection structure
Iteration: Beyond the Basic PERFORM
Iteration: Beyond the Basic PERFORM
Control Statements Loops.
Decision making If statement.
Assignment Operators Topics Increment and Decrement Operators
Program Control Topics While loop For loop Switch statement
Repetition and Loop Statements
Assignment Operators Topics Increment and Decrement Operators
Week 6 CPS125.
REPETITION STATEMENTS
Computer programming Lecture 3.
EPSII 59:006 Spring 2004.
Dale Roberts, Lecturer IUPUI
Control Statements Loops.
Chapter 4 - Program Control
More Loops Topics Relational Operators Logical Operators for Loops.
Assignment Operators Topics Increment and Decrement Operators
ICS103: Programming in C 5: Repetition and Loop Statements
Control Statements:.
Presentation transcript:

Repetition statements for statement

1. Compound assignment operators We have seen before this statement: total_paper = total_paper + paper_order; C provides a more concise notation for such statements: total_paper += paper_order; In general: variable1 = variable1 op expression Can be written as: variable1 op= expression where op can be +, -, *, / and % Dr. Soha S. Zaghloul 2

2. Compound assignment operators - example Statement with Simple Assignment Operator Equivalent statement with Compound Assignment Operator count_emp = count_emp + 1; count_emp += 1; time = time – 1; time -= 1; total_time = total_time + time; total_time += time; product = product * time; product *= time; n = n * (x + 1); n *= x + 1; x = x / y; x /= y; a = a % b; a %= b; Dr. Soha S. Zaghloul 3

3. The Increment operator This is another concise notation for writing C statements. The statement: counter = counter + 1; may be written as: counter += 1; or just simply as counter++; // postfix increment (after the operand) or as ++counter; // prefix increment (before the operand) Dr. Soha S. Zaghloul 4

4. The decrement operator This is another concise notation for writing C statements. The statement: counter = counter - 1; may be written as: counter -= 1; or just simply as counter--; // postfix decrement (after the operand) or as --counter; // prefix decrement (before the operand) Dr. Soha S. Zaghloul 5

5. The postfix and prefix operators When the ++ is placed immediately in front of its operand (prefix increment), then increment the operand first, then use it. When the ++ is placed immediately after its operand (postfix increment), then use the operand first, then increment it. The same applies for the prefix and postfix decrement operators. Dr. Soha S. Zaghloul 6

6. The postfix and prefix operators – example 1 Assume the initial value of i is 2. Consider the following expressions: Expression Explanation Equivalent to Values after j = ++i; increment i then use (assign) it i = i + 1; j = i; i = 3 j = 3 j = i++; use (assign) i then increment it j = 2 Dr. Soha S. Zaghloul 7

7. The postfix and prefix operators – example 2 Assume the initial value of n is 4. Consider the following code fragments: Assume that the statement: printf (“n = %3d”, n); Comes next to each of the above statements. What will be the output? Expression Explanation Equivalent to Output printf (“%3d”, --n); decrement n then use (print) it n = n – 1; printf (“%3d”, n); ~~3 printf (“%3d”, n--); use (print) n then decrement it ~~4 In both cases, the output is n = ~~3 Dr. Soha S. Zaghloul 8

Statements to be repeated 8. The for statement The for statement executes a number of statements many times using a loop control variable (counter). The counter defines three main parts: The initial value The condition The step For example: for (i = 0; i < 5; i++) { printf (“i = %3d\n”, i); } The counter used in the previous loop is the variable i. Condition Initial value Step Statements to be repeated Dr. Soha S. Zaghloul 9

9. The for statement – cont’d The initial value of the counter determines the first value to be used when executing the statements. The loop repeats as long as the condition is true. The step is the change (or update) in the value of the counter. The loop counter should be always of type integer. Dr. Soha S. Zaghloul 10

10. The for statement – example 1 Consider the following code fragment and let us trace it: The trace: for (i = 0; i < 5; i++) { printf (“i = %3d \n”, i); } Iteration # i++ i < 5? Output 1 0: initial value 0 < 5? True ~~0 2 i= 1 1 < 5? True ~~1 3 i= 2 2 < 5? True ~~2 4 i= 3 3 < 5? True ~~3 5 i= 4 4 < 5? True ~~4 6 i= 5 5 < 5? False  Exit from loop Dr. Soha S. Zaghloul 11

11. The for statement – example 2 Consider the following code fragment and let us trace it: The trace: for (i = 5; i >= 0; i--) { printf (“i = %3d \n”, i); } Iteration # i-- i >= 0? Output 1 5: initial value 5 >= 0? True ~~5 2 i= 4 4 >= 0? True ~~4 3 i= 3 3 >= 0? True ~~3 4 i= 2 2 >= 0? True ~~2 5 i= 1 1 >= 0? True ~~1 6 i= 0 0 >= 0? True ~~0 7 i= -1 -1 >= 0? False  Exit from loop Dr. Soha S. Zaghloul 12

12. The for statement – example 3 Consider the following code fragment and let us trace it: The trace: for (i = 0; i <= 5; i++) { printf (“i doubled = %3d \n”, 2*i); } Iteration # i++ i <= 5? 2*i Output 1 0: initial value 0 <= 5? True ~~0 2 i= 1 1 <= 5? True ~~2 3 i= 2 2 <= 5? True 4 ~~4 i= 3 3 <= 5? True 6 ~~6 5 i= 4 4 <= 5? True 8 ~~8 i= 5 5 <= 5? True 10 ~10 7 i= 6 6 <= 5? False  Exit from the loop Dr. Soha S. Zaghloul 13

13. The for statement – example 4 Write a complete program that calculates the factorial of an integer number n such that n is greater than zero. Input? n Type? integer Value? Through scanf Restriction? n > 0 Output? n! 1! = 1 2! = 2 x 1 = 2 x 1! 3! = 3 x 2 x 1 = 3 x 2! 4! = 4 x 3 x 2 x 1 = 4 x 3! 5! = 5 x 4 x 3 x 2 x 1 = 5 x 4! n! = n * (n – 1) * (n – 2) * (n – 3) * … 1 = n * (n-1)! Dr. Soha S. Zaghloul 14

13. The for statement – example 4 (cont’d) #include <stdio.h> int main (void) { int n; printf (“enter an integer number: \n”); scanf (“%d”, &n); return (0); } n! = n * (n – 1) * (n – 2) * (n – 3) * … 1 = n * (n – 1)! Initial value: n Step: -1 Condition: n >= 1 for (i = n; i >= 1; i--) { } Dr. Soha S. Zaghloul 15

13. The for statement – example 4 (cont’d) #include <stdio.h> int main (void) { int n, i; printf (“enter an integer number: \n”); scanf (“%d”, &n); for (i = n; i >= 1; i--) } return (0); for (i = n; i >= 1; i--) { product = product * i; } Dr. Soha S. Zaghloul 16

13. The for statement – example 4 (cont’d) #include <stdio.h> int main (void) { int n, i; int product; printf (“enter an integer number: \n”); scanf (“%d”, &n); product = 1; for (i = n; i >= 1; i--) product = product * i; // or product *= i; } printf (“factorial of %3d = %6d\n”, n, product); return (0); What if the user entered a number less than 1? Dr. Soha S. Zaghloul 17

13. The for statement – example 4 (cont’d) #include <stdio.h> int main (void) { int n, i; int product; printf (“enter an integer number: \n”); scanf (“%d”, &n); if (n >= 1) product = 1; for (i = n; i >= 1; i--) product = product * i; // or product *= i; } //end of for loop printf (“factorial of %3d = %6d\n”, n, product); } // if (n >= 1) else printf (“invalid input\n”); return (0); } //end of main function Dr. Soha S. Zaghloul 18

13. The for statement – example 4 - trace i-- i >= 1? product -3 -3 >= 1? false 1: initial value output: invalid input n n >= 1? i-- i >= 1? product 1: initial value 4 4 >= 1? true 4: initial value 4 * 1 = 4 i= 3 3 >= 1? true 3 * 4 = 12 i= 2 2 >= 1? true 2 * 12 = 24 i= 1 1 >= 1? true 1 * 24 = 24 i= 0 0 > =1? false output: factorial of ~~4 = ~~~~24 n n >= 1? i-- i >= 1? product 1 1 >= 1? True 1: initial value 0 >= 1? False output: factorial of ~~1 = ~~~~~1 Dr. Soha S. Zaghloul 19

Nested loops consist of an outer loop with one or more inner loops. Each time the outer loop is repeated, the inner loop restarts from the initial value of its counter. Dr. Soha S. Zaghloul 20

15. Nested loops – simple example for (i= 0; i < 3; i++) for (j = 0; j < 5; j++) printf (“i = %3d /t j = %3d /n”, i, j); i++ i < 3? j++ j < 5? output 0: initial value 0 < 3? true 0 < 5? true i = ~~0 j = ~~0 i= 0 j= 1 1 < 5? true i = ~~0 j = ~~1 j= 2 2 < 5? true i = ~~0 j = ~~2 j= 3 3 < 5? true i = ~~0 j = ~~3 j= 4 4 < 5? true i = ~~0 j = ~~4 j= 5 5 < 5? false  exit from inner loop i= 1 1 < 3? true i = ~~1 j = ~~0 i = ~~1 j = ~~1 i = ~~1 j = ~~2 i = ~~1 j = ~~3 i = ~~1 j = ~~4 i= 2 2 < 3? true i = ~~2 j = ~~0 Dr. Soha S. Zaghloul 21

15. Nested loops – simple example (cont’d) for (i= 0; i < 3; i++) for (j = 0; j < 5; j++) printf (“i = %3d /t j = %3d /n”, i, j); i++ i < 3? j++ j < 5? output 2 2 < 3? true j= 1 1 < 5? true i = ~~2 j = ~~1 j= 2 2 < 5? true i = ~~2 j = ~~2 j= 3 3 < 5? true i = ~~2 j = ~~3 j= 4 4 < 5? true i = ~~2 j = ~~4 j= 5 5 < 5? false  exit from inner loop 3 3 < 3 false  exit from outer loop Dr. Soha S. Zaghloul 22

Write a complete program that produces the following output: 16. Nested for – example 1 Write a complete program that produces the following output: Analysis: We need two counters:- The first counter line counts the lines from 1 to 5 The second counter asterisks counts the number of asterisks in each line * ** *** **** ***** Dr. Soha S. Zaghloul 23

16. Nested for – example 1 (cont’d) * ** *** **** ***** Line Asterisks 1 2 3 4 5 Dr. Soha S. Zaghloul 24

16. Nested for – example 1 (cont’d) Line Asterisks 1 2 3 4 5  line is the counter of the outer loop, and asterisks is the counter of the inner loop. line: Initial Value: 1 Final Value: 5  condition is (line <= 5) Step: +1 asterisks: Initial Value: 1 Final Value: line  condition is (asterisks <= line) Step: +1 for (line = 1; line <= 5; line++) { for (asterisks = 1; asterisks <= line; asterisks++) printf (“*”); printf (“\n”); } Dr. Soha S. Zaghloul 25

16. Nested for – complete program #include <stdio.h> int main (void) { int line, asterisks; for (line = 1; line <= 5; line++) for (asterisks = 1; asterisks <= line; asterisks++) printf (“*”); printf (“\n”); } // end (line = 1; line <= 5; line++) return (0); } // end of main Dr. Soha S. Zaghloul 26

17. Example (1) There are 9,870 people in a town whose population increases by 10 percent each year. Write a loop that displays the annual population for ten consecutive years. The program should also write a message “over population” if the population exceeds 30,000. Dr. Soha S. Zaghloul 27

17. Example (1) – solution (cnt’d) There are 9,870 people in a town whose population increases by 10 percent each year. Write a loop that displays the annual population for ten consecutive years. The program should also write a message “over population” if the population exceeds 30,000. Dr. Soha S. Zaghloul 28

17. Example (1) – solution (cnt’d) There are 9,870 people in a town whose population increases by 10 percent each year. Write a loop that displays the annual population for ten consecutive years. Counter = years Initial value = 0 Final value = 9  condition is (years <= 9) Step = +1 for (years = 0; years <= 9; years++) Dr. Soha S. Zaghloul 29

17. Example (1) – solution (cnt’d) There are 9,870 people in a town whose population increases by 10 percent each year. Write a loop that displays the annual population for ten consecutive years. Initial value of people is 9870 Ten percent of people is (people * 0.01) people increases by 0.01 each year  people = people + (people * 0.01); Display the annual population people = 9870; for (years = 0; years <= 9; years++) { people = people + (0.01 * people); // or people += (0.01 * people) printf (“Annual Population = %7.1f”, people); } Dr. Soha S. Zaghloul 30

17. Example (1) – solution (cnt’d) The program should also write a message “over population” if the population exceeds 30,000. Condition: (people > 30,000) people = 9870; for (years = 0; years <= 9; years++) { people = people + (0.01 * people); printf (“annual population = %7.1f”, people); } if (people > 30000) printf (“over population \n”); Dr. Soha S. Zaghloul 31

18. Example (2) – Self-check exercise The table below shows the normal boiling points of several substances. Write a program that prompts the user to enter 1000 observed boiling points of a substance in ºC. The program then identifies the substance if the observed boiling point is within 5% (more or less) of the expected boiling point. If the data input is more than 5% higher or lower than any of the boiling points in the table, the program should output the message “Substance unknown”. Substance Expected Boiling Point (ºC) Water 100 Mercury 357 Copper 1187 Silver 2193 Gold 2660 #include <stdio.h> int main (void) { int years; double people; people = 9870; for (years = 0; years <= 9; years++) people = people + (0.01 * people); printf (“annual population = %7.1f”, people); } //end for if (people > 30000) printf (“over population \n”); return (0); } // end main Dr. Soha S. Zaghloul 32

19. Example (3) – self-check exercise Write a program that calculates and prints the bill for Riyadh’s power consumption for 100 customers. The rates vary depending on whether the user is residential, commercial, or industrial. A code of R corresponds to a Residential, C corresponds to a Commercial, and I to Industrial. Any other code should be treated as an error. The program should read the power consumption rate in KWH (Kilowatt per Hour); then it calculates the due amount according to the following: The rate is SAR 5 per KWH for Residential, SAR 10 per KWH for Commercial and SAR 20 per KWH for Industrial. Dr. Soha S. Zaghloul 33