ในการเขียนโปรแกรมด้วยภาษาซีนั้น หากมีการประกาศตัวแปรขึ้นมาใช้งานแล้ว ผูู้เขียนจะต้องระบุชนิดข้อมูลให้กับตัวแปรแต่ละตัวด้วย บทความนี้จะอธิบายเกียวกับ ตัวแปร และชนิดข้อมูลต่างๆ
ตัวแปร(Variables)
ตัวแปร คือ ชื่อที่กำหนดขึ้นมาเพื่อใช้ในการเก็บข้อมูล ซึ่งการประกาศใช้ตัวแปรขึ้นมาใช้งานจะเป็นไปตามกฎการตั้งชื่อที่ได้อธิบายไว้ในบท C language Law Name แล้วชนิดของข้อมูล(data type)
ชนิดของข้อมูล คือ สิ่งที่ใช้กำหนดลักษณะและขอบเขตของข้อมูลนั้นๆโดยข้อมูลที่มีชนิดของ ข้อมูลแตกต่างกัน ก็จะเก็บข้อมูลได้ในลักษณะที่ต่างกัน และขอบเขตของข้อมูลที่เก็บได้ก็จะไม่เท่ากันซึ่งในภาษาซีแบ่งชนิดข้อมูลออกเป็น4แบบ ได้แก่- ชนิดข้อมูลแบบ void
- ชนิดข้อมูลแบบ ตัวอักษร(character)
- ชนิดข้อมูลแบบ ตัวเลขจำนวนเต็ม(integer)
- ชนิดข้อมูลแบบเลขทศนิยม(floating)
ชนิดข้อความแบบ void (0 ไบต์)
ชนิดข้อมูลแบบนี้จะไม่มีค่า ซึ่งเราจะไม่ใช้ชนิดข้อมูลแบบ void นี้กำหนดให้กับตัวแปร แต่จะนำ ชนิดข้อมูลประเภทนี้กำหนดไว้ที่ function แทนในกรณีที่ไม่ต้องการให้ function มีการรับค่าใดๆ เข้ามาหรือส่งค่าใดๆกลับไปชนิดข้อมูลแบบตัวอักษร (character)(1 ไบต์)
ชนิดข้อมูลประเภท char ซึ่งชนิดข้อมูลประเภทนี้จะเก็บข้อมูลได้ 1 ตัวอักษรเท่านั้น ผู้เขียนโปรแกรมน่าใหม่ อาจจะคิดว่า คอมพิวเตอร์ทำการเก็บข้อมูลชนิดตัวอักษรนี้ในรูปแบบของตัวอักษร เช่น char A='a'; แล้วคอมพิวเตอร์จะเก็บค่า a ไว้ในตัวแปร A แต่ในความจริงมันไม่เป็นแบบนั้น คอมพิวเตอร์จะเก็บข้อมูลในลักษณะของแอสกี้(ASCII : American Standard Code for Information Interchauge)เช่นในcomputerจะเก็บค่าตัวแปร A เป็น 0110 0001 ในระบบเลขฐาน สอง(มีค่าเท่ากับ 97ในระบบเลขฐานสิบ) ซึ่งจะเป็นรหัส แอสกีของอักษร a นั้นเองซึ่งจากการที่คอมพิวเตอร์เก็บข้อมูลชนิดตัวอักษรในรูปแบบ ascii 1 bytes(8 bit)นั้น ทำให้ข้อมูลตัวอักษรเทียบได้กับข้อมูลชนิดเลขจำนวนเต็มีท่มีค่าตั้งแต่ 0 ถึง 255 (สำหรับข้อมูล ชนิดตัวอักษรแบบไม่คิดเครื่องหมาย หรือ unsigned char)และมีค่าตั้งแต่ -128 ถึง 127(สำหรับข้อมูล ชนิดตัวอีกษรแบบคิดเครื่องหมาย หรือ singned char) เราจึงสามารถนำตัวอักษรมากระทำการทางคณิตศาสต์ต่างๆได้ ตัวอย่างเช่น ตัวอย่าง โปรแกรมแสดงการกระทำการทางคณิตศาสตร์กับชนิดข้อมูลแบบตัวอักษร
1: | #include<stdio.h> | |
2: | main(){ | |
3: | char A=’ b ‘; | |
4: | printf(“ Variable A is %c\n”,A); | |
5: | A=A-1; | |
6: | printf(“After variable A is %c\n”,A); | |
7: | } |
Variable A is b |
After variable A is a |
ชนิดข้อมูลแบบเลขจำนวนเต็ม(integer)
เป็นชนิดขอมูลแบบเลขจำนวนเต็ม เช่น 1,2,3,4,.... เรียกอีกอย่างว่า integer number ซึ่งข้อมูลนี้ภาษาซีได้แบ่งออกเป็น3ประเภท- shot intเป็นเลขจำนวนเต็มแบบสั้น เรียกง่ายๆว่า shot
- intเป็นเลขจำนวนเต็มแบบปกติ
- long intเป็นเลขจำนนเต็มแบบยาวเรียกสั้นๆว่า long
ประเภท | การคิดเครื่องหมาย | จำนวนไบต์ | ค่าต่ำสุด | ค่าสูงสุด |
short int | signed | 2(16 bit) | -32,768 | 32,767 |
unsigned | 2(16 bit) | 0 | 65,535 | |
int(16 bit) | signed | 2(16 bit) | -32,768 | 32,767 |
unsigned | 2(16 bit) | 0 | 65,535 | |
int(32 bit) | signed | 4(32 bit) | -2,147,483,648 | 2,147,483,647 |
unsigned | 4(32 bit) | 0 | 4,294,967,295 | |
long int | signed | 4(32 bit) | -2,147,483,648 | 2,147,483,647 |
unsigned | 4(32 bit) | 0 | 4,294,967,295 |
ข้อความจำ | ||
ชนิดข้อมูล int ของภาษาซี จะมีขนาด 16 bit หรือ 32 bit ขึ้นอยู่กับระบบปฏิบัติการที่ คอมไฟเลอร์ภาษาซี ทำงานอยู่ เช่น สำหรับระบบปฏิบัติการ Ms-Dos นั้น int จะมีขนาด 16 bit(2 bytes) แต่ถ้าเป็น linux หรือ windows 9x, NT,2000,xp,vista.7 int จะมีขนาด 32 bit (4 bytes) |
- signed หมายถึง การเก็บข้อมูเลขจำนวนเต็มแบบคิดเครื่องหมาย คือ จะเก็บเลขจำนวนเต็มบวกและเต็มลบ โดยจะมี่ 1 bit เรียกว่า sign bit ทำหน้าที่เก็บค่าเครื่องหมาย ซึ่ง sign bit นี้จะเป็นbitที่อยู่ด้านซ้ายสุด ซึ่งหากค่า sign เท่ากับ0จะหมายถึงเลขจำนวนเต็มนั้นเป็นค่าบวก แต่ถ้า sign bit เป็น 1 จะหมายถึงเลยจำนวนเต็มนั้นจะเป็นค่าลบ
- Unsigned หมายถึง การเก็บข้อมูเลขจำนวนเต็มแบบไม่คิดเครื่องหมาย คือ จะเก็บเลขจำนวนเต็มบวกเท่านั้น
ชนิดข้อมูลแบบเลขทศนิยม (floating-point)
เป็นชนิดข้อมูลแบบเลขทศนิยมหรือบางทีก็เรียกว่าเลขจำนวนจริง (Rel number)เช่น 1.2, 20.1,...ซึ่งภาษาซีจะแบ่งออกเป็น 3 ประเภทคือ- float
- double
- long double
ประเภท | จำนวนไบต์ | ค่าต่ำสุด | ค่าสูงสุด |
float | 4(32 bit) | 3.4 x 10-38 | 3.4 x 1038 |
double | 8(64 bit) | 1.7 x 10-308 | 1.7 x 10308 |
long double | 10(80 bit) | 3.4 x 10-4932 | 1.1 x 104932 |
ช่วยเขียน Algorithm แผนผังFlowchartและเขียนcodeให้หน่อยค่ะ จงเขียนโปรแกรมหาค่าต่ำสุด สูงสุด ผลบวก ค่าเฉลี่ยของจำนวนเต็มสามจำนวนจากผู้ป้อน
ตอบลบทดสอบป้อน 10 2 3
min=2 max=10 avg=5 sum=15