15
0 วิชา การพัฒนาโปรแกรม (ภาษาซี) รหัสวิชา ว31293 หน่วยการเรียนรู้ที1 ความรู้เบื้องต้นเกี่ยวกับภาษาซี ผลการเรียนรู สามารถอธิบายประวัติความเป็นมา ลักษณะการทางานภาษาซี และทาการติดตั ้งโปรแกรม เพื่อการใช้งานต่อไปได้ จุดประสงค์การเรียนรู 1. บอกประวัติความเป็นมา และลักษณะของภาษา C ได้ 2. สามารถค้นหาและดาวน์โหลดโปรแกรมภาษา C ได้ 3. สามารถใช้งานโปรแกรมภาษา C ได้ สาระการเรียนรู 1. กาเนิดภาษาซี 2. คุณสมบัติที่โดดเด่นของภาษาซี 3. โครงสร้างภาษาซี 4. โปรแกรม Dev C++

วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

0

วชา การพฒนาโปรแกรม (ภาษาซ) รหสวชา ว31293

หนวยการเรยนรท 1 ความรเบองตนเกยวกบภาษาซ

ผลการเรยนร

สามารถอธบายประวตความเปนมา ลกษณะการท างานภาษาซ และท าการตดตงโปรแกรมเพอการใชงานตอไปได

จดประสงคการเรยนร

1. บอกประวตความเปนมา และลกษณะของภาษา C ได 2. สามารถคนหาและดาวนโหลดโปรแกรมภาษา C ได 3. สามารถใชงานโปรแกรมภาษา C ได

สาระการเรยนร 1. ก าเนดภาษาซ 2. คณสมบตทโดดเดนของภาษาซ 3. โครงสรางภาษาซ 4. โปรแกรม Dev – C++

Page 2: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

1

ใบความรท 1 เรอง เรมตนกบภาษาซ

จดท าโดย นางพรพนารตน ชมภนช

ก าเนดภาษาซ

ภาษา C เปนภาษาคอมพวเตอรทถกคนคดขนโดย Denis Ritchie ในป ค.ศ. 1972 โดยใชระบบปฏบตการของยนกซ (UNIX) นบจากนนมากไดรบความนยมเพมขนจนถงปจจบน ภาษา C สามารถตดตอในระดบฮารดแวรไดดกวาภาษาระดบสงอน ๆ ภาษา C เปนภาษาคอมพวเตอรทแปลภาษาดวยคอมไพลเลอร (Compiler) ท าหนาทในการคอมไพล (Compile) หรอแปลงค าสงทงหมดในโปรแกรมใหเปนภาษาเครอง (Machine Language) เพอใหเครองคอมพวเตอรน าค าสงเหลานนไปท างานตอไป

ภาษา C เปนภาษาทมความใกลเคยงกบภาษาระดบต า (Low-Level Language) จงท าใหนกพฒนาโปรแกรมสามารถทจะก าหนดรายละเอยดของโปรแกรมใหเขาถงการท างานในสวน ตาง ๆ ของคอมพวเตอรใหมากทสดเพอใหเกดความเรวในการท างานสงสด และในขณะเดยวกนภาษา C กยงมความเปนภาษาระดบสง (High-Level Language) ท าใหผพฒนาสามารถทจะพฒนาโปรแกรมไดโดยเนนไปทการแกปญหาทตองการไดอยางอสระโดยไมตองค านงถงฮารดแวรใด ๆ

ภาษาซเปนภาษาโปรแกรมคอมพวเตอรทไดรบความนยมและมการพฒนาอยางตอเนอง ตอมา Mr. Bjarne Stroustrup นกวจยและพฒนาของศนยวจยเบล (Bell Laboratiories) ไดพฒนาภาษา C++ (ซพลสพลส) ขนมา โดยทภาษา C++ มความสามารถในการท างานไดทกอยางเหมอนกบภาษาซ ซงมรปแบบและโครงสรางของภาษาใกลเคยงกน แตภาษา C++ ใชหลกการออกแบบโปรแกรมเชงวตถ (Object Oriented Design) ในขณะทภาษาซใชหลกการออกแบบโปรแกรมแบบโมดลาร (Modular Design)

