ภาษาที่ใช้และการพัฒนาโปรแกรม...

52
ภาษาที่ใช้และการพัฒนาโปรแกรม คอมพิวเตอร์ บทที6

Upload: others

Post on 06-Sep-2019

2 views

Category:

Documents


3 download

TRANSCRIPT

ภาษาทใชและการพฒนาโปรแกรมคอมพวเตอร

บทท 6

ภาษาคอมพวเตอร

ภาษาของคอมพวเตอรนน มหลายภาษา ซงแตละภาษาจะมเอกลกษณเปนของตวเอง แตกตางกนไปตามการใชงาน

ระดบของภาษา 5 ระดบ

1. ภาษาเครอง(Machine Language)

2. ภาษาสญลกษณ(Symbolic Language) หรอภาษาแอสเซมบล(Assembly Language)

3. ภาษาระดบสง(High Level Language)

4. ภาษาระดบท 4 (4th GL : Fourth General Language)

5. ภาษาธรรมชาต(Natural Language)

ภาษาเครอง(Machine Language)

เปนภาษาระดบตา(Low Level Language) เปนภาษาคอมพวเตอรภาษาเดยวทเครองคอมพวเตอร

สามารถเขาใจโดยไมตองมการแปล มรปแบบเปนรหสคาสงเปนตวเลขประกอบดวย 0 และ 1

เชน 1010 0001 เปนตน เปนภาษาใชงานเฉพาะเจาะจงกบเครองคอมพวเตอรหรอ

หนวยประมวลผลกลาง ขนอยกบสถาปตยกรรมของเครองใดเครองหนง

ภาษาสญลกษณ(Symbolic Language) หรอภาษาแอสเซมบล(Assembly Language)

มรปแบบเปนสญลกษณแทนรหสคาสงในภาษาเครอง ทาใหเขาใจความหมายของคาสง เชน ADD แทนการบวกเลข SUB แทนการลบเลข MUL แทนการคณเลข DIV แทนการหารเลข MOV แทนการยายขอมล

เปนภาษาทขนอยกบเครองคอมพวเตอรหรอหนวยประมวลผลกลาง ขนอยกบสถาปตยกรรมของเครองใดเครองหนง เหมอนกบภาษาเครอง

มตวแปลภาษาแอสเซมบลไปเปนภาษาเครอง เรยกวา Assembler

ภาษาระดบสง(High Level Language)

เปนภาษาไมขนอยกบเครองคอมพวเตอรหรอหนวยประมวลผลกลาง ยหอใดยหอหนง

มการเขยนโปรแกรมคลายคลงกบการเขยนประโยคในภาษาองกฤษ

มตวแปลภาษาระดบสงไปเปนภาษาเครอง 2 ประเภทคอ Interpreter และ Compiler

เหมาะสาหรบในการพฒนาโปรแกรมใชงาน และประยกตใชงานดานตาง ๆ ได

กลมใชงานดานวทยาศาสตร วศวกรรมศาสตร งานวจย (Science) ไดแก ภาษาฟอรแทรน(FORTRAN) และภาษาแอลกอล(ALGOL)

กลมใชงานดานธรกจ (Business) ไดแก ภาษาโคบอล(COBOL) ภาษาพแอลวน(PL/I) ภาษาอารพจ(RPG)

กลมภาษาระดบสง (1/2)

กลมใชงานทวไป(General Purpose) ไดแก ภาษาเบสค(BASIC) ภาษาปาสคาล(Pascal) ภาษาซ(C Language)

กลมใชงานดานตรรกะ ไดแก ภาษาเอดา(Ada) ภาษาโปรลอก(Prolog) ภาษาสโนบอล(SNOBOL)

กลมภาษาระดบสง (2/2)

ภาษาฟอรแทรน(FORmula TRANslator)

เปนภาษาระดบสงภาษาแรก

เหมาะสาหรบใชงานดานวทยาศาสตร วศวกรรมศาสตร

ภาษาเบสค(Beginner’s All-purpose Symbolic Instruction Code)

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

ผคดคนคอ Dartmouth College

เปนภาษาทใชโตตอบไปมาระหวางกนไดทนท จงงายสาหรบผทใชทเรมตนเรยน หรอตองการจะเรยนรหรอทาการแกไขและแกไขซนแทกซเออเรอสไดงาย

ภาษาโคบอล(COmmon Business Oriented Language )

เหมาะทจะใชกบการประมวลผลขอมลทางธรกจ และการสรางแฟมขอมลสาหรบงานตางๆ

ใชไดกบระบบคอมพวเตอรทวๆ ไป

