Pps ch4

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 40

LIFE IS ALL ABOUT REPETITION.

WE DO SAME THING EVERYDAY


WHAT IS LOOP?
 Loop is used to execute the block of code several times according to the condition given in
the loop. It means it executes the same code multiple times.

“Hello” 5

Output

printf("Hello\n"); Hello
printf("Hello\n"); Hello loop(condition)
{
printf("Hello\n"); Hello //statements
printf("Hello\n"); Hello }

printf("Hello\n"); Hello
IF V/S WHILE

Flowchart of if v/s Flowchart of while

False False
condition condition

True True

… …
LOOPING OR ITERATIVE STATEMENTS IN C
Looping Statements are
Entry Controlled Loop: while, for
Exit Controlled Loop: do…while
Virtual Loop: goto

WHILE LOOP
WHILE LOOP
 while is an entry controlled loop
 Statements inside the body of while are repeatedly executed till the condition is true
 while is keyword

Syntax
while(condition)
{
// Body of the while
// true part
}
WAP TO PRINT 1 TO N(WHILE LOOP)

Program Output
1 #include <stdio.h> Enter n:10
2 void main() 1
3 { 2
4 int i,n; 3
5 i=1; 4
6 printf("Enter n:"); 5
7 scanf("%d",&n); 6
8 while(i<=n) 7
9 { 8
10 printf("%d\n",i); 9
11 i=i+1; 10
12 }
13 }
WAP TO PRINT MULTIPLICATION TABLE(WHILE LOOP)

Program Output
1 #include<stdio.h> Enter n for multiplication table:5
2 void main() 5 * 1 = 5
3 { 5 * 2 = 10
5 * 3 = 15
4 int i=1,n;
5 * 4 = 20
5 printf("Enter n for multiplication table:"); 5 * 5 = 25
6 scanf("%d",&n); 5 * 6 = 30
7 while(i<=10) 5 * 7 = 35
8 { 5 * 8 = 40
9 printf("%d * %d = %d\n",n,i,n*i); 5 * 9 = 45
10 i=i+1; 5 * 10 = 50
11 }
12 }
WAP TO SUM OF 5 NUMBERS ENTERED BY USER(WHILE LOOP)

Program Output
1 #include<stdio.h> Enter a number=10
2 void main() Enter a number=20
3 { Enter a number=30
Enter a number=40
4 int sum=0, i=1,n;
Enter a number=50
5 while(i<=5) Sum is=150
6 {
7 printf("Enter a number=");
8 scanf("%d",&n);
9 sum=sum+n;
10 i=i+1;
11 }
12 printf("Sum is=%d",sum);
13 }
SYNTAX AND LOGIC
Swimming Rules
To Swim
1. Breath control
2. Kicking legs
3. Back stroke with arms
4. Front stroke with arms
5. Crawling in water

Syntax Logic
while(condition) int i = 1;
{ while (i <= 5)
// Body of the while {
// true part printf("%d\n", i);
} i=i+1;
}
•Step 1: Understand the problem statement
• e.g. Write a program to find factors of a number.
• Run following questions through mind
• What is the factor of a number?
• Factor is a number that divides another number evenly with no
remainder.
• For example, 1,2,3,4,6,12 are factors of 12.

HOW TO BUILD • How many variables needed? What should be their data
types?(Inputs/Outputs)

LOGIC? STEP-1 • To get number from user we need variable n.


• Now we need to divide n with 1,2,3,...,n. For this we will declare a
loop variable i initialized as 1.
• Both variables should be of integer data type.
• What control structure you require?
• First we need a loop to divide n by 1,2,3,…,n, loop will start from 1
and ends at n.
• Inside loop we need if structure to check n%i==0 (Number n is
evenly divisible by i or not).
HOW TO BUILD LOGIC? STEP-2

•Step 2: Think for 1 or 2 examples


