27
Company LOGO มมมมมมมมมมม มมมมมม มมมมมมมมมม มมมมมมมมมมม มมมมมม มมมมมมม มมมมมมมมมมม มมมมมม มมมมม 5 Selecting Programming

Chapter05

  • Upload
    -

  • View
    105

  • Download
    1

Embed Size (px)

DESCRIPTION

หลักการเขียนโปรแกรมคอมพิวเตอร์เบื้องต้น โดยใช้ภาษา C# และใช้โปรแกรม RAPTOR ในการออกแบบ Flowchart

Citation preview

Page 1: Chapter05

Company

LOGO

มหาวิ�ทยาลัยราชภัฏนครราชสี�มา

คณะวิ�ทยาการจัดการ

โปรแกรมคอมพิ�วิเตอร�ธุ รก�จั

บทท�" 5 Selecting Programming

Page 2: Chapter05

เน$%อหา

Boolean Expression If Nested If Switch…case

Page 3: Chapter05

Boolean Expression

การเปร�ยบเที�ยบ (Comparison) เที�าก�บ (equal) เคร��องหมาย ค�อ = ไม�เที�าก�บ (Not equal) เคร��องหมาย ค�อ != น้�อยกว่�า (Less) เคร��องหมาย ค�อ < มากกว่�า (Greater) เคร��องหมาย ค�อ > น้�อยกว่�าหร�อเที�าก�บ (Less than or equal

to) เคร��องหมาย ค�อ <= มากกว่�าหร�อเที�าก�บ (Greater than or equal

to) เคร��องหมาย ค�อ >=

Page 4: Chapter05

ตวิอย&าง การเปร�ยบเท�ยบ