ภาษาปาสคาล(Pascal)

ตงชอเปนเกยรตแก Blaise Pascal

ผคดคนคอ Nicklaus Wirth

เปนการเขยนโปรแกรมภาษาโครงสราง(Structure Programming) เพอใหโปรแกรมมความเปนมาตรฐานและงายแตการแกไขโดยใชคาสง IF-THEN-ELSE และ DO-WHILE

เปนภาษาทใชกบเครองไมโครคอมพวเตอร

ภาษาพแอลวน (PL/I : Programming Language/1)

เปนภาษาทรวมเอาขอดของภาษาฟอรแทนเขามารวมกบขอดของภาษาโคบอล

ภาษาซ(C Language)

ผคดคนไดแก BELL LABS

ภาษาซจะใชในการจดทาโอเอสและโปรแกรมระบบงานสาหรบงานดานวจยและธรกจ

ภาษาฟอรท(Fourth)

ใชกบงานดานวศวกรรม เรมแรกเรยกวา Fourth เพราะวาเปน Fourth-

Generation Language และใช IBM1130 ในการประมวลผล ซงยนยอมใหใชเพยง 5 ตวอกษร สาหรบการตงชอใดๆ จงตองเปลยนมาเปน forth โดยปรยาย

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

ภาษาโลโก(Logo)

ใชสอนเดกในการฝกหดโตตอบกบเครองคอมพวเตอร

โลโกใชในการจดทากราฟฟก วาดภาพได

ใชกนมากในโรงเรยน

ใชกบไมโครคอมพวเตอร

ภาษาซมเลชน

ภาษาซมมเลชนทใชในการจดทาโมเดล จะไดแก GPSS ทมชอเตมวา General Purpose System Simulator และ SIMULA ซงมชอยอมาจาก Simulation Language

ภาษาระดบท 4 (4th GL : Fourth General Language)

เปนการพฒนาระบบโปรแกรมหรออตสาหกรรมซอฟตแวร ทผพฒนา(Developer) ใชเครองมอสรางโปรแกรม(Tools) โดยการออกแบบ(Design) ตามความตองการแลวสราง(Generate)ออกมาเปนระบบโปรแกรมใชงานไดเลย ทาใหสามารถพฒนาโปรแกรมไดมการทางานซบซอนได สะดวกรวดเรว แกไขตรวจสอบได

ภาษาธรรมชาต(Natural Language)

เปนภาษาระดบท 5 ทมนษยไดพฒนาฮารดแวรและซอฟตแวรใหเครองคอมพวเตอรมความสามารถเขาใจภาษามนษย

เปนการทาใหคอมพวเตอรมความเฉลยวฉลาดทเปนปญญาประดษฐ(AI : Artificial Intelligence) เชน แปลภาษาตาง ๆ ของมนษยได เชน องกฤษ ฝรงเศส ญปน เปนตน

การพฒนาโปรแกรมคอมพวเตอร

การพฒนาโปรแกรมคอมพวเตอร

ขนตอนทเหมอนกน เรยกวา วงจรการพฒนาระบบ (System Development Life Cycle :SDLC)

ขนตอนการพฒนาระบบมอยดวยกน 7 ขน เขาใจปญหา (Problem Recognition) ศกษาความเปนไปได (Feasibility Study) วเคราะห (Analysis) ออกแบบ (Design) สรางหรอพฒนาระบบ (Construction) การปรบเปลยน (Conversion) บ ารงรกษา (Maintenance)

เขาใจปญหา Problem Recognition

ผบรหารหรอผใชตองเขาใจและทราบปญหาของระบบงานเดม จงตองการระบบสารสนเทศใหมเพอแกไขระบบงานเดม รวมไปถงเพอเพมประสทธภาพในการทางาน, ใหการทางานรวดเรวมากขน

ศกษาความเปนไปได Feasibility Study

ตองกาหนดใหไดวาปญหาคออะไร

ตดสนใจสรางระบบสารสนเทศใหม หรอแกไขระบบสารสนเทศเดม

ตองกาหนดวาการแกไขปญหาเปนทางเทคนคหรอบคลากร

ความเปนไปไดเรองคาใชจาย, ระยะเวลาในการพฒนาระบบ และทสาคญคอ ผลประโยชนทจะไดรบจากการลงทน

วเคราะห Analysis (1/3)

การศกษาระบบการทางานของธรกจนนๆ

กาหนดความตองการของระบบใหม ใชเทคนคในการเกบขอมล (Fact-Gathering Techniques)

นาขอมลทรวบรวมเขยนรายงานการทางานของระบบเปนตวหนงสอหรอแสดงแผนภาพ

