วันพฤหัสบดีที่ 23 มิถุนายน พ.ศ. 2554

บทที่ 2 ทบทวนภาษา C (Review C Language

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 ชนิด คือ
  • Arithmetic Operators ได้แก่  +, - , *, /, % , -- , ++
  • Relational and Equality Operators ได้แก่ < , > , <= , >= , == , !=
  •    - Logical Operators ได้แก่ ! , && , ||
3. ทางเลือก/ลักษณะ [Selection/Condition] มีทั้งหมด 4 ทางเลือกหรือลักษณะ ได้แก่
3.1.  If Statement คือ เป็นคำสั่งที่ใช้เพื่อการตัดสินใจเลือกทำงานอย่างใดอย่างหนึ่ง โดยอาศัยการทดสอบเงื่อนไขบางประการ รูปแบบ : "... if (เงื่อนไข) คำสั่ง ; ..." 3.2. if-else statement คือ ผลลัพธ์ที่ได้จะมีค่าจริงกับเท็จเท่านั้น รูปแบบ : "... if (เงื่อนไข)
                          { คำสั่งต่างๆ เมื่อเงื่อนไขเป็นจริง ; }
                          else
                          { คำสั่งต่างๆ เมื่อเงื่อนไขเป็นเท็จ ; } ..."
3.3. If-Else Statement (Nested If) คือ มีรูปแบบโดยที่เงื่อนไขซ้อนเงื่อนไขเช่นในกรณีเปรียบเทียบเงื่อนไขแรก (condition1) แล้วปรากฏว่าเป็นจริง โปรแกรมจะเลือกทำคำสั่งหลังอักขระ : แต่หลังอักขระ : มีเงื่อนไขที่สอง (condition2) ที่ต้องตรวจสอบ เช่นเดียวกันถ้าเงื่อนไขตัวแรกเปรียบเทียบกันแล้วปรากฏว่าได้ผลลัพธ์ออกมาเป็นเท็จ โปรแกรมจะเลือกทำคำสั่งหลัง else : แต่ต้องไปพบกับเงื่อนไขที่สาม (condition3) ที่ซ้อนอยู่อีกเช่นกัน
รูปแบบ :
"... if (เงื่อนไขที่1)
คำสั่งชุดที่1; (กรณีเงื่อนไขที่ 1 เป็นจริง)
                  else if (เงื่อนไขที่2)
คำสั่งชุดที่2; (กรณีเงื่อนไขที่ 2 เป็นจริง)
                  else
คำสั่งชุดที่3; ..."
3.4. Switch Statement คือ จะคล้ายกับคำสั่ง If แต่ว่าเงื่อนไขจะมีมากกว่า 2 เงื่อนไข คือตรวจสอบเงื่อนไข โดยดูจากค่าของตัวแปร โดยนำค่าจากตัวแปรที่อยู่ในคำสั่ง switch มาตรวจสอบกับค่าที่อยู่หลังคำสั่ง case แต่ละคำสั่ง ถ้าตรงกัน ก็จะทำงานตามคำสั่งใน case นั้น ถ้าไม่ตรงกับ case ไหนเลยจะมาทำงานในคำสั่ง default แทน
รูปแบบ :
".... switch ( ตัวแปร ) {
case ค่าที่ 1 : คำสั่งที่ 1 ;
break; 
case ค่าที่ 2 : คำสั่งที่ 2 ;
break;
default : คำสั่งที่ไม่ตรงกับค่าที่ 1 และ 2 ;
} .... "
ไม่รู้จบ
4. การทำซ้ำ(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 (นิพจน์ตรรกะ);

5. ฟังก์ชัน [Function]
ข้อดี คือ
          - เขียนโค้ดครั้งเดียว แต่สามารถเรียกใช้ได้หลายครั้ง
          - สามารถนำหลับมาใช้ใหม่ในโปรแกรมอื่นได้
          - ถ้าต้องการเปลี่ยนแปลงแก้ไขเพียงที่เดียว
          - ทำให้โปรแกรมมีความเป็นโครงสร้าง
          - สามารถแบ่งเป็นโมดูลย่อยๆได้
ฟังก์ชันแบ่งได้เป็น 2 ประเภท ได้แก่
5.1 ฟังก์ชันมาตรฐานหรือไลบรารีฟังก์ชัน [Library Function]  คือ ฟังก์ชันที่ใช้ในงานนี้ เป็นรูปแบบฟังก์ชันที่ต้องมีการส่งค่ากลับ ดังนั้นตัวแปรที่จะใช้งานต้องเป็นตัวเลข กลุ่มทศนิยม เช่น float, double เป็นต้น
รูปแบบ :                          ".... #include<file-name> ...."
ตัวอย่างเช่น :
                        "... #include<stdio.h>
                             #include<conio.h >                              etc.  ...." วิธีเรียกการใช้งาน Library Function                     - เรียกชื่อของฟังก์ชันที่ต้องการใช้งาน                     - เอาค่าที่จะส่งไปทำงานในฟังก์ชัน ใส่ลงในวงเล็บตามหลังชื่อฟังก์ชันนั้น แบบที่ 1 : ".... strcpy () ..."                    - อยู่ในแฟ้มข้อมูล string.h                   - ทำหน้าที่คัดลอกข้อมูลจาก string หนึ่งไปยัง string หนึ่ง รูปแบบ :
"... strcpy (str1, str2); ..."
แบบที่2 :
".... strcat() ..."
                  - อยู่ในแฟ้มข้อมูล string.h
                  - ทำหน้าที่ใช้เชื่อมต่อข้อความ 2 ข้อความเข้าด้วยกัน
รูปแบบ :
"... strcat (str1, str2); ..."
แบบที่ 3 :
".... strlen () ..."
                  - อยู่ในแฟ้มข้อมูล string.h
                  - ทำหน้าที่หาความยาวของข้อความ
รูปแบบ :
"... strlen (string); ..."
แบบที่ 4 :
".... getchar () ..."
                  - อยู่ในแฟ้มข้อมูล stdio.h
                  - ทำหน้าที่เป็นพังก์ชั่นรับข้อมูลเข้าทางคีย์บอร์ดครั้งละ 1 อักขระโดยต้องกด enter  และข้อมูลที่ป้อนเข้าจะปรากฏทางจอภาพ
รูปแบบ :
"... getchar (); ..."
แบบที่ 5 :
".... getch() ..."
                  - อยู่ในแฟ้มข้อมูล stdio.h
                  - ทำหน้าที่เป็นฟังก์ชั่นรับข้อมูลเข้าทางคีย์บอร์ดครั้งละ 1 อักขระ โดยไม่ต้องกด enter  และข้อมูลที่ป้อนเข้าจะไม่ปรากฏทางจอภาพ
รูปแบบ :
"... getch (); ..."
แบบที่ 6 :
".... gets() ..."
                  - อยู่ในแฟ้มข้อมูล stdio.h
                  - ทำหน้าที่เป็นฟังก์ชั่นรับข้อมูลที่เป็นข้อความจากแป้นพิมพ์ เข้ามาเก็บไว้ในตัวแปรชุด (อาร์เรย์)
รูปแบบ :
"... gets (); ..."
แบบที่ 7 :
".... putchar(); ..."
                  - อยู่ในแฟ้มข้อมูล stdio.h
                  - ทำหน้าที่เป็นฟังก์ชั่นให้แสดงผลทางจอภาพครั้งละ 1 อักขระ (อาร์เรย์)
รูปแบบ :
"... putchar (); ..." 5.2. การสร้างฟังก์ชันใช้เอง [User Defined Function] คือ เป็นฟังก์ชันที่ผู้เขียนโปรแกรมนิยามขึ้นใหม่ โดยอาจจะเขียนรวมไว้ในตัวโปรแกรมต้นฉบับเดียวกัน หรือเขียนแยกไว้ในไฟล์อื่น ซึ่งจะนำมาแปลร่วมโดยการใช้ Include Directives เช่นเดียวกับฟังก์ชันมาตรฐานการสร้าง Function ประกอบด้วย 5.2.1. Function Definition หรือนิยามฟังก์ชัน รายละเอียดในการทำงานของฟังก์ชัน คือ
รูปแบบ : "...     /* ………………….. */ heading comment                                  data-type function-name (type argument 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;
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น