ค้นหาบล็อกนี้


21 มิถุนายน 2554

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



Objective (จุดประสงค์)
                    - เข้าใจรูปแบบคำสั่งที่ใช้ในภาษา C
          - เข้าใจวิธีการดำเนินการ
                    - เข้าใจวิธีการวนรอบ
                    - สามารถสร้างโปรแกรมที่เกี่ยวข้องกับการจัดการหน่วยความจำ
          - สามารถสร้างฟังก์ชันและการกำหนดเงื่อนไขต่างๆ

คำสั่งพื้นฐานต่างๆ
                คำสั่งพื้นฐานต่างๆ เช่น printf, scanf
                                printf เช่น             printf(“abc”);
                                                         printf(“%s”,”abc”);
                                scanf เช่น             scanf(“%d”,&x);
                Format Code ใช้ในการแสดงผลที่นิยมใช้ ได้แก่
                                                     %d          -decimal integer
                                %c          -character
                                %f           -floating point number
                                %s          -string

Operator  (ตัวดำเนินการ)
                เครื่องหมายดำเนินการ (Operator) แบ่งออกเป็น 3 ชนิด คือ
1.       Arithmetic Operators ได้แก่ +, -, *, /, %, --, ++
2.       Relational and Equality Operators ได้แก่ <, >, <=, >=, ==, !=
3.       Logical Operators ได้แก่ !, &&, ||

Expression (นิพจน์)
                หมายถึง การนำตัวแปรค่าคงที่มาสัมพันธ์กัน โดยใช้เครื่องหมายอย่างใดอย่างหนึ่ง เช่น
                                                X + 1
                             A * b / c
                นิพจน์จะทำงานจากซ้ายไปขวาตามลำดับการทำงานของเครื่องหมาย
1.       วงเล็บ ( )
2.       !,  ++,  --
3.       *,  /,  %
4.       +,  -
5.       <,  <=,  >,  >=
6.       ==, !=
7.       &&
8.       ||
Selection (ทางเลือก) / Condition (ลักษณะ)
                           - if statement
                - if – else statement
                - if – else statement (Nested if)
                - switch statement

                                if statement
                                                Format:
                                                                if (expression)
                                                                         statement;
                                                Example:
                                                                if (score >= 80)
                                                                         printf(“YOUR grade is A \n”);

                                if – else statement
                                                Format:
                                                                if  (expression)
                                                                         statement-1;
                                                                else
                                                                         statement-2;

                                if – else statement (Nested if)
                                                Format:
                                                                if (expression-1)
                                                                         statement-1;
                                                                else if (expression-2)
                                                                         statement-2;
                                                                else
                                                                         statement-3;

                                switch statement
                                                Format:
                                                                switch (expression) {
                                                                         case const- expression-1;
                                                                                    statement-1;
                                                                                    break;
                                                                         case const- expression-2;
                                                                                    statement-2;
                                                                                    break;
                                                                         [ default: statement- default; ]
                                                                }

Repetition / Loop (การทำซ้ำ)

while statement

                Format:
                                while (expression) {
                                         statement-1;
                                         statement-2;
                                                   
                                         statement-n;
                                }

for statement

                Format:
                                for (expression-1; expression-2; expression-3) {
                                         statement-1;
                                         statement-2;
                                                      
                                         statement-n;
                                }

do – while statement

                Format:
                                do {
                                        statement-1;
                                         statement-2;
                                                      
                                         statement-n;
                                } while (expression);

Function (ฟังก์ชัน)

ข้อดี
-                     -เขียน Code ครั้งเดียว แต่สามารถเรียกใช้ได้หลายครั้ง
-                     -นำกลับมาใช้ใหม่ ในโปรแกรมอื่นได้
-                     -การแก้ไขจะแก้ไขเพียงที่เดียว
-                     -โปรแกรมมีความเป็นโครงสร้าง
-                     -แบ่งเป็นโมดูลย่อยๆ ได้

Function (ฟังก์ชัน) แบ่งเป็น 2 ประเภท คือ

1.   Library Function เป็นโปรแกรมที่ผู้ผลิตโปรแกรมภาษาซี เป็นผู้เขียนขึ้น ไลบรารี่ฟังก์ชั่นจะติดมากับตัวโปรแกรมภาษาซีสามารถเรียกใช้โดย ใช้คำสั่ง #include 

Format:
        #inciude <file-name>


วิธีเรียกใช้งาน 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(s);

tolower( ) อยู่ในแฟ้มข้อมูล ctype.h
ทำหน้าที่: เปลี่ยนตัวอักษรจากตัวใหญ่เป็นเล็ก
                        Format:
                                        tolower(ch);

toupper( ) อยู่ในแฟ้มข้อมูล ctype.h
ทำหน้าที่: เปลี่ยนตัวอักษรจากตัวเล็กเป็นใหญ่
                        Format:
                                        toupper(ch);