คณสมบตทโดดเดนของภาษาซ ภาษาซเปนภาษาทโดดเดนกวาภาษาระดบสงทวไปในหลาย ๆ ดานดวยกน ซงประกอบดวย

1. เปนภาษาทไมขนกบฮารดแวรและระบบปฏบตการ 2. เปนภาษาทมความยดหยนสงมาก 3. มประสทธภาพสง เมอเปรยบเทยบกบภาษาระดบสงอน ๆ จะเหนวาชดค าสงมความ

กะทดรด และกระชบ รวมถงประมวลผลไดอยางรวดเรว

Page 3: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

2

4. มความสามารถในดานการโปรแกรมโมดล คอสามารถแบงโมดลเพอแยกคอมไพลได และสามารถท าการลงคเชอมโยงภาษาเขาดวยกนได

5. มตวแปรชนดพอยเตอร ทสามารถเขาถงหรอชไปยงต าแหนงทอยของหนวยความจ าทจดเกบขอมลโดยตรง

6. ภาษาซมองตวอกษรพมพเลกและพมพใหญแตกตางกน (Case Sensitive)

โครงสรางภาษาซ ภายในโปรแกรมภาษา C จะแบงออกเปน 5 สวน ดงน

1. สวนหวของโปรแกรม (Preprocessor Directive) 2. สวนของการก าหนดคาภายนอก (Global Declarations) 3. สวนของฟงกชนหลก (The main function) 4. สวนของฟงกชนยอยทผใชสรางขนเอง (User-define function) 5. สวนอธบายโปรแกรม (Program Comment)

1. สวนหวของโปรแกรม สวนหวของโปรแกรมน เรยกวา พรโพรเซสเซอรไดเรกทฟ (Preprocessor Directives) เปนค าสง เรมตนในการก าหนดไฟลทจะน ามารวมประมวลผลหรอ ทเรยกวา เฮดเดอรไฟล (Header File) เพอเปนการก าหนดคาเรมตนใหกบโปรแกรม Compiler โดยเรมตนดวยการใชเครองหมาย ไดเรกทฟ (Directive ) นนกคอเครองหมาย # ตามดวยค าสง include และชอของเฮดเดอรไฟล แตไมตองลงทายดวยเครองหมาย ; ซงเปนไฟลทเกบไลบรารมาตรฐานของภาษา C ซงจะถกดงเขามารวมกบโปรแกรมในขณะทก าลงท าการคอมไพล เหมอนค าสงอนทวไป ค าสงพรโพรเซสเซอรไดเรกทฟ ทใช ในการประกาศ เฮดเดอรไฟลทสวนใหญใชกนทวไปคอ ค าสง #include โดยมรปแบบการใชค าสงดงน

รปแบบท 1 #include <ชอเฮดเดอรไฟล>

รปแบบท 2 #include “ชอเฮดเดอรไฟล” ตวอยาง #include <stdio.h> #include “stdio.h”

Page 4: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

3

2. การประการตวแปรภายนอก (Global Variables)

เปนสวนทใชประกาศตวแปรหรอคาตาง ๆ ทใหใชไดทงโปรแกรม ซงใชไดทงโปรแกรม ซงในสวนไมจ าเปนตองมกได

3. สวนฟงกชนหลก

เปนสวนทผใชตองเขยนขนเองโดยน าเอาค าสงหรอฟงกชนมาตรฐานตาง ๆ มาเรยบเรยงกนขนเปนโปรแกรม เพอสงใหคอมพวเตอรรบขอมลจากอปกรณอนพตประมวลผลแลวกใหผลลพธตามทเราตองการ สวนมาจะเขยนขนตนดวย main() ซงหมายถงการเรยกใชฟงกชน main() นนเอง และตามดวยโปรแกรมหลกทประกอบดวยค าสงตาง ๆ ภายในเครองหมายวงเลบปกกา { } ซงภายในนจะประกอบดวยสวนตาง ๆ ดงน

3.1 สวนตวแปรแบบภายใน (Local Variables)

