วันจันทร์ที่ 13 กุมภาพันธ์ พ.ศ. 2560

สรุปท้ายบทที่9 ข้อมูลชนิดโครงสร้างและการจัดการแฟ้มข้อมูล

สรุปท้ายบทที่9 ข้อมูลชนิดโครงสร้างและการจัดการแฟ้มข้อมูล



แฟ้มข้อมูล (File) คือ ที่เก็บข้อมูลถาวร  ก่อนหน้านี้  ข้อมูลที่เรารับค่าและแสดงผลจะถูกบันทึกอยู่ในที่เก็บข้อมูล ชั่วขณะเท่านั้น เมื่อโปรแกรมทำงานจบ ข้อมูลเหล่านั้นจะหายไป แต่ไฟล์ จะทำให้เราสามารถเก็บข้อมูลสำหรับงานของเราไว้ได้อย่างถาวร เมื่อใดที่เราต้องการเข้าถึงข้อมูลที่ถูกบันทึกไว้ เราจึงสั่งให้ โปรแกรมเข้าไปนำค่านั ้นๆ ออกมาใช้งาน แบ่งเป็ น 2 ประเภท 

– Text Files แฟ้มข้อมูลที่เก็บข้อมูลในรูปแบบตัวอักษร


 – Binary Files แฟ้มข้อมูลสำหรับงานของคอมพิวเตอร



File? (cont.) เราทำงานกับไฟล์ได้ทั้งการอ่าน หรือ เขียนไฟล์ หากเราสั่งให้โปรแกรมที่เราสร้างขึ้นมาอ่านไฟล์ ข้อมูลจะถูกอ่านขึ ้นมา เก็บไว้ในหน่วยความจำก่อนนำไปใช้ หากเราสั่งให้โปรแกรมที่เราสร้างขึ ้นมาเขียนไฟล์ ข้อมูลที่เราจะเขียนจะ ถูกเก็บไว้ในหน่วยความจำก่อนจะถูกเขียนลงไฟล์ เราเรียกหน่วยความจำที่พักนี้ว่า บัฟเฟอร์ (Buffer) 

Principle of Programming 4 Program Buffer File



1. ฟังก์ชัน fopen( ) เป็นฟังก์ชันที่ใช้ในการเปิดแฟ้มข้อมูลที่ต้องการได้ โดยที่ fopen เป็นฟังก์ชันมาตรฐานที่อยู่ในแฟ้ม stdio.h



2. ฟังก์ชัน fclose( ) เป็นฟังก์ชันที่ใช้ในการปิดแฟ้มข้อมูลเมื่อใช้งานแฟ้มข้อมูลเสร็จแล้ว เช่น เมื่อสิ้นสุดการบันทึก หรืออ่านข้อมูลจากแฟ้มข้อมูลใดจะต้องปิดแฟ้มข้อมูลนั้น เพื่อทำให้ข้อมูลที่ค้างอยู่ใน Buffer ของหน่วยความจำของเครื่อง ถูกนำไปเก็บไว้ในแฟ้มข้อมูล แต่ถ้าเราลืมใช้คำสั่ง fclose( ) เมื่อสิ้นสุดการทำงานของโปรแกรม ภาษา C จะปิดแฟ้มข้อมูลให้โดยอัตโนมัติ แต่อย่างไรก็ตามผู้เขียนโปรแกรมควรใช้ fclose( ) ทุกครั้งที่ไม่ใช้แฟ้มข้อมูลแล้วเพื่อสร้างลักษณะนิสัยที่ดีในการใช้งานแฟ้มข้อมูล