การเปร�ยบเท�ยบ (ก(าหนดให* X = 10, Y = "com")

ค(าตอบ

X == 10X != 10X < 10X > 10X <= 10X >= 10y+"puter" == "computer"Y == "Com"Y != "com"

TrueFalseFalse

TrueFalse

True

FalseTrue

False

Page 5: Chapter05

Boolean Expression

ตรรกะ (Boolean) และ (And) เคร��องหมาย ค�อ && ค�าเป�น้จร�งเม��อ

ค�าของที กน้�พจน้"เป�น้จร�ง หร�อ (Or) เคร��องหมาย ค�อ || ค�าเป�น้จร�งเม��อค�า

ของน้�พจน้"ใดน้�พจน้"หน้%�งเป�น้จร�ง น้�เสธ (Not) เคร��องหมาย ค�อ ! ค�าเป�น้ค�าตรงก�น้

ข�ามของน้�พจน้" เช่�น้ ถ้�าค�าน้�พจน้"เป�น้จร�ง ค�าน้�เสธจะเป�น้เที*จ และถ้�าค�าน้�พจน้"เป�น้เที*จ ค�าน้�เสธจะเป�น้จร�ง

Page 6: Chapter05

ตวิอย&าง ตรรกะ

การเปร�ยบเท�ยบ (ก(าหนดให* A = 10, B

= 5, Y = "com", Z = true)

ค(าตอบ

(A == 10) && (B+5 == A)(A + B > 10) && (B == 5)(B <= A) || (B == A)!(10 == B)!(A >= B)(A == 10) && (Y == "com")(Y == "Com") || (Y == "com")(Y == "Com") || !(Z)!(!(Z)) || !(Z)!(Z != true)

TrueFalseTrue

True

TrueFalseTrueTrueFalseTrue

Page 7: Chapter05

If

โครงสร�าง If เป�น้โครงสร�างที��ใช่�คว่บค มการที,างาน้ของค,าส��งอ��น้ๆ ภายใต�เง��อน้ไข (condition) ที��ก,าหน้ด โดยเม��อม�การตรว่จสอบเง��อน้ไขแล�ว่ ผลล�พธ"ของการตรว่จสอบจะม�แค� 2 ค,าตอบเที�าน้�0น้ ค�อ จร�ง และ เที*จ (True และ False) การใช่�งาน้ค,าส��ง If จะม�สองร1ปแบบคร�าว่ๆ ได�แก� โครงสร�าง if (ไม�ม�ค,าส��ง else) และ โครงสร�าง if…else

Page 8: Chapter05

If

ร+ปแบบ ตวิอย&าง (A=5, B=10)

if (condition) statement; If (A == B/2) Console.WriteLine("True");

if (condition) statement;

If (B/2 == A) Console.WriteLine(B+"/2 = " + A);

if (condition) {

statement1; statement2; statement3;:

}

If (A != B) {

Console.WriteLine("A = {0}",A);Console.WriteLine("B = {0}",B);Console.WriteLine("{0} != {1}",A,B);

}

Page 9: Chapter05

static void Main(string[] args){

int A = 5;int B = 10;if (A != B){

Console.WriteLine("A = {0}", A);

Console.WriteLine("B = {0}", B);

Console.WriteLine("{0} != {1}", A, B);

}Console.ReadKey();

}

Start

A ← 5

B ← 10

A != B

PUT "A = " + A¶

PUT "B = " + B¶

PUT A + " != " + B¶

NoYes

End

Page 10: Chapter05

Start

Discount ← 0

"Are you Member (Y or N) : "GET Member

((Member = "Y") || (Member = "y"))

Discount ← 0.05

NoYes

PUT "Discount is " + Discount¶

End

static void Main(string[] args){

char Member; float Discount = 0f;Console.Write("Are you Member (Y

or N) : ");Member =

char.Parse(Console.ReadLine());if ((Member == 'y') || (Member ==

'Y')){

Discount = 0.05f;}Console.WriteLine("Discount is

{0:p}", Discount);Console.ReadLine();

}

Page 11: Chapter05

If…elseร+ปแบบ ตวิอย&าง (A=5, B=10)

if (condition) statement;

elsestatement;

If (A == B) Console.WriteLine(A+" = " + B);

elseConsole.WriteLine(A+" != " + B);

if (condition) {

statement1; statement2; :

}else{

statement1; statement2; :

}

If (A <= B) {

Console.WriteLine("A = {0}",A);Console.WriteLine("B = {0}",B);Console.WriteLine("{0} <= {1}",A,B);

}else{

Console.WriteLine("A = {0}",A);Console.WriteLine("B = {0}",B);Console.WriteLine("{0} > {1}",A,B);

}

Page 12: Chapter05

Start

"How old are You? : "GET Age

Age >=13

Ticket ← 50 Ticket ← 20

NoYes

PUT "You are " + Age + " years old"¶

PUT "The price of Ticket is "

PUT Ticket + " Baht"¶

End

static void Main(string[] args){

int Age, Ticket;Console.Write("How old are

You? : ");Age =

int.Parse(Console.ReadLine());if (Age >= 13){

Ticket = 50;}else{

Ticket = 20;}Console.WriteLine("You are {0}

years old", Age);Console.Write("The price of

Ticket is "}Console.Write("{0} Baht",

Ticket);Console.ReadLine();

}

Page 13: Chapter05

Nested If

ค,าส��ง If เป�น้ค,าส��งที��สามารถ้น้,ามาสร�างเป�น้ค,าส��งซ้�อน้ก�น้ได� เร�ยกว่�า Nested If เป�น้การเข�ยน้โครงสร�าง If ซ้�อน้ไว่�ภายใต�โครงสร�าง If อ�กช่�0น้หน้%�ง โดยเฉพาะกรณี�ที��ต�องการตรว่จสอบเง��องไขมากกว่�าสองเง��อน้ไข ที,าให�สามารถ้ประย กต"ได�อย�างหลากหลายโดยเฉพาะทีางด�าน้ธ รก�จ ที��ม�กม�โครงสร�างการที,างาน้แบบต�ดส�น้ใจโดยม�เง��อน้ไขหลายแบบ

Page 14: Chapter05

Nested If

ร+ปแบบ ตวิอย&าง (A=13, B=60)

if (condition) {

if (condition){

statement;}

}

if (A == 13){

if (B == 60){

Console.WriteLine("A = {0} and B = {1}", A, B);}

}

Page 15: Chapter05

Nested Ifร+ปแบบ ตวิอย&าง (A=13, B=60)

if (condition) {

if (condition){

statement;}

}else{

if (condition){

statement;}

}

if (salary < 1650){

SocialSecurity = 0;}else{

if (salary < 15000){

SocialSecurity = salary * 0.05f;}else{

SocialSecurity = 15000*0.05f;}

}

Page 16: Chapter05

Start

SocialSecurity ← 0.05

"How much salary do you get?"GET salary

salary<1650

SocialSecurity ← 0 salary<15000

SocialSecurity ← salary * SocialSecurity SocialSecurity ← 15000 * SocialSecurity

NoYes

NoYes

PUT "SocialSecurity is "+SocialSecurity¶

End

Page 17: Chapter05

วิ�ธุ�เขี�ยนเง$"อนไขี

การก,าหน้ดเง��อน้ไขแบบตรว่จสอบต�ว่เลขที��ม�คว่ามต�อเน้��องก�น้ เช่�น้ การตรว่จสอบคะแน้น้เพ��อออกเกรด ถ้�าม�การก,าหน้ดเกรด 5 ระด�บ ค�อ A-F ด�งร1ป

Page 18: Chapter05

วิ�ธุ�เขี�ยนเง$"อนไขี

ตวิเลัขี เง$"อนไขี กรณ�เป.นจัร�ง

กรณ�เป.นเท/จั

50 If (Mark < 50) F  

60 If (Mark < 60) D  

70 If (Mark < 70) C  

80 If (Mark < 80) B A

Page 19: Chapter05

วิ�ธุ�เขี�ยนเง$"อนไขี

ตวิเลัขี เง$"อนไขี กรณ�เป.นจัร�ง

กรณ�เป.นเท/จั

80 If (Mark >= 80) A  

70 If (Mark >= 70) B  

60 If (Mark >= 60) C  

50 If (Mark >= 50) D F

Page 20: Chapter05

Start

"Input Mark : "GET Mark

Mark < 50

Grade ← "F" Mark < 60

Grade ← "D" Mark < 70

Grade ← "C" Mark < 80

Grade ← "B" Grade ← "A"

NoYes

NoYes

NoYes

NoYes

PUT "Mark " + Mark + " is " + Grade ¶

End

Page 21: Chapter05

Switch…case

ถ้%งแม�ว่�าการจ�ดการเง��อน้ไขหลายๆ เง��อน้ไขโดยอาศั�ยโครงสร�าง Nested if สามารถ้ที,าได� แต�ภาษา C# ย�งได�เตร�ยมโครงสร�าง switch...case เพ��อใช่�ใน้การจ�ดการเง��อน้ไขหลาย เง��อน้ไขโดยเฉพาะ

Page 22: Chapter05

Switch…caseswitch (expression) {

case constant-expression-1: statements; break;

 case constant-expression-2: statements; break;

 case constant-expression-3: statements; break; :

 default: statements; break;

}

using System;namespace SwitchCase{ class Program { static void Main(string[] args) { char Operator; int A = 5, B = 10, Total; Operator = char.Parse(Console.ReadLine()); switch(Operator) { case '+': Total = A + B; break; case '-': Total = A - B; break; case '*': Total = A * B; break; case '/': Total = A / B; break; default: Total = 0; break; } Console.WriteLine("Answer is {0}", Total); } }}

Page 23: Chapter05

Switch…case

ส�ญล�กษณี"ที��ใช่�ส,าหร�บค,าส��ง switch…case จะใช่�ส�ญล�กษณี"เด�ยว่ก�บค,าส��ง If เม��อเข�ยน้โดย RAPTOR จะม�ว่�ธ�การเข�ยน้เหม�อน้ก�บค,าส��ง If แต�ค,าส��ง default จะกลายเป�น้ค,าส��งกรณี�เป�น้เที*จของเง��อน้ไขส ดที�าย ด�งน้�0น้ คว่ามแตกต�างระหว่�างค,าส��ง If ก�บ switch…case ค�อ เง��อน้ไขของ switch…case จะใช่�ค,าส��งเที�าก�บเที�าน้�0น้ และเง��อน้ไขจะเป�น้ได�แค� จ,าน้ว่น้เต*ม (integer) แบบอ�กขระ (char) หร�อแบบข�อคว่าม (string) เที�าน้�0น้

Page 24: Chapter05

Try…catch

ใน้ภาษา C# ค,าส��งส,าหร�บร�บข�อม1ลเข�าม�ค,าส��งเด�ยว่เที�าน้�0น้ ค�อ Console.ReadLine() และเม��อผ1�ใช่�ป8อน้ข�อม1ลเข�ามา ข�อม1ลที��เข�าจะเป�น้ต�ว่อ�กษรเที�าน้�0น้ และถ้�าต�องการร�บ int เข�ามาเพ��อน้,ามาประมว่ลผล จะต�องใช่�ค,าส��งแปลงต�ว่อ�กษรให�เป�น้ int โดยใช่�ค,าส��ง int.Parse(Console.ReadLine()) อย�างไรก*ตาม ถ้�าผ1�ใช่�ป8อน้ต�ว่อ�กษรเข�ามา เช่�น้ A ค,าส��งที��ใช่�ใน้การแปลงจะเก�ดข�อผ�ดพลาด เพราะไม�สามารถ้แปลงต�ว่อ�กษร A ให�เป�น้ต�ว่เลขได� ด�งน้�0น้เพ��อป8องก�น้ไม�ให�ป9ญหาน้�0เก�ดข%0น้ ต�องใช่�ค,าส��ง try…catch…finally ช่�ว่ยใน้การด�กข�อผ�ดพลาด

Page 25: Chapter05

int Operator = 0;int A = 5, B = 10, Total;try{

Operator = int.Parse(Console.ReadLine());}catch (Exception){

Console.WriteLine("Input is not integer...Error!!!");

}finally{

Console.WriteLine("Write everytime");}

Page 26: Chapter05

try...catch...finally

ใช่�ส,าหร�บการด�กจ�บ และจ�ดการข�อผ�ดพลาดของโปรแกรมที�0งขณีะที,างาน้ (Run Time Process) หร�อใน้ขณีะเร��มต�น้ที,างาน้ (Init Process)

ใน้ Block ของ try ค�อค,าส��งที��คาดว่�าจะเก�ดข�อผ�ดพลาดเก�ดข%0น้ ใน้ Block ของ catch ค�อส�ว่น้จ�ดการข�อผ�ดพลาด ใน้ Block ของ finally ค�อ ส�ว่น้เสร�มม�ไว่�ส,าหร�บการเข�ยน้ค,าส��ง

ด,าเน้�น้การใด ๆ ที��ต�องการให�ที,าเป�น้คร�0งส ดที�าย ไม�ว่�าค,าส��ง try จะเก�ดข�อผ�ดพลาดหร�อไม�เก�ดข�อผ�ดพลาด

ใน้ 1 try สามารถ้ม� Block catch ได�มากกว่�า 1 Block ไม�จ,าเป�น้ต�องม� Block ของ finally

Page 27: Chapter05

ค(าถาม

ข�อสงส�ย หร�อ ค,าถ้าม ค,าถ้ามที�ายบทีที�� 5 (ส�งใน้ห�อง/ส�ปดาห"หน้�า)