ประเภทของข้อมูลและตัวดำเนินการ Data Types and Operator (บทที่ 3)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ชนิดของข้อมูลในโปรแกรม Interactive C
Advertisements

Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
บทที่ 2 รหัสควบคุมและการคำนวณ
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างโปรแกรมภาษา C
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
BC320 Introduction to Computer Programming
Introduction to C Programming
Department of Computer Business
การรับค่าและแสดงผล.
ชนิดของข้อมูลและตัวดำเนินการ
Week 6 ประกาศค่าตัวแปร.
รับและแสดงผลข้อมูล.
PHP LANGUAGE.
Lab 3: คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล
NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number)
ภาษาปาสคาล ผู้สร้าง Dr.Niklaus Wirth ปี 2513
การเขียนโปรแกรม ASP การประกาศตัวแปร
เรื่อง ประเภทของข้อมูล
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
หน่วยที่ 5 ตัวดำเนินการ (Operators)
Arrays.
C Programming Lecture no. 6: Function.
การจัดการข้อมูลด้วยคอมพิวเตอร์
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 ตัวดำเนินการ และ นิพจน์
บทที่ 2 ประเภทข้อมูล (DATA TYPE)
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
บทที่ 11 การเขียนโปรแกรมภาษาซี
ตัวแปรและชนิดข้อมูล (Variables and Data Types)
ข้อมูลพื้นฐานและตัวดำเนินการ
หน่วยที่ นิพจน์ในภาษา C
อาร์เรย์และข้อความสตริง
ตัวแปร (variable) ตัวแปร เป็นชื่อที่เราตั้งขึ้น เพื่อให้คอมพิวเตอร์เตรียมที่ใน หน่วยความจำไว้สำหรับเก็บข้อมูลที่นำไปประมวลผล การตั้งชื่อตัวแปร ชื่อตัวแปรในภาษา.
C# Operation สุพจน์ สวัตติวงศ์ Reference:
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
ตัวดำเนินการ(Operator)
การเขียนโปรแกรมภาษาซี
ชนิดของข้อมูล ตัวแปร และตัวดำเนินการ
บทที่ 3 ชนิดของข้อมูลและตัวดำเนินการ
ตัวแปรกับชนิดของข้อมูล
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
นิพจน์และตัวดำเนินการ
ง30212 พื้นฐานการเขียนโปรแกรม ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ตัวดำเนินการในภาษาซี
ชนิดของข้อมูล ตัวแปร และตัวดำเนินการ
โปรแกรมยูทิลิตี้.
Week 2 Variables.
Week 12 Engineering Problem 2
Computer Programming for Engineers
บทที่ 4 นิพจน์ทางคณิตศาสตร์.
Overview of C Programming
ตัวดำเนินการ และนิพจน์คณิตศาสตร์
บทที่ 3 ชนิดข้อมูล ตัวแปร นิพจน์และตัวดำเนินการ
โครงสร้างภาษาซี #include <stdio.h> void main() {
คำสั่งเกี่ยวกับการรับ และแสดงผล
Output of C.
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
ตัวแปรและชนิดของข้อมูล (Variables & Data Types)
พื้นฐานการเขียนโปรแกรมด้วย C#
หน่วยที่ 4 โครงสร้างโปรแกรมภาษาซี
บทที่ 7 เงื่อนไขในภาษาซี
บทที่ 5 รหัสควบคุมและ การคำนวณ C Programming C-Programming.
การกระทำทางคณิตศาสตร์
ตัวแปร และชนิดข้อมูล.
โครงสร้างข้อมูลแบบ สแตก (stack)
CHAPTER 2 Operators.
ใบสำเนางานนำเสนอ:

ประเภทของข้อมูลและตัวดำเนินการ Data Types and Operator (บทที่ 3)