3.ฟังก์ชัน  fprintf( )  เป็นฟังก์ชันที่ใช้บันทึกข้อมูล  (write)  ลงแฟ้มโดยสามารถจัดรูปแบบข้อมูลที่ต้องการบันทึกได้คล้ายกับฟังก์ชัน  printf( )  แตกต่างกันตรงที่  printf( )  เป็นฟังก์ชันที่ใช้พิมพ์ผลลัพธ์ออกทางจอภาพแต่ฟังก์ชัน  fprintf( )  ใช้บันทึกข้อมูลลงแฟ้ม



 4.ฟังก์ชัน  fscanf( )  เป็นฟังก์ชันที่ใช้อ่านข้อมูล  (read)  ขึ้นจากแฟ้มข้อมูลแล้วนำมาเก็บไว้ในตัวแปรที่ต้องการได้โดยมีการทำงานคล้ายกับฟังก์ชัน  scanf( )  แตกต่างกันตรงที่ฟังก์ชัน  fscanf( )  เป็นฟังก์ชันที่ใช้อ่านข้อมูลจากแฟ้มข้อมูลแต่ฟังก์ชัน  scanf( )  เป็นฟังก์ชันที่ใช้รับข้อมูลจากคีย์บอร์ดแล้วไปเก็บไว้ในตัวแปรที่ต้องการ

สรุปท้ายบทที่8 การสร้างฟังก์ชันและตัวแปรชนิดพอยน์เตอร์

สรุปท้ายบทที่8 การสร้างฟังก์ชันและตัวแปรชนิดพอยน์เตอร์

การเขียนโปรแกรมในภาษาซ จำเป็นต้องแบ่งโปรแกรมออกเป็น ฟังก์ชันย่อยๆ ก็เพราะ

1. เพื่อเป็นไปตามหลักการของโปรแกรมเซิงโครงสร้าง
2. เพื่อง่ายต่อการตรวจสอบ  และการบำรุงรักษา
3. เพื่อหลีกเลี่ยงการเขียนชุดคำสั่งเดิม  ที่ทำงานซ้ำๆ
4. เพื่อสร้างกลุ่มคำสั่งประมวลผลเฉพาะงาน



    ฟังก์ชัน มีความแตกต่างกับ โพรซีเยอร์ คือ ฟังก์ชันจะต้องมีการคืนค่ากลับเสมอ โดยชนิดข้อมูลที่คืนกลับค่ากลับไป  อาจมีชนิดข้อมูลประเภท int,float หรือ char เป้นต้น
    ปกติชนิดข้อมูลที่คืนค่ากลับไปยังฟังก์ชัน main() คือเลขจำนวนเต็ม หรือ int 
    การเข้าถึงฟังก์ชัน โดยปกติจะมีอยู่ . รูปแบบด้วยกันคือ
1. ฟังก์ชันที่ไม่มีการส่งผ่านค่าใดๆ ลงไป
2. ฟังก์ชันที่มีการส่งผ่านค่ามางเดียว
3. ฟังก์ชันส่งผ่านค่าไปและคือค่ากลับมา

    กรณีที่โปรแกรมได้นำฟังก์ชันที่สร้างขึ้นเอง  อยู่ถัดจากฟังก์ชัน  main() จำเป็นต้องประกาศฟังก์ชันต้นแบบที่ต้นโปรแกรมด้วย       

ตัวแปรพอยน์เตอร์ (Pointer) คือ เป็นตัวแปรพิเศษในภาษา C มีหน้าที่เก็บค่าต าแหน่งที่อยู่หรือเรียกว่า address ในหน ่ วยความจา ของตว ั แปรอน่ื ท่สี รา ้ งข ้ ึ นในโปรแกรม สว ่ นใหญ ่ ใช้ในกรณีที่ต้องเขียนโปรแกรมควบคุมการท างานของอุปกรณ์ประเภทไอซี (Integrated Circuit) หรือคอนโทรลเลอร์ (Controller) ซึ่งเราสามารถ เขา ้ ถง ึ ตว ั แปรไดโ้ ดยตรงดว ้ ยการใชต ้ ว ั แปรพอยน ์ เตอรช ์้ ีไปท่ต ี า แหน ่ ง หน ่ วยความจา น ้ น ั การใชพ ้ อยน ์ เตอรจ ์ ะใชก ้ บ ั การเข ี ยน-อ่านข้อมูลจ านวน มาก อาร์เรย์ขนาดใหญ่หรือการท างานกับไฟล์ ซึ่งมีความรวดเร็วในการ เข้าถึงข้อมูลที่อยู่ติดๆ กันได้อย่างรวดเร็วกว่าการใช้ตัวแปร

