วันพฤหัสบดีที่ 29 สิงหาคม พ.ศ. 2556

โครงสร้างโปรแกรมภาษาต่อไปนี้



โครงสร้างโปรแกรมภาษาต่อไปนี้

1.รงสร้างของโปรแกรมปาสคาล
       โครงสร้างของโปรแกรมประกอบด้วยการตั้งหัวเรื่อง โดยการตั้งชื่อของโปรแกรมขึ้นเองในบรรทัดแรกด้วยคำว่า PROGRAM MyfirstProgram คำว่าBEGIN เป็นส่วนที่แสดงจุดเริ่มต้นของโปรแกรม ในทางตรงกันข้าม END. แสดงว่าเป็นส่วนของโปรแกรมที่สิ้นสุดการทำงาน และเมื่อจั่วหัวโปรแกรมจะตามด้วยชื่อโปรแกรมที่เรา
ตั้งเอง แล้วตามด้วยเครื่องหมาย ; สรุปได้ว่าโครงสร้างของโปรแกรมเป็นดังนี้ ในขั้นแรก ไปดูโครงสร้างของการเขียน pascal กันค่ะ
โครงสร้าง pascal
program ...;
var ...

begin

end.


2.โครงสร้างโปรแกรมภาษาซี

ประกอบด้วย
ส่วนประมวลผลก่อน ( Preprocessor )
เป็นส่วนที่บอกให้ตัวแปรภาษาทำส่วนนี้ก่อน
ส่วนประกาศตัวแปรส่วนกลาง ( Type definitions )
เป็นส่วนประกาศตัวแปรส่วนกลาง เพื่อให้ฟังก์ชันสามารถเรียกใช้ได้ 
 
ส่วนต้นแบบฟังก์ชัน ( Function prototypes )
เป็นส่วนที่ประกาศให้รู้ว่าในโปรแกรมมีฟังก์ชันใดบ้าง 
 
ส่วนฟังก์ชันหลัก ( Functions )
ฟังก์ชันที่ต้องมีในโครงสร้างคือ ฟังก์ชัน main() โดยในฟังก์ชันจะประกอบด้วยตัวคำสั่ง 
 
ส่วนฟังก์ชันอื่น ๆ 
ฟังก์ชันในส่วนนี้จะมีหรือไม่ก็ได้ ขึ้นอยู่กับความสามารถของโปรแกรม โดยในฟังก์ชันจะประกอบด้วยตัวคำสั่ง




3.ภาษาเบสิก
                
            ภาษาเบสิก ( Basic ย่อมาจาก Beginners All - purpose Symbolic Instruction Code)เป็นภาษาที่ง่ายต่อการเรียนรู้พัฒนาโดย Dartmouth Collage แนะนำโดย John Kemeny และ Thomas Krutz ในปี 1965 เป็นภาษาที่ใช้ง่าย และติดตั้งอยู่บนเครื่องไมโครคอมพิวเตอร์ส่วนมาก ใช้สำหรับ ผู้เริ่มต้นศึกษาการเขียนโปรแกรม และได้มีการพัฒนาอย่างต่อเนื่องจากภาษา BASIC, QBASIC ปัจจุบันเป็น Visual BASIC เป็นที่นิยมใช้กันอย่างแพร?หลาย สามารถประยุกต์ใช้งานได?ทั้งทางวิทยาศาสตร์และทางธุรกิจ
          ตัวอย่างการเขียนโปรแกรมด้วยภาษา BASIC
                    CLS
                    PRINT “PLEASE ENTER A NUMBER”
                    INPUT NUMBER
                    DO WHILE NUMBER <> 999
                    SUM = SUM + NUMBER
                    vCOUNTER = COUNTER + 1
                    PRINT “PLEASE ENTER THE NEXT NUMBER”
                    INPUT NUMBER
                    LOOP
                    AVERAGE = SUM/COUNTER
                    PRINT “THE AVERAGE OF THE NUMBER IS”; AVERAGE
                    END



