ݺߣ

ݺߣShare a Scribd company logo
บทที่ 3
ตัวดำเนินกำรทำงคณิตศำสตร์
พิจารณาคาสั่งต่อไปนี้
a = b + c;
ความหมายของคาสั่งนี้คือการบวกค่าของตัวแปร b เข้ากับตัวแปร c แล้วเก็บผลลัพธ์ลงในตัวแปร
a
ดังนั้น การเขียนสมการในภาษาซีคือ
"การนาผลลัพธ์ของการคานวณในด้านขวาของเครื่องหมายเท่ากับ (=) ไปใส่ในตัวแปรทาง
ด้านซ้าย"
สาหรับตัวดาเนินการทางคณิตศาสตร์ได้แก่ + (บวก), - (ลบ), * (คูณ), / (หาร), % (มอดดูโล
หรือ มอด หรือ หารเอาเศษ)
 ตัวดำเนินกำรทำงคณิตศำสตร์อย่ำงย่อ
การเพิ่มค่า (increment)/ลดค่า (decrement) ด้วยสัญลักษณ์ ++, พิจารณา
code ต่อไปนี้
/*1*/ int a = 1;
/*2*/ b = ++a;
บรรทัดที่ 1 เป็นการประกาศตัวแปรชนิดจานวนเต็มชื่อ a และกาหนดค่าเริ่มต้นให้เท่ากับ 1
บรรทัดที่ 2 เป็นการเพิ่มค่าตัวแปร a ขึ้น 1 ค่า แล้วจึง copy ค่าของตัวแปร a ไปให้ตัว
แปร b
code ดังกล่าวมีรูปแบบเต็มดังนี้
/*1*/ int a = 1, b;
/*2*/ a = a+1;
/*3*/ b = a;
หรือกล่าวได้ว่าเป็นการเพิ่มค่า a ขึ้น 1 ค่า ก่อนที่จะกาหนดค่านั้นให้ตัวแปร b
นอกจากเราจะเพิ่มค่าตัวแปรโดยใช้ a++ ได้ด้วยโดยมีความหมายแตกต่างกันเล็กน้อย
ดังนี้
/*1*/ int a = 1, b;
/*2*/ b = a;
/*3*/ a = a+1;
หรือกล่าวได้ว่าเป็นการกาหนดค่าในตัวแปร b ให้กับตัวแปร a ก่อน แล้วค่อยเพิ่มค่าใน
ตัวแปร a ขึ้น 1 ค่า
ในทานองเดียวกัน เราสามารถลดค่าของตัวแปรใดๆ ด้วยเครื่องหมาย -- ได้เช่นกัน
การลดรูปคาสั่ง
พิจารณาตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a = a+b;
code ในบรรทัดที่ 2 เป็นการบวกค่าของตัวแปร a กับตัวแปร b แล้วคืนผลลัพธ์
กลับไปเก็บไว้ในตัวแปร a (เท่ากับ 15)
ซึ่งสามารถลดรูปได้ดังนี้
/*1*/ int a = 5, b = 10;
/*2*/ a += b;
ในทานองเดียวกัน เราสามารถนาหลักการลดรูปนี้ไปใช้กับตัวดาเนินการ - (ลบ), *
(คูณ), / (หาร), % (มอด) ได้
 ตัวดำเนินกำรเปรียบเทียบ
