34
Component of C รรรรรรร ร40102 รรรรรรรรรร รรรรรรรรรรรรรรรรรร

Component of C

  • Upload
    benita

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

Component of C. รายวิชา ง 40102 หลักการแก้ปัญหาและการโปรแกรม. ชุดอักขระในภาษาซี. แบ่งหมวดหมู่ของตัวอักขระออกเป็น 3 ชนิดหลักๆ คือ ตัวอักษร ตัวเลข และตัวอักขระ “ _ ” (underscore) ตัวอักขระพิเศษอื่น (Special Characters) ตัวดำเนินการ เครื่องหมายวรรคตอน ฯลฯ - PowerPoint PPT Presentation

Citation preview

Page 1: Component of C

Component of Cรายวิ�ชา ง40102 หลั�กการแก�ปั�ญหาแลัะการโปัรแกรม

Page 2: Component of C

ชุ�ดอั�กขระในภาษาซี�

แบ่�งหมวิดหม��ของตั�วิอ�กขระออกเปั�น 3 ชน�ดหลั�กๆ คื!อตั�วิอ�กษร ตั�วิเลัข แลัะตั�วิอ�กขระ “ _ ”

(underscore)ตั�วิอ�กขระพิ�เศษอ!%น (Special Characters)

ตั�วิด&าเน�นการ เคืร!%องหมายวิรรคืตัอน ฯลัฯ! " # % & ( ) ‘ * + , - . / :

; < = > ? [ \ ] ^ { | } ~

ตั�วิอ�กขระ White Spaceไม�สามารถมองเห+นด�วิยตัา ใช�เปั�นตั�วิแบ่�งแยก เช�น ช�อง

วิ�าง, ข-.นบ่รรทั�ดใหม�, ข-.นหน�าใหม� ฯลัฯ

Page 3: Component of C

รหั�สควบค�ม (Control code)

รหั�สที่��ใชุ�แที่นอั�กขระพิ�เศษอั �น และอั�กขระ White Space

ม�กใชุ�ร"วมก�บค#าส��งที่��ใชุ�ในการร�บและแสดงผล ข�อัม&ล เชุ"น ค#าส��ง printf , cprintf , scanf ,

cscanf ฯลฯม�อั�กขระแบคสแลชุ ( \ ) น#าหัน�า แล�วตามด�วยต�ว

อั�กษรหัร อัต�วเลขแต"ละรหั�สใชุ�เพิ �อัเป็+นต�วแที่นขอังอั�กขระ white

space หัร อัรหั�สพิ�เศษอั �นจำ#านวนหัน-�งอั�กขระ

Page 4: Component of C

รหั�สควบค�ม (Control code)

\t ค อั horizontal tab \n ค อั new line

\r ค อั carriage return \b ค อั backspace

\a ค อั bell \” ค อั ”\0 ค อั null character \’ ค อั ’\? ค อั ? \\ ค อั \ฯลฯ

Page 5: Component of C

ต�วแป็ร

ชุ �อัส#าหัร�บอั�างอั�งถึ-งพิ /นที่��ในหัน"วยความจำ#า , ชุ �อัที่�� ใชุ�ในการอั�างถึ-งข�อัม&ล

ต�วแป็รในภาษาซี�ม�หัลายชุน�ดและหัลายขนาด เพิ �อัใหั�เราสามารถึเล อักใชุ�ชุน�ดขอังต�วแป็รได�ตรงก�บ

ชุน�ดขอังข�อัม&ล

Page 6: Component of C

การป็ระกาศต�วแป็ร (Variable Declaration)

<Type> <variable-list> ;

Type ค อั ชุน�ดขอังต�วแป็ร (ชุน�ดขอังข�อัม&ล)variable-list ค อั ชุ �อัขอังต�วแป็รที่��ป็ระกาศ ถึ�าม�มากกว"า

หัน-�งต�วจำะต�อังใชุ�คอัมม"า (,) เป็+นต�วแยกEx.

int a ; int lower,upper ;short int man,ratio; double point;char ch,c,name; float rate,ratio ;

Page 7: Component of C

ชุน�ดขอังข�อัม&ล (Data type)

ชุน�ดขอังข�อัม&ลพิ /นฐานในภาษาซี�ม�หัลายชุน�ด เชุ"นchar : ต�วอั�กษรint : จำ#านวนเต2ม