ตัวแปรพอยเตอร์ (Pointers)





Pointer คือตัวแปรดัชนีที่ เก็บค่าตำแหน่งแอดเดรสของหน่วยความจำ ซึ่งตัวแปรพอยเตอร์นั้น จะมีเครื่องหมายดอกจันทร์ (*) นำหน้าเสมอ ดังตัวอย่างต่อไปนี้
int *Num;
float *GreatNum;
char *Name;
ตัวแปรพอยเตอร์มีประโยชน์ในการลดปริมาณหน่วยความจำที่ต้องใช้ในการเขียนโปรแกรม โดยการส่งข้อมูลในรูปพอยเตอร์ เข้าไปในฟังก์ชันที่โปรแกรมเรียกพร้อมกันหลายฟังก์ชัน แทนการส่งข้อมูลในรูปตัวแปรธรรมดา ซึ่งต้องใช้ตัวแปรหลายตัว
ตัวแปรพอยเตอร์มีลักษณะคล้ายตัวแปรตารางอาเรย์ แต่ที่แตกต่างกันคือ ตัวแปรตารางอาเรย์จะเก็บเฉพาะค่าต่างๆ ที่เป็นชนิดกันเดียวกับตัวแปรอาเรย์แต่ ตัวแปรพอยเตอร์จะเก็บเฉพาะค่าตำแหน่ง Address ตัวแปรเท่านั้น โดยไม่ได้มีการจัดเตรียมหน่วยความจำแบบไดนามิกส์ (Dynamic Memory Allocation) ไว้
การเข้าถึงตำแหน่งแอดเดรสทำได้โดย ใช้เครื่องหมายแอมเปอร์แซนด์ (&) ซึ่งจะแสดงให้เห็นดังตัวอย่างต่อไปนี้ ในที่นี้กำหนดให้ตัวแปร Andy อยู่ในตำแหน่ง Address ที่ 1776 ดังตังอย่างในภาพที่ 



สรุปท้ายบทที่7 อาร์เรย์และฟังก์ชันจัดการสตริง

สรุปท้ายบทที่7 อาร์เรย์และฟังก์ชันจัดการสตริง

ตัวแปรอาเรย์ ( Array Variable)
 
         array คือกลุ่มของข้อมูลที่เรียงลำดับกัน มีจำนวนแน่นอนซึ่งข้อมูลจะเป็นประเภทเดียวกัน ข้อมูลแต่ละตัวของอาร์เรย์
จะเรียกว่า อีลีเมนต์(Element) และข้อมูลแต่ละอีลีเมนต์จะมีหมายเลขเพื่อใช้ในการอ้างอิงถึงเรียกตัวเลขนี้ ว่า เลขดัชนี (Index) จะเป็นตัวแปรที่ชื่อ เหมือนกัน แต่จะแตกต่างกันตรงหมายเลข

    อาร์เรย์  1 มิติ
การใช้ตัวแปร array มีรูปแบบดังนี้
ประเภทตัวแปร ชื่อตัวแปรarray[จำนวนสมาชิกของ array];


  เช่น
  int Score[4];
  ในที่นี้มีความหมายว่า เป็นการประกาศตัวแปร array ชื่อ Score มีจำนวน 4 รายการ โดยมีรายการที่
    Score[0]
    Score[1]
    Score[2]
    Score[3]
    Score[0] Score[1]  Score[2] Score[3]
  int int  int int
  รายการของ array จะเริ่มที่ 0 ไม่ได้เริ่มที่ 1 ถ้าเราประกาศตัวแปร array เช่น int i[3] ก็จะมีรายการที่ 0 ถึง 2 จะไม่มีหมายเลข อินเด็กซ์ 3

 ตัวแปรอาร์เรย์หลายตัว
การประกาศอาร์เรย์หลายตัวทำได้ดังนี้
    int [] abc , xyz;
    abc = new int[500];
    
xyz = new int[10];

หรือเขียนรวมกันได้ดังนี้
    int[]  abc = new int [500], xyz = new int[10];