วเคราะห Analysis (2/3)

เครองมอแสดงรายงานภาษาทพฒนาแบบ Structural language ไดแก

พจนานกรมขอมล (Data Dictionary)

แผนภาพการไหลของขอมล (Data Flow Diagram)

ขอมลเฉพาะการประมวลผล (Process Specification )

รปแบบขอมล (Data Model)

รปแบบระบบ (System Model)

วเคราะห Analysis (3/3)

เครองมอแสดงรายงานภาษาการโปรแกรมเชงวตถ(Object Oriented

Programming) ไดแก Unified Modeling Language(UML)

ผงงาน(Flowchart) เปนเครองมอทใชอธบายการท างานของโปรแกรมไดทงโปรแกรมทพฒนาดวยภาษา Structural language และภาษาการโปรแกรมเชงวตถ

ออกแบบ Design

ขนตอนการวเคราะห นกวเคราะหระบบตองหาวา "จะตองทาอะไร (What)" แตในขนตอนการออกแบบตองรวา " จะตองทาอยางไร(How)"

ไดแก ออกแบบฟอรมสาหรบนาขอมลเขา (Input

Format), ออกแบบรายงาน (Report Format) และการแสดงผลบนจอภาพ (Screen Format)

สรางหรอพฒนาระบบ Construction

เปนขนตอนของโปรแกรมเมอร

เขยนโปรแกรมตามขอมลทไดจากเอกสาร

ทดสอบโปรแกรมวา ทางานถกตองหรอไม

เตรยมคมอการใชและฝกอบรมผทจะใชงานระบบจรง

การปรบเปลยน Conversion

การนาระบบงานใหมมาใชแทนระบบงานเกาควรทาอยางคอยเปนคอยไปทละนอย

วธทดทสดคอ ใชระบบใหมควบคไปกบระบบเกาไปสกระยะหนง

บารงรกษา Maintenance

การแกไขโปรแกรมหลงจากการใชงานแลว

สาเหตทตองแกไขม 2 ขอ คอ มปญหาในโปรแกรม(Bug) และ การดาเนนงานในองคกรหรอธรกจเปลยนไป

Algorithm

คอการแบงขนตอนการทางานของโปรแกรมออกเปนขนตอนยอย ๆ ของการทางานเพอใหเขาใจงายขน

เชน Algorithm ของการคานวณภาษ 7 %ขนตอนท 1 รบจ านวนเงนทตองการค านวณ

ขนตอนท 2 ก าหนดสตรในการค านวณภาษ

(ภาษ = จ านวนเงน * 0.07)

ขนตอนท 3 ค านวณจากสตรทก าหนด

ขนตอนท 4 แสดงผลลพธของการค านวณ

Flow Chart

เปนเครองมอทโปรแกรมเมอรใชในการแปลง Algorithm หรอ ขนตอนการทางานใหเปนไปในลกษณะของแผนภาพเพอใหเขาใจงาย

จานแมเหลก (Magnetic disk) แสดงถงการ อนพท / เอาทพทดวยจานแมเหลก

การตดตอทางสาย (Communication link) แสดงถงการสงขาวสารไปตามสายสอสาร

แสดงเสนทางการไหล (Flow line) แสดงการเชอมตอระหวางสญลกษณ 2 สญลกษณ

Flow Chart Symbol

การท างานแบบขนาน (Parallel Mode) แสดงการเรมหรอสนสดของการท างานตงแตสองชนดทเกดขนพรอมกน

หมายเหต (Comment) แสดงถง ค าอธบายหมายเหตตางๆ เพอใหเขาใจยงขน

คอนเนคเตอร (Connector) แสดงการเชอมตอของโฟลวชารต ออกไปยงจดอนๆ

Flow Chart Symbol

จดปลาย (Terminal) แสดงการเรมหรอสนสดของการท างานของโปรแกรม

การประมวลผล (Process) ใชกบการประมวลผลทกชนด

การตดสนใจ (Decision) แสดงถงการตดสนเงอนไขวาเปนจรงหรอเทจ

Flow Chart Symbol

การเตรยม (Preparation) ใชในการก าหนดคาเรมตนของการท างาน

การประมวลผลทก าหนดไวกอน (Predefine Process) ใชแทนการท างานทก าหนดไวแลว ณ จดใดจดหนงในโปรแกรม เชนโปรแกรมยอยการควบคมดวยมอ (Manual Operation) เปนการแสดงถงการควบคมการท างานดวยมนษยเขาชวยบางครง

Flow Chart Symbol