• Consider n=6, now take i=1
• 6%1==0, TRUE; So, 1 is factor of 6
• 6%2==0, TRUE; So, 2 is factor of 6
• 6%3==0, TRUE; So, 3 is factor of 6
• 6%4==2, FALSE; S0, 4 is not factor of 6
• 6%5==1, FALSE; S0, 5 is not factor of 6
• 6%6==0, TRUE; S0, 6 is factor of 6
• From this we can infer that loop variable i starts with 1 and incremented by one for next iteration
then ends at value n.
• Consider n=10, factors are 1,2,5,10
• Consider n=11, factor is 1,11
• From this we can infer that 1 and number itself are always factors of any number n.
HOW TO BUILD LOGIC? STEP-3
Step 3: Draw flowchart/steps on paper or in mind
Start
Steps
i=1 Step 1: Start
Step 2: Declare variables n,i
read n Step 3: Initialize variable
i ← 1
Step 4: Read value of n
i<=n? Step 5: Repeat the steps until i = n
True False 5.1: if n%i == 0
Display i
n%i==0? 5.2: i=i+1
True False Step 7: Stop
print i

i=i+1
Stop
HOW TO BUILD LOGIC? STEP-4
Step 4: Writing Pseudo-code
 Pseudo-code is an informal way to express the design of a computer program or an
algorithm.
 It does not require any strict programming language syntax.

Pseudo-code
Initialize i=1 integer
Declare n as integer
Input n
while i<n
if n%i
print i
end if
increment i=i+1
end while
WAP TO FIND FACTORS OF A NUMBER(WHILE LOOP)

Program Output
1 #include <stdio.h> Enter n to find factors=12
2 void main() 1,2,3,4,6,12,
3 {
4 int i=1,n;
5 printf("Enter n to find factors=");
6 scanf("%d",&n);
7 while(i<=n)
8 {
9 if(n%i==0)
10 printf("%d,",i);
11 i=i+1;
12 }
13 }
WAP TO PRINT REVERSE A NUMBER(WHILE LOOP)

Program Output
1 #include <stdio.h> Enter a number=1234
2 void main() 4321
3 {
4 int n;
5 printf("Enter a number=");
6 scanf("%d",&n);
7 while(n!=0)
8 {
9 printf("%d",n%10);
10 n=n/10;
11 }
12 }
WAP TO CHECK GIVEN NUMBER IS PERFECT OR NOT(WHILE LOOP)

1 void main(){
2 int i=1,n,sum=0;
Output
3 printf("Enter a number:");
4 scanf("%d",&n); Enter a number:6
5 while(i<n) 1+2+3=6
6 is a perfect number
6 {
7 if(n%i==0)
Output
8 {
9 printf("%d+",i); Enter a number:8
1+2+4+=7
10 sum=sum+i;
8 is not a perfect number
11 }
12 i=i+1;
Output
13 }
Enter a number:496
14 printf("=%d",sum);
1+2+4+8+16+31+62+124+248+=496
15 if(sum==n) 496 is a perfect number
16 printf("\n%d is a perfect number",n);
17 else
18 printf("\n%d is not a perfect number",n);
19 }
WAP TO CHECK GIVEN NUMBER IS PRIME OR NOT(WHILE LOOP)
1 void main()
2 {
Output
3 int n, i=2,flag=0;
4 printf("Enter a number:"); Enter a number:7
5 scanf("%d",&n); 7 is a prime number
6 while(i<=n/2)
7 {
Output
8 if(n%i==0)
9 { Enter a number:9
9 is not a prime number
10 flag=1;
11 break;
12 }
13 i++;
14 }
15 if (flag==0)
16 printf("%d is a prime number",n);
17 else
18 printf("%d is not a prime number",n);
19 }

FOR LOOP
FOR LOOP
 for is an entry controlled loop
 Statements inside the body of for are repeatedly executed till the condition is true
 for is keyword
Syntax
for (initialization; condition; updateStatement)
{
// statements
}

 The initialization statement is executed only once.


 Then, the condition is evaluated. If the condition is false, the for loop is terminated.
 If the condition is true, statements inside the body of for loop are executed, and the
update statement is updated.
 Again the condition is evaluated.
WAP TO PRINT NUMBERS 1 TO N (FOR LOOP)

Program Output
1 #include<stdio.h> Enter a number:5
2 void main() 1
3 { 2
4 int i,n; 3
5 printf("Enter a number:"); 4
6 scanf("%d",&n); 5
7 for(i=1;i<=n;i++)
8 {
9 printf("%d\n",i);
10 }
11 }
WAP TO FIND FACTORS OF A NUMBER (FOR LOOP)