4.โครงสร้าง assembly
           คำสั่งในภาษาแอสแซมบลี แบ่งออกเป็น 2 ส่วน ส่วนแรกกำหนดการทำงาน เรียกว่า OP-CODE (Operation Code) ส่วนที่สองเรียกว่า Operand มีหน้าที่กำหนดเกี่ยวกับข้อมูล
OP-CODE อยู่ในไบท์แรกของคำสั่งภาษาแอสแซมบลีแทนด้วยตัวอักษร ส่วนภาษาเครื่องแทนด้วยเลขฐาน 2 สองบิทแรก ในไบท์นี้เป็นตัวกำหนดความยาวของคำสั่งนั้นด้วย
เมื่อดูเฉพาะบิทที่ 0 และ 1 จะบอกความยาวของคำสั่งนั้น ๆ ได้ดังนี้
บิท 0 1 ความยาว ชนิด 0 0
0 1
1 0
1 11 HW
2 HW
2 HW
3 HWRR
RX
RS / SI / S / RX
SS วิธีช่วยจำ
- เอาเลขในบิทที่ 0 และ 1 รวมกันแล้วบวกอีก 1 จะเป็นความยาวของคำสั่งนั้น ๆ มีหน่วยเป็น HW ดังนี้
0 + 0 + 1 = 1 HW
0 + 1 + 1 = 2 HW
1 + 0 + 1 = 2 HW
1 + 1 + 1 = 3 HW
Operand เป็นตัวกำหนดเกี่ยวกับข้อมูล อาจจะเป็นข้อมูลเอง (Immediate Operand) หรือ อาจจะกำหนดตำแหน่งของข้อมูลด้วยหมายเลขรีจิสเตอร์ หรือกำหนดตำแหน่งของข้อมูลในหน่วยความจำของระบบ จากลักษณะของ Operand นี้ แบ่งชนิดของคำสั่งได้เป็น 6 ประเภท คือ
1. RR (Register to Register) Operand ทั้งสองเป็นรีจิสเตอร์
2. RX (Register to Index Storage) Operand ตัวแรกอยู่ในรีจิสเตอร์ ตัวที่สองอยู่ในหน่วยความจำของระบบ กำหนดตำแหน่งโดยใช้ Base register บวก Index Register บวกกับ displacement
3. SS (Storage to Storage) Operand ทั้งสองอยู่ในหน่วยความจำของระบบ กำหนดตำแหน่งโดยใช้ Base register บวกกับ displacement
4. SI (Storage and Immediate) Operand ตัวแรกอยู่ในหน่วยความจำของระบบ ตัวที่สอบเป็นข้อมูลโดยตรง (Immediate) ซึ่งยาว 1 ไบท์ และเก็บอยู่ภายในตัวคำสั่งนั้นเลย
5. RS (Register to Storage) Operand สองตัวแรกอยู่ในรีจิสเตอร์ ตัวหลังสุดอยู่ในหน่วยความจำของระบบ
6. S (Storage) Operand มีอยู่ตัวเดียวอยู่ในหน่วยความจำของระบบ การกำหนดตำแหน่งของข้อมูล
การกำหนดตำแหน่งของข้อมูล เพื่อเรียกข้อมูลออกมาใช้นั้น ถ้าข้อมูลอยู่ในรีจิสเตอร์ กำหนดด้วยหมายเลของรีจิสเตอร์ รีจิสเตอร์ที่เก็บข้อมูลไว้ได้แก่ รีจิสเตอร์สำหรับใช้งานทั่วไป (หมายเลข 0 – 15 ) รีจิสเตอร์สำหรับควบคุม (หมายเลข 0 – 15) รีจิสเตอร์สำหรับเลขทศนิยม (หมายเลข 0, 2, 4 และ 6)
โปรแกรม จะถูกเก็บไว้ในหน่วยความจำ ซึ่งอยู่ในรูปแบบของเลขไบนารี่ที่เรียกว่าภาษา Machine ซึ่งเป็นภาษาที่สามารถ ติดต่อให้คอมพิวเตอร์ เข้าใจได้ ภาษา Machine นี้จะจัดให้อยู่ในรูปแบบที่เป็นเลขฐานสิบหก (HEX) เช่น คำสั่ง 8 บิต 11101011B (B-ไบนารี่) เขียนได้เป็น 0EBH(H-ฐานสิบหก) แต่ก็เป็นการที่จะเข้าใจความหมาย ได้ยากในการใช้งาน การที่จะทำความเข้าใจภาษา Machine จะมีการใช้สัญลักษณ์ (Symbols) ที่เรียกว่า Mnemonics เพื่อแทนความหมายของคำสั่ง เช่น MOV A,#67H หมายความว่านำข้อมูลค่าคงที่ 67H ไปเก็บไว้ใน reg. A) โปรแกรมที่เขียนด้วยรหัส Mnemonics เรียกว่า ภาษา Assembly และก่อนที่จะให้ CPU ทำงานตามโปรแกรมที่เขียนด้วยภาษา Assembly ได้ แต่ต้องเปลี่ยนให้เป็นภาษา Machine ก่อน โดยใช้ โปรแกรมแอสเซมเบลอร์
Flowchart โฟว์ชาร์ต
โฟว์ชาร์ตใช้แสดงลักษณะและอัลกอริทึมของโปรแกรมในรูปแบบผังกราฟที่เหมาะสม เป็นการลำดับงานแบบเป็นขั้นตอน โฟว์ชาร์ต มีความสำคัญมากในการทำ Program-Debugging ซึ่งสามารถใช้ทำความเข้าใจอัลการิทึมที่แท้จริงของผู้เขียนโปรแกรม สำหรับผู้อื่นได้ดี และไม่เกิดการซ้ำซ้อนในการเขียนโปรแกรม เช่น
ถ้าข้อมูลอยู่ในหน่วยความจำของระบบ การกำหนดตำแหน่งของข้อมูลเพื่อเรียกข้อมูลออกมานั้นทำได้โดยใช้รีจิสเตอร์ สำหรับใช้งานทั่วไปเข้าช่วยเก็บค่าต่าง ๆ ที่จะคำนวณตำแหน่งที่แท้จริงของข้อมูลค่าต่าง ๆ ที่เก็บไว้ได้แก่
1. Base Address เก็บไว้ใน 24 บิทของรีจิสเตอร์ กำหนดหมายเลขด้วย B Field (4 บิท) ในคำสั่ง เป็นตำแหน่งที่กำหนดจุดเริ่มต้นของโปรแกรม จะต้องกำหนดค่าให้ก่อนที่จะ Execute ซึ่งขึ้นอยู่กับที่ว่างในหน่วยความจำขณะนั้น
2. Displacement เก็บไว้ใน 12 บิทของคำสั่ง หรือ D Field จะกำหนดตำแหน่งของคำสั่งอ้างอิงกับจุดเริ่มต้นของโปรแกรม กำหนดได้ถึง 4095 ไบท์ ( 2 กำลัง 12 - 1 ซึ่ง 12 ก็คือจำนวนบิทของเลขฐาน 2) จึงใช้ชี้ตำแหน่งได้ 4096 ไบท์ คือ displace จาก Base 0 – 4095 ไบท์
ตำแหน่งที่แท้จริง = ค่าใน Base Register + Displacement
เหตุผลที่ต้องกำหนดตำแหน่งที่ในหน่วยความจำของระบบด้วย Base & Displacement ก็เพราะคอมพิวเตอร์ทำงานในสภาพ Multiprogramming จะมีโปรแกรมหลายโปรแกรมอยู่ในหน่วยความจำพร้อม ๆ กัน โปรกแรกมที่จะนำเข้ามาในระบบจะต้องสามารถย้ายตำแหน่งไปมาได้ (Relocate) โปรแกรมที่เข้ามาจะกำหนดตำแหน่งใหม่ได้เสมอ และคำสั่งที่ใช้วิธีนี้ความยาวของคำสั่งจะสั้นกว่าการกำหนดตำแหน่งโดยตรง 