การใชหนวยความจ าแบบออฟไลน (Off line storage) แสดงการเกบขาวสารในอปกรณความจ าแบบออฟไลนใด ๆ

การปอนขอมลดวยมอ (Manual Input) เปนการควบคมการปอนขอมลโดยผใช

เอกสาร (Document) แสดงถงการอนพท / เอาทพท ขอมลประเภทเอกสาร

Flow Chart Symbol

เทปกระดาษ (Punched Tape) แสดงถงการอนพท / เอาทพท ขอมลดวยเทปกระดาษ

อนพท / เอาทพท (Input / Output) แสดงถงการปอนขาวสารทประมวลผลไดหรอ แสดงผลทเกดจากการประมวลผล

เทปแมเหลก (Magnetic Tape) แสดงถงการอนพท / เอาทพท ขอมลดวยเทปแมเหลก

Flow Chart Symbol

การรวม (Merge) แสดงถงการน าเอาเซตของการบนทกรวมกนเปนชดเดยว

การแยก (Extract) แสดงการแยกเซตของการบนทกออกเปนชดทตองการ

Flow Chart Symbol

การเกบแบบออนไลน (Online storage) การใชอปกรณความจ าแบบออนไลนในการอนพท / เอาทพท เชน เทปแมเหลก หรอ จานแมเหลก

การแสดงผล (Display) การแสดงขาวสารขณะประมวลผลผานทางอปกรณตาง ๆ เชน จอภาพ

เชอมตอหนากระดาษ (Page Connector) แสดงการตอของผงงานทอยคนละหนา

Flow Chart Symbol

Flow Chart guidelines(1/2)

การทางานจะเรมจากบนลงลาง และ จากซายไปขวาของภาพ

กจกรรมทเกดใน Flow chart จะถกกาหนดไวอยางชดเจน

มการระบจดเรมตน และ สนสด เพยงแหงเดยว

Flow Chart guidelines(2/2)

ใชคาอธบายประเภท “one-verb” (verb-noun) เชน “prepare statement,” “file record”

กาหนดขนตอนไวตามลาดบใชสญลกษณมาตรฐาน เสนตรงทลากระหวางจดไมควรตดกน ในกรณทจาเปน

ใชสญลกษณของการครอมสายแทน

ประโยชนการเขยน Flow Chart(1/2)

ทาใหมองเหนภาพการทางานของตวโปรแกรมชดเจนขน

เปนตวกลางในการสอสารระหวางโปรแกรมเมอรดวยกน

แปลงความตองการของผใชใหอยในรปของการทางานทเปนขนตอนและงายตอการพฒนา

ใชในการทาความเขาใจเกยวกบโปรแกรมเมอมการแกไข ปรบปรงโปรแกรม

การหาพนทสามเหลยม รบคาความยาวฐานและ ความสง ค านวณพนท จากสตร

พนท = 0.5 * ฐาน * สง แสดงผลลพธทไดจากการค านวณ

ออกทางจอภาพ

เรม

รบคา ฐานและความสง

พนท = 0.5 * ฐาน * สง

พนท

สนสด

พนท , ฐาน , สง

คานวณหาผลรวมของการทาขอสอบวชา คพ200 ของนศ.คนหนง โดยมคะแนนดงตอไปน ขอสอบตวเลอก 45 ขอสอบอตนยขอ 1 ได 4 ขอสอบอตนยขอ 2 ได 3 ขอสอบอตนยขอ 3 ได 10 ขอสอบอตนยขอ 4 ได 4 ขอสอบอตนยขอ 5 ได 5

รหสเทยม(Pseudo code)

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

คณสมบตของรหสเทยม(Pseudo code)

งายในการเขยน

งายสาหรบผอาน

ไมมกฎเกณฑทางไวยากรณ

มโครงสรางของประโยคคาสงทด

เขาสโปรแกรมคอมพวเตอรภาษาไหนกได เชน C, C++ หรอ Java

คาสงในรหสเทยม

START Stop END OF THE ALGORITHM If condition Then operations Else operations If condition Then operations Read valuesWrite values

คาสงในรหสเทยม

Set the value of x to expression หรอ xexpression

Add x to y หรอ y y + x Subtract x from y หรอ y y - xMultiply x by y หรอ y y * x Divide x into y หรอ y y / x Increment x หรอ x x + 1 Decrement x หรอ x x - 1

คาสงในรหสเทยม

While condition do::

End of the loop Repeat the following count times

::

End of the loop

ตวอยางSTART

Read X, YIf X < Y Then

X YEndIfR X mod YWhile R > 0 doX Y

Y RR X mod Y

End of the loopWrite “GCD = “, YStop

END OF ALGORITHM