Program Output
1 #include <stdio.h> Enter n to find factors=12
2 void main() 1,2,3,4,6,12,
3 {
4 int i,n;
5 printf("Enter n to find factors=");
6 scanf("%d",&n);
7 for(i=1;i<=n;i++)
8 {
9 if(n%i==0)
10 printf("%d,",i);
11 }
12 }
WAP TO CHECK GIVEN NUMBER IS PERFECT OR NOT(FOR LOOP)
1 void main(){
2 int i,n,sum=0;
Output
3 printf("Enter a number:");
4 scanf("%d",&n); Enter a number:6
5 for(i=1;i<n;i++) 1+2+3=6
6 is a perfect number
6 {
7 if(n%i==0)
Output
8 {
9 printf("%d+",i); Enter a number:8
1+2+4+=7
10 sum=sum+i;
8 is not a perfect number
11 }
12 }
Output
13 printf("=%d",sum);
Enter a number:496
14 if(sum==n)
1+2+4+8+16+31+62+124+248+=496
15 printf("\n%d is a perfect number",n); 496 is a perfect number
16 else
17 printf("\n%d is not a perfect number",n);
18 }

DO WHILE LOOP
DO WHILE LOOP
 do while is an exit controlled loop.
 Statements inside the body of do while are repeatedly executed till the condition is
true.
 Do and while are keywords. Syntax
do
{
// statement
}
while (condition);

 Loop body will be executed first, and then condition is checked.


 If the condition is true, the body of the loop is executed again and the condition is
evaluated.
 This process goes on until the condition becomes false.
 If the condition is false, the loop ends.
WAP TO PRINT ODD NUMBERS BETWEEN 1 TO N(DO WHILE LOOP)

Program Output
1 void main() Enter a number:5
2 { 1,3,5
3 int i=1,n;
4 printf("Enter a number:");
5 scanf("%d",&n);
6 do
7 {
8 if(i%2!=0)
9 {
10 printf("%d,",i);
11 }
12 i=i+1;
13 }
14 while(i<=n);
15 }
WAP TO FIND FACTORS OF A NUMBER(DO WHILE LOOP)

Program Output
1 void main() Enter a number:6
2 { 1,2,3,6,
3 int i=1,n;
4 printf("Enter a number:");
5 scanf("%d",&n);
6 do
7 {
8 if(n%i==0)
9 {
10 printf("%d,",i);
11 }
12 i=i+1;
13 }
14 while(i<=n);
15 }
WAP TO PRINT REVERSE A NUMBER(DO WHILE LOOP)

Program Output
1 void main() Enter a number=1234
2 { 4321
3 int n;
4 printf("Enter a number:");
5 scanf("%d",&n);
6 do
7 {
8 printf("%d",n%10);
9 n=n/10;
10 }
11 while(n!=0);
12 }

GOTO STATEMENT
GOTO STATEMENT
 goto is an virtual loop
 The goto statement allows us to transfer control of the program to the specified label.
 goto is keyword

Syntax Syntax
goto label; label:
. .
. .
. .
label: goto label;

 The label is an identifier. When the goto statement is encountered, the control of the
program jumps to label: and starts executing the code.
WAP TO PRINT ODD NUMBERS BETWEEN 1 TO N(GOTO)

Program Output
1 void main() Enter a number:5
2 { 1,3,5
3 int i=1,n;
4 printf("Enter a number:");
5 scanf("%d",&n);
6 odd:
7 if(i%2!=0)
8 {
9 printf("%d,",i);
10 }
11 i=i+1;
12 if(i<=n)
13 {
14 goto odd;
15 }
16 }
WAP TO FIND FACTORS OF A NUMBER(GOTO)

Program Output
1 void main() Enter a number:6
2 { 1,2,3,6,
3 int i=1,n;
4 printf("Enter a number:");
5 scanf("%d",&n);
6 odd:
7 if(n%i==0)
8 {
9 printf("%d,",i);
10 }
11 i=i+1;
12 if(i<=n)
13 {
14 goto odd;
15 }
16 }
TYPES OF LOOPS
Entry Control Loop Entry Control Loop Exit Control Loop Virtual Loop
int i=1; int i; int i=1; int i=1;
while(i<=10) for(i=1;i<=10;i++) do labelprint:
{ { { printf("%d",i++);
printf("%d",i++); printf("%d",i); printf("%d",i++); if(i<=10)
} } } goto labelprint;
while(i<=10);

