control structures - wordpress.comapr 02, 2011  · control structures nguyen dung falculty of...

25
Control Structures Nguyen Dung Falculty of Information Technology Hue University of Science

Upload: others

Post on 27-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Control Structures Nguyen Dung

Falculty of Information Technology

Hue University of Science

Page 2: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Content

Selection

if statement

switch statement

Iteration (loop)

for statement

while statement

do … while statement

Jump:

break

continue

return

goto 2

Page 3: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

if statement

Syntax 1st:

if ( expression ) {B;}

exp

B

nonzero

zero

3

Page 4: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

if statement

Example:

int a = 5, b = 9, max;

max = a;

if ( max < b ){

max = b;}

printf(“Max is: %d”,max);

Max is: 9

if (max < b)

max = b;

4

Page 5: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

if statement

Syntax 2nd:

if ( exp ) {B1;}

else {B2;}

exp

B1

nonzero zero

B2

5

Page 6: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

if statement float a, b, x;

printf(“a = ");scanf("%f",&a);

printf(“b = ");scanf("%f",&b);

if (a == 0 ){

if ( b != 0 )

printf(“Equation hasn’t root.”);

else

printf(“Equation has countless root.”);

}

else{

x = -b/a;

printf(“Root of equation is x = %f”,x);

}

a = 2

b = 6

Root of equation is x = -3.00

6

Page 7: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Excercises

1. Xác định xem một số nguyên là chẵn hay lẻ.

2. Xác định học lực dựa vào điểm trung bình của sinh viên, biết:

3. Xác định số có giá trị lớn hơn trong hai số thực a, b theo 2 cách: sử dụng lệnh if và không sử dụng lệnh if

4. Hiển thị một số tự nhiên bất kì từ 0 đến 9 dưới dạng chữ.

ĐTB [0, 4) [4, 5) [5, 6.5) [6.5, 8) [8, 9) [9, 10]

Học lực Kém Yếu Trung bình Khá Giỏi Xuất sắc

7

Page 8: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

exp==

exp1

exp==

exp2

exp==

expn

B0;

B1;

B2;

Bn;

Zero

Zero

Zero

Zero

Non-Zero

Non-Zero

Non-Zero

8

Page 9: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

switch statement

Syntax:

switch (exp)

{

case (exp1):

B1; break;

case (exp2):

B2; break;

...

case (expN):

BN; break;

[default: B0;]

}

expression

Constant-expression

9

Page 10: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Example:

void main()

{ int x;

printf("Nhap so: ");

scanf("%d", &x);

switch(x){

case 0: printf(“Khong”);break;

case 1: printf(“Mot”);break;

case 2: printf(“Hai”);break;

case 3: printf(“Ba”);break;

case 4: printf(“Bon”);break;

case 5: printf(“Nam”);break;

case 6: printf(“Sau”);break;

case 7: printf(“Bay”);break;

case 8: printf(“Tam”);break;

case 9: printf(“Chin”);break;

}

getch();

}

Nhap so: 6

Sau

10

Page 11: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

while .. do statement

Syntax:

while (exp)

{

B;

} exp B;

Zero Non-Zero

11

Page 12: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Example

Find “greatest common divisor” of a and b.

Then find “least common multiple” of a and

b

Input: a, b

Output: GCD(a,b) and LCM(a,b)

Method:

𝐺𝐶𝐷 𝑎, 𝑏 =

𝑎 𝑖𝑓 𝑏 = 𝑎

𝐺𝐶𝐷 𝑎 − 𝑏, 𝑏 𝑖𝑓 𝑎 > 𝑏

𝐺𝐶𝐷 𝑎, 𝑏 − 𝑎 𝑖𝑓 𝑎 < 𝑏

𝐺𝐶𝐷 𝑎, 𝑏 =𝑎𝑏

𝐿𝐶𝑀 (𝑎, 𝑏)

𝐺𝐶𝐷 𝑎, 𝑏 = 𝑎 𝑖𝑓 𝑏 = 0

𝐺𝐶𝐷 𝑏, 𝑏 𝑚𝑜𝑑 𝑎 𝑖𝑓𝑏 ≠ 0

12

Page 13: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Implement unsigned int x, y, a, b;

printf("Nhap x, y: ");

scanf("%d,%d", &x, &y);

if (x == 0 && y == 0)

printf(“Both a and b are 0\n");

else if (x * y == 0){

printf(“GCD(%d,%d) is: %d\n", x, y, x+y);

}

else{

a = x;b = y;

while(a != b){

if (a > b)

a -= b;

else

b -= a;

}

printf(“GCD(%d,%d): %d\n", x, y, a);

printf(“LCM(%d,%d) is: %d\n",x, y,(x*y)/a);

}

unsigned int r = 0;

while(b!=0){

r = a % b;

a = b;

b = r;

}

13

Page 14: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

do .. while statement

Syntax:

do

{

B;

}

while (exp);

exp

B;

Zero

Non-Zero

Different with

while statement??? 14

Page 15: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Example

#include <stdio.h>

#include <conio.h>

void main()

{

int x; char c;

do{

printf(“\nEnter x: ”);

scanf(“%f”, &x);

if (x%2==0){

printf(“%d is even”,x);

}

else

printf(“%d is odd”,x);

printf(“\nPress ESC to exit... ”);

c = getch();

} while (c!=27);

}

Enter x: 6

6 is even

Press ESC to exit...

Enter x: 7

7 is odd

Press ESC to exit...

15

Page 16: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

for statement

Syntax:

for(exp0;exp1;exp2)

{

B;

} exp1

exp0;

Zero

Non-Zero

B;

exp2; 16

Page 17: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Example

Find the following sum:

S = 1 + 2 + 3 + ... + n = 𝒊𝒏𝒊=𝟏

Input: n

Output: sum of n number from 1 to n

Method:

s = 0;

For i = 1 to n do

s = s + i;

17

Page 18: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Implement

#include <stdio.h>

#include <conio.h>

void main()

{

int n, s=0;

printf(“Enter n: ");

scanf("%d", &n);

for(int i = 1; i <= n; i++)

s = s + i;

printf(“Sum is: ", s);

getch();

}

Enter n: 6

Sum is: 21

18

Page 19: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

break, continue, goto

The break command allows you to terminate

and exit a loop (that is, do, for,

and while) or switch command from any point

Example

int s = 0;

for(int i = 0; i <= 10; i++){

if (i == 5)

break;

s = s + i;

}

printf(“s = %d”,s);

s= ???

19

Page 20: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

break, continue, goto

The continue statement jumps the next

loop.

Example

int s = 0;

for(int i = 0; i <= 10; i++){

if (i == 5)

continue;

s = s + i;

}

printf(“s = %d”,s);

S = ???

20

Page 21: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

break, continue, goto

Goto: self-study

21

Page 22: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

return

The return statement:

terminates the execution of a

function

or return a result(address or value)

to the calling function and exit

function.

Syntax:

return exp;

22

Page 23: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Warning Homework

Please visit website

to get it.

23

Page 24: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

Questions

24

Page 25: Control Structures - WordPress.comApr 02, 2011  · Control Structures Nguyen Dung Falculty of Information Technology ... Selection if statement switch statement ... break, continue,

The end

25