ชนิดข้อมูลและตัวแปร
ชนิดข้อมูลและตัวแปร
1. ชนิดข้อมูล ในการเขียนโปรแกรมคอมพิวเตอร์ ด้วยภาษาซี จะต้องกำหนดชนิดข้อมูล ให้กับตัวแปรก่อน ที่จะนำตัวแปรนั้นมาใช้เหมือน ภาษาปาสคาล ข้อมูลต่างชนิดกันจะมีคุณสมบัติ และการใช้งานต่างกัน ในทที่นี้จะได้กล่าวถึงรายละเอียดของชนิดข้อมูลต่างๆ
เทอร์โบซีมีข้อมูลทั้งหมด 4 ชนิดดังนี้
• ข้อมูลชนิดจำนวนเต็ม (integer type)
• ข้อมูลชนิดทศนิยม (floating point type)
• ข้อมูลชนิดทศนิยมละเอียดสองเท่า (double precision floating point)
• ข้อมูลชนิดตัวอักษร (character type)
• ข้อมูลชนิดไม่มีค่า (valueless type)
ข้อมูลชนิดจำนวนเต็ม ข้อมูลชนิดนี้ได้แก่ตัวเลขซึ่งไม่มีทศนิยม เช่น 35, 20 เป็นต้น ข้อมูลชนิดนี้แบ่งย่อยเป็นหลายแบบดังแสดงในตารางที่ 1
ข้อมูลชนิดทศนิยม ข้อมูลชนิดนี้ได้แก่ตัวเลขที่มีค่าเป็นทศนิยม เช่น 10.5, 20.8 เป็นต้น ข้อมูลชนิดนี้แบ่งย่อยเป็น 3 ชนิดดังแสดงในตารางที่ 2
ตารางที่ 1 ข้อมูลชนิดจำนวนเต็ม
ชนิดข้อมูล จำนวนบิตที่ใช้ ช่วงของข้อมูล การกำหนดชนิดข้อมูล เลขจำนวนเต็ม (integer) 16 -32768 ถึง 2767 int เลขจำนวนเต็มไม่คิดเครื่องหมาย (unsigned integer) 16 0 ถึง 65535 unsigned int เลขจำนวนเต็มคิดเครื่องหมาย (signed integer) 16 -32768 signed int เลขจำนวนเต็มสั้น (short integer) 16 -32768 ถึง 32767 short int เลขจำนวนเต็มสั้นไม่คิดเครื่องหมาย (unsigned short integer) 16 0 ถึง 65535 unsigned short int เลขจำนวนเต็มสั้นคิดเครื่องหมาย (signed short integer) 16 -32768 ถึง 32767 signed short int เลขจำนวนเต็มยาว (long integer) 32 -2147483648 ถึง 2147483649 long int เลขจำนวนเต็มยาวคิดเครื่องหมาย (signed long) 32 -2147483648 ถึง 2147483649 signed long int เลขจำนวนเต็มยาวไม่คิดเครื่องหมาย (unsigned long integer) 32 0 ถึง 4294967296 unsigned long int
หมายเหตุ เมื่อกำหนดตัวแปรเป็นชนิดตัวเลขจำนวนเต็มจะเป็นแบบคิดเครื่องหมายเสมอ
ตารางที่ 2 ข้อมูลทศนิยม
ชนิดข้อมูล จำนวนบิตที่ใช้ ช่วงของข้อมูล การกำหนดชนิดข้อมูล เลขจำนวนจริง (float point) 32 3.4x10 -38
ถึง
3.4x10 38 Float เลขจำนวนจริงละเอียด 2 เท่า (double precision floating point) 64 1.7x10 -308
ถึง
1.7x10 308 Double เลขจำนวนจริงยาวละเอียด 2 เท่า (long double precision floating point) 80 3.4x10 -4932
ถึง
1.1x10 4932 Long double
ข้อมูลชนิดตัวอักษร ข้อมูลชนิดนี้ได้แก่ตัวอักษร A-Z, เลข 0-9 และสัญลักษณ์ต่างๆ ตัวแปรที่กำหนดเป็นชนิดตัวอักษรจะรับตัวอักษรได้เพียง 1 ตัวเท่านั้น และสามารถรับข้อมูลจำนวนเต็มซึ่งมีค่าระหว่าง –128 ถึง 127 ซึ่งสามารถนำไปคำนวณทางคณิตศาสตร์ได้ ข้อมูลชนิดนี้จะใช้ 8 บิตในการเก็บตัวอักษร 1 ตัว การกำหนดข้อมูลชนิดนี้ให้กับตัวแปรต้องระบุด้วย char
ข้อมูลชนิดไม่มีค่า ข้อมูลชนิดนี้จะไม่ใช้ในการกำหนดชนิดของตัวแปรรายละเอียดจะกล่าวในตอนหลัง เทอร์โบซีจะไม่มีข้อมูลชนิดสตริงก์หรือข้อความต่างๆ ข้อมูลชนิดสตริงก์จะประกอบด้วยตัวอักษรหลายๆ ตัวเรียงติดกันเป็นข้อความ ดังนั้นจึงใช้อาร์เรย์ (array) ในการเก็บข้อมูลชนิดสตริงก์
ตัวอย่าง โปรแกรมที่ 1 #include ”stdio.h”
#include ”conio.h”
main()
{
int a;
float b;
clrscr();
a = 3;
b = 3.5;
printf(“%d\n”,a);
printf(“%f\n”,b);
}
ผลลัพธ์ 3
3.500000
Download Source Code
ตัวอย่าง โปรแกรมที่ 2 #include”stdio.h”
#include”conio.h”
main()
{
char c;
clrscr();
c = ‘A';
printf(“c = %c\n,c);
}
ผลลัพธ์ c = A
Download Source Code
ตัวอย่าง โปรแกรมที่ 3 #include”stdio.h”
#include”conio.h”
#include”string.h”
main()
{
char st[8];
clrscr();
strcpy(st,”Turbo C”);
printf(“%s\n”,st);
}
ผลลัพธ์ Turbo C
Download Source Code
โปรแกรมที่ 1 กำหนดให้ตัวแปร a และ b เป็นชนิดเลขจำนวนเต็มและเลขจำนวนจริงตามลำดับ ในโปรแกรมที่ 2 กำหนดให้ตัวแปร c เป็นชนิดตัวอักษรซึ่งจะรับตัวอักษรได้เพียง 1 ตัวเท่านั้น การกำหนดค่าให้กับตัวแปรชนิดนี้ จะต้องมีเครื่องหมาย ‘ หน้าและหลังตัวอักษรเสมอ สำหรับในโปรแกรม 3 เป็นการกำหนดอาร์เรย์ st สำหรับเก็บข้อมูลชนิดสตริงก์โดยสามารถเก็บตัวอักษรได้ทั้งหมด 7 ตัว ขอให้สังเกตว่าขนาดอาร์เรย์ จะต้องมากกว่าความยาวของสตริงก์ หรือข้อความอย่างน้อย 1 ตัวอักษร
T u r b o C \0
อาร์เรย์ที่เก็บข้อมูลที่สตริงก์จะปิดท้ายด้วยสตริงก์ศูนย์ (null string) ซึ่งเทอร์โบซีจะใช้ \0 แทนสตริงก์ศูนย์ ฟังก์ชัน strcpy ในโปรแกรมที่ 3 มีหน้าที่นำค่าคงที่สตริงก์อยู่ภายในเครื่องหมาย “ “ มาเก็บไว้ในอาร์เรย์ st ฟังก์ชันนี้กำหนดในไฟล์ string.h
โปรแกรมที่ 1, 2 และ 3 มีฟังก์ชัน clrscr() ซึ่งใช้ล้างจอภาพและเคอร์เซอร์จะเลื่อนไปมุมบนซ้าย ฟังก์ชันนี้กำหนดในไฟล์ conio.h
โปรแกรมที่ 4 กำหนดให้ตัวแปร i และ j เป็นชนิดเลขจำนวนเต็มและเลขจำนวนเต็มไม่คิดเครื่องหมาย ค่าของตัวแปร i จะมีค่า –15536 ทั้งนี้เพราะค่าของตัวแปร j = 50000 เมื่อแปลงเป็นเลขฐานสองแบบไม่คิดเครื่องหมายจะเป็น 1011 1100 1011 0000 เลขฐานสองนี้เมื่อแปลงเป็นเลขฐานสิบแบบคิดเครื่องหมายจะมีค่า –15536 โดยบิตซ้ายสุดจะเป็นบิตของเครื่องหมาย (sign flag) ซึ่งเป็นบวกเมื่อมีค่า 0 และเป็นลบ เมื่อมีค่าเป็น 1 ค่า –15536 มีค่าเท่ากับ 50000-65536
ตัวอย่าง โปรแกรมที่ 4 include”stdio.h”
main()
{
int i;
unsigned j;
j = 50000;
i = j;
printf(“i = %d\n”,I);
printf(“j = %u\n”,j);
}
ผลลัพธ์ i = -15536
j = 50000
Download Source Code
from ;http://www.thai-programmer.com
ป้ายกำกับ: c++, c++ programming
0 ความคิดเห็น:
แสดงความคิดเห็น
สมัครสมาชิก ส่งความคิดเห็น [Atom]
<< หน้าแรก