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

โครงสร้างโปรแกรมภาษา


1. โครงสร้างของโปรแกรมภาษาปาสคาล
โปรแกรมภาษาปาสคาลประกอบด้วยส่วนสำคัญต่าง ๆ  3  ส่วนคือ
1.  ส่วนหัวโปรแกรม  (PROGRAM  HEADING)
2.  ส่วนประกาศ  (PROGRAM  DECLARATIONS)
3.  ส่วนคำสั่งการทำงาน  (PROGRAM  STATEMENTS)
ส่วนหัว  (HEADING)
          ประกอบด้วยประโยคเพียงประโยคเดียว  ดังรูปแบบ
             PROGRAM  ชื่อโปรแกรม;
          ชื่อโปรแกรม  เป็นไปตามกฎเกณฑ์การตั้งชื่อของปาสคาล  และจะต้องไม่ซ้ำกับชื่ออื่น ๆ ภายในโปรแกรม
          การกำหนดชื่อต้องเป็นไปตามกฎเกณฑ์ดังต่อไปนี้
          1.  ขึ้นต้นด้วยตัวอักษร  แล้วตามด้วยตัวอักษร  หรือตัวเลข  หรือเครื่องหมายขีดล่าง  เท่านั้น  ตัวอักษรนี้จะเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กก็จะมีความหมายเช่นเดียวกัน
          2.  มีความยาวไม่เกิน  127  ตัวอักขระ  แต่ตัวแปรภาษาสามารบอกความแตกต่างของชื่อแต่ละตัวได้เฉพาะอักขระ  8  ตัวแรกเท่านั้น สำหรับภาษาปาสคาลจะบอกความแตกต่างได้ถึง  60  ตัวอักขระ
          3.  ชื่อไม่ตรงกับคำสงวน  (RESERVE  WORDS)  ในภาษาปาสคาล  คำสงวน  หมายถึงคำที่มีกฎเกณฑ์การใช้และมีความหมายเฉพาะที่แน่นอน  เช่น  BEGIN…END,IF.. THEN….เป็นต้น
ตัวอย่าง  PROGRAM  TAX;{โปรแกรมคิดภาษี}
               {}  ข้อความที่อยู่ในสัญลักษณ์นี้  หมายถึง หมายเหตุหรือข้อความอธิบายไม่มีผลต่อโปรแกรม
ส่วนประกาศ  (DECLARATION  PART)
          โปรแกรมภาษาปาสคาลแตกต่างจากบางภาษาที่ต้องมีการกำหนดชื่อและชนิดของตัวแปรที่จะใช้ในโปรแกรมเสียก่อน  ส่วนประกาศโปรแกรมได้แก่บริเวณตั้งแต่หลังส่วนหัวไปจนถึงข้อความก่อนคำว่า  BEGIN  ของโปรแกรมหลัก  ส่วนประกาศโปรแกรมจะประกอบด้วย
1.      ส่วนประกาศเลเบล  LABAL
2.      ส่วนประกาศชื่อค่าคงที่  CONST
3.     ส่วนกำหนดแบบข้อมูล  TYPE
4.     ส่วนประกาศตัวแปร  VAR
5.     ส่วนโปรแกรมย่อย  PROCEDURE/FUNCTION
          ส่วนใดไม่ได้ใช้ก็ไม่ต้องประกาศ
ส่วนคำสั่งการทำงาน (STATEMENTS)
          ส่วนคำสั่งของโปรแกรม  จะอยู่ต่อจากส่วนประกาศ  ขึ้นต้นด้วย  BEGIN  และจบด้วย  END.  ช่วงระหว่าง 2 คำนี้จะเป็นคำสั่ง     จะต้องแยกแต่ละคำสั่งออกจากกันด้วย;  โดยคำสั่งแต่ละคำสั่งจะมีผลให้มีการทำงานอย่างใดอย่างหนึ่ง  
           BEGIN
                   คำสั่งที่ 1;
                   คำสั่งที่ 2
                  คำสั่งที่ N; 
           END.
 2.โครงสร้างของภาษา C