unsigned int : จำ#านวนเต2มไม"ม�เคร �อังหัมายlong , long int : จำ#านวนเต2ม ขนาดเป็+น 2 เที่"าขอัง int

float : จำ#านวนจำร�งdouble : จำ#านวนจำร�ง ขนาดเป็+น 2 เที่"าขอัง floatlong double : จำ#านวนจำร�ง ม�ขนาดยาวเป็+นพิ�เศษ

Page 8: Component of C

ขนาดและขอับเขตขอังต�วแป็ร (Turbo C)

Type Length Rangeunsigned char 8 bits 0 to 255

char 8 bits -128 to 127unsigned int 16 bits 0 to 65,535

short int 16 bits -32,768 to 32,767int 16 bits -32,768 to 32,767

unsigned long 32 bits 0 to 4,294,967,295long 32 bits -2,147,483,648 to 2,147,483,647float 32 bits 3.4 * (10-38) to 3.4 * (10+38)

double 64 bits 1.7 * (10-308) to 1.7 * (10+308) long double 80 bits 3.4 * (10-4932) to 1.1 * (10+4932)

Page 9: Component of C

หัล�กการต�/งชุ �อัต�วแป็ร

ต�วอั�กขระต�วแรกต�อังเป็+นต�วอั�กษรเที่"าน�/น ( underscore ‘_’ เป็+นอั�กษรต�วหัน-�งแต"จำะไม"น�ยมใชุ�เป็+นต�วแรก)

ต�วอั�กขระต�วถึ�ดไป็อัาจำตามด�วยต�วอั�กษร ต�วเลข หัร อั ‘_’ม�ความยาวเที่"าไหัร"ก2ได� แต"จำะร�บร& �แค" 31 ต�วแรกเที่"าน�/นชุ �อัต�วแป็รที่��เป็+นอั�กษรต�วเล2กล�วน ต�วอั�กษรต�วใหัญ่"ล�วน

หัร อัต�วอั�กษรเล2กป็นต�วอั�กษรใหัญ่" จำะถึ อัว"าเป็+นคนละ ต�วแป็รก�น (Case sensitive) เชุ"น DATA, data, Data

หั�ามใชุ�ค#าสงวนมาเป็+นชุ �อั ยกเว�นแต"จำะป็ระกอับเป็+นส"วนหัน-�งขอังชุ �อั

Page 10: Component of C

ค#าสงวน

ค#าที่��ภาษาซี�สงวนไว�เพิ �อัเป็+นค#าส��งพิ /นฐานหัร อัเป็+นส�ญ่ล�กษณ์5ในการป็ระกาศค"าต"างๆต�วแป็ร เชุ"น unsigned, short, int, long,

float, doubleค#าส��งพิ /นฐาน เชุ"น void, return, for, goto, if,

else, do, while, switch ฯลฯข�อส�งเกตั เม �อัเราพิ�มพิ5ค#าสงวน standard turbo C

จำะแสดงเป็+นต�วอั�กษรส�ขาว

Page 11: Component of C

ต�วแป็รที่��ด�

นอักจำากหัล�กการต�/งชุ �อัเบ /อังต�นแล�ว ส��งที่��ส#าค�ญ่อั�กอัย"างในการสร�างต�วแป็รค อัตั�วิแปัรคืวิรเปั�นช!%อทั0%ส!%อคืวิามหมาย เชุ"น ต�วแป็รที่��ใชุ�

เก2บค"าอั�ณ์หัภ&ม� อัาจำต�/งชุ �อัเป็+น degC (degree in Celsius) , degF (degree in Fahrenheit) ฯลฯ

ตั�วิแปัรคืวิรม0ชน�ดข�อม�ลัทั0%เหมาะสม ข�อัม&ลที่��อัาจำม�จำ�ดที่ศน�ยม -> float , double ฯลฯข�อัม&ลที่��ไม"ต�อังม�จำ�ดที่ศน�ยม -> int, long ฯลฯ

Page 12: Component of C

การก#าหันดค"าใหั�ก�บต�วแป็ร

<var1>[=var2]….=<expression>

var1, var2 ค อั ชุ �อัต�วแป็รที่��จำะถึ&กก#าหันดค"า