***ข้อควรระวัง
    int [] a , b ;   a และ b เป็น Array 
    nt a[], b ;  a เป็น Array     b ไม่เป็น Array

การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ 1 มิติ
         สามารถกำหนดค่าเริ่มต้นให้กับ array ได้ตั้งแต่ตอนประกาศตัวแปร
ค่าที่กำหนดต้องอยู่ในเครื่องหมาย { } และถ้ามีมากกว่า 1 ค่า ต้องแยกจากกันด้วยเครื่องหมาย ,(comma)

    เช่น int   a[5]  = {10,20,30,40,50 } ;

        ถ้าในตอนประกาศตัวแปรอาร์เรย์ไม่กำหนดค่าเริ่มต้นให้กับมันแล้ว ค่าที่อยู่ในตัวแปรจะเป็นค่าที่ค้างอยู่ในหน่วยความจำช่วงที่เราจองไว้เป็นอาร์เรย์นั้น 
        ถ้ากำหนดค่าเริ่มต้นตั้งแต่ตอนประกาศตัวแปรแต่กำหนดไม่ครบ ในกรณีที่เป็นอาร์เรย์แบบตัวเลขทั้งจำนวนเต็มและจำนวนจริง ค่าที่เหลือจะถูกกำหนดเป็น 0 โดยอัตโนมัติ

    เช่น  float price[5] = {50.5,2.25,10.0} ;

         บางครั้งถ้ากำหนดค่าเริ่มต้นให้แก่อาร์เรย์เลย เราไม่จำเป็นต้องใส่ขนาดของอาร์เรย์ก็ได้
เช่น float a[ ]  =   {1,2,3,4,5} ; 
ความหมายคือ เป็นการกำหนดตัวแปรอาร์เรย์ของจำนวนจริงแบบ float ขนาด 5 ช่อง
***เราไม่สามารถประกาศตัวแปรอาร์เรย์โดยไม่ใส่ขนาดของอาร์เรย์ได้ ยกเว้นมีการกำหนดค่าเริ่มต้นให้กับมันตั้งแต่แรก

การประมวลผลอาร์เรย์
         Element ของอาร์เรย์ ลำดับแรกจะเป็น 0 เสมอ ลำดับของ Element ของอาร์เรย์โดยส่วนมากจะเป็นค่าตัวเลขจำนวนเต็ม ตัวอย่างเช่น ใช้อาร์เรย์ scores เราจะเข้าถึง Element แรกได้ดังนี้

    scores[0]

และถ้าต้องการจะประมวลผล Element ทั้งหมด ก็สามารถใช้ลูปเข้ามาช่วยได้ดังตัวอย่างด้านล่างนี้
for (i=0;<9;i++)
    scores[i]…;

อาร์เรย์กับการผ่านค่า
การส่ง Array เข้าไปใน Method จะเป็นการส่งตำแหน่งของ Array ( Reference ) เข้าไปให้กับ Parameter ของ Method 
อาร์เรย์ของออบเจ็กต์
อาร์เรย์สามารถเก็บ reference ของ Object ได้ โดยกำหนดให้อาเรย์ เป็น Class นั้นๆ ในตอนประกาศอาเรย์ มีรูปแบบดังนี้

    className [] arrayName = new className[size];

เช่น Student [ ] studentList = new Student[10];
    Student [ ] studentList = new Student[3];
    studentList[0] = new Student();
    studentList[1] = new Student();
    studentList[2] = new Student();


   อาร์เรย์ 2 มิติ

• อาร์เรย์ 2 มิติ เป็นตัวแปรชุดที่มีการจัดการข้อมูล Row (แถว) , Column (หลัก) ซึ่งอยู่ในรูปแบบตาราง ที่มีแสดงตำแหน่ง 2 ตัว
• อาร์เรย์ 2 มิติ คือ array of array กล่าวคือ array 2 มิติ เป็น array ของ array 1 มิติ นั่นเอง
การประกาศตัวแปรอาร์เรย์ 2 มิติ
    • แบบที่ 1 แบบระบุขนาดไม่กำหนดค่าเริ่มต้น
