C LAB WORKSHEET 7_1
As noted earlier, C has three repetition, or looping control structures that allow you to repeat a set of statements until certain conditions are met. Note: The variable that controls the loop is called loop control variable (LCV) While Looping Control Structures The first loop that we’re going to discuss about is while loop. “Sequence control structure” refers to the line-by-line execution by which statements are executed sequentially, in the same order in which they appear in the program. They might, for example, carry out a series of read or write operations, arithmetic operations, or assignments to variables. Control structures and statements in C and C Control structures form the basic entities of a “ structured programming language “. We all know languages like C/C or Java are all structured programming languages. Control structures are used to alter the flow of execution of the program.
A C & C++ Repetition: The for Loop 2
Items in this page:
And EOF-controlled repetition structures –Examine break and continue statements –Discover how to form and use nested control structures C Programming: From Problem Analysis to Program Design, Sixth Edition 3 Objectives (cont’d.).In this chapter, you will (cont’d.): –Learn how to avoid bugs by avoiding patches.
printf('%dt', i + 1); | |
printf('%dt', i + 1); | |
printf('%dt', i + 1); | |
printf('%dt', i + 1); | |
printf('%dt', i + 1); | |
|
|
| |
| #include <stdio.h> void main() { int i = 0, x = 0, y = 0, sum = 0; printf('Enter a small integer: '); scanf_s('%d', &x, sizeof(int)); printf('Enter a bigger integer: '); scanf_s('%d', &y, sizeof(int)); for(i = x; i >=1; i = i -1) sum = sum + y; printf('Product of %d and %d is %dn.n', x, y, sum); } |
| /* Print out all integers from 5 down to -5 */ #include <stdio.h> void main() { int i; for(i = 5; i >=-5; i = i-1) printf('%d ', i); printf('n'); } |
| /* Print out all integers from -11 down to -20. */ #include <stdio.h> void main() { int i; for(i = -20; i <=-11; i++) printf('%d ', i); printf('n'); } |
| |
| /* Print out the squares of the first 10 integers */ #include <stdio.h> void main() { int i; for(i = 0; i <= 10; i++) printf('%d ', i*i); printf('n'); } |
| #include <stdio.h> void main() { int i; // first day got 10 cent double sum = 0.10; // start on 2nd day, got twice for(i = 2; i <= 15;) { // the next day got twice the previous day sum = sum + sum; printf('Total money for day %d is USD%.2fn', i, sum); // after complete the calculation, go to the next day i++; } } |
All loops must start somewhere; this called the initialization of the loop. They must stop sometime, the termination of the loop, or else they keep executing, resulting the infinite loop (use CTRL-C to terminate the program for PC compatible). To terminate a loop, we will need to evaluate conditions, for example, whether a variable is equal to a value or not. Furthermore, while the loop is going through its iterations, it must come closer and closer to the terminal condition.
|
The previous code illustrates a very simple loop. The numbers in the comments identify selected statements. A tracechart is shown alongside the code. In step 1 of the trace,statement 1 of the code is executed, that is1 is assigned to i. In statement 2 a question is asked. Isi less than or equal to 2? Yes, so the loop, which is composed of the two statements inside the set of braces, is executed. Statement 3 shows that i, with a value of 1, is printed and then i is incremented to 2. Here, we draw a horizontal line in the tracechart to depict that the execution goes up to the for statement.
In step 5, is i less than or equal to 2? Yes, so we go through the loop again, printing 2 for i and incrementing it to 3. Now we have complemented the second iteration of the loop. In step 8, checking to see if i <= 2, we see that it is false and we stop the loop. The flowchart is given below.
Repetition Control Structure C++ Definition
The flowchart starts at the oval labeled Start and ends at the one labeled Stop. A rectangle is used for assignments.i is assigned 1 to begin. Then we encounter a decision diamond. Here we take the T for the true route and fall into the loop until the condition of i <= 2? becomes false, where we stop.
With a minimum number of changes, convert this flowchart so that all the integers from 3 to 7 are printed and write the code.
Write the code and draw the flowchart that will print 3, 5 and 7 instead of 3, 4, 5, 6 and 7. From the flowchart write the tracechart.
You can show the iteration number of the loop by modifying the previous program as shown below.
| |
Write a program that will ask the user to give three integers. Call these integers start,step_by and stop. After these three integers are scanned in, set up the for loop that will start i at the value of start, make it increase by the value given by step_by and make it stop at the value stored in stop. Print these values as shown in the following output sample. -----------Output--------------- Enter three integers: 23 3 32 23 26 29 32 | #include <stdio.h> void main() { int i, start = 0, step_by = 0, stop =0; printf_s('Enter three integers: '); scanf_s('%d %d %d', &start, &step_by, &stop); for(i = start; i <=stop; i = i + step_by) printf('%d ', i); printf('n'); } |
Write a program that will add up all the integers from 1 to the integer that was scanned into the variable j. Store the sum in the variable called sum and use i to increment the integers from 1 to j. Print only sum. For example, if 5 were read into j, then sum would be 1 + 2 + 3 + 4 + 5 or 15. A sample output is given below. ---------Output---------------- Give an integer: 6 Sum of integers from 1 to 6 is 24. | #include <stdio.h> void main() { int i, j, sum = 0; printf_s('Give an integer: '); scanf_s('%d', &j); for(i = 1; i <=j; ++i) sum = sum + i; printf('Sum of integers from 1 to %d is %dn', j, sum); } |
The for loop and all other repetition constructs can also be nested to any degree. In a simple word, nesting means loop in loop. Let try the following program example.
// a program to show the nested for loops #include<stdio.h> int main() { // variables for counter… int i, j; // outer loop, execute this first... // for every i iteration, execute the inner loop for(i=1; i<10;) { // display i printf('%d', i); // then, execute inner loop with loop index j the initial value of j is i + 1 for(j=i+1; j<10; ) { // display result of j iteration printf('%d', j); // increment j by 1 until j<10 j = j + 1; } // go to new line printf('n'); // increment i by 1, repeat until i<10 i = i + 1; } return 0; } |
The program has two for loops. The loop index i for the outer (first) loop runs from 1 to 9 and for each value of i, the loop index j for the inner loop runs from i + 1 to 9. Note that for the last value of i (i.e. 9), the inner loop is not executed at all because the starting value of j is 10 and the expression j < 10 yields the value false because j = 10.
The following is another nested example; study the program code and the output. In general, a nested two for loops can be depicted as a row and column.
|
Repetition Control Structure C++ Example
The first for loop is executed until the row is 1 (row > 0). For every row value, the inner for loop will be executed until col = 1 (col > 0). In a simple word, the externalfor loop will print the row and the internal for loop will print the column.
For the previous two nestedfor loop program example, build the flowcharts.Ans: as shown below.