expression ค อั น�พิจำน5 ซี-�งอัาจำเป็+นต�วแป็ร ค"าคงที่�� หัร อัเป็+นการด#าเน�นการระหัว"างต�วแป็ร

= ค อั ต�วด#าเน�นการใหั�น#าค"าน�พิจำน5ด�านขวาขอังต�วด#าเน�นการ “ =” ไป็ก#าหันดค"าใหั�ก�บต�วแป็รด�านซี�ายขอังต�วด#าเน�นการ “=”

Page 13: Component of C

ต�วอัย"างการป็ระกาศและก#าหันดค"าใหั�ต�วแป็ร

void main() {

int begin;begin = 0;

}

void main() {

int begin;begin = 0;

}

void main() {

int val1, val2, val3;val1 = val2 = val3 = 1;

}

void main() {

int val1, val2, val3;val1 = val2 = val3 = 1;

}

void main() {

char ch1, ch2;ch1 = ‘A’;ch2 = ‘X’;

}

void main() {

char ch1, ch2;ch1 = ‘A’;ch2 = ‘X’;

}

void main() {

float temperature;temperature = 37.5;

}

void main() {

float temperature;temperature = 37.5;

}

Page 14: Component of C

ต�วอัย"างการป็ระกาศและก#าหันดค"าใหั�ต�วแป็ร

#include <stdio.h>void main(){ int var1 , var2 , var3; var1 = 3; var2 = 5; printf(“var1 = %d\n” , var1); printf(“var2 = %d\n” , var2); var3 = var1 + var2; printf(“var1 + var2 = %d\n” , var3); printf(“var1 + var2 = %d\n” , var1+var2);}

Page 15: Component of C

ex1.cpp

เข0ยนโปัรแกรมโดยทั&าตัามข�.นตัอนตั�อไปัน0.1 . ปัระกาศตั�วิแปัรแบ่บ่ float ข-.นมา 3 ตั�วิ ตั�.งช!%อ

ตั�วิแปัรเปั�นอะไรก+ได�2. ก&าหนดให�ตั�วิแปัรตั�วิแรกม0คื�าเทั�าก�บ่ 105.3. ก&าหนดให�ตั�วิแปัรตั�วิทั0% 2 ม0คื�าเทั�าก�บ่ 584. ก&าหนดให�ตั�วิแปัรตั�วิทั0% 3 ม0คื�าเทั�าก�บ่ผลัคื�ณของ 2

ตั�วิแปัรแรก5. พิ�มพิ3คื�าทั0%จั�ดเก+บ่ในตั�วิแปัรทั�.ง 3 ตั�วิออกทัางหน�าจัอ

[ ตั�วิแปัรชน�ด float ใช� format เปั�น %f ]

Page 16: Component of C

ค"าคงที่�� (constant)

ค อั ข�อัม&ลหัร อัค"าที่��ไม"สามารถึเป็ล��ยนแป็ลงได� แยกเป็+น 2 ชุน�ดคื�าคืงทั0%ทั0%ใช�ในการคื&านวิณคื�าคืงทั0%ทั0%ไม�ใช�ในการคื&านวิณ (string)

Page 17: Component of C

ค"าคงที่��ที่��ใชุ�ในการค#านวณ์

คื�าคืงทั0%จั&านวินเตั+ม (Integer Constants) ได�แก"ค"าคงที่��ที่��เป็+นจำ#านวนเต2มไม"ม�จำ�ดที่ศน�ยม เชุ"น 568, -96 , + 645

คื�าคืงทั0%ทั0%ม0จั5ดทัศน�ยม (Floating-point Constants) คื�าคืงทั0%ทั0%ม0จั5ดทัศน�ยมธรรมดา เชุ"น 20.65 , -

35.02 , 000.24คื�าคืงทั0%ทั0%ม0จั5ดทัศน�ยมในร�ปัแบ่บ่วิ�ทัยาศาสตัร3

(Science Notation ) เชุ"น 1E+04 , 1.5E-06

Page 18: Component of C

ค"าคงที่��ที่��ใชุ�ในการค#านวณ์