data_type array_name[row_size][column_size];

    • ตัวอย่าง
    int score[2][10];
    char id[2][10];
**สร้างตัวแปรที่มี 2 แถว 10 หลักสำหรับเก็บตัวเลขจำนวนเต็ม

การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ 2 มิติ

    ตัวอย่างรูปแบบที่ 1 int num[2][3] = {11,12,13,21,22,23};
    ตัวอย่างรูปแบบที่ 2 int num[2][3] = {{11,12,13},{21,22,23}};
    ตัวอย่างรูปแบบที่ 3 int num[3][3] = {{11,12,13},{21,22,23}};

โดยที่การประกาศตัวแปรทั้ง 3 รูปแบบให้ผลลัพธ์เหมือนกัน คือ

ข้อสังเกต 
    อาร์เรย์ขนาด 2 มิติขึ้นไป จะไม่ระบุขนาดได้เฉพาะมิติที่ 1 เท่านั้น ส่วนมิติอื่นๆ ต้องมีการระบุขนาดด้วยทุกครั้ง

สตริง(String)

           สตริงเป็นออปเจค (Object) ที่สืบทอดคุณสมบัติมาจากคลาสสตริง (Class String) ถ้าต้องการสร้างออปเจคจากคลาสสตริง ต้องประกาศดังนี้

    String str = new String(“Java”); 
    หรือ String str = “Java”;

ถ้าเราต้องการให้ str มีค่าว่างต้องประกาศเช่นนี้  String str = null;

        การเก็บข้อมูลของสตริงนั้น จะมีการเก็บข้อมูลอยู่ 2 ส่วน ส่วนแรกจะเป็นข้อมูลตัวอักษรโดยเก็บเรียงกันไป แบะส่วนที่ 2 จะเก็บจุดสิ้นสุดของสตริง ซึ่งจุสิ้นสุดของสตริงจะใช้ Null Characterหรือ ‘\0’

**ตัวอย่าง
    class string2 {
    public static void main (String[] args) {
    String one = "Principle ";
    String two = "programming";
    String three = null;
    three = one + two;
    System.out.printf("%s%n",three);
    }
    }
** ผลลัพธ์ที่ได้คือPrinciple programming

ฟังก์ชันเกี่ยวกับ string

ในภาษาซีมีฟังก์ชันที่เกี่ยวกับ string ที่น่าสนใจอยู่หลายฟังก์ชัน โดยฟังก์ชันเกียวกับ string จะถูกเก็บไว้ใน <string.h> โดยมีฟังก์ชันเกียวกับ string ที่น่าสนใจดังนี้

- strlen(str) ใช้หาความยาว string
- strcmp(str1,str2) ใช้เปรียบเทียบ string str1 กับ str2 ว่า string ตัวใดมาก่อนหรือหลังตามหลักพจนานุกรม ถ้า str1 มาก่อน จะคืนค่า -1 ถ้า str1 มาทีหลัง จะคืนค่า 1 ถ้า str1 กับ str2 เหมือนกันจะคืนค่า 0
- strcat(str1,str2) ใช้เชื่อม string str1 กับ str2 โดยนำ str2 มาต่อท้าย str1
- strlwr(str) ใช้เปลี่ยน string ให้เป็นตัวพิมพ์เล็ก
- strupr(str) ใช้เปลี่ยน string ให้เป็นตัวพิมพืใหญ่
- strrev(str) ใช้กลับตัวอักษรในสตริงจากซ้ายไปขวา
- strcpy(str1,str2) ใช้ copy string จาก str2 ไปให้กับ str1
- strcpy(str1,str2,n) ใช้ copy string จาก str2 ไปให้กับ str1 จำนวน n ตัว



สรุปท้ายบทที่ 6 คำสั่งควบคุมเงื่อนไขและการทำงานเป็นรอบ

สรุปท้ายบทที่ 6  คำสั่งควบคุมเงื่อนไขและการทำงานเป็นรอบ

