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

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

สรุปบทที่9
เรื่อง ข้อมูลชนิดโครงสร้าง และการจัดการแฟ้มข้อมูล
ข้อมูลโครงสร้าง มีรูปแบบการจัดเก็บข้อมูลที่เหมือนกับระเบียบหรือเรคอร์ด ที่แต่ละฟิลด์ภายในเรคอร์ดนั้น สามารถมีชนิดข้อมูลแตกต่างกันได้
                กรณีที่ต้องการจัดเก็บข้อมูลโครงสร้างหลายๆ เรคอร์ด การประกาศโครงสร้างหลายๆ ตัวแปร คงไม่เหมาะสม ดังนั้น วิธีแก้ไขก็คือ การนำเอาอาร์เรย์มาช่วย ด้วยการประกาศเป็น อาร์เรย์ของโครงสร้าง
                เท็กซ์ไฟล์ เป็นแฟ้มที่จัดเก็บข้อความ ซึ่งมีคุณลักษณะสำคัญคือ จะบันทึกข้อมูลที่เป็นข้อความต่างๆ ตามรหัสแอสกีของแต่ละตัวอักขระ ดังนั้น เท็กซ์ไฟล์จึงสามารถถูกเปิดอ่านด้วยโปรแกรม Notepad และสามารถอ่านข้อความที่บันทึกไว้ได้อย่างเข้าใจ
                ไบนารีไฟล์ เป็นแฟ้มข้อมูลที่จัดเก็บข้อมูลชนิดเลขฐานสอง ดังนั้น ไบนารีไฟล์เมื่อถูกเปิดด้วยโปรแกรม Notepad แล้ว จะเป็นรหัสข้อมูลต่างๆ ที่อ่านไม่รู้เรื่อง เนื่องจากเป็นภาษาเครื่องนั่นเอง

                ฟังก์ชัน fopen() นำมาใช้เพื่อการเปิดแฟ้มข้อมูลตามโหมดที่ต้องการ
                ฟังก์ชัน fclose() นำมาใช้เพื่อการปิดข้อมูล
                ฟังก์ชัน fprintf() เป็นฟังก์ชันที่ใช้สำหรับบันทึกข้อมูลลงในแฟ้ม
                ฟังก์ชัน fscanf() เป็นฟังก์ชันที่นำมาใช้สำหรับการอ่านข้อมูลจากแฟ้ม





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

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



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



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

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


ข้อความหรือสตริง ก็คืออาร์เรย์ของตัวอักขระ
ฟังก์ชันจัดการสตริง ถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์ <string.h>
ฟังก์ชั่น strcpy() นำมาใช้เพื่อคัดลอกข้อความไปเก็บไว้ในตัวแปร หรือคัดลอกจากตัวแปรสตริงหนึ่งไปเก็บไว้ยังตัวแปรของอีกสตริงหนึ่ง
ฟังก์ชัน strlen() เป็นฟังก์ชันที่นำมาใช้เพื่อนับจำนวนตัวอักขระที่บรรจุอยู่ในสตริง
ฟังก์ชัน strcmp() เป็นฟังก์ชันที่นำมาใช้เพื่อเปรียบเทียบสตริง 2 ตัว ว่าตรงกันหรือไม่
ฟังก์ชัน strcat()  เป็นฟังก์ชันที่นำมาใช้เพื่อผนวกสตริง 2 สตริงเข้าด้วยกัน
ฟังก์ชัน strlwr() เป็นฟังก์ชันที่นำมาใช้แปลงข้อความให้เป็นตัวพิมพ์เล็ก
ฟังก์ชัน strupr() เป็นฟังก์ชันที่นำมาใช้แปลงข้อความให้เป็นตัวพิมพ์ใหญ่
ฟังก์ชัน strrev() เป็นฟังก์ชันที่นำมาใช้งานเพื่อสลับตำแหน่งข้อความแบบกลับหัว
ฟังก์ชัน gets() เป็นฟังก์ชันที่นำมาใช้เพื่อรับค่าข้อความสตริง ซึ่งสามารถบรรจุข้อความระหว่างสตริงได้
ฟังก์ชัน puts() เป็นฟังก์ชันที่นำมาใช้พิมพ์ข้อความ หรือตัวแปรสตริง
ฟังก์ชันที่นำมาใช้เพื่อแปลงข้อความสตริงที่เก็บตัวเลข มาเป็นค่าตัวเลขที่สามารถนำไปคำนวณได้ จะถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์ <stdlib.h>
ฟังก์ชัน atof() เป็นฟังก์ชันที่นำมาใช้แปลงข้อความตัวเลขเป็นค่าตัวเลขที่นำมาคำนวณได้ โดยมีชนิดข้อมูลเป็น double
ฟังก์ชัน atoi() เป็นฟังก์ชันที่นำมาใช้แปลงข้อความตัวเลขเป็นค่าตัวเลขที่นำมาคำนวณได้ โดยมีชนิดข้อมูลเป็น int