คื�าคืงทั0%ทั0%เปั�นอ�กขระ (Character Constants) ได�แก" ค"าคงที่��ที่��เป็+นต�วเลข หัร อัต�วอั�กษร หัร อัอั�กขระที่��เป็+นรหั�สควบค�ม ม�ขนาด 1 ไบต5 และเข�ยนอัย&"ภายใต�อั�กขระ Apostrophe เชุ"น ‘A’

คื�าคืงทั0%ในระบ่บ่เลัขฐานแปัด (Octal constants) เชุ"น 0250 ม�ค"าเที่"าก�บ (250)

8

คื�าคืงทั0%ในระบ่บ่เลัขฐานส�บ่หก (Hexadecimal constants) เชุ"น 0x35F ม�ค"าเที่"าก�บ (35F)16

Page 19: Component of C

ค"าคงที่��ที่��ไม"ใชุ�ในการค#านวณ์ (String constants)

ค"าคงที่��ที่��ไม"สามารถึน#าไป็ค#านวณ์ได�อัาจำป็ระกอับด�วย ต�วเลข ต�วอั�กษร หัร อัอั�กขระ

พิ�เศษอั �นที่��ต�อังเข�ยนภายใต�อั�กขระค#าพิ&ด ต�วอั�กขระภายในเคร �อังหัมายค#าพิ&ดจำะถึ&กบ�นที่-กใน

หัน"วยความจำ#าต"อัเน �อังก�นไป็ เชุ"น“Hello”, “2”, “This is C programming”

Page 20: Component of C

ส�ญ่ล�กษณ์5คงที่�� (Symbolic constants)ค"าคงที่��บางค"าอัาจำถึ&กน#าไป็ใชุ�บ"อัยในโป็รแกรม ซี-�งเรา

สามารถึเข�ยนแที่นค"าคงที่��ค"าน�/นด�วยส�ญ่ล�กษณ์5เพิ �อัชุ"วยในการส �อัความหัมายได�

ในการก#าหันดส�ญ่ล�กษณ์5จำะใชุ�ค#าส��ง #define ซี-�งต�อังป็ระกาศอัย&"นอักเหัน อัฟั9งก5ชุ�น main()

#define PI 3.14159#define TXT “Hello

World”PI และ TXT ไม"ใชุ"ต�วแป็รและไม"สามารถึ

เป็ล��ยนแป็ลงค"าได�

Page 21: Component of C

ต�วอัย"างการใชุ�ค"าคงที่��

#include <stdio.h>

#define PI 3.14159

void main()

{

int area , r = 5;

area = PI * r * r ;

printf(“area = %d\n”,area);

}

#include <stdio.h>

#define PI 3.14159

void main()

{

int area , r = 5;

area = PI * r * r ;

printf(“area = %d\n”,area);

}

#include <stdio.h>

#define TXT “Hello World”

void main()

{

printf(“%s\n”,TXT);

}

#include <stdio.h>

#define TXT “Hello World”

void main()

{

printf(“%s\n”,TXT);

}

Page 22: Component of C

การแสดงผลข�อัม&ล