เราสามารถกาหนดการทางานของโปรแกรมให้เป็นไปตามเงื่อนไขต่างๆ ที่ต้องการได้
โดยตรวจสอบเงื่อนไขด้วยตัวดาเนินการเปรียบเทียบ
เครื่องหมาย ความหมาย
== เท่ากับ
!= ไม่เท่ากับ
< น้อยกว่า
<= น้อยกว่าหรือเท่ากับ
> มากกว่า
>= มากกว่าหรือเท่ากับ
ผลลัพธ์จากการใช้ตัวดาเนินการเปรียบเทียบจะมีค่าเป็น จริง/true/1 และ
เท็จ/false/0 เท่านั้น ดังตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a == 7;
/*3*/ a != b;
ดังนั้นบรรทัดที่ 2 จะให้ผลลัพธ์เป็นเท็จ (a มีค่า 5 ซึ่งไม่เท่ากับ 7) และบรรทัดที่ 3 จะ
ให้ผลลัพธ์เป็นจริง (a ไม่เท่ากับ b)
ตัวดำเนินกำรตรรกศำสตร์
เมื่อต้องการนาผลจากการตรวจสอบเงื่อนไขมาใช้ร่วมกัน เราสามารถนาตัวดาเนินการ
ตรรกศาสตร์ (AND, OR, NOT) มาใช้ได้
ซึ่งผลลัพธ์จากการใช้ตัวดาเนินการเปรียบเทียบจะมีค่าเป็น จริง/true/1 และ เท็จ/false/0
เช่นเดียวกับตัวดาเนินการเปรียบเทียบ ดังตัวอย่างต่อไปนี้
เครื่องหมาย ความหมาย
&& AND
|| OR
! NOT
/*1*/ int a = 3;
/*2*/ a >=0 && a<=10;
/*3*/ a >=0 && a<=10 && (a%2 == 0);
/*4*/ a >=0 && a<=10 && !(a%2 == 0);
บรรทัดที่ 2 จะให้ผลลัพธ์เป็นจริง (ค่า a = 3 อยู่ระหว่าง 0 ถึง 10)
บรรทัดที่ 3 จะได้ผลลัพธ์เป็นเท็จ (a = 3 ซึ่ง mod 2 แล้วเท่ากับ 1 ไม่เท่ากับ 0)
บรรทัดที่ 4 จะได้ผลลัพธ์เป็นจริง (a = 3 ซึ่ง mod 2 แล้วเท่ากับ 1 ไม่เท่ากับ 0 ได้
ผลลัพธ์เป็นเท็จ แต่ผลนั้นถูก NOT ทาให้เป็นจริง)
กำรเปลี่ยนชนิดของตัวแปร (casting)
ในการดาเนินการใดๆ (คณิตศาสตร์/เปรียบเทียบ/ตรรกศาสตร์) ระหว่างตัวแปร 2 ตัว, ตัวแปร
ดังกล่าวจาเป็นจะต้องมีชนิดเดียวกัน
แต่ในการใช้งานจริงอาจจาเป็นต้องดาเนินการกับตัวแปรต่างชนิด ดังนั้นเราอาจต้องแปลงตัวแปร
ให้เป็นชนิดเดียวกันก่อน
โดยการแปลงแบ่งออกเป็น 2 แบบดังนี้
การแปลงชนิดตัวแปรแบบอัตโนมัติ
เมื่อมีการดาเนินการระหว่างสองตัวแปรต่างชนิดกัน ตัวแปลภาษาจะแปลงชนิดให้อัตโนมัติ โดย
เลือกแปลงตัวแปรที่มีขอบเขตเล็กกว่าเช่น
/*1*/ int a = 2;
/*2*/ float b = 3.5, sum;
/*3*/ sum = a + b;
จะเห็นว่าตัวแปร a เป็นจานวนเต็มซึ่งมีขอบเขตเล็กกว่าตัวแปร b ซึ่งเป็นชนิดทศนิยม (ศึกษา
ขอบเขตของตัวแปรได้จากตารางชนิดของตัวแปรในภาษาซี)
ดังนั้นตัวแปร a จะถูกแปลงเป็นชนิดทศนิยมก่อนทาการบวกในบรรทัดที่ 3 ต่อไป
พิจารณาคาสั่งด้านล่าง
/*1*/ int a = 2, sum;
/*2*/ float b = 3.5;
/*3*/ sum = a + b;
ถึงแม้ว่าตัวแปร a จะถูกแปลงเป็นชนิดทศนิยมในขั้นตอนการบวก แต่ผลลัพธ์นั้นถูกนาไป
เก็บในตัวแปร sum ซึ่งเป็นชนิดจานวนเต็มและ มีขนาดเล็กกว่าชนิดทศนิยม
เพื่อให้ตัวแปรที่มีขนาดเล็กกว่าสามารถเก็บข้อมูลนี้ได้ ตัวแปรภาษาจึงต้องแปลงผลลัพธ์
เป็นชนิดจานวนเต็มโดยการตัดทศนิยมออก ค่าตัวแปร sum จึงเท่ากับ 3
กำรแปลงชนิดตัวแปรแบบกำหนดเอง
นอกจากการแปลงชนิดตัวแปรแบบอัตโนมัติแล้ว เรายังสามารถแปลงชนิดตัวแปรให้เป็นตามที่
เราต้องการได้ดังตัวอย่างต่อไปนี้
int a = 8;
float b = 7.7;
char c = 'Z';
int cast1;
float cast2;
cast1 = (int)b; /*แปลงจาก float เป็น int*/
cast1 = (int)c; /*แปลงจาก char เป็น int โดยจะอยู่ในรูปของรหัส ASCII (Z มี
ค่าเท่ากับ 90) สามารถดูรายละเอียดได้ที่ http://th.wikipedia.org/wiki/แอ
สกี*/
cast1 = (int)20.1; /*แปลงจาก float เป็น int*/
cast2 = (float)a; /*แปลงจาก int เป็น float*/
cast2 = (float)c; /*แปลงจาก char เป็น float*/
cast2 = (float)'T'; /*แปลงจาก char เป็น float*/
Ad