คำสั่งควบคุมเงื่อนไข

   ภาษาซีจะใช้ประโยค if ในการ
 สร้างเงื่อนไข ซึ่งสามารถตรวจสอบเงื่อนไข
 ว่าตรงกับความจริง หรือความเท็จได้  นอกจากประโยค if 
   1. การควบคุมเงื่อนไข 
  if-statement
   
    ในการใช้ประโยคคำสั่ง if-statement เพื่อ  ตรวจสอบเงื่อนไข มีอยู่ 4 รูปแบบด้วยกันคือ
 1.1 การสร้างเงื่อนไขประโยค
 เดียว
 เป็นการาตรวจสอบเงื่อนไขว่าเป็น
 จริงหรือเท็จ แล้วให้ทำชุดคำสั่งนั้นๆ

   

  1.2 การสร้างเงื่อนไข if...eles
  
  เป็นการตรวจสอบว่า หากเงื่อนไขเป็นจริง  ก็จะดำเนินการกับชุดคำสั่งที่กำหนดไว้    และหาก
 เงื่อนไขเป็นเท็จ ก็จะดำเนินการกับ
 ชุดคำสั่งหลังประโยค eles
    
   1.3 การสร้างเงื่อนไข if...eles แบบหลาย  กรณี
 จากรูปแบบเงื่อนไขข้างต้นที่ผ่านมา ้ป็นรูป  แบบเงื่อนไขแค่ 2 กรณี
 เท่านั้น ดังนั้น หากรูปแบบการสร้าง เงื่อนไขที่  ต้องตรวจสอบหลายๆ
 กรณี ก็จะใช้ประโยค eles if เพื่อตรวจสอบ  เป็นลำดับย่อยๆต่อไป
   
  1.4 การสร้างเงื่อนไขแบบซ้อน 
 (Netsted if)
  เป็นการสร้างรูปแบบเงื่อนไขที่ซับ  ซ้อนยิ่ง  ขึ้น โดยจะมีการตรวจสอบ
 เงื่อนไขซ้อนย่อยลงไปอีก ซึ่งการ
 สร้างประโยคซ้อนเงื่อนไขดังกล่าว จำเป็น  ต้องตรวจสอบให้รอบคอบ มิฉะนั้น อาจเกิด  ผลลัพธ์ที่ผิดพลาดได้
   
กรมที่ผ่านมา ล้วนเป็นการ
 ประมวลผลชุดคำสั่งเพียงรอบเดียว
 ทั้งสิ้น แต่ในความเป็นจริงแล้ว เรา
 สามารถสั่งให้คอมพิวเตอร์ประมวล
 ผลชุดคำสั่งต่างๆได้ เรียกว่า กระบวนการทำ  ซ้ำ หรือ ลูป เช่น สร้างลูปเพื่อประมูลผลอ่าน  ไฟล์ข้อมูลจนกระทั่งจบไฟล์ สร้างลูปเพื่อ
 การคำนวณจนครบรอบ หรือสร้าง
 ลูปของรายการเมนู เพื่อให้ผู้ใช้สามารถใช้งานโปแกรมไปได้เรื่อยๆ
   
คำสั่งทำงานเป็นรอบมีอยู่ 3 ประเภทด้วยกัน ดังนี้
  1. การทำงานเป็นรอบด้วยลูป while
  2. การทำงานเป็นรอบด้วยลูป do while
  3. การทำงานเป็นรอบด้วยลูป for
   
   1.การทำงานเป็นรอบด้วยลูป while
 คุณลักษณะของการทำงานเป็น
 รอบด้วยลูป while
 1. ลูป while จะถูกทำงานต่อเมื่อ
 เงื่อนไขเป็นจริง
 2. เมื่อเงื่อนไขเป็นเท็จ ก็ขะหลุดออกจากลูป  while
 3. นิพจน์ที่นำมาใช้ตรวจสอบเงื่อน
 ไข สามารถใช้ตัวดำเนินการเปรียบ
 เทียบ
 
  2. การทำงานเป็นรอบด้วยลูป do while
 คุณลักษณะของการทำงานเป็น
 รอบด้วยลูป do while
 1. หากสร้างลูปด้วย do while ชุดคำสั่งภาย  ในลูป อย่างน้อยจะ
 ต้องถูกทำงาน 1 รอบ เสมอ ถึงแม้ว่าการ  ตรวจสอบเงื่อนไขครั้งแรกจะเป็นเท็จก็ตาม
  
   3. การทำงานเป็นรอบด้วยลูป for
 คุณลักษณะของการทำงานเป็น
 รอบด้วยลูป for
 1. การทำงานของลูป จะเริ่มจากค่า
 เริ่มต้นที่กำหนดใน expression 1
 2. รอบการทำงาน ขึ้นอยู่กับนิพจน์       เงื่อนไขที่ตั้งไว้ใน expression 2
 3. การเพิ่มค่า counter ให้กับลูป
 ใน expression 3 จะส่งผลต่อจำ
 นวนรอบของลูป

   
   