ในโปรแกรมที่พัฒนาด้วยภาษา ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน 1. ส่วนของเฮดเดอร์ไฟล์ (HEADER FILE OR PROCESSING DIRECTIVE) ส่วนนี้จะมีจุดสังเกตที่สำคัญคือจะขึ้นต้นด้วยเครื่องหมาย เสมอ การทำงานของคอมไพเลอร์จะทำงานในส่วนนี้เป็นส่วนแรก ในส่วนนี้เป็นส่วนที่เก็บไลบรารีมาตรฐานของภาษา ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมในขณะแปลภาษาโปรแกรม (COMPILE) โดยใช้คำสั่ง # INCLUDE ซึ่งสามารถเขียนได้ รูปแบบ คือ 
รูปแบบที่ 1 : #INCLUDE<HEADERNAME> 
รูปแบบที่ 2 : #INCLUDE “HEADERNAME” โดยที่ HEADERNAME เป็นชื่อของ HEADER FILE ทั้งสองแบบนี้มีความแตกต่างกันคือ แบบ <…..> คอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์จากไลบรารีของภาษา Cเพียงที่เดียวเท่านั้น ส่วนที่ใช้เครื่องหมาย “……” คอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์จากไลบรารีที่เก็บSOURCE CODE ของเราก่อน ถ้าหากไม่เจอจะไปค้นหาที่ไลบรารีของภาษา เฮดเดอร์ไฟล์จะมีนามสกุลเป็น .เท่านั้น เฮดเดอร์ไฟล์ที่สำคัญที่ขาดไม่ได้คือ STDIO.H 2. ส่วนของตัวแปร GLOBAL เป็นส่วนประกาศตัวแปรที่สามารถใช้ได้ทั้งโปรแกรม ส่วนนี้จะมีหรือไม่มีก็ได้ 3. ส่วนของฟังก์ชัน (FUNCTION)เป็นส่วนการทำงานของโปรแกรม ในโครงสร้างภาษา จะบังคับให้มีอย่างน้อย ฟังก์ชันคือ ฟังก์ชันMAIN() ซึ่งเป็นฟังก์ชันเริ่มการทำงานของโปรแกรม (คอมไพเลอร์จะประมวลผลที่ฟังก์ชัน MAIN() เป็นฟังก์ชันแรก) โดยในขอบเขตของฟังก์ชันจะเริ่มต้นด้วยเครื่องหมาย และสิ้นสุดด้วยเครื่องหมาย } 4. ส่วนของตัวแปร LOCAL เป็นส่วนประกาศตัวแปรที่สามารถใช้ได้เฉพาะภายในฟังก์ชันของตนเองเท่านั้น ส่วนนี้จะมีหรือไม่มีก็ได้ 5. ส่วนของตัวโปรแกรม เป็นส่วนคำสั่งการทำงานของโปรแกรม โดยที่คำสั่งแต่ละคำสั่งจะต้องจบด้วยเครื่องหมาย เสมอ 6. ส่วนของตัวส่งค่ากลับ เป็นส่วนของการส่งค่าข้อมูลกลับเมื่อฟังก์ชันจบการทำงาน โดยค่าที่ส่งกลับจะต้องเป็นค่าที่มีชนิดของข้อมูลตรงกับชนิดของข้อมูลที่ฟังก์ชันคืนค่ากลับ (RETURN TYPE) ในกรณีไม่ต้องการให้มีการส่งค่ากลับ สามารถกำหนดได้โดยใช้คีย์เวิร์ด VOIDตัวอย่าง #INCLUDE<STDIO.H> #INCLUDE<CONIO.H> VOID MAIN(VOID) { PRINTF(“WELCOME TO C PROGRAMMING”); GETCH();
3.โครงสร้างโปรแกรมภาษา BASIC
ภาษาเบสิก ( 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
คำสั่งในภาษาแอสแซมบลี แบ่งออกเป็น ส่วน ส่วนแรกกำหนดการทำงาน เรียกว่า OP-CODE (OPERATION CODE) ส่วนที่สองเรียกว่า OPERAND มีหน้าที่กำหนดเกี่ยวกับข้อมูล OP-CODE อยู่ในไบท์แรกของคำสั่งภาษาแอสแซมบลีแทนด้วยตัวอักษร ส่วนภาษาเครื่องแทนด้วยเลขฐาน สองบิทแรก ในไบท์นี้เป็นตัวกำหนดความยาวของคำสั่งนั้นด้วย เมื่อดูเฉพาะบิทที่ และ จะบอกความยาวของคำสั่งนั้น ๆ ได้ดังนี้ บิท 0 1 ความยาว ชนิด 0 0 0 1 1 0 1 11 HW 2 HW 2 HW 3 HWRR RX RS / SI / S / RX SSวิธีช่วยจำ - เอาเลขในบิทที่ และ รวมกันแล้วบวกอีก จะเป็นความยาวของคำสั่งนั้น ๆ มีหน่วยเป็น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 นี้ แบ่งชนิดของคำสั่งได้เป็น ประเภท คือ 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) ซึ่งยาว ไบท์ และเก็บอยู่ภายในตัวคำสั่งนั้นเลย5. RS (REGISTER TO STORAGE) OPERAND สองตัวแรกอยู่ในรีจิสเตอร์ ตัวหลังสุดอยู่ในหน่วยความจำของระบบ 6. S (STORAGE) OPERAND มีอยู่ตัวเดียวอยู่ในหน่วยความจำของระบบ การกำหนดตำแหน่งของข้อมูล การกำหนดตำแหน่งของข้อมูล เพื่อเรียกข้อมูลออกมาใช้นั้น ถ้าข้อมูลอยู่ในรีจิสเตอร์ กำหนดด้วยหมายเลของรีจิสเตอร์ รีจิสเตอร์ที่เก็บข้อมูลไว้ได้แก่ รีจิสเตอร์สำหรับใช้งานทั่วไป (หมายเลข0 – 15 ) รีจิสเตอร์สำหรับควบคุม (หมายเลข 0 – 15) รีจิสเตอร์สำหรับเลขทศนิยม (หมายเลข 0, 2, 4 และ6) โปรแกรม จะถูกเก็บไว้ในหน่วยความจำ ซึ่งอยู่ในรูปแบบของเลขไบนารี่ที่เรียกว่าภาษา MACHINE ซึ่งเป็นภาษาที่สามารถ ติดต่อให้คอมพิวเตอร์ เข้าใจได้ ภาษา MACHINE นี้จะจัดให้อยู่ในรูปแบบที่เป็นเลขฐานสิบหก (HEX) เช่น คำสั่ง บิต 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 +“. “);
     }
}


