ใบความรู้ที่ 5

5

Click here to load reader

Upload: sublt-masu

Post on 24-Jun-2015

443 views

Category:

Education


1 download

TRANSCRIPT

Page 1: ใบความรู้ที่  5

สอการวชาการเขยนโปรแกรมภาษาซ : วาทรอยตรยศพล มาส โรงเรยนตาพระยา

ใบความรท 5 - 6

เรอง ตวแปรกบชนดของขอมล

ตวแปรในภาษาซ

ตวแปร (Variable) คอ การจองพนทในหนวยความจ าของคอมพวเตอรส าหรบเกบขอมลทตองใช

ในการท างานของโปรแกรม โดยมการตงชอเรยกหนวยความจ าในต าแหนงนนดวย เพอความสะดวกในการ

เรยกใชขอมล ถาจะใชขอมลใดกใหเรยกผานชอของตวแปรทเกบเอาไว

ชนดของขอมล

ภาษาซเปนอกภาษาหนงทมชนดของขอมลใหใชงานหลายอยางดวยกน ซงชนดของขอมลแตละ

อยางมขนาดเนอททใชในหนวยความจ าทแตกตางกน และเนองจากการทมขนาดทแตกตางกนไป ดงน นใน

การเลอกใชงานประเภทขอมลกควรจะค านงถงความจ าเปนในการใชงานดวย ส าหรบประเภทของขอมลม

ดงนคอ

ชนด ขนาดความ

กวาง ชวงของคา การใชงาน

Char 8 บต ASCII character (-128 ถง 127) เกบขอมลชนดอกขระ

Unsigned char 8 บต 0-255 เกบขอมลอกขระแบบไมคดเครองหมาย

Int 16 บต -32768 ถง 32767 เกบขอมลชนดจ านวนเตม

long 32 บต -2147483648 ถง 2147483649 เกบขอมลชนดจ านวนเตมแบบยาว

Float 32 บต 3.4E-38 ถง 3.4E+38 หรอ ทศนยม

6 เกบขอมลชนดเลขทศนยม

Double 64 บต 1.7E-308 ถง 1.7E+308 หรอ

ทศนยม 12 เกบขอมลชนดเลขทศนยม

Unsigned int 16 บต 0 ถง 65535 เกบขอมลชนดจ านวนเตม ไมคด

เครองหมาย

Unsigned long 32 บต 0 ถง 4294967296 เกบขอมลชนดจ านวนเตมแบบยาว ไมคด

เครองหมาย

Page 2: ใบความรู้ที่  5

สอการวชาการเขยนโปรแกรมภาษาซ : วาทรอยตรยศพล มาส โรงเรยนตาพระยา รปแบบในการประกาศตวแปรในภาษา C

การสรางตวแปรขนมาใชงานจะเรยกวา การประกาศตวแปร (Variable Declaration) โดยเขยนค าสง

ใหถกตองตามแบบการประกาศตวแปร แสดงดงน

type name;

type : ชนดของตวแปร

name : ชอของตวแปร ซงตองตงใหถกตองตามหลกของภาษา C

การเขยนค าสงเพอประกาศตวแปร สวนใหญแลวจะเขยนไวในสวนหวของโปรแกรมกอนฟงกชน

main ซงการเขยนไวในต าแหนงดงกลาว จะท าใหตวแปรเหลานนสามารถเรยกใชจากทใดกไดในโปรแกรม

ดงตวอยาง

#include <stdio.h>

int num; สรางตวแปรชอ num เพอเกบขอมลชนดจ านวนเตม

float y; สรางตวแปรชอ y เพอเกบขอมลชนดเลขทศนยม

char n; สรางตวแปรชอ n เพอเกบขอมลชนดตวอกขระ

void main()

{

printf("Enter number : ")

scanf("%d",&num);

printf("Enter name : ");

scanf("%f",&n);

printf("Thank you");

}

Page 3: ใบความรู้ที่  5

สอการวชาการเขยนโปรแกรมภาษาซ : วาทรอยตรยศพล มาส โรงเรยนตาพระยา หลกการตงชอตวแปร

ในการประกาศสรางตวแปรตองมการก าหนดชอ ซงชอนนไมใชวาจะตงใหสอความหมายถงขอมลทเกบอยางเดยว โดยไมค านงถงอยางอน เนองจากภาษา C มขอก าหนดในการตงชอตวแปรเอาไว แลวถาตงชอผดหลกการเหลาน โปรแกรมจะไมสามารถท างานได หลกการตงชอตวแปรในภาษา C แสดงไวดงน

1. ตองขนตนดวยตวอกษร A-Z หรอ a-z หรอเครองหมาย _(Underscore) เทานน

2. ภายในชอตวแปรสามารถใชตวอกษร A-Z หรอ a-z หรอตวเลข0-9 หรอเครองหมาย _

3. ภายในชอหามเวนชองวาง หรอใชสญลกษณนอกเหนอจากขอ 2

4. ตวอกษรเลขหรอใหญมความหมายแตกตางกน

5. หามตงชอซ ากบค าสงวน (Reserved Word) ดงน

auto default float register struct volatile break

do far return switch while case double

goto short typedef char else if signed

union const enum int sizeof unsigned continue