ตัวอย่าง source code
*********** BASIC CODE *************
loop:
high portb.0
pause 100
low portb.0
pause 100
goto loop
end ********* ASM CODE *************
LIST P = 16F84
ERRORLEVEL -302
#INCLUDE P16F84.INC
R1 EQU 0X0C
R2 EQU 0X0D

ORG 0X00
BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
CLRF PORTB

LOOP BSF PORTB,0
CALL DELAY

BCF PORTB,0
CALL DELAY
GOTO LOOP

DELAY MOVLW 0XFF
MOVWF R1
MOVWF R2
DEC1 DECFSZ R1
GOTO DEC1
DEC2 DECFSZ R2
GOTO DEC1
RETURN
__CONFIG _XT_OSC & _PWRTE_OFF & _WDT_OFF & _CP_OFF
;Crystal Oscillator,Power-up Timer OFF
;Watch Dog Timer OFF,Code Protect OFF
__IDLOCS 2000
END 


5. โครงสร้างโปรแกรมภาษาจาวา 

public class ชื่อคลาส
{
      public static void main(String[] agrs)
     {
          ประโยคคำสั่งต่างๆ ของโปรแกรม;
          ..................................................;

     }
}

ตัวอย่างโปรแกรมภาษาจาวา
ไฟล์ Example.java
class Example
{
     public static void main(String[] args)
    {
          String dataname = “Java Language“;
          System.out.println(“My name is OAK“);
          System.out.println(“OAK is a “ + dataname +“. “);
     }
}