ประเภทของข้อมูล ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลในภาษาซี แบ่งได้เป็น 4 กลุ่ม ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลประเภทแถวอักขระ (String Type) ข้อมูลชนิดโครงสร้าง (Structure Type) ข้อมูลชนิดศรชี้ (Pointer Type)

ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลประเภทลำดับ (Ordinal Type) ข้อมูลจำนวนเต็ม ข้อมูลอักขระ ข้อมูลตรรกะ ข้อมูลประเภทจำนวนจริง (Real Type)

ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลประเภทลำดับ (Ordinal Type) ข้อมูลจำนวนเต็ม ชนิด ตัวอย่าง integer ...,-3,-2,-1,0,1,2,3,... binary 0 , 1 Octal 0124 , 076 , 04 hexadecimal 0x17, 0xd ,0x5f

ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลจำนวนเต็ม ชนิดข้อมูล ช่วงของข้อมูลที่เก็บไว้ int -32768...32767 unsigned int 0...65535 signed int short int unsigned short int signed short int long int -2,147,483,648...2,147,483,647

ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลประเภทลำดับ (Ordinal Type) ข้อมูลอักขระ (Character Data Type) ข้อมูลประเภทนี้จะเป็นตัวอักขระหนึ่งตัว ซึ่งเป็นไปตาม ตารางรหัส ASCII ได้แก่ ตัวอักษร ตัวเลข อักขระพิเศษ ชนิดข้อมูล ตัวอย่าง char 'C' , 'a' , '\n' , '#' , '@' '{' , '0' , '$'

ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลประเภทลำดับ (Ordinal Type) ข้อมูลตรรกะ (Boolean Data Type) จะเป็นค่าทางลอจิก ชนิด ตัวอย่าง boolean 1 , 0 , -4 ค่าเท็จ (False) แทนค่าด้วยเลข 0 ค่าจริง (True) แทนค่าด้วยเลข 1 - ค่าจริง คือ ค่าที่ไม่เท่ากับ 0

ข้อมูลชนิดอย่างง่าย (Simple Type) ข้อมูลประเภทจำนวนจริง (Real Data Type) ไม่เป็นข้อมูลชนิดลำดับ เนื่องจากทศนิยมมีได้หลายตำแหน่ง ชนิด ตัวอย่าง ช่วงของข้อมูลที่เก็บไว้ float 11.25, -1.5E4, 2.5e-02 3.4E-38...3.4E+38 double 1.7E-308...1.7E+308 long double 3.4E-4932... 1.1E+4932

ข้อมูลประเภทแถวอักขระ (String Type) เป็นการนำตัวอักขระมาเรียงต่อกันเป็นข้อความตั้งแต่หนึ่งตัวเป็นต้นไป สามารถเก็บตัวอักขระได้ 255 ตัว โดยตัวอักขระจะต้องอยู่ในเครื่องหมาย “ ” ภาษาซี มีการเติมตัวอักษรว่าง Null ( \0 ) เป็นตัวสุดท้ายของสตริง Example 'C' 'O' 'M' 'P' 'U' 'T' 'E' 'R' '\O' ใช้เนื้อที่ในการเก็บทั้งสิ้น 9 Bytes

การประกาศค่าคงที่และตัวแปร ค่าคงที่ (Constant) หมายถึง ค่าในหน่วยความจำที่มีค่าคงที่ตลอดโปรแกรม การประกาศค่าคงที่ ทำได้ 2 ลักษณะ คือ ประกาศ ให้ค่าคงที่ ชื่อว่า a เป็นชนิด Integer Const int a ; // ERROR ประกาศ ให้ค่าคงที่ ชื่อว่า b เป็นชนิด Integer เก็บค่า 12 ไว้ Const int b = 12 ;

การประกาศค่าคงที่และตัวแปร ตัวแปร (Variables) หมายถึง ค่าในหน่วยความจำที่สามารถเปลี่ยนค่าได้ ชื่อตัวแปรจะเป็นตำแหน่งหน่วยความจำที่เก็บข้อมูลอยู่ การประกาศตัวแปรสามารถทำได้ดังนี้ ตัวอย่างเช่น Type Variables_list int count; float data1 , data2;

ตัวอย่างที่ 1 ผลการทำงาน ? #include <stdio.h> ตัวอย่างที่ 1 #include <stdio.h> const int taxrate = 7; float itemcost , salestax; int main() { printf("Please Enter Cost of item : "); scanf("%f" , &itemcost); salestax = (taxrate * itemcost) / 100; printf(" item Cost is = %.2f \n" , itemcost); printf(" Sales tax is %.2f\n" , salestax); return(0); } Output Please Enter Cost of item : 500 item Cost is = 500.00 Sales tax is 35.00 Output Please Enter Cost of item : 500 ผลการทำงาน ?