หมายเหตุ 
COMPILE : JAVAC EXAMPLE.JAVA จะได้ไฟล์ EXAMPLE.CLASS

RUN         : JAVA EXAMPLE

OUTPUT    : MY NAME IS OAK
                  OAK IS A JAVA LANGUAGE
6.โครงสร้างโปรแกรมภาษา COBOL

DENTIFICATION DIVISION
  • ชื่อโปรแกรม
  • ชื่อผู้เขียนโปรแกรม
  • วันที่เขียนโปรแกรม
ENVIRONMENT DIVISION
  • รายละเอียดของตัวเครื่อง(CONFIGURATION SECTION)
  • รายละเอียดสิ่งที่ใช้ในการบันทึกข้อมูล(INPUT/OUTPUT SECTION)
DATA DIVISION
  • รายละเอียดของแฟ้มข้อมูล(FILE SECTION)
  • รายละเอียดของข้อมูลอื่น ๆ(WORKING-STORAGE SECTION)
  • รายละเอียดของข้อมูลที่รับมาจากโปรแกรมอื่น ๆ(LINKAGE SECTION)
  • รายละเอียดของข้อมูลที่ให้แสดงบนจอภาพ
PROCEDURE DIVISION
  • PARAGRAPH 1
  • PARAGRAPH 2
  • PARAGRAPH 3-------[STATEMENT I;I' = 1(N)1
ไดอะแกรมแสดง โครงสร้างโปรแกรมภาษาโคบอล จากไดอะแกรม ที่แสดงโครงสร้างของโปรแกรมภาษาโคบอล
จะเห็นว่า ได้แบ่งตัวโปรแกรมออกเป็น 4 ส่วน ในแต่ละส่วนเราเรียกว่า DIVISION
ในแต่ละ DIVISION มีชื่อดังต่อไปนี้
  • IDENTIFICATION DIVISION.
  • ENVIRONMENT DIVISION.
  • DATA DIVISION.
  • PROCEDURE DIVISION.
IDENTIFICATION DIVISION 
เป็น DIVISION หรือส่วนที่ใช้ในการแสดงรายละเอียดของตัวโปรแกรม
 ชื่อของผู้เขียนโปรแกรม วันที่เริ่มเขียนโปรแกรม 
วันที่แปลโปรแกรม(COMPILER) และที่สำคัญบอกว่าโปรแกรมนี้ชื่ออะไร
ENVIRONMENT DIVISION 
เป็น DIVISION หรือส่วนที่ใช้ในการแสดงรายละเอียดของตัวโปรแกรม
เกี่ยวกับตัวเครื่อง คอมพิวเตอร์ที่ใช้ในการเขียนโปรแกรม หรือสั่งให้โปรแกรมทำงาน 
 และบอกให้ทราบชนิดของ INPUT/OUTPUT DEVISION ที่จะนำมาใช้กับโปรแกรมนี้
DATA DIVISION 
เป็น DIVISION หรือส่วนที่ใช้ในการแสดงรายละเอียดลักษณะของข้อมูลทุก ๆ ตัวที่นำมาเกี่ยวข้องกันกับโปรแกรมนี้ทั้งหม
ไม่ว่าจะเป็นข้อมูลที่เป็ฯINPUT หรือ OUTPUT หรือผลลัพธ์ที่เกิดจากการประมวลผล
 หรือผลลัพธ์จากการทำงานของโปรแกรมนี้ โดยจะแสดงโครงสร้างของข้อมูลอย่างละเอียด
PROCEDURE DIVISION 
เป็น DIVISION หรือส่วนที่ใช้ลำดับขั้นตอนของการทำงาน หรือของการประมวลผลข้อมูลโดย
โปรแกรมชุดนี้และใน DIVISION นี้เราจะเขียนขึ้นตามผังโปรแกรมที่เราได้เขียนขึ้นในขั้นตอนแรกก่อนลงมือ 
 เขียนโปรแกรมนี้ ภายใน DIVISION นี้จะแตกต่างไปจาก 3 DIVISION แรกที่ได้กล่าวมา
 โดยจะมีการคำนาณ หรือมีคำสั่งต่าง ๆ ที่สั่งให้เครื่องคอมพิวเตอร์ทำงาน 
 เพื่อให้ได้ผลลัทธ์ออกมาตามที่เราต้องการ นอกจากภาษาโคบอลได้ ถูกจัดแบ่งออกเป็นส่วนใหญ่ ๆ
 (DIVISION) แล้ว ภายในแต่ละ DIVISION ยังถูกแบ่งออกเป็น SECTION ย่อย ๆ ได้อีก เช่น 
 ภายใน ENVIRONMENT DIVISIONจะต้องมีอย่างน้อย 2 SECTION 
คือ CONFIGURATION SECTION และ INPUT-OUTPUT SECTION 
และภายใน DATA DIVISION จะมี FILE SECTION และ WORKING-STORAGE SECTION
 ส่วนภายในPROCEDURE DIVISION จะมี SECTION เท่าไหร่ก็ได้ 
 หรือภายในส่วนของ IDENTIFICATION DIVISION ไม่มี SECTION อยู่เลย
นอกจากนี้ภายในแต่ ละ SECTION จะมี PARAGRAPH แตกย่อยลงไปอีก 
ซึ่ง PARAGRAPH เป็นส่วนประกอบภายใน SECTION ในทุก SECTION และภายใน SECTION 
จะต้องมีPARAGRAPH อย่างน้อย 1 PARAGRAPH แต่ถ้าหากว่าภายใน DIVISION ใดไม่ได้
แบ่งส่วนประกอบออกเป็น SECTION ให้ถือว่า PARAGRAPH นั้นเป็นส่วนประกอบโดยตรงของภายในDIVISION นั้น
SENTENCE เป็นรูปของประโยคภายในของถาษาโคบอล
 ซึ่งมีลักษณะคล้ายกับประโยคภายในภาษาอังกฤษ ซึ่งภายในประโยค
 หรือ SENTENCE นี้ต้องมีคำกริยา (VERB) อย่างน้อย 1 คำ SENTENCE 
ภายในภาษาโคบอลนั้นจะต้องจบลงด้วย"."(PERIOD)
STATEMENT คือกลุ่มของตัวเลข กลุ่มของตัวอักษร และรวมถึงสัญลักษณ์พิเศษต่าง ๆ 
 ซึ่งนำมาประกอบกันให้ได้ความหมายเป็นคำสั่งตามรูปแบบเงื่อนไขที่ภาษากำหนด
 ขึ้นให้ใช้(RESERVED WORDS) โดยอาจจะมีการผสมอักระกันเป็น 1 STATEMENT แล้วนำมาผูกกันเป็นกลุ่มของคำสั่ง 
 เพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงานให้ได้ผลลัพธ์ตามที่ต้องการ
CLAUSE คือกลุ่มของ CHARACTERS (อักขระ) และ WORDS เพื่อใช้สำหรับอธิบายถึง ENTRY ภายในโปรแกรมนั้น ๆ
WORD คือกลุ่มของ CHARACTERS ซึ่งจะต้องมีอย่างน้อย 1 ตัวอักขระขึ้นไป 
ซึ่งโครงสร้างของ WORD ได้อธิบายไว้แล้วข้างต้น
CHARACTER ตัวอักขระ เป็นหน่วยที่เล็กที่สุดในโปรแกรมภาษาทางคอมพิวเตอร์
 ดูรายละเอียดภายในหัวข้อเรื่อง สัญลักษณ์ในภาษา COBOL

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

ระบบเลขฐาน



1.ตารางเลขฐาน


2.แปลงเลขฐานอื่นๆให้เป็นฐานสิบ
          2.1) 1111001012 = 969
          2.2) 2FBC16 = 12220
          2.3) 2868 = 198
