Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
0
วชา การพฒนาโปรแกรม (ภาษาซ) รหสวชา ว31293
หนวยการเรยนรท 1 ความรเบองตนเกยวกบภาษาซ
ผลการเรยนร
สามารถอธบายประวตความเปนมา ลกษณะการท างานภาษาซ และท าการตดตงโปรแกรมเพอการใชงานตอไปได
จดประสงคการเรยนร
1. บอกประวตความเปนมา และลกษณะของภาษา C ได 2. สามารถคนหาและดาวนโหลดโปรแกรมภาษา C ได 3. สามารถใชงานโปรแกรมภาษา C ได
สาระการเรยนร 1. ก าเนดภาษาซ 2. คณสมบตทโดดเดนของภาษาซ 3. โครงสรางภาษาซ 4. โปรแกรม Dev – C++
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. มประสทธภาพสง เมอเปรยบเทยบกบภาษาระดบสงอน ๆ จะเหนวาชดค าสงมความ
กะทดรด และกระชบ รวมถงประมวลผลไดอยางรวดเรว
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”
3
2. การประการตวแปรภายนอก (Global Variables)
เปนสวนทใชประกาศตวแปรหรอคาตาง ๆ ทใหใชไดทงโปรแกรม ซงใชไดทงโปรแกรม ซงในสวนไมจ าเปนตองมกได
3. สวนฟงกชนหลก
เปนสวนทผใชตองเขยนขนเองโดยน าเอาค าสงหรอฟงกชนมาตรฐานตาง ๆ มาเรยบเรยงกนขนเปนโปรแกรม เพอสงใหคอมพวเตอรรบขอมลจากอปกรณอนพตประมวลผลแลวกใหผลลพธตามทเราตองการ สวนมาจะเขยนขนตนดวย main() ซงหมายถงการเรยกใชฟงกชน main() นนเอง และตามดวยโปรแกรมหลกทประกอบดวยค าสงตาง ๆ ภายในเครองหมายวงเลบปกกา { } ซงภายในนจะประกอบดวยสวนตาง ๆ ดงน
3.1 สวนตวแปรแบบภายใน (Local Variables)
เปนสวนทใชส าหรบประกาศตวแปรทจะใชในเฉพาะฟงกชนของตนเอง ฟงกชนอนไมสามารถเขาถงหรอใชได ซงจะตองท าการประกาศตวแปรกอนการใชงานเสมอ และจะตองประกาศไวในสวนนเทานน
3.2 ตวโปรแกรม (Statements)
เปนสวนทอยถดลงมาจากสวนตวแปรภายใน ซงประกอบไปดวยค าสงตาง ๆ ของภาษา C และค าสงตาง ๆ จะใชเครองหมาย ; เพอเปนการบอกใหรวาจบค าสงหนง ๆ แลว สวนใหญ ค าสงตาง ๆ ของภาษา C เขยนดวยตวพมพเลก เนองจากภาษา C จะแยกความแตกตางของตวพมพเลกและพมพใหญหรอ Case Sensitive นนเอง นอกจากนภาษา C ยงไมสนใจกบการขนบรรทดใหม เพราะฉะนนพมพค าสงหลายค าสงในบรรทดเดยวกนได โดยไมมเครองหมาย ; เปนตวจบค าสง
3.3 สวนค าอธบายโปรแกรม (Comment Lines)
สวนนใชในการอธบายโปรแกรมอาจพมพขอความ สตรหรอ อน ๆ ทเกยวของกบโปรแกรม สวนของโปรแกรมสวนนจะมหรอไมมกได ถาตองเขยนใหเรมตนดวยเครองหมาย /* ตามดวยขอความทตองการ แลวปดทายดวย */(เครองหมาย / และ * ตองเขยนตดกนสอ)
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)
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++ ใหท าการดบเบลคลกทไอคอนดงรป
6
2) จะปรากฏหนาตางแสดงสถานการณตดตงโปรแกรม แลวท าการคลกทป ม OK ดงรป
3) จะปรากฏหนาตางการตดตง ในการเลอกภาษาทตองการ ในทนคอ English แลวท าการคลกทป ม OK ดงรป
4) จะปรากฏหนาตางแสดงเงอนไขของการตดตง ถายอมรบเพอท าการตดตง คลกทป ม I Agree ดงรป
5) จะปรากฏหนาตางใหเลอก Components ในการท างานของโปรแกรม ถาตองการตดตง Components ทงหมด กคลกทป ม Next ดงรป
7
6) จะปรากฏหนาตางใหเลอกต าแหนงในการตดตงโปรแกรม นนกคอ หากตองการก าหนดต าแหนงการตดตงโปรแกรมในหนวยความจ าภายในเครองใหม หรอชอโฟลเดอรใหม กสามารถท าการเปลยนไดเรกทอรได ดวยการคลกทป ม Browse หรอถาไมตองการเปลยนกคลกทป ม Install ดงรป
7) จะปรากฏหนาตางแสดงสถานการณตดตงโปรแกรม ลงในหนวยความจ าภายในเครอง ดงรป
8
8) จะปรากฏหนาตาง ทเสดงวาไดตดตงโปรแกรมเสรจแลว ใหคลกทป ม Finish ดงรป
3. การเรยกใชโปรแกรม Dev-C++
การเรยกใช Dev-C++ ท าไดท านองเดยวกบการเรยกใชโปรแกรมอน ๆ
1) คลกทป ม Start > All Programs > Bloodshed Dev-C++ คลกท Dev-C++ ดงรป
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) ใชส าหรบสรางไฟลเพอเขยนค าสงในโปรแกรมทจะสรางขน จะไดหนาตางดงรป
10
เขยนค าสง ในชองน
เมอเขยนค าสง หรอ รหสโปรแกรม จะไดหนาตางโปรแกรมในลกษณะ ดงรป
- ค าสง Save เมอเขยนโปรแกรมเสรจหรอตองการบนทกไวเพอปองกนการเสยหาย การบนทกครงแรกใชค าสง File Save As… หรอถาใชค าสง File Save กบไฟลทไมมการบนทกมากอน โปรแกรมจะเปดหนาตาง ของ ค าสง File Save As… ดงรป
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 ชดเดยวกนท าใหภาษาเครองทไดรวมกบค าสงอน ๆ ทจ าเปน เพอใหไดโปรแกรมทสามารถท างานได ถามปญหาตาง ๆ ทท าใหไมไดโปรแกรมทสามารถท างานได เชน เขยนค าสงผด จะแสดงความผดพลาด ลกษณะดงรป
12
บอกความผดพลาดในชองน
ถาโปรแกรมทเขยนสามารถ Compile ไดส าเรจ แมจะมขอผดพลาดแตเปนขอผดพลาดทไมมปญหาตอการ Compile จะไดหนาตาง ดงรป ปดหนาตาง Compile Progress เพอท างานตอไป
- ค าสง Run เปนค าสงใหโปรแกรมท Compile แลวท างานเพอทดลองดผลการท างานของโปรแกรม โปรแกรมทจะใชค าสงนไดตองผานการ ใชค าสง Execute Compile มาแลว จะไดผลลพธ ดงรป
13
1.3) เมน Tools
เมนนมค าสงหลายค าสง ดงรป
ค าสงตาง ๆ ในเมนน ขอแนะน าค าสงเดยวเพอความสะดวกในการแกไขขอผดพลาดเมอมการเขยนค าสงผด คอ ค าสง Editor Options เมอใชค าสงน ใหเลอก tab Display แลวเลอกค าสง Line Numbers ดงรป
14
เมอ compile โปรแกรมแลวมขอผดพลาด โปรแกรมจะแจงวาผดพลาดทบรรทดใด ผเขยนโปรแกรมจะสามารถไปท าการไดงาย ๆ ไมตองนบบรรทด เพราะจะมหมายเลขบรรทดปรากฏอย ดงรป