400 likes | 729 Views
Component of C. อาจารย์ธนวรรณ กิริยะ. เนื้อหาที่สอน. ชุดอักขระ รหัสควบคุม ตัวแปร – การประกาศ, ชนิด, ขนาด, ขอบเขต, หลักการตั้งชื่อ, คำสงวน และการกำหนดค่าให้ตัวแปร ค่าคงที่ การแสดงผลข้อมูล การรับข้อมูล. ชุดอักขระในภาษาซี. แบ่งหมวดหมู่ของตัวอักขระออกเป็น 3 ชนิดหลักๆ คือ
E N D
Component of C อาจารย์ธนวรรณ กิริยะ
เนื้อหาที่สอน • ชุดอักขระ • รหัสควบคุม • ตัวแปร – การประกาศ, ชนิด, ขนาด, ขอบเขต, หลักการตั้งชื่อ, คำสงวน และการกำหนดค่าให้ตัวแปร • ค่าคงที่ • การแสดงผลข้อมูล • การรับข้อมูล Component of C
ชุดอักขระในภาษาซี • แบ่งหมวดหมู่ของตัวอักขระออกเป็น 3 ชนิดหลักๆ คือ • ตัวอักษร ตัวเลข และตัวอักขระ “ _ ” (underscore) • ตัวอักขระพิเศษอื่น (Special Characters) • ตัวดำเนินการ เครื่องหมายวรรคตอน ฯลฯ • ! " # % & ( ) ‘ * + , - . / : ; < = > ? [ \ ] ^ { | } ~ • ตัวอักขระไวท์สเปส (White Space) • ไม่สามารถมองเห็นด้วยตาใช้เป็นตัวแบ่งแยกเช่น ช่องว่าง, ขึ้นบรรทัดใหม่, ขึ้นหน้าใหม่ฯลฯ Component of C
รหัสควบคุม (Control code) • รหัสที่ใช้แทนอักขระพิเศษอื่น และอักขระ White Space • มักใช้ร่วมกับคำสั่งที่ใช้ในการรับและแสดงผลข้อมูล เช่น คำสั่ง printf , cprintf , scanf , cscanf ฯลฯ • มีอักขระแบคสแลช ( \ ) นำหน้าแล้วตามด้วยตัวอักษรหรือตัวเลข • แต่ละรหัสใช้เพื่อเป็นตัวแทนของอักขระ white space หรือรหัสพิเศษอื่นจำนวนหนึ่งอักขระ Component of C
รหัสควบคุมการพิมพ์ (format code) • เป็นตัวบอกให้พิมพ์เลขฐานสิบ • เครื่องหมาย % เรียกว่า format specification ได้แก่ Component of C
\t horizontal tab \n new line \r carriage return \b backspace \a bell \” (”) \0 (null character) \’ (') \? (?) \\ (\) ฯลฯ Component of C
ตัวแปร • ชื่อสำหรับอ้างอิงถึงพื้นที่ในหน่วยความจำ , ชื่อที่ใช้ในการอ้างถึงข้อมูล • ตัวแปรในภาษาซีมีหลายชนิดและหลายขนาด เพื่อให้เราสามารถเลือกใช้ชนิดของตัวแปรได้ตรงกับชนิดของข้อมูล Component of C
การประกาศตัวแปร (Variable Declaration) <Type> <variable-list> ; • Type :ชนิดของตัวแปร (ชนิดของข้อมูล) • variable-list :ชื่อของตัวแปรที่ประกาศ ถ้ามีมากกว่า หนึ่งตัวจะต้องใช้คอมม่า (,) เป็นตัวแยก • Ex. int a ; int lower,upper,step ; short int man,ratio; double point; char ch,c,name; float rate,ratio ; Component of C
ชนิดของข้อมูล (Data type) • ชนิดของข้อมูลพื้นฐานในภาษาซีมีหลายชนิดเช่น • char :ตัวอักษร • int :จำนวนเต็ม • unsigned int :จำนวนเต็มไม่มีเครื่องหมาย • long ,long int :จำนวนเต็ม ขนาดเป็น 2 เท่าของ int • float :จำนวนจริง • double : จำนวนจริง ขนาดเป็น 2 เท่าของ float • long double :จำนวนจริง มีขนาดยาวเป็นพิเศษ Component of C
ขนาดและขอบเขตของตัวแปร (Turbo C) Component of C
ขนาดและขอบเขตของตัวแปร (Turbo C) Component of C
หลักการตั้งชื่อตัวแปรหลักการตั้งชื่อตัวแปร • ตัวอักขระตัวแรกต้องเป็นตัวอักษรเท่านั้น ( underscore ‘_’ เป็นอักษรตัวหนึ่งแต่จะไม่นิยมใช้เป็นตัวแรก) • ตัวอักขระตัวถัดไปอาจตามด้วยตัวอักษร ตัวเลข หรือ ‘_’ • มีความยาวเท่าไหร่ก็ได้ แต่จะรับรู้แค่ 31 ตัวแรกเท่านั้น • ชื่อตัวแปรที่เป็นอักษรตัวเล็กล้วน ตัวอักษรตัวใหญ่ล้วน หรือตัวอักษรเล็กปนตัวอักษรใหญ่ จะถือว่าเป็นคนละ ตัวแปรกัน (Case sensitive) เช่น DATA, data, Data • ห้ามใช้คำสงวนมาเป็นชื่อ ยกเว้นแต่จะประกอบเป็นส่วนหนึ่งของชื่อ Component of C
คำสงวน • คำที่ภาษาซีสงวนไว้เพื่อเป็นคำสั่งพื้นฐานหรือเป็นสัญลักษณ์ในการประกาศค่าต่างๆ • ตัวแปรเช่น unsigned, short, int, long, float, double • คำสั่งพื้นฐาน เช่น void, return, for, goto, if, else, do, while, switch ฯลฯ • จุดสังเกต เมื่อเราพิมพ์คำสงวน standard turbo C จะแสดงเป็นตัวอักษรสีขาว Component of C
ตัวแปรที่ดี • นอกจากหลักการตั้งชื่อเบื้องต้นแล้ว สิ่งที่สำคัญอีกอย่างในการสร้างตัวแปรคือ • ตัวแปรควรเป็นชื่อที่สื่อความหมาย เช่น ตัวแปรที่ใช้เก็บค่าอุณหภูมิ อาจตั้งชื่อเป็น degC (degree in Celsius) , degF (degree in Fahrenheit) ฯลฯ • ตัวแปรควรมีชนิดข้อมูลที่เหมาะสม • ข้อมูลที่อาจมีจุดทศนิยม -> float , double ฯลฯ • ข้อมูลที่ไม่ต้องมีจุดทศนิยม -> int, long ฯลฯ Component of C
การกำหนดค่าให้กับตัวแปรการกำหนดค่าให้กับตัวแปร <var1>[=var2]….=<expression> var1, var2 :ชื่อตัวแปรที่จะถูกกำหนดค่า expression :นิพจน์ ซึ่งอาจเป็นตัวแปร ค่าคงที่ หรือเป็นการดำเนินการระหว่างตัวแปร =: ตัวดำเนินการให้นำค่านิพจน์ด้านขวาของตัวดำเนินการ “=” ไปกำหนดค่าให้กับตัวแปรด้านซ้ายของตัวดำเนินการ “=” Component of C
voidmain() { int val1, val2, val3; val1 = val2 = val3 = 1; } void main() { int begin; begin = 0; } voidmain() { char ch1, ch2; ch1 = ‘A’; ch2 = 65; } voidmain() { float temperature; temperature = 37.5; } Component of C
Ex2_1.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); } Component of C
Ex2_2.c • ประกาศตัวแปรแบบ float ขึ้นมา 3 ตัว ตั้งชื่อตัวแปรเป็นอะไรก็ได้ • กำหนดให้ตัวแปรตัวแรกมีค่าเท่ากับ 10.5 • กำหนดให้ตัวแปรตัวที่ 2 มีค่าเท่ากับ 5.8 • กำหนดให้ตัวแปรตัวที่ 3 มีค่าเท่ากับผลคูณของ 2 ตัวแปรแรก • พิมพ์ค่าที่จัดเก็บในตัวแปรทั้ง 3 ตัวออกทางหน้าจอ • ตัวแปรชนิด float ใช้ format เป็น %f Component of C
ค่าคงที่ (constant) • คือ ข้อมูลหรือค่าที่ไม่สามารถเปลี่ยนแปลงได้ แยกเป็น 2 ชนิด • ค่าคงที่ที่ใช้ในการคำนวณ • ค่าคงที่ที่ไม่ใช้ในการคำนวณ (string) Component of C
ค่าคงที่ที่ใช้ในการคำนวณค่าคงที่ที่ใช้ในการคำนวณ • ค่าคงที่จำนวนเต็ม (Integer Constants)ได้แก่ค่าคงที่ที่เป็นจำนวนเต็มไม่มีจุดทศนิยม เช่น 568, -96 , + 645 • ค่าคงที่ที่มีจุดทศนิยม (Floating-point Constants) • ค่าคงที่ที่มีจุดทศนิยมธรรมดา เช่น 20.65 , -35.02 , 000.24 • ค่าคงที่ที่มีจุดทศนิยมในรูปแบบวิทยาศาสตร์ (Science Notation ) เช่น 1E+04 , 1.5E-06 Component of C
ค่าคงที่ที่ใช้ในการคำนวณค่าคงที่ที่ใช้ในการคำนวณ • ค่าคงที่ที่เป็นอักขระ (Character Constants)ได้แก่ ค่าคงที่ที่เป็นตัวเลข หรือตัวอักษร หรืออักขระที่เป็นรหัสควบคุม มีขนาด 1 ไบต์ และเขียนอยู่ภายใต้อักขระ Apostrophe เช่น ‘A’ • ค่าคงที่ในระบบเลขฐานแปด (Octal constants)เช่น 0250 มีค่าเท่ากับ (250)8 • ค่าคงที่ในระบบเลขฐานสิบหก (Hexadecimal constants)เช่น 0x35F มีค่าเท่ากับ (35F)16 Component of C
ค่าคงที่ที่ไม่ใช้ในการคำนวณ (String constants) • ค่าคงที่ที่ไม่สามารถนำไปคำนวณได้ • อาจประกอบด้วย ตัวเลข ตัวอักษร หรืออักขระพิเศษอื่นที่ต้องเขียนภายใต้อักขระคำพูด • ตัวอักขระภายในเครื่องหมายคำพูดจะถูกบันทึกในหน่วยความจำต่อเนื่องกันไป เช่น “Hello”, “2”, “This is C programming” Component of C
สัญลักษณ์คงที่ (Symbolic constants) • ค่าคงที่บางค่าอาจถูกนำไปใช้บ่อยในโปรแกรม ซึ่งเราสามารถเขียนแทนค่าคงที่ค่านั้นด้วยสัญลักษณ์เพื่อช่วยในการสื่อความหมายได้ • ในการกำหนดสัญลักษณ์จะใช้คำสั่ง #define ซึ่งต้องประกาศอยู่นอกเหนือฟังก์ชัน main()#define PI 3.14159 #define MSG “Hello World” • PI และ MSG ไม่ใช่ตัวแปรและไม่สามารถเปลี่ยนแปลงค่าได้ Component of C
#include <stdio.h> #define MSG “Hello World” void main() { printf(“%s\n”,MSG); } #include <stdio.h> #define PI 3.14159 void main() { int area , r = 5; area = PI * r * r ; printf(“area = %d\n”,area); } Component of C
การแสดงผลข้อมูล • การแสดงผลข้อมูลออกทางจอภาพในภาษาซี ส่วนใหญ่จะเรียกใช้งานฟังก์ชัน printf (อยู่ใน stdio.h) • รูปแบบ printf (“format”, argument1, argument2, …); • format : รูปแบบการแสดงผลที่ถูกระบุเพื่อกำหนดรูปแบบของผลลัพธ์ที่ต้องการ ซึ่งจะประกอบด้วย • ข้อความที่ต้องการแสดงผลโดยตรง • format ของการพิมพ์ข้อมูล (อักษรที่มีเครื่องหมาย % นำหน้า) Component of C
argument: ข้อมูล ซึ่งอาจเป็นค่าคงที่ ตัวแปร หรือนิพจน์ที่ต้องการจะพิมพ์ค่า ซึ่งจะพิมพ์ตามรูปแบบที่กำหนดไว้ในส่วน format Ex. printf(“Hello World”); printf(“%d got score %d .\n”, ID, mark); printf(“The value of PI is %f\n”, pi); printf(“Dang is %d years old , and Dum is %d years old too.\n”,age,age); printf(“This computer cost %c%d”,‘$’, cost); Component of C
การกำหนด format ใน printf • โดยปกติ เราจะใช้ format ในการกำหนดลักษณะการแสดงผลของตัวแปร หรือนิพจน์ต่างๆ • ซึ่งต้องกำหนดให้ถูกกับชนิดของตัวแปรด้วย • int, unsigned int - กำหนด format เป็น %d, %o, %x • long - กำหนด format เป็น %ld, %lo, %lx, • float, double - กำหนด format เป็น %f, %e • char – กำหนด format เป็น %c Component of C
การกำหนด format ใน printf • ให้ทดลองพิมพ์โปรแกรมดังนี้ 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 ); } Component of C
การกำหนด format ใน printf %d : พิมพ์ int ด้วยตัวเลขฐานสิบ %o : พิมพ์ int ด้วยตัวเลขฐานแปด %x : พิมพ์ int ด้วยตัวเลขฐานสิบหก %ld , %lo , %lx : พิมพ์ long (รูปแบบตามหลังเหมือน int) %f : พิมพ์ float, double แบบจุดทศนิยม (หกตำแหน่ง) %e : พิมพ์ float, double แบบวิทยาศาสตร์ เช่น 1.23e+23 %c : พิมพ์ char %s : พิมพ์ข้อความเช่น “Hello” Component of C
คำสั่งเพิ่มเติมของการจัดรูปแบบการแสดงผลคำสั่งเพิ่มเติมของการจัดรูปแบบการแสดงผล • ใช้ร่วมกับ format ต่างๆ ที่นิยมใช้บ่อย คือ • เครื่องหมาย + • ใช้ร่วมกับการแสดงผลข้อมูลที่เป็นตัวเลข • พิมพ์เครื่องหมายบวกหน้าข้อมูลถ้าข้อมูลมีค่าเป็นบวก Ex. float w=15.2 , x=-13.3; printf (“w=%f x=%f\n” , w , x); printf (“w=%+f x=%+f\n” , w , x); Re. w=15.200000 x=-13.300000 w=+15.200000 x=-13.300000 Component of C
ตัวเลข • ใช้กำหนดจำนวนช่องที่ใช้ในการแสดงผล • ถ้าจำนวนข้อมูลมีน้อยกว่าช่อง จะแสดงผลโดยจัดชิดด้านขวา • ถ้าจำนวนข้อมูลมีมากกว่าช่อง จะแสดงผลโดยไม่สนใจจำนวนช่อง Ex. float w=15.2 ; printf (“%f|%5f|%9f|%10f|%12f|”,w,w,w,w,w); Re.15.200000|15.200000|15.200000| 15.200000| 15.200000| Component of C
จุดทศนิยมตามด้วยตัวเลข (.Number) • ใช้กำหนดจำนวนตัวเลขหลังจุดทศนิยมที่จะแสดงผลโดยจะแสดงตัวเลขหลังจุดทศนิยมเป็นจำนวนตำแหน่งเท่ากับ Number • นิยมใช้ตามหลังคำสั่งตัวเลข Ex.float w=32.5762 ; printf (“%f|%.f|%.2f|%7.2f|”,w,w,w,w); Re.32.576200|32|32.58| 32.58| Component of C
เครื่องหมาย - • ให้พิมพ์ข้อมูลชิดขอบซ้ายของฟิลด์ (ปกติข้อมูลจะชิดขวา) • มักใช้ร่วมกับคำสั่งจัดรูปแบบแสดงผลแบบอื่นๆ Ex.float w=32.5762 ; printf (“%f|%8.f|%+8.2f|\n”,w,w,w); printf (“%f|%-8.f|%-+8.2f|\n”,w,w,w); Re.32.576200| 32| +32.58| 32.576200|32 |+32.58 | Component of C
การรับข้อมูล • การรับข้อมูลจากคีย์บอร์ดในภาษาซีส่วนใหญ่จะเรียกใช้งานฟังก์ชัน scanf ซึ่งเป็นฟังก์ชันมาตรฐานที่บรรจุอยู่ใน header file ที่ชื่อ stdio.h เช่นเดียวกับฟังก์ชัน printf • รูปแบบ scanf (“format”, argument1, argument2, …); • format : รูปแบบของข้อมูล(argument)ที่ใช้รับข้อมูลที่ผู้ใช้ป้อนเข้ามา Component of C
argument: ตำแหน่ง (Address) ของตัวแปรที่ใช้รับข้อมูลที่ผู้ใช้ป้อนเข้ามา • สามารถระบุตำแหน่งของตัวแปรได้โดยการเพิ่มเครื่องหมาย & ไว้หน้าตัวแปรนั้น • ตัวแปรต้องเป็นชนิดเดียวกับที่กำหนดไว้ใน format Example int day , month ,year; char ch; scanf (“%d , %d , %d , %c ”, &day , &month , &year, &ch); Component of C
Ex2_3.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 ); } Component of C
Ex2_3.c • ให้เขียนโปรแกรมคำนวณหาพื้นที่, และความยาวเส้นรอบวงของวงกลม และแสดงผลลัพธ์ที่ได้จากการคำนวณออกทางหน้าจอ • กำหนดให้ผู้ใช้ใส่ข้อมูล รัศมีของวงกลม • ให้ใช้ค่าของ pi = 3.14159 Component of C
งานที่มอบหมาย • ให้แปลงค่าอุณหภูมิระหว่าง องศาเซลเซียส กับ องศาฟาเรนไฮต์ สามารถหาได้จากสูตรว่า C = ( 5 / 9 ) * ( F – 32 ) • เมื่อ C คืออุณหภูมิมีหน่วยเป็นองศาเซลเซียส F คืออุณหภูมิมีหน่วยเป็นองศาฟาเรนไฮต์ • จงเขียนโปรแกรมเพื่อรับข้อมูลปี ค.ศ.จากผู้ใช้ แล้วแปลงเป็นปี พ.ศ. และแสดงผลลัพธ์ที่ได้ออกทางหน้าจอ Component of C