ฟังก์ชัน atoll() เป็นฟังก์ชันที่นำมาใช้แปลงข้อความตัวเลขเป็นตัวเลขที่นำมาคำนวณได้ โดยมีชนิดข้อมูลเป็น long int

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

สรุปบทที่6
เรื่อง คำสั่งควบคุมเงื่อนไข และการทำงานเป็นรอบ
ประโยคเงื่อนไข if มีรูปแบบการเขียนในลักษณะต่างๆ ดังนี้
1.การสร้างเงื่อนไขประโยคเดียว
2.การสร้างเงื่อนไข if…else
3.การสร้างเงื่อนไข if…else แบบหลายกรณี
4.การสร้างเงื่อนไขแบบซ้อน (Netsted if)




นอกจาก if-else แล้ว ภาษาซียังมีคำสั่งควบคุมเงื่อนไขอีกตัวหนึ่งคือ switch…case
อย่างไรก็ตาม switch…case นำมาใช้งานได้ดีกับโปรแกรมที่มีรายการเมนูให้เลือกและไม่สามารถนำมาใช้ตรวจสอบเงื่อนไขที่ใช้ตัวแปร และเลขจำนวนจริงได้
ภาษาซี มีชุดคำสั่งทำงานเป็นรอบ ดังนี้
 การทำงานเป็นรอบด้วยลูป while จะทำการตรวจสอบเงื่อนไขก่อนดำเนินการเสนอดังนั้น ชุดคำสั่งภายในลูปอาจมิได้ถูกประมวลผลเลยก็ได้ หากตรวจสอบเงื่อนไขครั้งแรกแล้วมีค่าเป็นเท็จ
การทำงานเป็นรอบด้วยลูป do-while จะกระทำชุดคำสั่งภายในลูปอย่างน้อยรอบหนึ่งเสมอ
การทำงานเป็นรอบด้วยลูป for เหมาะกับกรณีมีจำนวนรอบการทำงานที่แน่นอน
การใช้คำสั่ง
คำสั่ง break สามารถนำมาใช้เพื่อให้หลุดออกจากลูปตามเงื่อนไขที่ได้กำหนดไว้

คำสั่ง continue นำไปใช้งานเพื่อสั่งให้วกกลับไปทำงานซ้ำที่ต้นลูป ดังนั้น ชุดคำสั่งที่อยู่ถัดจากชุดคำสั่ง continue จึงมิได้ถูกประมวลผล

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

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

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


       ฟังก์ชัน printf() เป็นฟังก์ชันที่ใช้สำหรับแสดงผลข้อมูล ไม่ว่าจะเป็นข้อมูลที่เป็นตัวอักขระ ข้อความ หรือค่าแปร
        ฟังก์ชัน scanf() เป็นฟังก์ชันที่ใช้สำหรับรับค่าข้อมูลจากทางแป้นพิมพ์ เพื่อจัดเก็บไว้ในตัวแปร
ทั้งฟังก์ชัน printf()และscanf() จะต้องกำหนดรหัสรูปแบบข้อมูลให้สัมพันธ์กับชนิดข้อมูลของตัวแปร ซึ่งรายละเอียดดังนี้
        ฟังก์ชัน getchar() เป็นฟังก์ชันที่นำมาสำหรับค่าตัวอักษรหรืออักขระ 1 ตัว โดยค่าที่ป้อนลงไป จะแสดงให้เห็นทางจอภาพ และจะต้องเคาะ Enter เพื่อแสดงถึงการสิ้นสุดการป้อนข้อมูล
        ฟังก์ชัน putchar() เป็นฟังก์ชันที่นำมาใช้เพื่อพิมพ์ค่าตัวแปรอักขระ ที่ถูกป้อนด้วยฟังก์ชัน getchar() รวมถึงการสั่งพิมพ์รหัสพิเศษ (Escape Sequence)