ตัวดำเนินการ (Operator) ภาษาซีมีตัวดำเนินการ ดังต่อไปนี้ ตัวดำเนินการเลขคณิต (Arithematic Operator) ตัวดำเนินการลอจิก (Logic Operator) ตัวดำเนินการเปรียบเทียบ (Relation Operator)

ตัวดำเนินการเลขคณิต (Arithematic Operator) ความหมาย ชนิดของข้อมูล ตัวอย่าง + บวก ตามชนิดของข้อมูล 5 + 2 - ลบ 5 - 2 * คูณ 5 * 2 / หาร 5 / 2 % หารเอาผลลัพธ์เฉพาะเศษ ของการหาร( Modulo ) จำนวนเต็ม 5%2 ++ การเพิ่มค่าขึ้นหนึ่ง X++, ++X -- การลดค่าลงหนึ่ง X-- , --X

ตัวอย่างที่ 2 ค่าตัวแปร x ค่าตัวแปร y การดำเนินการ ค่าจาก การกระทำ ตัวอย่างที่ 2 ค่าตัวแปร x ค่าตัวแปร y การดำเนินการ ค่าจาก การกระทำ ผลลัพธ์ ที่เก็บ 10 5 x = y + 2 7 X = 7 x = x/y 2 X = 2 10.0 x = x/y 2.0 X = 2.0 9 x = x%y 1 X = 1 14 -3 -14 3 -2 X = -2

ตัวอย่างที่ 3 การดำเนินการ ผลลัพธ์ ชนิดผลลัพธ์ จำนวนเต็ม จำนวนจริง ตัวอย่างที่ 3 การดำเนินการ ผลลัพธ์ ชนิดผลลัพธ์ 13 / 5 * 3 6 จำนวนเต็ม 6 * 5 / 10 * 2 + 10 16 (6 * 5) / (10 * 2) + 10 11 (6 * 5.0) / (10 * 2 + 10) 1.0 จำนวนจริง (6 * 5.0) / (10 * (2 + 10)) 0.25 3 * (4 % (6 / 2)) + 5 8

ตัวอย่างที่ 4 ค่าตัวแปร x การดำเนินการ ค่าจากการกระทำ 7 x = x+1 8 ตัวอย่างที่ 4 ค่าตัวแปร x การดำเนินการ ค่าจากการกระทำ 7 x = x+1 8 x = x-1 6 x = x++ x = ++x x = x-- x = --x Y = ++x Y มีค่าเป็น 8 Y = x++ Y มีค่าเป็น 7

จากตัวอย่างที่ 4 สรุปได้ว่า จากตัวอย่างที่ 4 ถ้า x มีค่าเป็น 7 y = + + x แล้ว อธิบายได้ว่า x มีค่าเป็น 7 ต่อมา เพิ่มค่า x ขึ้นหนึ่ง แล้วส่งให้ตัวแปร y ทำให้ y มีค่าเป็น 8 สรุปได้ว่า - ถ้าวางตัวดำเนินการไว้หน้าตัวแปร จะทำการเพิ่มค่าก่อนแล้วจึงส่งค่าให้กับ y - ถ้าวางตัวดำเนินการไว้หลังตัวแปร จะทำการส่งค่าให้กับ y ก่อนแล้วจึงเพิ่มค่า x อีกหนึ่ง ถ้า x มีค่าเป็น 7 y = x + + แล้ว อธิบายได้ว่า x มีค่าเป็น 7 ทำให้ y มีค่าเป็น 7 ด้วย และเพิ่มค่า x ขึ้นหนึ่ง ส่งผลให้ x มีค่าเป็น 8

ตัวดำเนินการเปรียบเทียบ (Relation Operator) ความหมาย ชนิดของข้อมูล ตัวอย่าง ผลลัพธ์ < น้อยกว่า boolean 5 < 4 <= น้อยกว่าหรือเท่ากับ 5 <= 5 1 == เท่ากับ 0 == 0 > มากกว่า 5 > 4 >= มากกว่าหรือเท่ากับ 5 >= 4 != ไม่เท่ากับ 0 != 0

ตัวดำเนินการลอจิก (Logic Operator) ความหมาย ชนิดของข้อมูล ตัวอย่าง ผลลัพธ์ && AND boolean 1 && -1 1 || OR 1 || 0 ! NOT !4 ตารางค่าความจริง AND ตารางค่าความจริง OR ตารางค่าความจริง NOT A B A && B 1 A B A || B 1 A !A 1