เปนสวนทใชส าหรบประกาศตวแปรทจะใชในเฉพาะฟงกชนของตนเอง ฟงกชนอนไมสามารถเขาถงหรอใชได ซงจะตองท าการประกาศตวแปรกอนการใชงานเสมอ และจะตองประกาศไวในสวนนเทานน

3.2 ตวโปรแกรม (Statements)

เปนสวนทอยถดลงมาจากสวนตวแปรภายใน ซงประกอบไปดวยค าสงตาง ๆ ของภาษา C และค าสงตาง ๆ จะใชเครองหมาย ; เพอเปนการบอกใหรวาจบค าสงหนง ๆ แลว สวนใหญ ค าสงตาง ๆ ของภาษา C เขยนดวยตวพมพเลก เนองจากภาษา C จะแยกความแตกตางของตวพมพเลกและพมพใหญหรอ Case Sensitive นนเอง นอกจากนภาษา C ยงไมสนใจกบการขนบรรทดใหม เพราะฉะนนพมพค าสงหลายค าสงในบรรทดเดยวกนได โดยไมมเครองหมาย ; เปนตวจบค าสง

3.3 สวนค าอธบายโปรแกรม (Comment Lines)

สวนนใชในการอธบายโปรแกรมอาจพมพขอความ สตรหรอ อน ๆ ทเกยวของกบโปรแกรม สวนของโปรแกรมสวนนจะมหรอไมมกได ถาตองเขยนใหเรมตนดวยเครองหมาย /* ตามดวยขอความทตองการ แลวปดทายดวย */(เครองหมาย / และ * ตองเขยนตดกนสอ)

Page 5: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

4

4. สวนของฟงกชนยอยทผใชสรางขนเอง (User-define function)

เปนการเขยนค าสงและฟงกชนตาง ๆ ขนมาใชในโปรแกรม โดยตองอยในเครองหมาย { }และการสรางฟงกชนหรอค าใหมทใหการท างานตามทเราตองการใหกบโปรแกรมและสามารถเรยกใชได ภายในโปรแกรม

#include <stdio.h>

main( ) { Function ( ); }

Function ( ) { Return ( ); }

รปแสดง โครงสรางการเขยนโปรแกรมแบบม สวนของฟงกชนยอยทผใชสรางขนเอง (User-define function)

5. สวนอธบายโปรแกรม (Program Comment)

เปนสวนทใชส าหรบแสดงขอความ เพออธบายสงทตองการในโปรแกรม ซงจะใชเครองหมาย /*และ */ ปดหวและปดทายของขอความทตองการ หรอหากตองการเขยนค าอธบายเพยงบรรทดเดยวใหใชเครองหมาย // ก ากบไวขางหนาบรรทดนน เมอมการคอมไฟลโปรแกรม ขอความในสวนนจะถกมองขามไป

รปแบบท 1 ใชก ากบการอธบายเพยงบรรทดเดยว

// ขอความอธบายโปรแกรมหรอค าสงทตองการละเวนจาการตรวจสอบ

รปแบบท 2 ใชก ากบการอธบายหลายบรรทด

/* ขอความอธบายโปรแกรมหรอค าสงทตองการละเวนจาการตรวจสอบ … … */

สวนของพรโพรเซสเซอร ไดเรกทฟ

สวนของฟงกชนหลก (Global Declarations)

สวนของฟงกชนยอยทผใชสรางขนเอง

(User-define function)

Page 6: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

5

ศกษาสงเกต

กฎเกณฑทตองรในการเรมตนฝกหดเขยนโปรแกรมภาษาซ 1. ทสวนหวโปรแกรม จะตองก าหนดตวประมวลผลกอนเสมอ 2. ชดค าสงในภาษาซ จะใชอกษรพมพเลกทงหมด 3. ตวแปรทใชงาน ตองถกประกาศชนดขอมลไวเสมอ 4. ภายในโปรแกรม จะตองมอยางนอย 1 ฟงกชนเสมอ ซงกคอ ฟงกชน main( ) นนเอง

โปรแกรม Dev-C++

1. แนะน าโปรแกรม Dev-C++

