- คำสั่งพื้นฐานต่างๆ
- ตัวดำเนินการ(Operator)
- Selection/Condition
- Function
1.คำสั่งพื้นฐานต่างๆ
-printf : ใช้แสดงผล ข้อความ ข้อมูลจากค่าคงที่ หรือตัวแปรที่จอภาพ
เช่น printf(“abc”);
printf(“%s”,”abc”);-scanf : ใช้รับข้อมูลจากแป้นพิมพ์ แล้วจัดเก็บลงในหน่วยความจำของข้อมูล
เช่น scanf(“%d”,&x);Format Code ใช้ในการแสดงผลที่นิยมใช้ ได้แก่
Format Code | ความหมาย |
%d | ใช้กับข้อมูลแบบ integer(เก็บข้อมูลแบบตัวเลขจำนวนเต็ม) |
%c | ใช้กับข้อมูลแบบ character(เก็บข้อมูลแบบอักขระ) |
%f | ใช้กับข้อมูลแบบ floating(เก็บข้อมูลแบบตัวเลขทศนิยม),double |
%s | ใช้กับข้อมูลแบบ string |
2.ตัวดำเนินการ(Operator)
แบ่งออกเป็น 3 ชนิด คือ
2.1 เครื่องหมายการคำนวณทางคณิตศาสตร์(Arithmetic Operation)
เครื่องหมาย | ความหมาย | ตัวอย่าง |
+ | บวก | 3+2 การบวกเลข 3 บวกกับ 2 ได้ผลลัพธ์คือ 5 |
- | ลบ | 3 - 2 การลบเลข 3 ลบกับ 2 ได้ผลลัพธ์คือ 1 |
* | คูณ | 2*3 การคูณเลข 3 บวกกับ 2 ได้ผลลัพธ์คือ 6 |
/ | หาร | 15/2 การหาร 15 หารกับ 2 ได้ผลลัพธ์คือ 7 |
% | หารเอาเศษ | 15%2การหารเอาเศษ 15 หารกับ 2 ได้ผลลัพธ์คือ 1 |
++ | เพิ่มค่าขึ้น 1 โดย a++ จะนำค่าของ a ไปใช้ก่อนแล้วจึงเพิ่มค่าของ a ขึ้น 1 ++a จะเพิ่มค่าของ a ขึ้น 1 ก่อนแล้วจึงนำค่าของ a ไปใช้ | b=a++; จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้ b=a; a=a+1; b=++a; จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้ a=a+1; b=a; |
-- | ลดค่า 1 โดย a-- จะนำค่าของ a ไปใช้ก่อน แล้วจึงลดค่าของ a ลง 1 --a จะลดค่าของ a ลง 1 ก่อน แล้วจึงนำค่าของ a ไปใช้ | ิb=a--; จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้ ิb=a; a=a-1; b=--a; จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้ a=a-1; b=a; |
2.2 ตัวดำเนินการเปรียบเทียบ(Relational and Equality Operators)
ใช้เปรียบเทียบค่า 2 ค่าเพื่อแสดงการเลือก ซึ่งโปรแกรมโดยทั่วไปใช้ในการทดสอบเงื่อนไขตามที่
กำหนด การเปรียบเทียบโดยการเท่ากันของ 2 ค่าจะใช้เครื่องหมาย ==
| เครื่องหมาย | ความหมาย | ตัวอย่าง |
> | มากกว่า | a > b a มากกว่า b |
>== | มากกว่าหรือเท่ากับ | a >= b a มากกว่าหรือเท่ากับ b |
< | น้อยกว่า | a < b a น้อยกว่า b |
<== | น้อยกว่าหรือเท่ากับ | a <= b a น้อยกว่าหรือเท่ากับ b |
== | เท่ากับ | a == b a เท่ากับ b |
!= | ไม่เท่ากับ | a != b a ไม่เท่ากับ b |
2.3 ตัวดำเนินการตรรกะ(Logical Operators) การดำเนินการเปรียบเทียบค่าทางตรรกะ( และ หรือ ไม่)
| เครื่องหมาย | ความหมาย | ตัวอย่าง |
&& | และ(AND) | x < 60 && x > 50 กำหนดให้ x มีค่าในช่วง 50 ถึง 60 |
|| | หรือ(OR) | x == 10 || x == 15 กำหนดให้ x มีค่าเท่ากับตัวเลข 2 ค่า คือ 10 หรือ 15 |
! | ไม่(NOT) | x = 10 !x กำหนดให้ x ไม่เท่ากับ 10 |
ลำดับความสำคัญของเครื่องหมาย
นิพจน์จะทำงานจากซ้ายไปขวา ส่วนใหญ่นิพจน์ที่เขียนขึ้นในโปรแกรมมักจะซับซ้อน มีการดำเนินการ
หลายอย่างปะปนอยู่ภายในนิพจน์เดียวกัน
| ลำดับความสำคัญ | ลำดับความสำคัญจากสูงไปต่ำ |
1 | ( ) |
2 | !,++,- - |
3 | *,/,% |
4 | +,- |
5 | <,<=,>,>= |
6 | = =,!= |
7 | && |
8 | || |
9 | *=,/=,%=,+=,-= |
2.3 ทางเลือก/ลักษณะ(selection/Condition)
- รูปแบบ 1: if statement
Format :
| if (เงื่อนไข) คำสั่ง; |
-รูปแบบ 2 : if-else statement
Format :
| if (เงื่อนไข) คำสั่งชุดที่ 1(กรณีเงื่อนไขเป็นจริง); else คำสั่งชุดที่ 2(กรณีเงื่อนไขเป็นจริง); |
-รูปแบบ 3: if-else statement (Nested if)
Format :
| If (เงื่อนไขประโยคที่ 1) คำสั่งชุดที่ 1 ; (กรณีเงื่อนไขประโยคที่ 1 เป็นจริง) else if (เงื่อนไขประโยคที่ 2) คำสั่งชุดที่ 2 ; (กรณีเงื่อนไขประโยคที่ 2 เป็นจริง) .......... else คำสั่งชุดที่ n ; (นอกเหนือจากเงื่อนไขประโยคข้างต้น) คำสั่งชุดถัดไป |
-รูปแบบ 4: switch statement
Format :
| switch (var / expression) { case ค่าที่ 1 : คำสั่งชุดที่ 1; break; case ค่าที่ 2 : คำสั่งชุดที่ 2; break; ……… case ค่าที่ n : คำสั่งชุดที่ n; break; default: คำสั่ง; } |
ข้อความจำ : เงื่อนไขที่ใช้กับคำสั่ง switch ต้อองเป็นคำสั่งแบบประโยคเงื่อนไขแบบ 1ประโยค ไม่สามารถใช้ประโยคเงื่อนไขแบบซ้อนได้ การทำงานของ switch จะต้องมีคำสั่ง break เพื่อออกจากการทำงานของ case นั้น โยไม่ต้องผ่าน case ถัดไป
3. การทำซ้ำ(Repetition/Loop)
-while statement
Format :
| while (เงื่อนไข) { statement-1; statement-2; …… statement-n; } |
-for statement
Format :
| for (ตัวแปร = ค่าเริ่มต้น ; นิพจน์ตรรกะ ; ค่าเพิ่มหรือค่าลด) { statement -1 ; statement -2 ; ….. statement -n ; } |
ข้อควรจำ : ตัวแปรที่ใช้งานในคำสั่ง for ต้องเป็นตัวแปรประเภทจำนวนเต็มเท่านั้น
-do-while statement
Format :
| do { statement -1 ; statement -2 ; ….. statement -n ; } while (นิพจน์ตรรกะ); |
ข้อควรจำ : ต้องตรวจสอบงานโปรแกรมว่าได้เขียนคำสั่งงาน เพื่อใช้แปรเปลี่ยนนิพจน์ให้เป็นเท็จหรือไม่อย่างไร มิฉะนั้นโปรแกรมอาจวนไม่รู้จบ
4.ฟังก์ชัน(Function)
ข้อดี
-เขียนโค้ดครั้งเดียว แต่สามารถเรียกใช้ได้หลายครั้ง
-สามารถนำหลับมาใช้ใหม่ในโปรแกรมอื่นได้
-ถ้าต้องการเปลี่ยนแปลงแก้ไขเพียงที่เดียว
-ทำให้โปรแกรมมีความเป็นโครงสร้าง
-สามารถแบ่งเป็นโมดูลย่อยๆได้
ฟังก์ชันแบ่งเป็น 2 ประเภท คือ
1. Library Function ฟังก์ชันมาตรฐานหรือไลบรารีฟังก์ชัน
ฟังก์ชันที่ใช้ในงานนี้ เป็นรูปแบบฟังก์ชันที่ต้องมีการส่งค่ากลับ ดังนั้นตัวแปรที่จะใช้งานต้องเป็นตัวเลข
กลุ่มทศนิยม เช่น float, double เป็นต้น
Format :
| #include<file-name> |
ตัวอย่าง
#include<stdio.h>
#include<conio.h >
etc.
วิธีเรียกใช้งาน Library Function
-เรียกชื่อของฟังก์ชันที่ต้องการใช้งาน
-เอาค่าที่จะส่งไปทำงานในฟังก์ชัน ใส่ลงในวงเล็บตามหลังชื่อฟังก์ชันนั้น
ตัวอย่าง Library Function
strcpy () –อยู่ในแฟ้มข้อมูล string.h
ทำหน้าที่ : คัดลอกข้อมูลจาก string หนึ่งไปยัง string หนึ่ง
Format :
| strcpy (str1, str2); |
strcat () -อยู่ในแฟ้มข้อมูล string.h
ทำหน้าที่ : ใช้เชื่อมต่อข้อความ 2 ข้อความเข้าด้วยกัน
Format :
| strcat (str1, str2); |
strlen () -อยู่ในแฟ้มข้อมูล string.h
ทำหน้าที่ : หาความยาวของข้อความ
Format :
| strlen (string); |
getchar () –อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่ : เป็นพังก์ชั่นรับข้อมูลเข้าทางคีย์บอร์ดครั้งละ 1 อักขระโดยต้องกด enter และข้อมูลที่ป้อน
เข้าจะปรากฏทางจอภาพ
Format :
| getchar (); |
getch() –อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่ : เป็นฟังก์ชั่นรับข้อมูลเข้าทางคีย์บอร์ดครั้งละ 1 อักขระ โดยไม่ต้องกด enter และข้อมูลที่
ป้อนเข้าจะไม่ปรากฏทางจอภาพ
Format :
| getch (); |
gets( ) -อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่ : เป็นฟังก์ชั่นรับข้อมูลที่เป็นข้อความจากแป้นพิมพ์ เข้ามาเก็บไว้ในตัวแปรชุด (อาร์เรย์)
Format :
| gets (); |
putchar(); -อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่ : เป็นฟังก์ชั่นให้แสดงผลทางจอภาพครั้งละ 1 อักขระ
Format :
| putchar (); |
2.การสร้างฟังก์ชันใช้เอง (User defined function)
เป็นฟังก์ชันที่ผู้เขียนโปรแกรมนิยามขึ้นใหม่ โดยอาจจะเขียนรวมไว้ในตัวโปรแกรมต้นฉบับเดียวกัน หรือ
เขียนแยกไว้ในไฟล์อื่น ซึ่งจะนำมาแปลร่วมโดยการ
ใช้ Include Directives เช่นเดียวกับฟังก์ชันมาตรฐานการสร้าง Function ประกอบด้วย
- Function Definition หรือนิยามฟังก์ชัน คือ รายละเอียดในการทำงานของฟังก์ชัน
Format :
data-type function-name(type argument ) { declaration; statement; return(value); } |
- Function Prototype คือ การประกาศฟังก์ชันโดยระบุทั้งชนิดของ function และ arguments ทั้งหมด เพื่อ
ให้ compiler มีการตรวจสอบการเรียกใช้ชนิดของ arguments ให้ถูกต้องในขั้นตอนของการ compile ถ้า
หากว่ามีการเรียกใช้ arguments ที่ไม่ถูกต้องก็จะมี message แจ้งตอนcompile ทำให้ไม่ผิด
พลาดในการเรียกใช้ฟังก์ชัน
-Invocation คือการเรียกใช้ฟังก์ชันลักษณะของฟังก์ชัน
-ฟังก์ชันที่ไม่มีการส่งค่ากลับ การเรียกใช้ทำได้โดยอ้างถึงชื่อฟังก์ชัน
...........
Print_banner () ;
-ฟังก์ชันที่มีการส่งค่ากลับ การเรียกใช้ทำได้เหมือนแบบแรก แต่ต้องมีตัวแปรมารับค่าด้วย
การเรียกใช้ทำได้โดย
int main(void) {
int k, j;
j = prompt ();
k = prompt ();
printf(“j = %d and k = %d”, j, k);-ฟังก์ชันที่มีการรับค่า argument
การเรียกใช้ฟังก์ชันทำได้โดยอ้างถึงชื่อของฟังก์ชันพร้อมทั้งส่งค่าของตัวแปร(parameter)ไปด้วย โดยจะ
ต้องมีชนิดสอดคล้องกับ argument ของฟังก์ชัน ที่เรียกใช้
การผ่านค่า argument ให้ฟังก์ชัน ทำได้ 2 แบบ คือ
1) Pass by Value คือ การส่งค่าไปยังฟังก์ชันที่ถูกเรียกใช้โดยส่งค่าของตัวแปรหรือค่าที่ส่งไปโดยค่าคง
ที่ผ่านให้กับค่าฟังก์ชันจะถูกคัดลอกส่งให้กับ ฟังก์ชันและจะถูกเลี่ยนแปลงเฉพาะภายในฟังก์ชัน โดยค่า
ของ argumentในโปรแกรมที่เรียกใช้จะไม่เปลี่ยนแปลง
ตัวอย่าง :
void swap(int num1, int num2) {
int tmp;
tmp = num1;
num1 = num2;
num2 = tmp;
print(“A is %d B is %d\n”, num1, num2);
}2) Pass by Reference คือ การส่งค่าไปยังฟังก์ชันที่ถูกเรียกใช้โดยส่งเป็นตำแหน่งที่อยู่ของตัวแปรไป
ซึ่งหากภายในฟังก์ชันมีการเปลี่ยนแปลงค่าของ argument ที่ส่งไป ก็จะมีผลทำให้ค่าของ argument นั้นใน
โปรแกรมที่เรียกใช้เปลี่ยนไปด้วย
ตัวอย่าง :
void swap(int * num1, int * num2) {
int tmp;
tmp = *num1;
*num1 =* num2;
*num2 = tmp;
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น