control structuresemi.ac.ma/.../c/slides/chapter4-controlstructures.pdf · karim bouzoubaa –...

21
1 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs Control Structures Algorithmics and C Programming Chapter 4 Karim Bouzoubaa

Upload: others

Post on 08-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

1 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

Control Structures

Algorithmics and

C Programming

Chapter 4 Karim Bouzoubaa

Page 2: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

2 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

Chapter 4: control structures l  Objectives

-  Be able to write conditional statements -  Be able to write repetitive statements

l  outline -  Introduction -  The if selection -  The if ... else selection

-  The while repetition -  The for repetition -  The do ... While repetition

-  Comprehensive program

Page 3: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

3 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

Introduction l  algo so far

-  Assignements (a = 5)

-  Input/Output (display, read)

l  Computer programs are more complex et contain more elaborated statements

l  Example (remind/chapter 2):

l  action 4 checks if a condition is true or not

ùùð Selection l  actions 1,2,3 and 4 are

repeated n times

ùùð Repetition

Planting multiple trees: 1- Dig a hole 2- Place a tree 3- Reseal the hole 4- If still other trees Execute actions 1, 2, 3 and 4 else Execute next actions

5- Water the trees

Page 4: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

4 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

Introduction l  Computer science provides other types of statement

called control structures l  These structures allow to control the flow of

execution of the whole statemets l  Conditional structures (selections):

-  if

-  if … else

l  Repetitive structures (Iterations): -  while

-  do … while

-  for

Page 5: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

5 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The if structure l  The if selection consists in executing a sequence of

statements only when a condition is satisfied

Entrée

Vrai Faux

Séquence

Sortie vers instruction suivante

Condition

instruction0 ;

if (condition) {

instruction1 ;

instruction2 ;

instructionn ;

}

instructionn+1 ;

Page 6: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

6 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The if structure l  Consider a and b as two variables. An algo that determines

and displays the largest of these two variables

l  Algorithm "maximum of 2 variables“

l  Input : x, y type integer

l  Output : max type integer

l  Process:

Begin

read x, y

if (x > y) max = x

if (y ≥ x) max = y

