Operator and Standard library functions 886201 Programming I 3
Content Standard library functions ตัวดำเนินการกับข้อมูลชนิดต่างๆ ข้อมูลชนิดตัวเลข ข้อมูลชนิดบูลีน ข้อมูลระดับบิต ข้อมูลชนิดตัวอักขระ ข้อมูลชนิดสายอักขระ Standard library functions
ข้อมูลชนิดตัวเลข ข้อมูลชนิดตัวเลขสามารถใช้ตัว ดำเนินการได้ดังต่อไปนี้ Arithmetic Operators Comparison Operator
Arithmetic Operator เครื่องหมาย ความหมาย + บวก - ลบ * คูณ / หาร % หารเอาเศษ (Modulus) ++ เพิ่มค่าครั้งละ 1 (Increment) -- ลดค่าลงครั้งละ 1 (Decrement) (-) อยู่ด้านหน้าตัวเลขหรือตัวแปรชนิดตัวเลข เป็นการแปลงค่าให้กลายเป็นค่าตรงกันข้ามกับค่าเดิม เช่น จากค่าบวกเป็นค่าลบ และ จากค่าลบเป็นค่าบวก
ตัวดำเนินการเลขคณิต (Arithmetic Operators) สัญลักษณ์ ประเภทข้อมูล ตัวอย่าง ผลลัพธ์ + int, float, double 2 + 3 5 - 3 - 4 -1 * 5 * 6 30 / float, double 4.50 / 3.0 1.50 int 6 / 7 % 6 % 7 6
Comparison Operator เครื่องหมายในการเปรียบเทียบข้อมูล โดย ผลลัพธ์ที่ได้จะมีค่าเป็นค่าตรรกะบูลีน คือ จริง (True) หรือ เท็จ (False) เครื่องหมาย ความหมาย == เท่ากับ != ไม่เท่ากับ > มากกว่า >= มากกว่าหรือเท่ากับ < น้อยกว่า <= น้อยกว่าหรือเท่ากับ
ตัวดำเนินการเปียบเทียบ (Comparison Operators) สัญลักษณ์ ประเภทข้อมูล ตัวอย่าง ผลลัพธ์ == int, float, double 2 == 3 != 3 != 4 1 > 6 > 5.9 >= 5 >= 4.0 < 7 < 7 <= 7 <= 7
Comparison Operator จริง (True) คือ 1 เท็จ (False) คือ 0 int x =10 cout<<(x=20) cout<<(x==20)
ข้อมูลชนิดบูลีน ใช้ตัวดำเนินการ Logical Operator เป็นตัวดำเนินการกับค่าตรรกบูลีน ซึ่งให้ค่า จริง (True) หรือ เท็จ (False) เครื่องหมาย ความหมาย && AND จะเป็นจริง เมื่อค่าที่มาดำเนินการมีค่าเป็นจริงทั้งคู่ || OR จะเป็นจริง เมื่อค่าที่มาดำเนินการมีค่าเป็นจริงทั้งคู่ หรือ ค่าใดค่าหนึ่งเป็นจริง ! NOT นิเสธ เป็นการแปลงค่าตรงกันข้าม จากจริงเป็นเท็จ หรือ จากเท็จเป็นจริง
Logical Operator ผลลัพธ์ 1
Logical Operator ผลลัพธ์ 1
ข้อมูลระดับบิต ใช้ตัวดำเนินการ Bitwise Operator เป็นการดำเนินการในระดับบิต นั่นคือ ดำเนินการกับข้อมูลต่าง ๆ ที่เป็น เลขฐานสองในหน่วยความจำ เครื่องหมาย ความหมาย x & y AND ระดับบิต ระหว่าง x กับ y x | y OR ระดับบิต ระหว่าง x กับ y x ^ y XOR ระดับบิต ระหว่าง x กับ y ~x การทำ complement x << y เลื่อนบิตในตัวแปร x ไปทางซ้าย y บิต เลื่อนบิตในตัวแปร x ไปทางขวา y บิต
Bitwise Operator ผลลัพธ์ 8 248 8 248
ข้อมูลชนิดตัวอักขระ (char) เก็บข้อมูลเพียงหนึ่งตัวอักขระ ใช้เครื่องหมาย ' (single quote) ปิดหน้าและ ปิดหลัง หนึ่งอักขระใช้เนื้อที่ในการจัดเก็บ 8 bits (หรือ 1 byte) เช่น 'a', 'C', 'D', '^', '@' หรือ escape character เช่น ‘\n’, ‘\t’, ‘\’’, ‘\”’ มีความสัมพันธ์กับเลขจำนวนเต็ม จึงใช้ operator เดียวกับข้อมูลชนิดตัวเลข ใช้รูปแบบมาตราฐาน ASCII (American standard Code for Information Interchange) มีรูปแบบที่แตกต่างกัน 256 ค่า
ASCII Table
ความสัมพันธ์ระหว่าง char กับ int
สายอักขระ (String) เก็บข้อมูล 1 ตัวอักขระหรือมากกว่า ใช้เครื่องหมาย " (double quote) ปิดหน้า และปิดท้าย เช่น "student", "diligent", "industrious" #include <string> using namespace std; ... string name = "Harry";
String Operator HeyBoy การเชื่อมประโยค ข้อความเข้าด้วยกัน (Concatenation) โดยใช้เครื่องหมายบวก (+) เช่น ผลลัพธ์ HeyBoy
การหาความยาวของ string string greeting = "Hello, World!"; H e l l o , W o r l d ! 0 1 2 3 4 5 6 7 8 9 10 11 12 int n; n = greeting.length(); cout << “n= ” << n << endl; ผลลัพ ธ์ n= 13
การหา substring H e l l o , W o r l d ! 0 1 2 3 4 5 6 7 8 9 10 11 12 string greeting = "Hello, World!"; string sub = greeting.substr(0, 5); // ผลลัพธ์ที่เก็บในตัวแปร sub คือข้อความ "Hello"
การหา substring H e l l o , W o r l d ! 0 1 2 3 4 5 6 7 8 9 10 11 12 string greeting = "Hello, World!"; string sub = greeting.substr(7, 5); // ผลลัพธ์ที่เก็บในตัวแปร sub คือข้อความ "World"
การหา substring H e l l o , W o r l d ! 0 1 2 3 4 5 6 7 8 9 10 11 12 string greeting = "Hello, World!"; string sub = greeting.substr(7); // ผลลัพธ์ที่เก็บในตัวแปร sub คือข้อความ "World!"
การพิมพ์ตัวอักษรหนึ่งตัวใน string H e l l o , W o r l d ! 0 1 2 3 4 5 6 7 8 9 10 11 12 string greeting = "Hello, World!"; cout << greeting[7] << endl; // พิมพ์ตัวอักษร W ออกทางหน้าจอ
ตัวอย่าง
ตัวอย่าง
string
Standard library functions เนื่องจากงานบางอย่างมีการเรียกใช้เป็น ประจำ ดังนั้นจึงมีการสร้างฟังก์ชัน มาตราฐานเพื่อให้ทำงานต่างๆ เหล่านี้ สะดวกขึ้น ฟังก์ชันมาตราฐานเรียกใช้ได้โดยการ include ไฟล์ที่ต้องการ เช่น #include<iostream>
Standard library functions #include <iomanip>
iomanip
Standard library functions #include <cmath>
cmath
Standard library functions #include <cctype>
Standard library functions #include <cctype>
cctype
cctype
Standard library functions #include <cstdlib>
cstdlib
Standard library functions #include <string>
ตัวอย่างโจทย์ จงเขียนโปรแกรมเพื่อคำนวณพื้นที่ผิวกาย (ตารางเมตร) จากความสูง (เซนติเมตร) และ น้ำหนัก (กิโลกรัม) คำนวณได้จากสูตร พื้นที่ผิวกาย= น้ำหนัก × ความสูง 3600 จากนั้นให้แสดงผลลัพธ์ออกจากหน้าจอ (แสดงผลลัพธ์เป็นเลขทศยินม 2 ตำแหน่ง)
วิเคราะห์โจทย์ Input Process Output ความสูง น้ำหนัก คำนวณคำตอบของสมการตามสูตร Output ผลการคำนวณพื้นที่ผิวกาย พื้นที่ผิวกาย= น้ำหนัก × ความสูง 3600
ออกแบบโปรแกรม Algorithm รับค่าเลขตัวเลขความสูงเก็บใน height รับค่าเลขตัวเลขน้ำหนักเก็บใน weight คำนวณหาพื้นที่ผิวกายตามสูตร เก็บไว้ใน ans ans = sqrt(weight*height/3600) 4. แสดงค่าผลลัพธ์ที่เก็บใน ans ด้วย ทศนิยม 2 ตำแหน่ง
เขียนโปแกรม
แหล่งเรียนรู้เพิ่มเติม http://www.cplusplus.com/doc/tutori al/ http://www.tutorialspoint.com/cplusp lus/