วันจันทร์ที่ 26 ธันวาคม พ.ศ. 2559

สรุปบทที่ 5        ฟังก์ชั่นการรับและแสดงผลและฟังก์ชันทาง คณิตศาสตร์




สรุปบทที่ 5

       ฟังก์ชั่นการรับและแสดงผลและฟังก์ชันทาง
คณิตศาสตร์

คำสั่งในภาษาซี ล้วนอยู่ในรูปแบบของฟังก์ชัน ซึ่งอาจจะเป็นฟังก์ชันมาตรฐานที่ภาษาซีได้จัดเตรียมมาให้แล้ว (ประกาศใช้อยู่ในเฮดเดอร์ไฟล์ต่างๆ) นอกจากนี้ก็ยังมีฟังก์ชันที่เราสามารถเขียนขึ้นเพื่อใช้งานเอง

ตัวอย่างฟังก์ชันที่ภาษาซีจัดเตรียมไว้ให้ เช่น ฟังก์ชั่น printf() ที่นำมาใช้เพื่อสั่งพิมพ์ข้อมูล เพื่อแสดงออกทางจอภาพ หรือกรณีต้องการรับค่าข้อมูลทางแป้นพิมพ์ ก็จะต้องใช้ฟังก์ชัน scanf() เป็นต้น ทั้งนี้การเรียกใช้งานฟังก์ชันดังกล่าว จำเป็นต้องรู้ถึงรูปแบบการเขียน (Syntax) รวมถึงต้องรู้ด้วยว่าฟังก์ชันที่ใช้งานเหล่านี้ ประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์ใด




ฟังก์ชั่นการรับและแสดงผลข้อมูล
ในภาษาซี ได้เตรียมฟังก์ชั่นเพื่อการรับและแสดงผลข้อมูลอยู่หลายคำสั่งด้วยกัน ซึ่งสามารถนำมาเลืิอกใช้งานตามความเหมาะสม