ตัวอย่างที่ 5 ผลการทำงาน ? #include <stdio.h> int main() { ตัวอย่างที่ 5 #include <stdio.h> int main() { int A , B; printf(" A B A OR B\n"); A = 1; B = 1; printf("| %d | %d | %d |\n", A, B, A||B); A = 1; B = 0; A = 0; B = 1; A = 0; B = 0; return(0); } A B A OR B | 1 | 1 | 1 | | 1 | 0 | 1 | | 0 | 1 | 1 | | 0 | 0 | 0 | ผลการทำงาน ?

การยุบนิพจน์โดยใช้ (Compound Assignment) ตัวดำเนินการที่ยุบแล้ว x = x + y x += y x = x - y x -= y x = x * y x *= y x = x / y x /= y x = x % y x %= y z = (x+1) + (y+1) z = ++x + ++y

ขนาดของหน่วยความจำของข้อมูลเรียงจากน้อยไปมาก long double double float unsigned long int long int unsigned int int short char

การเปลี่ยนประเภทของข้อมูล x y นิพจน์ z int z = x + y float double z = x * y char short long z = (x + y) / 4.6 long then float ผลลัพธ์จะเก็บในข้อมูลประเภทที่ใหญ่กว่าเสมอ

การเปลี่ยนประเภทของข้อมูล ภาษาซีสามารถเปลี่ยนประเภทของข้อมูลให้เป็นไปตามที่ผู้ใช้ต้องการได้ โดยการนำชนิดข้อมูลไว้หน้าข้อมูลเช่น x นิพจน์ ผลลัพธ์ int float x float (int)(x + 2.5 ) (float)( x +1)

ตัวอย่างที่ 6 ผลการทำงาน #include <stdio.h> int main() { ตัวอย่างที่ 6 #include <stdio.h> int main() { int i , j; scanf("%d %d" , &i , &j ); printf(" i < j: %d\n" , i<j ); printf(" i <= j: %d\n" , i<=j ); printf(" i == j: %d\n" , i==j ); printf(" i > j: %d\n" , i>j ); printf(" i >= j: %d\n" , i>=j ); return(0); } ผลการทำงาน 1 6 i < j: 1 i <= j: 1 i == j: 0 i > j: 0 i >= j: 0 1 6 i < j: i <= j: i == j: i > j: i >= j: 6 -1 6 -1 i < j: 0 i <= j: 0 i == j: 0 i > j: 1 i >= j: 1

ตัวอย่างที่ 7 ผลการทำงาน #include <stdio.h> int main() { ตัวอย่างที่ 7 #include <stdio.h> int main() { int i , j; scanf("%d %d" , &i , &j ); printf(" i && j: %d\n" , i && j ); printf(" i || j : %d\n" , i || j ); printf(" !i : %d\n" , !i ); printf(" !j : %d\n" , !j ) ; return(0); } ผลการทำงาน 2 -1 i && j: 1 i || j : 1 !i : 0 !j : 0 2 -1 i && j: i || j : !i : !j : 0 -2 0 -2 i && j: 0 i || j : 1 !i : 1 !j : 0

ลำดับการดำเนินงานของ Operator () ! (Not) , ++ , -- , - * , / , % + , - < , > , <= , >= == , != && (And) || (Or) = , *= , /= , %= , += , -=, วงเล็บ ติดลบ ในกรณีอยู่ในลำดับเดียวกันจะทำจากซ้ายไปขวา

ตัวอย่างที่ 8 ผลการทำงาน ? #include <stdio.h> int main() { ตัวอย่างที่ 8 #include <stdio.h> int main() { int i , j; printf("2+3 && 1 : %d\n" , 2+3 && 1); printf("2+3 && 0 : %d\n" , 2+3 && 0); printf("-3 < 1 && 1 : %d\n" , -3 < 1 && 1); printf("12/3*5 > 10 < 5: %d\n" , 12/3*5 > 10 < 5); return(0); } ผลการทำงาน ? 2+3 && 1 : 1 2+3 && 0 : 0 -3 < 1 && 1 : 1 12/3*5 > 10 < 5: 1 2+3 && 1 : 2+3 && 0 : -3 < 1 && 1 : 12/3*5 > 10 < 5:

จบประเภทของข้อมูลและตัวดำเนินการ Data Types and Operator Question ?