ในบางครั้ง รหัส Enter ที่เราได้เคาะเข้าไปเพื่อยืนยันการป้อนข้อมูลจากฟังก์ชัน scanf() ได้ข้ำแรบกวนการทำงานของคำสั่งบางตัว มำให้ข้ามการรับค่าตัวแปรตัดถัดไปซึ่งเหตุการณ์ดังกล่าวสามารถแก้ไขได้ด้วยการเคลียร์ บัฟเฟอร์ในหน่วยความจำออกไปเสียก่อนด้วยฟังก์ชัน fflush(stdin)
       ฟังก์ชัน getch() ใช้สำหรับรอรับค่าแป้นพิมพ์โดยไม่ต้องยืนยันด้วยการเคาะปุ่ม Enter และอักขระที่ป้อนเข้าไป จะไม่แสดงออกมาให้เห็นทางจอภาพ
        ฟังก์ชัน getche() จะคล้ายกับฟังก์ชัน getch() แตกต่างกันเพียงแสดงอักขระที่ป้อนเข้าไปออกมาให้เห็นทางจอภาพ
        ฟังก์ชัน clrscr() เป็นฟังก์ชันที่ใช้สำหรับล้างจอภาพ
        ฟังก์ชัน gotoxy() เป็นฟังก์ชันที่ใช้สำหรับกำหนดตำแหน่งเคอร์เซอร์บนจอภาพ บนหน้าจอแบบเท็กซ์โหมด
 ทั้งฟังก์ชัน printf(), scanf(), getchar() และ putchar() จะถูกประกาศใช้งานอยู่ใน
เฮดเดอร์ไฟล์<stdio.h>
 ทั้งฟังก์ชัน getch(), getche(), clrscr() และ gotoxy() จะถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์<conio.h>
ทั้งฟังก์ชัน pow(), sqrt(), cos(), sine(), tan(), ceil() และ floor() เป็นต้นจะถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์<math.h>



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

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

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


ตัวดำเนินการพื้นฐานในภาษาซี ประกอบด้วย

1.ตัวดำเนินการคณิตศาสตร์
2.ตัวดำเนินการยูนารี
3.ตัวดำเนินการเปรียบเทียบ
4.ตัวดำเนินการตรรกะ
5.ตัวดำเนินการกำหนดค่าแบบผสม
6.ตัวดำเนินการเงื่อนไข

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

สรุปบทที่ 3 เรื่อง องค์ประกอบของภาษาซี ตัวแปรและชนิดข้อมูล

สรุปบทที่ 3
เรื่อง  องค์ประกอบของภาษาซี ตัวแปรและชนิดข้อมูล
         ภาษาชีถูกพัฒนาขึ้นโดย เดนนิส ริตชี ที่ห้องปฏิบัติการเบลล์ ซึ่งมีต้นแบบมาจากภาษาบีที่อยู่บนรากฐานของภาษาบีซีพีแอล
    ทางสถาบัน ANSI ได้รับรองมาตรฐานภาษาซีขึ้นมา ภายใต้ชื่อ ANSI-C
 ปัจจุบันได้มีการพัฒนาภาษาซีให้มีประสิทธิภาพมากขึ้นเป็นเวอร์ชั่นต่างๆมากมายด้วยการนำมาพัฒนาต่อยอดเป็นC++หรือC#โดยได้เพิ่มชุดคำสั่งที่สนับสนุนการโปรแกรมเชิงวัตถุและยังคงรองรับชุดคำสั่งมาตรฐานของภาษาซีดั้งเดิมอยู่ด้วย
ภาษาซีมีคุณสมบัติที่โดดเด่นกว่าภาษาระดับสูงทั่วไปในหลายๆ ด้านด้วยกัน  คือ
1. เป็นภาษาที่ไม่ขึ้นกับฮาร์ดแวร์และระบบปฏิบัติการ
2. เป็นภาษาที่มีความยืดหยุ่นสูงมาก
3. มีประสิทธิภาพสูง
4. ความสามารถในด้านการโปรแกรมแบบโมดูล
5. มีตัวแปรชนิดพอยน์เตอร์
6.ภาษาซีมองตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แตกต่างกัน (Case Sensitive)
 โครงสร้างโปรแกรมในภาษาซี แบ่งออกเป็นส่วนต่างๆ ดังนี้