การแสดงผลข�อัม&ลอัอักที่างจำอัภาพิในภาษาซี� ส"วนใหัญ่"จำะเร�ยกใชุ�งานฟั9งก5ชุ�น printf (อัย&"ใน stdio.h)

ร&ป็แบบ printf (“format”, argument1, argument2, …);

format ค อั ร&ป็แบบการแสดงผลที่��ถึ&กระบ�เพิ �อัก#าหันดร&ป็แบบขอังผลล�พิธ์5ที่��ต�อังการ ซี-�งจำะป็ระกอับด�วย

ข�อัความที่��ต�อังการแสดงผลโดยตรงformat ขอังการพิ�มพิ5ข�อัม&ล (อั�กษรที่��ม�เคร �อังหัมาย % น#า

หัน�า)argument ค อั ข�อัม&ล ซี-�งอัาจำเป็+นค"าคงที่�� ต�วแป็ร หัร อัน�พิจำน5ที่��ต�อังการจำะพิ�มพิ5ค"า ซี-�งจำะพิ�มพิ5ตามร&ป็แบบที่��ก#าหันดไว�ในส"วน format

Page 23: Component of C

ต�วอัย"างค#าส��งแสดงผลข�อัม&ล

printf(“Hello World”);

printf(“%d got score %d .\n”, ID, mark);

printf(“The value of PI is %f\n”, pi);

printf(“This computer cost %c%d”,‘$’, cost);

Page 24: Component of C

การก#าหันด format ใน printf

โดยป็กต� เราจำะใชุ� format ในการก#าหันดล�กษณ์ะการแสดงผลขอังต�วแป็ร หัร อัน�พิจำน5ต"างๆ

ซี-�งต�อังก#าหันดใหั�ถึ&กก�บชุน�ดขอังต�วแป็รด�วยint, unsigned int - ก&าหนด format

เปั�น %d, %o, %xlong - ก&าหนด format เปั�น %ld, %lo,

%lx,float, double - ก&าหนด format เปั�น

%f, %echar – ก&าหนด format เปั�น %c

Page 25: Component of C

การก#าหันด format ใน printf

ใหั�ที่ดลอังพิ�มพิ5โป็รแกรมด�งน�/void main(){ int i = 16; long l = 16; float f = 12.345; char c = ‘a’; printf(“%d\t %o\t %x\n” , i , i , i ); printf(“%ld\t %lo\t %lx\n” , l , l , l ); printf(“%f\t %e\n” , f , f); printf(“%c\n” , c );}

Page 26: Component of C

การก#าหันด format ใน printf

%d : พิ�มพิ5 int ด�วยต�วเลขฐานส�บ%o : พิ�มพิ5 int ด�วยต�วเลขฐานแป็ด%x : พิ�มพิ5 int ด�วยต�วเลขฐานส�บหัก%ld , %lo , %lx : พิ�มพิ5 long (ร&ป็แบบตามหัล�งเหัม อัน int)

%f : พิ�มพิ5 float, double แบบจำ�ดที่ศน�ยม (หักต#าแหัน"ง)

%e : พิ�มพิ5 float, double แบบว�ที่ยาศาสตร5 เชุ"น 1.23e+23

%c : พิ�มพิ5 char

%s : พิ�มพิ5ข�อัความ เชุ"น “Hello”

Page 27: Component of C

ค#าส��งเพิ��มเต�มขอังการจำ�ดร&ป็แบบการแสดงผลใชุ�ร"วมก�บ format ต"างๆ ที่��น�ยมใชุ�บ"อัย ค อั

เคืร!%องหมาย + ใชุ�ร"วมก�บการแสดงผลข�อัม&ลที่��เป็+นต�วเลข พิ�มพิ5เคร �อังหัมายบวกหัน�าข�อัม&ลถึ�าข�อัม&ลม�ค"าเป็+น

บวก

ตั�วิอย�าง float w=15.2 , x=-13.3; printf (“w=%f x=%f\n” , w , x);printf (“w=%+f x=%+f\n” , w , x);

ผลัลั�พิธ3 w=15.200000 x=-13.300000w=+15.200000 x=-13.300000

Page 28: Component of C

ค#าส��งเพิ��มเต�มขอังการจำ�ดร&ป็แบบการแสดงผล

ตั�วิเลัข ใชุ�ก#าหันดจำ#านวนชุ"อังที่��ใชุ�ในการแสดงผล ถึ�าจำ#านวนข�อัม&ลม�น�อัยกว"าชุ"อัง จำะแสดงผลโดย

จำ�ดชุ�ดด�านขวา ถึ�าจำ#านวนข�อัม&ลม�มากกว"าชุ"อัง จำะแสดงผลโดยไม"

สนใจำจำ#านวนชุ"อังตั�วิอย�าง float w=15.2 ;

printf (“%f|%5f|%9f|%10f|%12f|”,w,w,w,w,w);ผลัลั�พิธ3 15.200000|15.200000|15.200000| 15.200000| 15.200000|

Page 29: Component of C

ค#าส��งเพิ��มเต�มขอังการจำ�ดร&ป็แบบการแสดงผล

จำ�ดที่ศน�ยมตามด�วยต�วเลข (.Number) ใชุ�ก#าหันดจำ#านวนต�วเลขหัล�งจำ�ดที่ศน�ยมที่��จำะแสดง

ผลโดยจำะแสดงต�วเลขหัล�งจำ�ดที่ศน�ยมเป็+นจำ#านวนต#าแหัน"งเที่"าก�บ Number

น�ยมใชุ�ตามหัล�งค#าส��งต�วเลขต�วอัย"าง float w=32.5762 ;

printf (“%f|%.f|%.2f|%7.2f|”,w,w,w,w);

ผลล�พิธ์5 32.576200|32|32.58| 32.58|

Page 30: Component of C

ค#าส��งเพิ��มเต�มขอังการจำ�ดร&ป็แบบการแสดงผล

เคร �อังหัมาย - ใหั�พิ�มพิ5ข�อัม&ลชุ�ดขอับซี�ายขอังฟั;ลด5 (ป็กต�ข�อัม&ลจำะชุ�ด

ขวา )ม�กใชุ�ร"วมก�บค#าส��งจำ�ดร&ป็แบบแสดงผลแบบอั �นๆ

ต�วอัย"าง float w=32.5762 ;

printf (“%f|%8.f|%+8.2f|\n”,w,w,w);

printf (“%f|%-8.f|%-+8.2f|\n”,w,w,w);

ผลล�พิธ์5 32.576200| 32| +32.58|32.576200|32 |+32.58 |

Page 31: Component of C

การร�บข�อัม&ล

การร�บข�อัม&ลจำากค�ย5บอัร5ดในภาษาซี�ส"วนใหัญ่"จำะเร�ยกใชุ�งานฟั9งก5ชุ�น scanf ซี-�งเป็+นฟั9งก5ชุ�นมาตรฐานที่��บรรจำ�อัย&"ใน header file ที่��ชุ �อั stdio.h เชุ"นเด�ยวก�บฟั9งก5ชุ�น printf

ร�ปัแบ่บ่ scanf (“format”, argument1, argument2, …);

format คื!อ ร�ปัแบ่บ่ของข�อม�ลั (argument) ทั0%ใช�ร�บ่ข�อม�ลัทั0%ผ��ใช�ปั8อนเข�ามา

argument คื!อ ตั&าแหน�ง (Address) ของตั�วิแปัรทั0%ใช�ร�บ่ข�อม�ลัทั0%ผ��ใช�ปั8อนเข�ามา

สามารถระบ่5ตั&าแหน�งของตั�วิแปัรได�โดยการเพิ�%มเคืร!%องหมาย & ไวิ�หน�าตั�วิแปัรน�.น

ตั�วิแปัรตั�องเปั�นชน�ดเด0ยวิก�บ่ทั0%ก&าหนดไวิ�ใน format

Page 32: Component of C

ต�วอัย"าง

#include <stdio.h>

#include <conio.h>

void main()

{

clrscr();

int integer1, integer2, sum;

printf( "Enter first integer : " );

scanf( "%d", &integer1 );

printf( "Enter second integer : " );

scanf( "%d", &integer2 );

sum = integer1 + integer2;

printf( "Sum is %d\n", sum );

}

Page 33: Component of C

ex2.cpp

ให�เข0ยนโปัรแกรมคื&านวิณหาพิ!.นทั0%, แลัะ คืวิามยาวิเส�นรอบ่วิงของวิงกลัม แลัะแสดง

ผลัลั�พิธ3ทั0%ได�จัากการคื&านวิณออกทัางหน�าจัอ ใหั�ใชุ�ค"าขอัง pi = 3.14159

Page 34: Component of C

ex3.cpp

ในการแป็ลงค"าอั�ณ์หัภ&ม�ระหัว"าง อังศาเซีลเซี�ยส ก�บ อังศาฟัาเรนไฮต5 สามารถึหัาได�จำากส&ตรว"า

C = ( 5 / 9 ) * ( F – 32 )

เม �อั C ค อัอั�ณ์หัภ&ม�ม�หัน"วยเป็+นอังศาเซีลเซี�ยสF ค อัอั�ณ์หัภ&ม�ม�หัน"วยเป็+นอังศาฟัาเรนไฮต5

จังเข0ยนโปัรแกรมเพิ!%อร�บ่ข�อม�ลัอ5ณหภู�ม�จัากผ��ใช� โดย ม0หน�วิยเปั�นองศาฟาเรนไฮตั3 แลั�วิแปัลังเปั�นองศา

เซลัเซ0ยส แลัะแสดงผลัลั�พิธ3ทั0%ได�ออกทัางหน�าจัอ