3.แปลงฐานสิบรหัสนักศึกษาสองตัวหลัง
          2.1) 17 = 100012
          2.2) 17 = 218
          2.3) 17 = H16

วันพุธที่ 31 กรกฎาคม พ.ศ. 2556

โครงสร้างระบบคอมพิวเตอร์ และโครงสร้างของระบบปฏิบัติการ


ใบงานที่ 9
โครงสร้างระบบคอมพิวเตอร์ และโครงสร้างของระบบปฏิบัติการ

1.การขัดจังหวะ หรือการอินเตอร์รัปต์ หมายถึงอะไร จงอธิบาย
=การติดต่อเพื่อรับส่งข้อมูลกันระหว่างอุปกรณ์ภายนอกต่างๆของคอมพิวเตอร์ เช่น จอภาพ, แป้นพิมพ์เครื่องพิมพ์, เม้าส์ และอื่ นๆ กับ ไมโครโปรเซสเซอร์ ซึ่งจะมีการติดต่อกันอยู่เสมอๆ

2.จงเปรียบเทียบการอินเตอร์รัปต์ กับการดำเนินชีวิตของมนุษย์โดยทั่วไป ว่ามีความเกี่ยวข้องกันอย่างไร
     =การติดต่อเพื่อรับส่งข้อมูลในระบบคอมพิวเตอร์ก็เหมือนกันกับการดำรงชีวิตของมนุษย์ในแต่ละวัน มนุษย์จะติดต่อสื่อสารกันในชีวิตประจำวัน ไม่ว่าจะเป็น ติดต่อกันเพื่อทำการค้าขาย พูดคุยกัน อย่างนี้เป็นต้น

