You are on page 1of 27

Programming

Fundamentals

BSCS Semester1
Course Instructor: M. Nadeem
Contact: Muhammad.nadeem@cs.uol.edu.pk

Loops & Its Logic

What is a Loop?

An iterative statement is called loop. A type of control structure that


repeats a statement or set of statements is known as looping
structures. It is also known as iterative or repetitive structure. There
are two elements of the loop: the body of loop which is to be executed
number of times and a loop condition which terminates the loop when a
particular condition is met.
Repetition
A single statement
A set of statements

09/15/15

Types of Loop

Types of Loop

Counter loop (for loop)


Conditional loops (while, do while)
Types of Loop
For Loop

09/15/15

While Loop

Do While Loop

For Loop Operation


Initialization Expression

Test
Expression

False
Exit

True
Body of Loop

Increment Expression

09/15/15

For Loop Structure


Test Expression
Initialization
Expression

Increment
Expression

keyword

for ( j=0 ; j < 5 ; j++ )

statement;
09/15/15

Single Statement Loop Bod

For Loop Structure


Test Expression
Initialization
Expression

Increment Expression

keyword

for ( j=0 ; j < 5 ; j++ )

{ statement;
statement;
statement;
09/15/15

Multiple Statement Loop Body

For Loop
// demonstrate simple for loop
# include <iostream>
#include<conio.h>
void main()
{
int j;
for (j=0 ; j < 5 ; j++)
printf(%d
getch();
}
Output:
0

09/15/15

, j * j;

16

For Loop Variations

Multiple initialization and increment Expressions

for (x=0 , j=0 ; j < 5 ;

j++ , x++)

controlling

Increment or Decrement

for ( j=5 ; j > 0 ; j-- )


for ( j=0 ; j <10 ; j+=2 )
09/15/15

The Infinite loop


A

loop that does not terminate is called


Infinite loop.
A loop who's condition always remain true is
called infinite loop.
e.g.
for(int i=0;i>0;i++)
printf(%d,i);
09/15/15

While Loop
Single Statement Loop Body

while (test expression )


statement;
Test
Expression
Multiple Statement Loop Body

while ( test expression )

09/15/15

{
Statement;
Statement;
Statement;
}

False
Exit

True
Body of Loop

While Operation
10

The body of the loop is executed until the condition becomes false. Here is a
program which illustrates the working of the while loop.
void main ()
{
int c=0;
int i=0;
char str=y;
while(str==y)
{
cout<<Enter the number you want to add<<endl;
scanf(%d,&i);
c=c+1;
cout<<Do you want to enter another number y/n:<<endl;
scanf(%c,&str);
}
printf(The sum of the numbers are : %d,c);
getch();
}

09/15/15

11

// to find the average of as many numbers as user wants with


while loop.
void main()
{
int n,sum,count;
while(scanf(%d,&n))
{
If(n==0)
continue;
sum=sum+n //sum+=n;
count++;
}
Printf(%d,(sum/count));
}

09/15/15

12

Do While Loop
Single Statement Loop Body

Do
statement;
while (test expression );

Multiple Statement Loop Body

Do

09/15/15

{
Statement;
Statement;
Statement;
}
while ( test expression );

Body of Loop

Test
Expression

False
Exit

True
Do While Operation
13

The body of the loop is executed until the condition becomes false. Here is a
program which illustrates the working of the do while loop.
void main ()
{
int c=0;
int i=0;
char str=y;
do
{
cout<<Enter the number you want to add<<endl;
scanf(%d,&i);
c=c+1;
cout<<Do you want to enter another number y/n:<<endl;
scanf(%c,&str);
} while(str==y);
printf(The sum of the numbers are : %d\n,c);
getch();
}
09/15/15

14

// to find the average of as many numbers as user wants with


do while loop.
void main()
{
int n,sum,count;
do
{
If(n==0)
continue;
sum=sum+n //sum+=n;
count++;
} while(scanf(%d,&n));
printf(%d,(sum/count));
}
09/15/15

15

When to use Which Loop?


Advance

For Loop

No

09/15/15

knowledge

Prior Knowledge

While Loop
Do While

(executes at least once)

16

Break & Continue Statement

To exit a loop you can use the


break statement at any time.
This can be very useful if you
want to stop running a loop
because a condition has been
met other than the loop end
condition.
With continue; it is possible
to skip the rest of the
commands in the current loop
and start from the top again.
(the loop variable must still be
incremented).

09/15/15

EXAMPLE
int main()
{
int j, total;
for (int i=0; i<20;i++)
{
cin>>j;
if ( j == 10)
continue;
total = i + j;
cout<<total is=<<total;
}
return 0;
}
17

Continue statement

With continue; it is possible to skip the rest of the commands in


the current loop and start from the top again. (the loop variable
must still be incremented).
EXAMPLE

09/15/15

int main()
{
int i;
i = 0;
while ( i < 20 )
{
i++;
continue;
printf(hey wait! you are skipping me\n);
}
return 0;
}

18

Nested Loop
A

loop within an other loop


is called nested loop. e.g.
for(int i=1;i<=5;i++)

for(int j=1;j<=i;j++)
{
printf(%d,j);
}
printf(\n);

Output
1
12
123
1234
12345

}
09/15/15

19

Nested Loop
for(int

09/15/15

i=5;i>=1;i--)

for(int j=i;j>=1;j--)
{
printf(%d,j);
}
printf(\n);

Output
54321
4321
321
21
1

20

Nested Loop
for(int

09/15/15

i=5;i>=1;i--)

for(int j=1;j<=i;j++)
{
printf(%d,j);
}
printf(\n);

Output
12345
1234
123
12
1

21

Nested Loop
for(int

09/15/15

i=5;i>=1;i--)

for(int j=1;j<=i;j++)
{
printf(*);
}
printf(\n);

Output
*****
****
***
**
*

22

Nested Loop
int

i=5;
while(i>=1)

{
int j=1;

while(j<=i)
{

printf(%d,j);
j++;

}
i--;
printf(\n);

Output
12345
1234
123
12
1

}
09/15/15

23

What makes a bad program?

Repeating trial and error without


understanding the problem
Writing Code without detailed
analysis and design (Abstraction,
Algo)
Writing tricky and dirty programs

Programms:

Write a program using for, while and do while loops to:

Display numbers from 0 to 100

Display numbers from 100 to 0

Display even numbers from 0 to 100

Display odd numbers from 0 to 100

Display even numbers from 100 to 0

Display odd numbers from 100 to 0

Display Square of numbers from 0 to 100

Display Cube of numbers from 0 to 100

Display Square of numbers from 100 to 0

Display Cube of numbers from 100 to 0

Display Square of numbers from 40 to 100

Display Cube of numbers from 50 to 100

Display Square of numbers from 500 to 1000

Display Cube of numbers from 1000 to 1500

Display Average of even numbers from 1000 to 1200

Display Average of odd numbers from 1200 to 1000

09/15/15

25

Programs:

Write a program using for, while and do while and nested loops to display the
following outputs. You are also required to submit the dry runs of all these
programs on paper.

12345678910
123456789
12345678
1234567
123456
12345
1234
123
12
1

09/15/15

1
12
123
1234
12345
123456
1234567
12345678
123456789
12345678910

*
***
*****
*******
*******
*****
***
*

===========
****************
********
****
**
*
===========

26

Programs:

Write a program using for, while and do while and nested loops to display the
following outputs. You are also required to submit the dry runs of all these
programs on paper.

13579
13579
1357
1357
135
135
13
1

09/15/15

0
02
024
0246
02468
0246810
024681012
02468101214

&
&&
&&&
&&&&
&&&&&
&&&&&
&&&&
&&&
&&
&

*
***
*****
*******
*****
***
*

27