Recommended

Matlab
Matlab
Apinyaphorn
Updated resume 31 may 15
Updated resume 31 may 15
Saminathan Ramadoss
Sage pastel evolution_overview_brochure(1)
Sage pastel evolution_overview_brochure(1)
ExcelliumConsultingServices
บทที่ 4
บทที่ 4
Wittaya Kaewchat
Updated resume 31 may 15
Updated resume 31 may 15
Saminathan Ramadoss
It_Runs_In_The_Blood
It_Runs_In_The_Blood
Diana Hackenburg
ความ๶ป็Ȩาྺองภาษา
ความ๶ป็Ȩาྺองภาษา
Wittaya Kaewchat
Ppt progresivisme dan perilaku guru
Ppt progresivisme dan perilaku guru
MegaSidabalok
Présentation Com'Unique
Marion IIM
Numéricable : Module 3
Marion IIM
Ppt progresivisme dan perilaku guru
Ppt progresivisme dan perilaku guru
MegaSidabalok
Vichy - Enquêtes consommateurs et e-commerce
Marion IIM
C lab5 2
C lab5 2
Mevenwen Singollo
ตัวแปร ชนิดข้อมูล ตัวดำเนินการ นิพจน์ และค่าคงที่
ตัวแปร ชนิดข้อมูล ตัวดำเนินการ นิพจน์ และค่าคงที่
ปณพล ดาดวง
lesson 3
lesson 3
Monberry NooNan
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
Nookky Anapat
งาȨำเสนอ1
งาȨำเสนอ1
Thank Chiro
ข้อมูล ตัวแปร ตัวดำเนินการ
ข้อมูล ตัวแปร ตัวดำเนินการ
Naruemon Soonthong

More Related Content

Viewers also liked (9)

ความ๶ป็Ȩาྺองภาษา
ความ๶ป็Ȩาྺองภาษา
Wittaya Kaewchat
Ppt progresivisme dan perilaku guru
Ppt progresivisme dan perilaku guru
MegaSidabalok
Présentation Com'Unique
Marion IIM
Numéricable : Module 3
Marion IIM
Ppt progresivisme dan perilaku guru
Ppt progresivisme dan perilaku guru
MegaSidabalok
Vichy - Enquêtes consommateurs et e-commerce
Marion IIM
ความ๶ป็Ȩาྺองภาษา
ความ๶ป็Ȩาྺองภาษา
Wittaya Kaewchat
Ppt progresivisme dan perilaku guru
Ppt progresivisme dan perilaku guru
MegaSidabalok
Présentation Com'Unique
Marion IIM
Numéricable : Module 3
Marion IIM
Ppt progresivisme dan perilaku guru
Ppt progresivisme dan perilaku guru
MegaSidabalok
Vichy - Enquêtes consommateurs et e-commerce
Marion IIM

Similar to บทที่ 3 (20)

C lab5 2
C lab5 2
Mevenwen Singollo
ตัวแปร ชนิดข้อมูล ตัวดำเนินการ นิพจน์ และค่าคงที่
ตัวแปร ชนิดข้อมูล ตัวดำเนินการ นิพจน์ และค่าคงที่
ปณพล ดาดวง
lesson 3
lesson 3
Monberry NooNan
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
Nookky Anapat
งาȨำเสนอ1
งาȨำเสนอ1
Thank Chiro
ข้อมูล ตัวแปร ตัวดำเนินการ
ข้อมูล ตัวแปร ตัวดำเนินการ
Naruemon Soonthong
Computer programming
Computer programming
Jariyaa
content 3
content 3
Monberry NooNan
ตัวแปร ชนิดข้อมูล ตัวดำเนินการ นิพจน์ และค่าคงที่
ตัวแปร ชนิดข้อมูล ตัวดำเนินการ นิพจน์ และค่าคงที่
ปณพล ดาดวง
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
Nookky Anapat
งาȨำเสนอ1
งาȨำเสนอ1
Thank Chiro
ข้อมูล ตัวแปร ตัวดำเนินการ
ข้อมูล ตัวแปร ตัวดำเนินการ
Naruemon Soonthong
Computer programming
Computer programming
Jariyaa
Ad

บทที่ 3