getchar( ) อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่: รับอักขระทางแป้นพิมพ์ทีละ 1 ตัว ต้องกด Enter เมื่อสิ้นสุดข้อมูล และข้อมูลจะปรากฏบนจอภาพด้วย
                                Format:
                                                getchar( );

getch( ) อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่: รับอักขระทางแป้นพิมพ์ทีละ 1 ตัว เมื่อป้อนข้อมูลเสร็จไม่ต้องกด Enter และจะไม่ปรากฎบนจอภาพ
                                Format:
                                                getch( );

gets( ) อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่: รับข้อมูลที่เป็นข้อความจากแป้นพิมพ์เก็บไว้ในตัวแปรชุด
                                Format:
                                                get( );

putchar( ) อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่: แสดงผลบนจอภาพ ทีละ 1 ตัวอักขระ
                                Format:
                                                putchar( );

put( ) อยู่ในแฟ้มข้อมูล stdio.h
ทำหน้าที่: แสดงผลเป็นข้อความที่เก็บไว้ในตัวแปรชุด
                                Format:
                                                puts( );

2.   User Defined Function คือ ฟังก์ชันที่ผู้เขียนโปรแกรมสามารถเขียนฟังก์ชันขึ้นมาใช้เอง โดยฟังก์ชันนี้อาจจะรวมอยู่กับโปรแกรมหลักเป็นแฟ้มเดียวกัน หรือแยกไว้คนละแฟ้มก็ได้

การสร้างฟังก์ชัน ประกอบด้วย

-                     Function Definition (นิยามฟังก์ชัน)
คือ รายละเอียดในการทำงานของฟังก์ชัน

-                     Function Prototype (ต้นแบบฟังก์ชัน)
เป็นตัวบอกให้ Compiler ทราบว่ามีการประกาศฟังก์ชันขึ้นและฟังก์ชันนั้นมีค่าที่ส่งกลับเป็นอะไร มีการรับพารามิเตอร์อะไรบ้าง มีประโยชน์ในการตรวจสอบข้อผิดพลาดระหว่างการเรียกใช้ฟังก์ชัน  เราจะเขียน Function Prototype ไว้ที่ต้นโปรแกรม

-                     Invocation (การร้องขอ)
คือ การเรียกใช้ฟังก์ชัน มีลักษณะดังนี้
1.   ฟังก์ชันที่ไม่มีการเรียกค่ากลับ  การเรียกใช้ทำได้โดยอ้างถึงชื่อฟังก์ชัน
2.   ฟังก์ชันที่มีการส่งค่ากลับ  การเรียกใช้ทำได้เหมือนแบบแรก แต่ต้องมีตัวแปรมารับค่าที่จะส่งกลับมาด้วย
3.   ฟังก์ชันที่มีการรับค่า argument  การเรียกใช้ฟังก์ชัน ทำได้โดยอ้างถึงชื่อของฟังก์ชันพร้อมทั้งส่งค่าของตัวแปรไปด้วย โดยจะต้องมีชนิดสอดคล้องกับ argument ของฟังก์ชันที่เรียกใช้  การผ่านค่า argument ทำได้ 2 แบบ คือ
3.1       Pass by Value คือการส่งค่าไปยังฟังก์ชันที่ถูกเรียกใช้โดยส่งค่าของตัวแปรหรือค่าคงที่ไปโดยตรง ค่าของอาร์กิวเมนต์ที่ผ่านให้กับฟังก์ชันจะถูกคัดลอกส่งไปให้กับฟังก์ชัน และจะถูกเปลี่ยนแปลงเฉพาะภายในฟังก์ชัน โดยค่าของอาร์กิวเมนต์ในโปรแกรมที่เรียกใช้จะไม่เปลี่ยนแปลง
3.2       Pass by Reference คือการส่งค่าไปยังฟังก์ชันที่ถูกเรียกใช้โดยส่งเป็นค่าตำแหน่งที่อยู่ของตัวแปรไป ซึ่งหากภายในฟังก์ชันมีการเปลี่ยนแปลงค่าของอาร์กิวเมนต์ที่ส่งไป ก็จะมีผลทำให้ค่าของอาร์กิวเมนต์นั้นในโปรแกรมที่เรียกใช้เปลี่ยนไปด้วย การผ่านอาร์กิวเมนต์แบบนี้ ทำได้ ดังนี้
·        ต้องกำหนดอาร์กิวเมนต์ของฟังก์ชันเป็น pointer (*)
·        การเรียกใช้จะผ่าน address เป็น argument (&)
·        ภายในฟังก์ชัน การเรียกใช้ format argument เวลาใช้งานจะใช้ dereferencing operator (*)

**********บทที่ 2 จบแล้วจ่ะ**********

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

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