Display(" The maximum is: “, max)

End

Page 7: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

7 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The if ... else structure l  The if … else selection consists in selecting between

two sequences depending on the truth value of some condition

Entrée

Vrai Faux

Séquence vraie

Sortie vers instruction suivante

Condition

Séquence fausse

instruction ;

if (condition) {

instruction1 ; instruction2 ; … instructionn ;

}

else {

instruction1 ; instruction2 ; … instructionm ;

}

instruction ;

Page 8: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

8 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The if ... else structure l  Consider a and b as two variables. An algo that determines

and displays the largest of these two variables

l  Algorithm "maximum de 2 variables“

l  Input : x, y type integer

l  Output : max type integer

l  Process:

Begin

read x, y

if (x > y) max = x

else max = y

display(" " The maximum is: “, max)

End

Page 9: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

9 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

Exercises

1.  An algorithm that determines and displays the minimum of three variables (many possible algo)

2.  An algorithm that solves the equation ax + b =0

3.  An algorithm that solves the equation ax2 + bx + c =0

Page 10: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

10 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The while repetition structure

l  The sequence is executed as many times as necessary while the condition is satisfied

Entrée

Vrai Faux

Séquence

Sortie vers instruction suivante

Condition while (condition) {

instruction1 ; instruction2 ;

… instructionn ;

}

Page 11: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

11 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The while repetition structure l  Algo that displays the sequence 0 2 4 6 8 … 50

l  Algorithm “display sequence 0 2 … 50“

l  Input :

l  Output :

l  temporary: val

l  Process:

Begin

val = 0

while(val < 52) {

display (val)

val = val + 2

}

Display(“End“)

End

Page 12: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

12 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The while repetition structure l  Algo that computes the average of n values (n > 0)

l  A l g o r i t h m “ a v g o f n values“

l  I n p u t : n , v a l t y p e integer

l  Output : avg type reel

l  temporay: count, sum

l  Process:

Begin

read n

count= 0

sum = 0

while (count < n) {

lire val

sum = sum + val

count= count+ 1

}

Avg = sum / n

Display(”the avg is: “, avg)

End

Page 13: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

13 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

Exercises

1.  Algo that displays the sequence 0 5 10 … 100

2.  Algo that displays the sequence 100 90 80 … 10

3.  Algo that computes the factorial of n

4.  Algo that reads a series of values, stops at -1 and displays the sum, product and avg of these values

5.  Algo that computes the product of two numbers n and m using only the addition operator

Page 14: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

14 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The do ... while repetition structure l  The do ... While structure is mainly useful when we need execute statements of a

loop one time at least.

l  The condition is checked at the end of the loop instead of at the end

-  Even if the condition is false from the begining, the sequence is executed one time at least

do{ instruction1 ; instruction2 ; …

instructionn ; } while (condition) ;

Entrée

Vrai

Faux

Séquence

Sortie vers instruction suivante

Condition

Page 15: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

15 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The do ... while repetition structure l  Algo that computes the product P = 10*9*8* … *1

l  Algorithm “product from 10 to 1“

l  Output : p type integer

l  temporay: count

l  Process:

Begin

count= 10

p = 1

Faire {

p = p * count

count = count- 1

} while (count> 0)

Display(”the product is:“, p)

End

Page 16: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

16 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The do ... while repetition structure l  The most common use: reading a variable with condition

l  …

l  input: val integer

l  …

l  Process:

do {

read val

} while (val < 0)

l  …

l  input: val integer

l  …

l  Process:

do{

read val

} while (val<5 OR val>10)

Val in [0, +∞] Val in [5, 10]

Page 17: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

17 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The for repetition structure l  For is used to execute a loop a fixed number of

times

for var = initial to final GAP gap { instruction1 ; instruction2 ; … instructionn ; }

l  When gap = 1, it could be ignored

Page 18: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

18 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The for repetition structure l  Algo that displays the sequence 0 2 4 6 8 … 50

l  Algorithm “sequence evens < 50“

l  temporay: i integer

l  Process:

Begin

for i=0 to 50 gap 2 {

display (i)

}

End

Page 19: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

19 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The for repetition structure l  Algo that displays the n first power of 2

l  Algorithm “n power of 2“

l  Input : n integer

l  temporay: i, p integer

l  Process:

Begin

read n

p = 1

for i=1 to n {

p = p * 2

display (p)

}

End

Page 20: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

20 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

The for repetition structure l  Algo that computes

l  f(x,y) = x / (x2 + y2) -  x = 0, 2, … 10

-  y = 1, 3, … 21

l  Algorithm “f(x,y)“

l  temporay:

-  i, j integer

-  f real

l  Process:

Begin

for x = 0 to 10 gap 2 {

for y = 1 to 21 gap 2 {

f = x / (x*x + y*y)

display (f)

}

}

End

l  We have nested loops, i.e. the second loop is part of the first one. The second loop is entirely executed for every iteration of the first one

Page 21: Control Structuresemi.ac.ma/.../C/Slides/Chapter4-ControlStructures.pdf · Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs 2 Chapter 4: control structures ! Objectives - Be able

21 Karim Bouzoubaa – Ecole Mohammadia d’Ingénieurs

Exercises

1.  While exercises

2.  Algo that computes the first n prime numbers that are greater than 100

3.  Algo that computes the sum S of the 100 first membres of the mathematical sequence

S = 1 – ½ + ¼ - … + (-1)p/2p

4.  Algo that computes the sum

l  Adding elements from left to right

l  Adding elements from right to left

l  Adding separately positive and negative members

S = 1 – ½ + ⅓ … + 1/999 - 1/1000