3.สาเหตุที่การป้องกันฮาร์ดแวร์ มีบทบาทสำคัญต่อระบบปฏิบัติการที่รองรับหลายๆ งาน อยากทราบว่าเป็นเพราะอะไร จงอธิบาย
=เพื่อป้องกันการเรียกใช้อุปกรณ์รับ-ส่งข้อมูลแบบผิด ๆ หรืออ้างอิงตำแหน่งในหน่วยความจำที่อยู่ในส่วนของระบบปฏิบัติการ หรือไม่คืน การควบคุมซีพียูให้ระบบซึ่งมีการกำหนดว่าคำสั่งเรียกใช้อุปกรณ์รับ-ส่งข้อมูลเป็นคำสั่งสงวน (Privileged Instruction) ผู้ใช้ไม่สามารถเรียกใช้อุปกรณ์เองได้ ต้องให้ระบบปฏิบัติการเป็นผู้จัดการให้

4.จงเปรียบเทียบความแตกต่างระหว่างโหมดการทำงานของผู้ใช้ กับโหมดการทำงานของระบบมาให้พอเข้าใจ
=ผู้ใช้ก็จะทำงานเหมือนกับคอมพิวเตอร์ เราจะรับข้อมูลจาก ตา หู จมูก ปาก แล้วก็สมองจะทำการประมวลผลสิ่งที่เราดู ได้ยิน ได้กลิ่น หรือรับรส แล้วก็จะแสดงจากทางอาการหรือคำพูด ก็เหมือนคอมพิวเตอร์ที่รับข้อมูลจากเมาส์ คีย์บอร์ด แล้ว CPU ก็ทำการประมวลผล จากนั้นก็แสดงผลในรูปของเสียงหรือภาพ

5.ระบบปฏิบัติการจะมีการป้องกันอินพุต และเอาท์พุตอย่างไร จงอธิบาย
     =กลไกในการอ้างอิงหน่วยความจำหลัก ป้องกันกระบวนการให้ใช้หน่วยความจำหลักได้แต่ในส่วนของกระบวนการนั้นเท่านั้น เช่น การไม่อนุญาตให้ผู้ใช้ระบบทำการรับส่งข้อมูลเองโดยตรง เพื่อป้องกันความผิดพลาดในการใช้งานของอุปกรณ์รับส่งข้อมูล

6.ระบบปฏิบัติการจะมีการป้องกันหน่วยความจำอย่างไร จงอธิบาย
     =กลไกในการอ้างอิงหน่วยความจำหลัก ป้องกันกระบวนการให้ใช้หน่วยความจำหลักได้แต่ในส่วนของกระบวนการนั้นเท่านั้น

7.ระบบปฏิบัติการจะมีการป้องกันซีพียูอย่างไร จงอธิบาย
=ระบบต้องมีการป้องกัน ความผิดพลาดที่เกิดจากกระบวนการหนึ่งไปกระทบอีกกระบวนการหนึ่ง โดยสร้างกลไกบางอย่างเพื่อป้องกันแฟ้มข้อมูล, หน่วยความจำส่วนหนึ่งหรือหน่วยประมวลผลกลาง




8.โครงสร้างของระบบปฏิบัติการประกอบด้วยกี่ส่วน อะไรบ้าง
=ระบบปฏิบัติการประกอบด้วย 2 ส่วน คือ
1. เคอร์เนล (Kernel) หมายถึง ส่วนกลางของระบบปฏิบัติการ ซึ่งเป็นส่วนแรกที่ถูกเรียกมาใช้งาน และจะฝังตัวอยู่ในหน่วยความจำหลักของระบบ ดังนั้นเคอร์เนลจึงต้องมีขนาดเล็ก โดยเคอร์เนลจะมีหน้าที่ในการติดต่อ และควบคุมการทำงานของฮาร์ดแวร์ และโปรแกรมใช้งาน (Application Programs)
2.โปรแกรมระบบ (System Programs) คือ ส่วนของโปรแกรมการทำงานของระบบปฏิบัติการ ซึ่งมีหน้าที่ติดต่อกับผู้ใช้ และผู้จัดการระบบ เช่น Administrator

9.ในการจัดการกับโปรเซส ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
=การจัดการงานที่เราจะทำการประมวลผล ไม่ว่าจะเป็นการประมวลผลแบบการแบ่งเวลา หรืออื่นๆ โดยแต่ละโปรเซสจะมีการกำหนดการใช้ทรัพยากรที่แน่นอน