การเขยนโปรแกรมคอมพวเตอรภาษาตาง ๆ ปกตเขยนค าสงตาง ๆ ดวยโปรแกรมทเรยกวา editor ซงอาจใชโปรแกรมพวก word Processor เขยนโดยไมใชรปแบบพเศษตาง ๆ หรอใชโปรแกรมทมรปแบบพเศษนอย ๆ เชน notepad เขยน แลวเปลยนภาษาทเขยนน นเปนภาษาเครองโดยใช compiler ของภาษาคอมพวเตอรทใช เชนคอมไพลเลอรของภาษาซ ซงกมผผลตหลายราย ซงตองเปนไปตามมาตรฐาน ANSI C และมรายละเอยดเพมเตมแตกตางกนไป

รปภาพ แสดงตวอยางหนาจอโปรแกรม Turbo C

2. วธการตดตงโปรแกรม Dev-C++

เวบไซตท ม โปรแกรม Dev-C++ ไวส าหรบการดาวนโหลดเพอท าการตดต ง คอ www.bloodshed.net สามารถดาวนโหลดโปรแกรม Dev-C++ ในเวอรชนตาง ๆ ได และในขนตอนการตดตงโปรแกรม Dev-C++ เวอรชน 4.9 มขนตอนดงตอไปน

1) เมอเปดโฟลเดอรโปรแกรม Dev-C++ ใหท าการดบเบลคลกทไอคอนดงรป

Page 7: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

6

2) จะปรากฏหนาตางแสดงสถานการณตดตงโปรแกรม แลวท าการคลกทป ม OK ดงรป

3) จะปรากฏหนาตางการตดตง ในการเลอกภาษาทตองการ ในทนคอ English แลวท าการคลกทป ม OK ดงรป

4) จะปรากฏหนาตางแสดงเงอนไขของการตดตง ถายอมรบเพอท าการตดตง คลกทป ม I Agree ดงรป

5) จะปรากฏหนาตางใหเลอก Components ในการท างานของโปรแกรม ถาตองการตดตง Components ทงหมด กคลกทป ม Next ดงรป

Page 8: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

7

6) จะปรากฏหนาตางใหเลอกต าแหนงในการตดตงโปรแกรม นนกคอ หากตองการก าหนดต าแหนงการตดตงโปรแกรมในหนวยความจ าภายในเครองใหม หรอชอโฟลเดอรใหม กสามารถท าการเปลยนไดเรกทอรได ดวยการคลกทป ม Browse หรอถาไมตองการเปลยนกคลกทป ม Install ดงรป

7) จะปรากฏหนาตางแสดงสถานการณตดตงโปรแกรม ลงในหนวยความจ าภายในเครอง ดงรป

Page 9: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

8

8) จะปรากฏหนาตาง ทเสดงวาไดตดตงโปรแกรมเสรจแลว ใหคลกทป ม Finish ดงรป

3. การเรยกใชโปรแกรม Dev-C++

การเรยกใช Dev-C++ ท าไดท านองเดยวกบการเรยกใชโปรแกรมอน ๆ

1) คลกทป ม Start > All Programs > Bloodshed Dev-C++ คลกท Dev-C++ ดงรป

Page 10: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

9

2) จะไดหนาตางโปรแกรม Dev-C++ ดงรป

4. สวนประกอบทส าคญของโปรแกรม Dev-C++ สวนประกอบทส าคญของโปรแกรม Dev-C++ ในการใชงานเบองตน มดงน

1) สวนของเมน 2) สวนของ Editor Screen

1) สวนของเมน เปนค าสงตาง ๆ ทจ าเปนส าหรบการใชงานโปรแกรม เชน การสรางไฟลใหม การคอมไพล การรนโปรแกรม นอกจากนในดานลางของเมนยงม แถบเครองมอ (Tool Bar) ทรวบรวมค าสงตาง ๆ ทใช งานบอย ๆ ในรปของไอคอนใหผใชเลอกใชงานไดงายอกดวย ดงตวอยางการใชงานเมนทส าคญ ๆ ดงน

1.1) เมน File

