Professional Documents
Culture Documents
START
Read n
• Compute sum of n numbers Initialise sum = 0
• Take n as user input F
n
• Read numbers one by one items?
from user T
• Keep variable sum to
Input x
accumulate the sum sum = sum + x
– initialise to zero
Print
• How do we know that n sum
items have been read?
END
Jan 2016 P. R. Panda, I.I.T Delhi 12
Loops
START
Read n
• How do we know that n Initialise sum = 0, i = 0
items have been read?
F
– count using new variable i
i < n?
T
Input x
sum = sum + x
i=i+1
Print
sum
END
Jan 2016 P. R. Panda, I.I.T Delhi 13
WHILE Loops
START Error!
main () Always check
{ validity of input!
Read n int sum=0, i=0, x, n; What should we
Initialise sum = 0, i = 0 write here?
cin >> n;
F if (n < 0) ... Loop Body
i < n? while (i < n) {
cin >> x; Loop
T sum = sum + x; Iteration =
Input x i = i + 1; One pass
sum = sum + x } over the Loop
i=i+1 cout << sum << endl; Body
Print }
sum
What does the instruction
END sequence look like?
Jan 2016 P. R. Panda, I.I.T Delhi 14
DO-WHILE (or REPEAT-UNTIL)
START Loops START
Read n Read n
Initialise sum = 0, i = 0 Initialise sum = 0, i = 0
• Position of
condition check
F
inverted
i < n? Input x
sum = sum + x • What is the
T i=i+1 difference?
• Which is
Input x better?
sum = sum + x F
i=i+1 i < n?
Print
sum T Print
sum
END
Jan 2016 P. R. Panda, I.I.T Delhi
END 15
FOR Loops
START
main ()
Read n Loop Header
{
Initialise sum = 0
int sum=0, i=0, x, n;
n iterations cin >> n;... Loop Body
done
for (i = 0; i < n; i++) {
Input x
sum = sum + x cin >> x;
sum = sum + x;
}
Iterate n cout << sum << endl;
times }
Print
sum
END
Jan 2016 P. R. Panda, I.I.T Delhi 16
The FOR Loop
main ()
• Header {
– Fields are optional (try it int sum=0, i=0, x, n;
out) cin >> n;...
for (i = 0; i < n; i++) {
• Increment: i++ or cin >> x;
“i = i + 1” (approx) sum = sum + x;
}
• General case: same as cout << sum << endl;
WHILE }
• Counting iterations
• Accumulating info. over loop iterations
– sum of numbers
• Boolean flags
– searching if a condition is valid
– retrieving the valid iteration
i = 0; sum = 0;
cin >> n; cin >> n;
while (n > 0) { while (n > 0) {
i = i + 1; sum = sum + n;
cin >> n; cin >> n;
} }
num_pos = i; Accum = sum;
Counting: How Accumulation: sum of
many positive positive number
numbers? sequence