10.ในการจัดการกับหน่วยความจำ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
=การจัดการหน่วยความจำจัดเป็นหน้าที่หนึ่งของระบบปฏิบัติการ หน่วยความจำนี้เป็นองค์ประกอบหนึ่งในการพิจารณาขีดความสามารถของเครื่องคอมพิวเตอร์ด้วย  กล่าวคือถ้าหากคอมพิวเตอร์มีความจำมาก  นั้นหมายถึงขีดความสามารถในการทำงานก็จะเพิ่มขึ้นโปรแกรมที่มีสลับซับซ้อนและมีสมรรถนะสูง มักจะเป็นโปรแกรมที่ต้องการหน่วยความจำสูง แต่ก็เป็นที่ทราบแล้วว่าหน่วยความจำมีราคาแพง ดังนั้นระบบปฏิบัติการที่ดีจะต้องมีการจัดการหน่วยความจำที่มีอยู่จำกัด ให้สามารถรองรับงานต่างๆ ที่จำเป็นต้องใช้หน่วยความจำจำนวนมากได้

11.ในการจัดการกับแฟ้มข้อมูล ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
=เป็นการทำงานของระบบปฏิบัติการโดยทำหน้าที่ในการโอนถ่ายข้อมูลลงไปจัดเก็บในอุปกรณ์บันทึกข้อมูล

12.ในการจัดการกับอุปกรณ์อินพุต/เอาต์พุต ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
=ระบบปฏิบัติการมีหน้าที่ในการรับข้อมูล และแสดงข้อมูลผ่านทางอุปกรณ์ต่างๆ โดยข้อมูลที่ส่งไปยังอุปกรณ์เหล่านี้ จะผ่านสายส่งข้อมูล

13.ในการจัดการกับหน่วยความจำสำรอง เช่น ดิสก์ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
=ระบบปฏิบัติการทำหน้าที่โอนถ่ายข้อมูลไปจัดเก็บในอุปกรณ์บันทึกข้อมูล

14.จงสรุปงานบริการของระบบปฏิบัติการมาพอเข้าใจ
=ระบบปฏิบัติการจะเป็นเหมือนตัวกลางที่เชื่อมต่อระหว่างคอมพิวเตอร์กับผู้ใช้งาน จะรับข้อมูลทางเมาส์หรือคีย์บอร์ด จากนั้นจะส่งไปยัง CPU เพื่อให้ประมวลผลออกมา แสดงผลจะอยู่ในรูปของเสียงหรือภาพ

15.ในการติดต่อระหว่างโปรเซสกับระบบปฏิบัติการ จะเกี่ยวข้องกับกลุ่มงานใดบ้าง จงอธิบาย
=สถานะของโปรเซส (Process Status)ก็จะมี  สถานะเริ่มต้น (New Status) ,สถานะพร้อม (Ready Status) ,สถานะรัน (Running Status),สถานะรอ (Wait Status),สถานะบล็อก (Block Status)และสถานะสิ้นสุด (Terminate Status)


วันพฤหัสบดีที่ 4 กรกฎาคม พ.ศ. 2556

Blue Screen of Dead จอสีฟ้าตัวหนังสือสีขาว