1. ฟังก์ชัน printf()
เป็นฟังก์ชันที่ใช้สำหรับแสดงผลข้อมูล ไม่ว่าจะเป็นข้อมูลที่เป็นตัวอักขระ ข้อความหรือตัวแปร
2. ฟังก์ชัน scanf()
เป็นฟังก์ชันที่ใช้สำหรับรับค่าข้อมูลจากทางแป้นพิมพ์เพื่อจัดเก็บไว้ในตัวแปร
3. ฟังก์ชัน getchar()
เป็นฟังก์ชันที่นำมาสำหรับรับค่าตัวอักษรหรืออักขระ 1 ตัว โดยค่าที่ป้อนลงไปจะแสดงให้เห็นทางจอภาพ และจะต้องเคาะ enter เพื่อแสดงถึงการสิ้นสุด
4. ฟังก์ชัน putcher()
เป็นฟังก์ที่นำมาใช้เพื่อสั่งพิมพ์ค่าตัวแปรอักขระที่ถูกป้อนด้วยฟังก์ชัน getcher() หรือนำมาพิมพ์รหัสพิเศษได้
5. ฟังก์ชัน getch และ getch
ภาษาซีมีฟังก์ชันที่นำมาใช้เพื่อการรับค่าตัวอักขระอย่างฟังก์ชัน getch() และ getch() แต่ฟังก์ชันทั้งสองถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์
ฟังก์ชันจัดการจอภาพ
สำหรับฟังก์ชันเพื่อจัดการจอภาพ ในที่นี้กล่าวถึงฟังก์ชันที่ใช่สำหรับการล้างหน้าจอ
1. ฟังก์ชัน clrscr()
เป็นฟังก์ชันที่ใช้สำหรับล้างจอภาพ โดยจะล้างข้อความเดิมบนจอภาพออกทั้งหมด
ฟังก์ชันทางคณิตศาสตร์
ในบทที่ผ่านมา ได้เรียนรู้เกี่นวกัยตัวดำเนินการทางคณิตศาสตร์ ซึ่งประกอบด้วยเครื่องหมาย *, /, +, - และ % สิ่งเหล่านี้เป็นเพียงพื้นฐานเท่านั้น
ในภาษาซี ตัวดำเนินการทางคณิตศาสตร์ดังกล่าว จะถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์ชื่อ <math.h> โดยเฉพาะเครื่องหมายยกำลัง ซึ่งในภาษาในระดับสูงทั่วไป มักจะใช้เครื่องหมาย ^ หรือ **แต่ภาษาซีจะใช้ฟังก์ชัน poe() แทน











สรุปบทที่4 นิพจน์และตัวดำเนินการ



สรุปบทที่ 4


         นิพจน์และตัวดำเนินการ



นิพจน์ประกอบด้วย ตัวแปร ค่าคงที่ และตัวดำเนินการเดินทางคณิตศาสตร์มาประกอบรวมกันตัวดำเนินการพื้นฐานในภาษซีประกอบด้วย

1. ตัวดำเนินการคณิตศาสตร์จัดเป็นตัวดำเนินการพื้นฐาน ที่นำมาใช้เพื่อกำหนดการคำนวณ เช่น บวก ลบ คูณ หาร และโมดูลัส


 2.ตัวดำเนินการยูนารี
ตัวดำเนินการยูนารี ตัวแรกที่กล่าวถึงคือ เครื่องหมายลบที่นำมาใช้นำหน้าค่าตัวเลข



3.ตัวดำเนินการเปรียบเทียบ
ในภาษาซี จะมีตัวดำเนินการที่นำมาใช้เพื่อการเปรียบเทียบค่า


4.ตัวดำเนินการตรรกะ


นอกจากต้วดำเนินการเปรียบเทียบแล้ว เรายังสามารถนำตัวดำเนินการตรรกะมาใช้ร่วมกันได้






5.ตัวดำเนินการกำหนดค่าแบบผสม จากความรู้ที่ผ่านมา ได้เรียนรู้ถึงการกำหนดค่าให้กับตัวแรมาบ้างแล้ว แต่ในภาษาซี ยังมีตัวดำเนินการกำหนค่าแบบผสมอีก


6. ตัวดำเนินการเงื่อนไข
ตัวดำเนินการเงื่อนไข จะนำมาใช้เพื่อทดสอบค่านิพจน์ทางตรรกะว่าจริงหรือเท็จ



 ตัวดำเนินการแต่ละตัว จะถูกจัดลำดับความสำคัญก่อนหลังที่แตกต่างกัน โดยการคำนวณจะกระทำกับตัวดำเนินการที่มีลำดับความสำคัญสูงก่อนเสมอ


        กรณีลำดับความสำคัญของตัวดำเนินการเท่ากัน โดยปกติการประมวลผลจะกระทำกับตัวดำเนินการจากซ้ายไปขวา ซึ่งหมายถึงจะกระทำกับตัวดำเนินการพบก่อนนั่นเอง


        ตัวดำเนินการที่เรียกว่า การแคสต์ (Casting) นำมาใช้เพื่อแปลงชนิดข้อมูลจากชนิดหนึ่ง มาเป็นอีกชนิดหนึ่งโดยให้ระบุชนิดข้อมูลที่ต้องการภายในเครื่องหมายวงเล็บหน้านิพจน์ที่ต้องการ