extern long static void

ตวอยางการตงชอตวแปรในภาษา C ทงทถกตองและไมถกตองตามหลกการ แสดงดงน

bath_room ถกตอง

n-sync ผดหลกการ เนองจากมเครองหมาย - ปรากฏในชอ

108dots ผดหลกการ เนองจากขนตนดวยตวเลข

Year# ผดหลกการ เนองจากมเครองหมาย # อยในชอ

_good ถกตอง

goto ผดหลกการ เนองจากเปนค าสงวน

work ถกตอง

break ผดหลกการ เนองจากเปนค าสงวน

Page 4: ใบความรู้ที่  5

สอการวชาการเขยนโปรแกรมภาษาซ : วาทรอยตรยศพล มาส โรงเรยนตาพระยา ตวแปรส าหรบขอความ

ในภาษา C ไมมการก าหนดชนดของตวแปรส าหรบขอความโดยตรง แตจะใชการก าหนดชนดของตวแปรอกขระ (char) รวมกบการก าหนดขนาดแทน และจะเรยกตวแปรส าหรบเกบขอความวา ตวแปรสตรง (string) รปแบบการประกาศตวแปรสตรงแสดงไดดงน

char name[n] = "str";

name ชอของตวแปร

n ขนาดของขอความ หรอจ านวนอกขระในขอความ

str ขอความเรมตนทจะก าหนดใหกบตวแปรซงตองเขยนไวภายในเครองหมาย " "

ตวอยางการประกาศตวแปรส าหรบเกบขอความ แสดงไดดงน

char name[5] = "kwan" ; สรางตวแปร name ส าหรบเกบ ขอความ kwan ซงม 4 ตวอกษร ดงนน name

ตองมขนาด 5

char year[5] = "2549"; สรางตวแปร year ส าหรบเกบ ขอความ 2549 ซงม 4 ตวอกษร ดงนน year ตองม

ขนาด 5

char product_id[4] = "A01"; สรางตวแปร product_id ส าหรบเกบ ขอความ A01 ซงม 3 ตวอกษร ดงนน

product_id ตองมขนาด 4

ขอมลคาคงท (Literal)

คาคงทเปนขอมลทมคาคงทและถกเขยนบรรจลงในซอรสโคดของ เพอจดประสงคหลายๆอยาง คาคงทสวนใหญจะสอดคลองกบชนดขอมล คอ

คาคงทชนดตวเลขจ านวนเตม ใชส าหรบก าหนดคาเลขจ านวนเตม เชน 1 46 หรอ 7048 เปนตน ซงถอเปนขอมลตวเลขฐานสบ ส าหรบการก าหนดคาตวเลขจ านวนเตมในภาษาจาวาสามารถก าหนดไดหลายฐานตวเลขนอกเหนอจากฐานสบเมอน าหนาดวยเลข 0 และตามหลงดวยเลข 0 ถง 7 หมายถงเลขฐานแปด เชน 024 มคาเทากบ 248 หรอ 30 ในฐานสบ เมอน าหนาดวยเลข 0x หรอ 0X และตามหลงดวยเลข 0 ถง 9 หรออกษร a ถง z หรออกษร A ถง Z หมายถงเลขฐานสบหกเชน 0x1D หรอ 0X1d มคาเทากบ 1D16 หรอ 29 ในฐานสบ

Page 5: ใบความรู้ที่  5

สอการวชาการเขยนโปรแกรมภาษาซ : วาทรอยตรยศพล มาส โรงเรยนตาพระยา

คาคงทชนดตวเลขทศนยม ใชส าหรบก าหนดคาเลขจ านวนทศนยม เชน 12.4, 8.0, 9.33333 หรอ 24E5 เปนตน ในบางกรณคาคงทสามารถระบขนาดพนทในการบนทกคาได 2 แบบคอ เมอตองการระบพนทเปนชนด float ใหใชตวอกษร F หลงตวเลข เชน 3.0F ท าใหมพนทในการเกบเลข 32 บต หรอเมอตองการตองการระบพนทเปนชนด double ใหใชตวอกษร D หลงตวเลข เชน 3.0D ท าใหมพนทในการเกบเลข 64 บต ดงนนถงแมวา 3.0F และ 3.0D จะมคาเทากน แตกมพนทในการบนทกไมเทากน (กรณทไมระบ F หรอ D คาคงทนนถอเสมอนวาเปน D)

คาคงทชนดตวอกษร ใชส าหรบก าหนดคาตวอกษร หรอพยญชนะหนงตว ซงการก าหนดตองอยในสญลกษณหยาดฝน(Single Quote) เชน ตวเลข '4' ตวอกษร 'A' ตวเลข '9' หรอตวอกษร '+' เปนตน

คาคงทชนดขอความ ใชส าหรบก าหนดคากลมตวอกษร ซงการก าหนดตองอยในส ญลกษณฟนหน(Double Quote) เชน "Java", "Hello! World", "How do you feel today?" เปนตน

คาคงทชนดตรรกะ ใชส าหรบก าหนดคาทางตรรกะ เมอตองการก าหนดคาความเปนจรงใชคยเวรด true หรอเมอตองการก าหนดคาความเปนเทจใหใชคยเวรด false