Blue Screen of Dead จอสีฟ้าตัวหนังสือสีขาว
สาเหตุและการแก้ไข Blue Screen
1. (Stop code 0X000000BE) Attempted Write to Read only Memory
สาเหตุและแนวทางแก้ไข: อาการนี้เกิดจากการลง driver หรือ โปรแกรม หรือ service ที่ผิดพลาด เช่น ไฟล์บางไฟล์เสีย ไดร์เวอร์คนละรุ่นกัน ทางแก้ไขให้ uninstall โปรแกรมตัวที่ลงก่อนที่จะเกิดปัญหานี้ ถ้าเป็นไดร์เวอร์ก็ให้ทำการ roll back ไดร์เวอร์ตัวเก่ามาใช้ หรือ หาไดร์เวอร์ที่ล่าสุดมาลง (กรณีที่มีใหม่กว่า ;) ถ้าเป็นพวก service ต่างๆที่เราเปิดก่อนเกิดปัญหาก็ให้ทำการปิด หรือ disable ซะ
2. (Stop code 0X000000C2) Bad Pool Caller
สาเหตุและแนวทางแก้ไข: ตัวนี้จะคล้ายกับตัวข้างบน แต่เน้นที่พวก Hardware คือเกิดจากอัพเกรดเครื่องพวก Hardware ต่าง เช่น ram, harddisk การ์ดต่างๆ ไม่ compatible กับ XP ทางแก้ไขก็ให้เอาอุปกรณ์ที่อัพเกรดออก ถ้าจำเป็นต้องใช้ก็ให้ลงไดร์เวอร์ หรือ อัพเดท firmware ของอุปกรณ์นั้นใหม่ และคำเตือนสำหรับการจะอัพเดท ให้ปิด anti-virus ด้วยนะครับ เดียวมันจะยุ่งเพราะพวกโปรแกรม anti-virus มันจะมองว่าเป็นไวรัส
3. (Stop code 0X0000002E) Data Bus Error
สาเหตุและแนวทางแก้ไข: อาการนี้เกิดจากการส่งข้อมูลที่เรียกว่า BUS ของฮาร์ดแวร์เสียหาย ซึ่งได้แก่ ระบบแรม, Cache L2 ของซีพียู, เมมโมรีของการ์ดจอ, ฮาร์ดดิสก์ทำงานหนักถึงขั้น error (ร้อนเกินไป ;) และเมนบอร์ดเสีย
4. (Stop code 0X000000D1) Driver IRQL Not Less or Equal
สาเหตุและแนวทางแก้ไข: อาการไดร์เวอร์กับ IRQ (Interrupt Request) ไม่ตรงกัน การแก้ไขก็เหมือนกับ error ข้อที่ 1
5. (Stop code 0X0000009F) Driver Power State Failure
สาเหตุและแนวทางแก้ไข: อาการนี้เกิดจาก ระบบการจัดการด้านพลังงานกับไดรเวอร์ หรือ service ขัดแย้งกัน เมื่อคุณให้คอมทำงานแบบ"Hibernate" แนวทางแก้ไข ถ้าวินโดวส์แจ้ง error ไดร์เวอร์หรือ service ตัวไหนก็ให้ uninstall ตัวนั้น หรือจะใช้วิธี Rollback driver หรือ ปิดระบบจัดการพลังงานของวินโดวส์ซะ
6. (Stop code 0X000000CE) Driver Unloaded Without Cancelling Pending Operations
สาเหตุและแนวทางแก้ไข: อาการไดร์เวอร์ปิดตัวเองทั้งๆ ทีวินโดวส์ยังไม่ได้สั่ง การแก้ไขให้ทำเหมือนข้อ 1
7. (Stop code 0X000000F2) Hardware Interrupt Storm
สาเหตุ และแนวทางแก้ไข: อาการที่เกิดจากอุปกรณ์ฮาร์ดแวร์ เช่น USB หรือ SCSI controller จัดตำแหน่งกับ IRQ ผิดพลาด สาเหตุจากไดร์เวอร์หรือ Firmware การแก้ไขเหมือนกับข้อ 1
8. (stop code 0X0000007B) Inaccessible Boot Device
สาเหตุและแนวทางแก้ไข: อาการนี้จะมักเจอตอนบูตวินโดวส์ จะมีข้อความบอกว่าไม่สามารถอ่านข้อมูลของไฟล์ระบบหรือ Boot partitions ได้ ให้ตรวจฮาร์ดดิสก์ว่าปกติหรือไม่ สายแพหรือสายไฟที่เข้าฮาร์ดดิสก์หลุดหรือไม่ ถ้าปกติดีก็ให้ตรวจไฟล์ Boot.ini อาจจะเสีย หรือไม่ก็มีการทำงานแบบ Multi OS ให้ตรวจดูว่าที่ไฟล์นี้อาจเขียน Config ของ OS ขัดแย้งกัน อีกกรณีหนึ่งที่เกิด error นี้ คือเกิดขณะ upgrade วินโดวส์ สาเหตุจากมีอุปกรณ์บางตัวไม่ Compatible ให้ลองเอาอุปกรณ์ที่ไม่จำเป็นหรือคิดว่ามีปัญหาออก เมื่อทำการ upgrade วินโดวส์ เรียบร้อย ค่อยเอาอุปกรณ์ที่มีปัญหาใส่กลับแล้วติดตั้งด้วยไดร์ เวอร์รุ่นล่าสุด
9. (Stop code 0X0000007A) Kernel Data Inpage Error
สาเหตุและแนวทางแก้ไข: อาการนี้เกิดมีปัญหากับระบบ virtual memory คือวินโดวส์ไม่สามารถอ่านหรือเขียนข้อมูลที่ swapfile ได้ สาเหตุอาจเกิดจากฮาร์ดดิสก์เกิด bad sector, เครื่องติดไวรัส, ระบบ SCSI ผิดพลาด, RAM เสีย หรือ เมนบอร์ดเสีย
10. (Stop code 0X00000077) Kernel Stack Inpage Error
สาเหตุและแนวทางแก้ไข: อาการและสาเหตุเดียวกับข้อ 9
11. (stop code 0X0000001E) Kmode Exception Not Handled
สาเหตุและแนวทางแก้ไข: อาการนี้เกิดการทำงานที่ผิดพลาดของไดร์เวอร์ หรือ service กับ หน่วยความจำ และ IRQ ถ้ามีรายชื่อของไฟล์หรือ service แสดงออกมากับ error นี้ให้ทำการ uninstall โปรแกรมหรือทำการ Roll back ไดร์เวอร์ตัวนั้น ถ้ามีการแจ้งว่า error ที่ไฟล์ win32k สาเหตุเกิดจาก การ control software ของบริษัทอื่นๆ (Third-party) ที่ไม่ใช้ของวินโดวส์ ซึ่งมักจะเกิดกับพวก Networking และ Wireless เป็นส่วนใหญ่ Error นี้อาจจะเกิดสาเหตุอีกอย่าง นั้นคือการ run โปรแกรมต่างๆ แต่หน่วยความจำไม่เพียงพอ
12. (stop code 0X00000079) Mismatched Hal
สาเหตุและแนวทางแก้ไข: อาการนี้เกิดการทำงานผิดพลาดของ Hardware Abstraction Layer (HAL) มาทำความเข้าใจกับเจ้า HAL ก่อน HAL มีหน้าที่เป็นตัวจัดระบบติดต่อระหว่างฮาร์ดแวร์กับซอ ฟท์แวร์ว่าแอปพลิเคชั่นตัวไหนวิ่งกับอุปกรณ์ตัวไหนให ้ถูกต้อง ยกตัวอย่าง คุณมีซอฟท์แวร์ที่ออกแบบไว้ใช้กับ Dual CPU มาใช้กับเมนบอร์ดที่เป็น Single CPU วินโดว์ก็จะไม่ทำงาน วิธีแก้คือ reinstalls วินโดวส์ใหม่ สาเหตุอีกประการการคือ ไฟล์ที่ชื่อ NToskrnl.exe หรือ Hal.dll หมดอายุหรือถูกแก้ไข ให้เอา Backup ไฟล์ หรือเอา original ไฟล์ที่คิดว่าไม่เสียหรือเวอร์ชั่นล่าสุดก๊อปปี้ทับไฟล์ที่เสีย
13. (Stop code 0X0000003F) No More System PTEs
สาเหตุและแนวทางแก้ไข: อาการนี้เกิดจากระบบ Page Table Entries (PTEs) ทำงานโดย Virtual Memory Manager (VMM) ผิดพลาด ทำให้วินโดวส์ทำงานโดยไม่มี PTEs ซึ่งเป็นสิ่งจำเป็นสำหรับวินโดวส์ อาการนี้มักจะเกิดกับการที่คุณทำงานแบบ multi monitors