6.ภาษาโคบอล 
ภาษาโคบอล (COBOL programming language) เป็นภาษาโปรแกรมระดับสูงภาษาหนึ่งที่อยู่มาอย่างยาวนาน COBOL ย่อมาจาก Common Business Oriented Language เป็นภาษาที่นิยมนำไปใช้ทางธุรกิจ ถูกพัฒนาขึ้นเมื่อ ค.ศ. 1959 โดยนักคอมพิวเตอร์กลุ่มหนึ่งที่เรียกตัวเองว่า Conference on Data Systems Languages (CODASYL) และตั้งแต่ปี ค.ศ. 1959 ภาษาโคบอลมีการแก้ไขและปรับปรุงอยู่ตลอด ดังนั้น เพื่อขจัดปัญหาความแตกต่างของตัวภาษาโคบอลในแต่ละเวอร์ชัน สถาบันมาตรฐานแห่งชาติอเมริกัน (ANSI) จึงได้พัฒนามาตรฐานกลางขึ้นมาในปี ค.ศ. 1968 เป็นที่รู้จักกันในนามของ ANS COBOL ต่อมาเมื่อ ปี ค.ศ. 1974 ทาง ANSI ได้นำเสนอ ANS COBOL รุ่นใหม่ที่มีคุณสมบัติที่ดีกว่ารุ่น 1968 และในปี ค.ศ. 1985 ANSI ก็นำเสนออีกรุ่นหนึ่งที่มีคุณสมบัติมากกว่ารุ่นปี 1974
รูปแบบภาษาโคบอลแบ่งออกเป็น 4 ดิวิชั่น คือ
1.             Identification division การกำหนดชื่อโปรแกรมและชื่อผู้เขียน
2.             Environment division การอธิบายเกี่ยวกับคอมพิวเตอร์
3.             Data division การอธิบายเกี่ยวกับการประมวลผลข้อมูล
4.             Procedure division การอธิบายเกี่ยวกับขั้นตอนการประมวลผล




                                                                       จบครับ



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

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