False
Loop Body Label Statement
condition
True True
condition condition
Loop Body
False True False
goto

Pattern
ALWAYS DETECT PATTERN IN PATTERN
PATTERN
There are important points to note in pattern
1. Determine, how many rows?
2. Determine, how many numbers/characters/columns in a row?
3. Determine, Increment/Decrement among the number of rows.
4. Determine, starting in each row

1 1 1 *
11 12 23 * *
111 123 456 * * *
1111 1234 78910 * * * *
11111 12345 * * *
* *
*
WAP TO PRINT GIVEN PATTERN (NESTED LOOP)
* Program
** 1 void main()
*** 2 {
**** 3 int i,j;
***** 4 for(i=1;i<=5;i++)
5 {
No. of rows: 5
6 for(j=1; j<=i; j++)
No. of characters 7 {
Row-1: * 8 printf("*");
Row-2: ** 9 }
Row-3: *** 10 printf("\n");
Row-4: **** 11 }
Row-5: ***** 12 }

Inner loop: Increment


Outer loop: Increment

Starting: *
WAP TO PRINT GIVEN PATTERN (NESTED LOOP)
1 Program
12 1 void main()
123 2 {
1234 3 int i,j;
12345 4 for(i=1;i<=5;i++)
5 {
No. of rows: 5
6 for(j=1; j<=i; j++)
No. of values 7 {
Row-1: 1 8 printf("%d",j);
Row-2: 12 9 }
Row-3: 123 10 printf("\n");
Row-4: 1234 11 }
Row-5: 12345 12 }

Inner loop: Increment


Outer loop: Increment

Starting: 1
WAP TO PRINT GIVEN PATTERN (NESTED LOOP)
5 Program
54 1 void main()
543 2 {
5432 3 int i,j;
54321 4 for(i=5;i>0;i--)
5 {
No. of rows: 5
6 for(j=5; j>=i ; j--)
No. of values 7 {
Row-1: 5 8 printf("%d",j);
Row-2: 54 9 }
Row-3: 543 10 printf("\n");
Row-4: 5432 11 }
Row-5: 54321 12 }

Inner loop: Decrement


Outer loop:
Decrement/Increment
Starting: 5
WAP TO PRINT GIVEN PATTERN (NESTED LOOP)
* Program
** 1 void main() First we need to print 4
*** 2 { spaces before printing *
**** 3 int i,j,k;
***** 4 for(i=1;i<=5;i++)
*
5 {
No. of rows: 5 6 for(k=5;k>i;k--) **

No. of values 7 { ***


Row-1: ----* 8 printf(" ");
****
Row-2: ---** 9 }
Row-3: --*** 10 for(j=1;j<=i;j++) *****
Row-4: -**** 11 {
Row-5: ***** 12 printf("*"); After printing spaces this
13 } inner loop prints *
Inner loop: Decrement 14 printf("\n");
Outer loop: Decrement/Increment 15 }
16 }
Starting: -(space)
Ending: *
PRACTICE PROGRAMS
1) Write a program to find sum of first N odd numbers. Ex. 1+3+5+7+………..+N
2) Write a program to find 1+1/2+1/3+1/4+....+1/n.
3) Write a program to print all Armstrong numbers in a given range. For example 153 = 1^3 + 5^3 + 3^3. So,
153 is Armstrong number.
4) Write a program to print given number in reverse order
5) Write a program to check whether a given string is palindrome or not.
6) Write
1
a2 program
3
to print
4 5
Multiplication
6 7 .
Table up to n.
2 4 6 8 10 12 14 .
3 6 9 12 15 18 21 .
4 8 12 16 20 24 28 .
5 10 15 20 25 30 35 .
. . . . . . . .

7) Construct C programs to print the following patterns using loop statement.


1 * * * * *
22 * 1 1 * * * * *
1 * * * *
333 # # 0 1 A B * *
2 2 * * *
4444 * * * 1 0 1 2 3 4 * *
3 3 3 * *
55555 # # # # 0 1 0 1 C D E F * * * * *
4 4 4 4 *
* * * * *

You might also like