วิธีสํารองไดร์เวอร์ Backup Driver ก่อนลงวินโดว์ใหม่


วิธีสํารองไดร์เวอร์  Backup Driver ก่อนลงวินโดว์ใหม่
สำหรับคนที่เคยลงวินโดว์เองคงจะรู้จักโปรแกรมไดร์เวอร์ (Driver) เพราะเป็นซอฟแวร์ที่จะทำให้อุปกรณ์ต่างๆ ของคอมพิวเตอร์ทำงานได้ เช่น Sound card, VGA Card หรือ Webcam เป็นต้น แต่ถ้าเกิดวันดีคืนดีจำเป็นต้องลงวินโดว์ใหม่จริงๆ ซึ่งต้อง Format hard disk ข้อมูลหายหมด พอลงวินโดว์เสร็จแล้วแต่ไม่มี driver ถ้าจะหาดาวน์โหลดก็หายากเหลือเกินทางออกง่ายๆ ก็คือ ใช้ไดร์เวอร์เก่าที่เราใช้อยู่ คือเราต้องทำการสำรองออกมาเก็บไว้ตั้งแต่ก่อนที่จะฟอร์แม็ตเครื่องนั่นเอง
วิธีสํารองไดร์เวอร์ด้วย Driver Genius Professional
1.ก่อนอื่นดาวน์โหลดโปรแกรมมาติดตั้ง
2.เปิดโปรแกรมขึ้นมาดังรูป



- ถ้าเป็นตัวเต็มที่ซื้อ Lisence แนะให้กดปุ่ม Start Scan เพื่อทำการอัพเดทไดร์เวอร์เป็นรุ่นใหม่ล่าสุดก่อนที่จะ Backup
-แต่สำหรับตัวฟรี ให้ไปที่ Back up Drivers  แล้วโปรแกรมจะสแกนหาไดร์เวอร์




·
3.เมื่อสแกนเสร็จแล้วจะมีให้เลือก 3 หมวดคือ


- Currently Used Drivers (ไดร์เวอร์ที่ใช้อยู่ในตอนนี้)
- Original Windows Drivers (ไดร์เวอร์ที่ได้ติดตั้งไว้ทั้งหมด)
- Disconnected Device Drivers (ไดร์เวอร์ที่ไม่ได้เชื่อมต่ออุปกรณ์ไว้)

-สำหรับจะเลือก Currently Used Drivers แล้วก็ Next
-เลือกชิดของไฟล์สำรองได้ 4 แบบ คือ แบบปกติ, แบบไฟล์ซิป, ไฟล์ซิปแบบแตกไฟล์เองได้ และ เป็นไฟล์ติดตั้ง


-เลือกแบบ Default จะมีโฟลเดอร์แยกชนิดและมีไฟล์ในนั้น
-กด Browse เพื่อเลือกที่เก็บไฟล์ แล้ว Next 
-โปรแกรมจะทำการสำรอง อาจจะใช้เวลานาน
-ถ้าเสร็จแล้วจะขึ้นปุ่ม Finish