1. ตัวประมวลผลก่อน (Preprocessor Directive)
2. ฟังก์ชันหลัก
3. ชุดคำสั่ง
4. คำอธิบายโปรแกรม


กฎเกณฑ์ที่ต้องรู้ในการเริ่มต้นฝึกหัดเขียนโปรแกรมภาษาซี คือ
1. ที่ส่วนหัวโปรแกรม จะต้องกำหนดตัวประมวลผลก่อนเสมอ
2. ชุดคำสั่งในภาษาซี จะใช้อักษรตัวพิมพ์เล็กทั้งหมด
3. ตัวแปรที่ใช้งาน ต้องถูกประกาศชนิดข้อมูลไว้เสมอ
4. ภายในโปรแกรม จะต้องมีอย่างน้อย ฟังก์ชันเสมอ ซึ่งก็คือฟังก์ชัน main()นั่นเอง
5. สามารถใช้เครื่องหมายปีกกา{ เพื่อบอกจุดเริ่มต้นของชุดคำสั่ง และเครื่องหมายปีกกาปิด}
6. เมื่อเขียนชุดคำสั่งเสร็จแล้ว ต้องจบด้วยเครื่องหมาย ;
7. สามารถอธิบายโปรแกรมตามความจำเป็นด้วยการใช้เครื่องหมาย/*…..*/ หรือ //….
ตัวแปร คือ ชื่อที่ตั้งขึ้นตามกฎการตั้งชื่อตัวแปร เพื่อนำมาใช้จัดเก็บข้อมูล และอ้างอิงใช้งานภายในโปรแกรม
กฎเกณฑ์การตั้งตัวแปรในภาษาซี ประกอบด้วย
1. สามรถใช้ตัวอักษร A ถึง หรือ ถึง รวมทั้งตัวเลข ถึง และเครื่องหมาย _(Underscore) มาใช้เพื่อการตั้งชื่อตัวแปรได้ แต่มีเงื่อนไขว่า ห้ามใช้ตัวเลขนำหน้าชื่อตัวแปร ตัวอย่างเช่น 1 digit ถือว่าผิด แต่ถ้าตั้งชื่อใหม่เป็น digit1 หรือ digit1 ถือว่าถูกต้อง
2. ชื่อตัวแปรสามารถมีความยาวได้ถึง 31 ตัวอักษร ( กรณีเป็น ANSI-C )
3. ชื่อตัวแปร จะต้องไม่ตรงกับคำสงวน ( Reserved Words )







ชนิดข้อมูลตัวอักษร เป็นชนิดข้อมูลที่จัดเก็บตัวอักษรหรือตัวอักษรขระเพียง ตัวเท่านั้นกรณีที่ต้องการจัดเก็บตัวอักขระหลายๆ ตัว เราจะเรียกกลุ่มข้อความนี้ว่า สตริง(String 1)
ชนิดข้อมูลแบบเลขจำนวนเต็ม หมายถึงค่าตัวเลขจำนวนเต็ม ไม่มีทศนิยม ซึ่งประกอบด้วย int และ long int แบบไม่มีทศนิยม นอกจากนี้ยังสามารถใช้คำเพิ่มเติมนำหน้าชนิดข้อมูลอย่าง short หรือ long ก็ได้
ชนิดข้อมูลแบบทศนิยม หรือเลขจำนวนจริง คือ ค่าตัวเลขที่สามารถมีจุดทศนิยม โดยชนิดข้อมูลนี้สามารถกำหนดขนาดความกว้างตามความต้องการ เช่น floatdouble หรือ long double
   ตัวแปรแบบภายใน  จะถูกประกาศใช้งานเฉพาะฟังก์ชันนั้นๆ ดังนั้น หากตัวแปรแบบภายในของและฟังก์ชัน มีการกำหนดชื่อตัวแปรเหมือนกัน จะถือว่าเป็นตัวแปรคนละตัว

   ตัวแปรแบบภายนอก  ถือเป็นตัวแปรสาธารณะที่ทุกๆ โปรแกรมย่อยหรือทุกๆ ฟังก์ชันสามารถใช้งานได้ โดยจะถูกประกาศไว้ภายนอกฟังก์ชัน