- ค าสง New เมอเปดโปรแกรมขนมาครงแรก จะตองเลอก เมน File และเลอกค าสง New เพอสรางไฟลใหม โดยเลอกรายการยอย Source File ดงรป

เมอเลอก ค าสง Source File (มคยลด Ctrl+N) ใชส าหรบสรางไฟลเพอเขยนค าสงในโปรแกรมทจะสรางขน จะไดหนาตางดงรป

Page 11: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

10

เขยนค าสง ในชองน

เมอเขยนค าสง หรอ รหสโปรแกรม จะไดหนาตางโปรแกรมในลกษณะ ดงรป

- ค าสง Save เมอเขยนโปรแกรมเสรจหรอตองการบนทกไวเพอปองกนการเสยหาย การบนทกครงแรกใชค าสง File Save As… หรอถาใชค าสง File Save กบไฟลทไมมการบนทกมากอน โปรแกรมจะเปดหนาตาง ของ ค าสง File Save As… ดงรป

Page 12: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

11

ในชอง Save in: เลอกโฟลเดอรทตองการเกบไฟล ในชอง Save as type: เลอก C source files(*.c) ในชอง File name: ตงชอตามตองการ เพอความมนใจใหใสสวนขยายของไฟลเปน .c จะไดไฟล source code ของโปรแกรมทจะเปนภาษา C ถาไมก าหนดใหถกตอง จะมสวนขยายเปน .cpp ซงเปนไฟล ของ Source code ในภาษา C++ ซงมรายละเอยดบางประการตางไป จงตองระวงในเรองน ค าสงอน ๆ ในเมน File กเปนลกษณะท านองเดยวกนกบโปรแกรมอน ๆ จงไมขออธบายในทน

1.2) เมน Execute

เมนนใชส าหรบเพอเปลยนค าสงใหเปนภาษาเครองและทดลองสงใหโปรแกรมโดยไฟลทจะใชในเมนน จะตองเปนไฟลทบนทกมากอนแลว เมอเปดเมน Execute จะไดหนาตาง ดงรป

- ค าสง Compile เปนค าสงทตองใชประจ า ค าสง Compile เปนการไปสงให Compilerเปลยนค าสงทเราสรางไปเปน ภาษาเครอง แลวตามดวยสงให Linker ชดเดยวกนท าใหภาษาเครองทไดรวมกบค าสงอน ๆ ทจ าเปน เพอใหไดโปรแกรมทสามารถท างานได ถามปญหาตาง ๆ ทท าใหไมไดโปรแกรมทสามารถท างานได เชน เขยนค าสงผด จะแสดงความผดพลาด ลกษณะดงรป

Page 13: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

12

บอกความผดพลาดในชองน

ถาโปรแกรมทเขยนสามารถ Compile ไดส าเรจ แมจะมขอผดพลาดแตเปนขอผดพลาดทไมมปญหาตอการ Compile จะไดหนาตาง ดงรป ปดหนาตาง Compile Progress เพอท างานตอไป

- ค าสง Run เปนค าสงใหโปรแกรมท Compile แลวท างานเพอทดลองดผลการท างานของโปรแกรม โปรแกรมทจะใชค าสงนไดตองผานการ ใชค าสง Execute Compile มาแลว จะไดผลลพธ ดงรป

Page 14: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

13

1.3) เมน Tools

เมนนมค าสงหลายค าสง ดงรป

ค าสงตาง ๆ ในเมนน ขอแนะน าค าสงเดยวเพอความสะดวกในการแกไขขอผดพลาดเมอมการเขยนค าสงผด คอ ค าสง Editor Options เมอใชค าสงน ใหเลอก tab Display แลวเลอกค าสง Line Numbers ดงรป

Page 15: วิชา การพัฒนาโปรแกรม ภาษาซี)4 4. ส วนของฟ งก ช นย อยท ผ ใช สร างข นเอง (User-define

14

เมอ compile โปรแกรมแลวมขอผดพลาด โปรแกรมจะแจงวาผดพลาดทบรรทดใด ผเขยนโปรแกรมจะสามารถไปท าการไดงาย ๆ ไมตองนบบรรทด เพราะจะมหมายเลขบรรทดปรากฏอย ดงรป