ข้อมูลและการดำเนินการกับข้อมูล อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tko@webmail.npru.ac.th)
เนื้อหาที่สนใจ ชนิดของข้อมูล (data type) Primary Data Types ชนิดข้อมูลแบบจำนวนเต็ม ชนิดข้อมูลแบบทศนิยม ชนิดข้อมูลแบบตัวอักษร Void Data type Secondary Data Types Derived Data types User Defined types การนำชนิดข้อมูลแบบต่าง ๆ มาใช้ในการเขียนโปรแกรมผ่านตัวแปรของภาษาซี http://1.bp.blogspot.com/-tw1caa8lBus/Vphe8RV3rwI/AAAAAAAAAKM/wAhp-ds7iQM/s1600/8.png
ชนิดของข้อมูล (data type) ชนิดของข้อมูล หรือ ข้อมูลพื้นฐาน คือ การจัดหมวดหมู่ของข้อมูล ซึ่งช่วยให้ตัวแปลภาษาทราบว่าจะนำไปใช้ในการเขียนโปรแกรม ชนิดข้อมูลแต่ละชนิด มีรูปแบบและการดำเนินการที่แตกต่างกันไป ภาษาคอมพิวเตอร์ต่างๆ จะรองรับชนิดข้อมูลพื้นฐาน ขนาดในการจัดเก็บในหน่วยความจำและค่าที่เป็นไปได้ เช่น http://javaeasy.weebly.com/java-data-types.html
http://www. wearejobseekers http://www.wearejobseekers.com/online-tests/computer-science-tests/c-programming-tests/quiz-on-data-types/
Primary Data Types ความแตกต่างของข้อมูลแต่ละชนิดในการประมวลผลข้อมูล ข้อมูลเชิงเดี่ยว http://www.studytonight.com/c/datatype-in-c.php
การกำหนดพื้นที่ในหน่วยความจำ http://www.eitworld.com/Popular_Tutorials/C_Tutorial/C-Data-types.html
ชนิดข้อมูลแบบจำนวนเต็ม (Integer Data type) http://www.btechsmartclass.com/CP/c-data-types.htm
ชนิดข้อมูลแบบทศนิยม (Floating Point Data type)
ชนิดข้อมูลแบบตัวอักษร (Character Data type)
Void Data type ชนิดข้อมูลว่างเปล่า ไม่มีค่าใด ๆ กำหนดฟังก์ชันที่ไม่ได้ส่งคืนค่า คือฟังก์ชันที่พิมพ์เฉพาะข้อความและไม่มีค่าที่จะส่งคืน เช่น
Secondary Data Types ประกอบด้วย ข้อมูลเชิงกลุ่ม หรือชุดข้อมูล Derived Data types User Defined types ข้อมูลเชิงกลุ่ม หรือชุดข้อมูล https://www.boxatwork.com/
Derived Data types Arrays ชนิดข้อมูลแบบเรียงแถว Structures ชนิดข้อมูลแบบโครงสร้าง Unions ชนิดข้อมูลแบบยูเนียน Enumeration ชนิดข้อมูลแบบสัญลักษณ์ https://uk.pinterest.com/explore/data-structures/
ชนิดข้อมูลแบบโครงสร้าง รูปแบบ ตัวอย่าง การใช้งาน struct person student; strcpy(student.name, “somkiat"); student.age = 35; student.money = 20.50; struct struct_name { member_type1 member_name1; member_type2 member_name2; member_type3 member_name3; . . } object_names; struct person { char name[20]; int age; float money; }; http://marcuscode.com/lang/c/structures
structure กับอาร์เรย์ struct point p[2]; p[0].x = 1.5; p[0].y = 2.3; p[1].x = -3.4; p[1].y = -5.4; struct point { float x; float y; }; https://xn--3ds84hvwlol4b.com/amazon/credit-card/
User Defined types ผู้เขียนโปรแกรม สามารถกำหนดชนิดข้อมูลขึ้นเองได้ สร้างจากชนิดข้อมูลพื้นฐาน “enum” ใช้กำหนดเป็นชนิดข้อมูลในการเขียนโปรแกรม
การนำประเภทข้อมูลมาใช้งาน สัญลักษณ์ที่ใช้แทนข้อมูลแต่ละประเภท ทำให้ทราบปริมาณหรือขนาดของข้อมูลที่จัดเก็บในหน่วยความจำ ผ่านชื่อ “ตัวแปร” เช่น int x = 0 หมายถึง x คือ จำนวนเต็ม 0 หรือ char ans=‘n’ หมายถึง ans คือ ตัวอักษร n http://www.dife.info/index.php/art-design-and-technology/multimedia-production
หลักการตั้งชื่อตัวแปร 1. ต้องขึ้นต้นด้วยตัวอักษร A-Z หรือ a-z หรือเครื่องหมาย _(Underscore) เท่านั้น 2. ภายในชื่อตัวแปรสามารถใช้ตัวอักษร A-Z หรือ a-z หรือตัวเลข0-9 หรือเครื่องหมาย _ 3. ภายในชื่อห้ามเว้นชื่องว่าง หรือใช้สัญลักษณ์นอกเหนือจากข้อ 2 4. ตัวอักษรเลขหรือใหญ่มีความหมายแตกต่างกัน http://www.natthawat.us/index.php/2015-05-27-03-00-16/75-5
การประกาศตัวแปรในภาษา C int num; สร้างตัวแปรชื่อ num เพื่อเก็บข้อมูลชนิดจำนวนเต็ม float y; สร้างตัวแปรชื่อ y เพื่อเก็บข้อมูลชนิดเลขทศนิยม char n; สร้างตัวแปรชื่อ n เพื่อเก็บข้อมูลชนิดตัวอักขระ int num; num=10; num=1*5; float y; y= 10.40f; y=3/2; char n; n=‘y’; n=‘n’; http://www.c4learn.com/java/java-variable-naming-rules/
ประกาศตัวแปรสำหรับข้อความ char name[n] = “str”; สตริง (String) คือ การจัดเก็บตัวอักษรหลายๆ ตัวต่อเรียงกัน หรือ ชุดข้อมูลแบบเรียงแถว (Array) อาร์เรย์ของตัวอักษรมาต่อกันจำนวน n ตัว https://www.tutorialspoint.com/cprogramming/c_strings.htm
รหัสควบคุมลักษณะ (Format String) ในการเขียนโปรแกรมเบื้องต้น มักจะแสดงผลผ่านหน้าจอคอมพิวเตอร์ http://www.macare.net/c/index.php?id=-22
การแปลงชนิดของข้อมูล (Data Type Conversion) แปลงชนิดข้อมูลอัตโนมัติโดยคอมไพเลอร์ (Implicit Type Conversion) เมื่อข้อมูลมา บวก ลบ คูณ และหารกัน ผลลัพธ์ที่ได้จะเป็นชนิดข้อมูลที่กว้างกว่า แปลงชนิดข้อมูลตามผู้เขียนโปรแกรม (Explicit Type Conversion) (ชนิดข้อมูลDesc) นิพจน์หรือตัวแปรที่ต้องการแปลงข้อมูล เช่น AA = (float)A
ตัวดำเนินการทางคณิตศาสตร์ กระบวนการ ข้อมูลที่ถูกกระทำ ข้อมูลผลลัพธ์ + บวก (Addition) จำนวนเต็ม,จำนวนจริง - ลบ (Subtraction) * คูณ (Multiplication) / หาร (Real Number Division) จำนวนจริง % การหารแบบเอาเศษ (Modulus) จำนวนเต็ม https://sites.google.com/a/moeipit.ac.th/kheiyn-porkaerm-phasa-si/khxmul-laea-taw-danein-kar http://www.jaturapad.com/online-class/c/l03-04.html
ตัวดำเนินการเปรียบเทียบ ตัวดำเนินการเปรียบเทียบ ตัวดำเนินการ การกระทำ == เท่ากับ != ไม่เท่ากับ <= น้อยกว่าหรือเท่ากับ >= มากกว่าหรือเท่ากับ > มากกว่า < น้อยกว่า
ตัวดำเนินการทางตรรกศาสตร์ การกระทำ && ดำเนินการ AND ค่าสองค่า ถ้าค่าทั้งสองเป็นจริง ผลลัพธ์จะเป็นจริง || ดำเนินการ OR ค่าสองค่า ถ้าค่าทั้งสองเป็นเท็จ ผลลัพธ์จะเป็นเท็จ ! ดำเนินการ NOT เปลี่ยนค่า จากจริงเป็นเท็จ จากเท็จเป็นจริง
ตัวดำเนินการแบบบิต ตัวดำเนินการ การกระทำ & ดำเนินการ AND ให้ค่าของบิตผลลัพธ์เป็น 1 ถ้าบิตที่นำมาดำเนินการ And กันเป็น 1 ทั้งคู่ กรณีอื่น ๆ จะให้ค่าของบิตผลลัพธ์เป็น 0 | ดำเนินการ OR ให้ค่าของบิตผลลัพธ์เป็น 0 ถ้าหากบิตที่นำมาดำเนินการ or กันเป็น 0 ทั้งคู่ กรณีอื่น จะให้ค่าของบิตผลลัพธ์เป็น 1 ^ ดำเนินการ Exclusive OR (XOR) การกำหนดค่าให้ตัวแปรทางซ้ายมือลดค่าลงเท่ากับค่า (expression) หรือตัวแปรทางขวามือ ~ ดำเนินการ NOT กลับค่าบิตจาก 0 เป็น 1 และจาก 1 เป็น 0 (1's complement) >> ดำเนินการ Shift right เลื่อนทุกบิตไปทางขวา << ดำเนินการ Shift left เลื่อนทุกบิตไปทางซ้าย
ตัวดำเนินการกำหนดค่าเชิงประกอบ ตัวอย่าง การประมวลผล *= a *= 1.25 a = a * 1.25 /= b /= c b = b / c %= d %= 3 d = d % 3 += x += 1 x = x + 1 -= y -= z y = y - z
ตัวดำเนินการเพิ่มค่าและลดค่า นิพจน์ ความหมาย ++ (Prefix) ++a เพิ่มค่าให้กับ a หนึ่งค่าก่อน จึงนำค่าใหม่ของ a ในนิพจน์นี้ไปใช้ ++ (Postfix) a++ นำค่าปัจจุบันของ a ในนิพจน์นี้ไปใช้ก่อน จึงเพิ่มค่าให้กับ a หนึ่งค่า -- (Prefix) --b ลดค่าให้กับ b หนึ่งค่าก่อน จึงนำค่าใหม่ของ b ในนิพจน์นี้ไปใช้ -- (Postfix) b-- นำค่าปัจจุบันของ b ในนิพจน์นี้ไปใช้ก่อน จึงลดค่าให้กับ b หนึ่งค่า
ตัวดำเนินการกับลำดับความสำคัญ ความหมาย 1 () เครื่องหมายวงเล็บ 2 ++, -- ตัวดำเนินการเพิ่มค่า/ลดค่า 3 -, ! ยูนารีลบ (เอกภาคลบ) และตรรกะ NOT 4 *, /, % คูณ หาร โมดูลัส 5 +, - บวก ลบ
ตัวดำเนินการข้อความ # include<string.h> ฟังก์ชันที่ใช้งานเกี่ยวกับสตริง (string functions) ฟังก์ชัน strlen( ) ความยาวของข้อความ ฟังก์ชัน strcmp( ) เปรียบเทียบข้อความ 2 ชุด ฟังก์ชัน strcpy( ) คัดลอกข้อความ ฟังก์ชัน strcat( ) ต่อข้อความ ฟังก์ชัน strstr() ตัดข้อความ https://pixabay.com/th/ข้อความ-ลูกโป่ง-คำพูด-สัญลักษณ์-35398/
โครงสร้างข้อมูล ความเข้าใจโครงสร้างข้อมูลแต่ละชนิด ทำให้เข้าใจตรรกะที่เกี่ยวกับวิธีการสร้าง การดึงข้อมูล และการเข้าถึงข้อมูลได้อย่างรวดเร็ว ช่วยให้นำขั้นตอนวิธีต่างๆ มาพัฒนาโปรแกรมให้มีประสิทธิภาพ สามารถแก้ไขปัญหาที่ยุ่งยากซับซ้อนได้ http://hassayaneee.blogspot.com/ http://www.thaiall.com/datastructure/
สรุป ข้อมูลและการดำเนินการกับข้อมูล การประกาศตัวแปรเพื่อจัดเก็บข้อมูลโดยระบุประเภทของข้อมูล เพื่อช่วยในการจัดการพื้นที่ในหน่วยความจำและกำหนดขอบเขตของข้อมูลที่ใช้ในการเขียนโปรแกรม ประเภทของข้อมูลแบ่งเป็น 2 แบบ 1) ข้อมูลพื้นฐาน 2) กลุ่มข้อมูลที่ประกอบจากข้อมูลพื้นฐาน ในการเขียนโปรแกรมเพื่อประมวลผลคอมพิวเตอร์ที่มีประสิทธิภาพ ขึ้นอยู่กับการจัดการตัวแปรตามโครงสร้างข้อมูลของภาษาคอมพิวเตอร์ เพื่อใช้การดำเนินการจัดเก็บ ประมวลผล และแสดงผลข้อมูลของผู้เขียนโปรแกรม