วันพุธที่ 15 เมษายน พ.ศ. 2558

โปรแกรมภาษาซี

จุดเริ่มต้นของภาษาซี
ภาษาซีเกิดขึ้นในปี ค.ศ.1972 โดย Dennis Ritchie แห่ง Bell Labs โดยภาษาซีนั้นพัฒนามาจาก ภาษา B และจากภาษา BCPL ซึ่งในช่วงแรกนั้นภาษาซีถูกออกแบบให้ใช้เป็นภาษาการเขียนโปรแกรมในระบบ UNIX และเริ่มมีคนสนใจมากขึ้นในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกับ Dennis Ritchie พัฒนามาตรฐานของภาษาซีขึ้นมา คือ K&R (Kernighan & Ritchie) และทั้งสองยังได้แต่งหนังสือชื่อว่า "The C Programming Language" โดยภาษาซีนั้นสามารถจะปรับใช้กับเครื่องคอมพิวเตอร์รูปแบบต่างๆได้ ต่อมาในช่วง ปี ค.ศ.1988 Ritchie และ Kernighan ได้ร่วมกับ ANSI (American National Standards Institute) สร้างเป็นมาตรฐานของภาษาซีขึ้นมาใหม่มีชื่อว่า "ANSI C"

จุดเริ่มต้นของภาษาซี
    ภาษาซี เป็นการเขียนโปรแกรมพื้นฐาน สามารถประยุกต์ใช้กับงานต่างๆได้มากมาย ระบบปฏิบัติการคอมพิวเตอร์ ทางคณิตศาสตร์ โปรแกรมทางไฟฟ้า อิเล็กทรอนิกส์ ไมโครคอนโทรลเลอร์ เช่น โปรแกรม MATLAB (The MathWorks - MATLAB and Simulink for Technical Computing) ซึ่งเวลาใช้สามารถพิมพ์ชุดคำสั่งภาษาซีเพิ่มเข้าไปในโปรแกรมคำนวณทางคณิตศาสตร์ ประมวลผลทางสัญญาณไฟฟ้า ทางไฟฟ้าสื่อสารก็ได้ ทำให้ประสิทธิภาพของงานที่ทำดียิ่งขึ้นครับ และยังมีโปรแกรมอื่นๆ ที่มีภาษาซีประยุกต์ใช้กันอีกมากมาย ไม่สามารถนำมากล่าวได้หมด ถึงแม้ว่าภาษาซีอาจจะดูเก่าไปสำหรับคนอื่น แต่ผมว่าควรศึกษาภาษาซีที่เป็นรากฐานของภาษาอื่นๆเสียก่อน เพราะภาษาC++ จาวา (Java) ฯลฯ และ ระบบลีนุกซ์ เป็นระบบที่ถูกพัฒนามาจากระบบยูนิกซ์ซึ่งก็เป็นที่รู้กันทั่วไปว่า ภาษาคู่บารมีของระบบปฏิบัติการตระกูลยูนิกซ์มีการพัฒนามาจากภาษาซีเช่นกัน
                ภาษาซีเป็นภาษาที่บางคนเรียกว่าภาษาระดับกลาง คือไม่เป็นภาษาระดับต่ำแบบแอสเซมบลีหรือเป็นภาษาสูงแบบ เบสิค โคบอล ฟอร์แทรน หรือ ปาสคาล เนื่องจากคุณสามารถจะจัดการเกี่ยวกับเรื่องของพอยน์เตอร์ได้อย่างอิสระ และบางทีคุณก็สามารถควบคุมฮาร์ดแวร์ผ่านทาง ภาษาซี ได้ราวกับคุณเขียนมันด้วยภาษาแอสเซมบลี ด้วยข้อดีเหล่านี้เองทำให้โปรแกรมที่ถูกเขียนด้วยภาษาซีมีความเร็วในการปฏิบัติงานสูงกว่าภาษาทั่วๆไป แต่ก็ต้องแลกกับการเรียนรู้และการฝึกฝนอย่างหนัก
ประวัติภาษาซี
                ภาษาซีเป็นภาษาที่ถือว่าเป็นทั้งภาษาระดับสูงและระดับต่ำ ถูกพัฒนาโดยเดนนิส ริดชี (Dennis Ritche) แห่งห้องทดลองเบลล์ (Bell Laboratories) ที่เมอร์รีฮิล มลรัฐนิวเจอร์ซี่ โดยเดนนิสได้ใช้หลักการของภาษา บีซีพีแอล (BCPL : Basic Combine Programming Language) ซึ่งพัฒนาขึ้นโดยเคน ทอมสัน (Ken Tomson) การออกแบบและพัฒนาภาษาซีของเดนนิส ริดชี มีจุดมุ่งหมายให้เป็นภาษาสำหรับใช้เขียนโปรแกรมปฏิบัติการระบบยูนิกซ์ และได้ตั้งชื่อว่า ซี (C) เพราะเห็นว่า ซี (C) เป็นตัวอักษรต่อจากบี (B) ของภาษา BCPL ภาษาซีถือว่าเป็นภาษาระดับสูงและภาษาระดับต่ำ ทั้งนี้เพราะ ภาษาซีมีวิธีใช้ข้อมูลและมีโครงสร้างการควบคุมการทำงานของโปรแกรมเป็นอย่างเดียวกับภาษาของโปรแกรมระดับสูงอื่นๆ จึงถือว่าเป็นภาษาระดับสูง ในด้านที่ถือว่าภาษาซีเป็นภาษาระดับต่ำ เพราะภาษาซีมีวิธีการเข้าถึงในระดับต่ำที่สุดของฮาร์ดแวร์ ความสามารถทั้งสองด้านของภาษานี้เป็นสิ่งที่เกื้อหนุนซึ่งกันและกัน ความสามารถระดับต่ำทำให้ภาษาซีสามารถใช้เฉพาะเครื่องได้ และความสามารถระดับสูง ทำให้ภาษาซีเป็นอิสระจากฮาร์ดแวร์ ภาษาซีสามารถสร้างรหัสภาษาเครื่องซึ่งตรงกับชนิดของข้อมูลนั้นได้เอง ทำให้โปรแกรมที่เขียนด้วยภาษาซีที่เขียนบนเครื่องหนึ่ง สามารถนำไปใช้กับอีกเครื่องหนึ่งได้ ประกอบกับการใช้พอยน์เตอร์ในภาษาซี นับได้ว่าเป็นตัวอย่างที่ดีของการเป็นอิสระจากฮาร์ดแวร์
วิวัฒนาการของภาษาซี
ค.ศ. 1970 มีการพัฒนาภาษา B โดย Ken Thompson ซึ่งทำงานบนเครื่อง DEC PDP-7 ซึ่ง ทำงานบนเครื่องไมโครคอมพิวเตอร์ไม่ได้ และยังมีข้อจำกัดในการใช้งานอยู่ (ภาษา B สืบทอดมาจาก ภาษา BCPL ซึ่งเขียนโดย Marth Richards)
ค.ศ. 1972 Dennis M. Ritchie และ Ken Thompson ได้สร้างภาษา C เพื่อเพิ่มประสิทธิภาพ ภาษา B ให้ดียิ่งขึ้น ในระยะแรกภาษา C ไม่เป็นที่นิยมแก่นักโปรแกรมเมอร์โดยทั่วไปนัก
ค.ศ. 1978 Brian W. Kernighan และ Dennis M. Ritchie ได้เขียนหนังสือเล่มหนึ่งชื่อว่า The C Programming Language และหนังสือเล่มนี้ทำให้บุคคลทั่วไปรู้จักและนิยมใช้ภาษา C ในการเขียน โปรแกรมมากขึ้น
แต่เดิมภาษา C ใช้ Run บนเครื่องคอมพิวเตอร์ 8 bit ภายใต้ระบบปฏิบัติการ CP/M ของ IBM PC ซึ่งในช่วงปี ค. ศ. 1981 เป็นช่วงของการพัฒนาเครื่องไมโครคอมพิวเตอร์ ภาษา C จึงมี บทบาทสำคัญในการนำมาใช้บนเครื่อง PC ตั้งแต่นั้นเป็นต้นมา และมีการพัฒนาต่อมาอีกหลาย ๆ ค่าย ดังนั้นเพื่อกำหนดทิศทางการใช้ภาษา C ให้เป็นไปแนวทางเดียวกัน ANSI (American National Standard Institute) ได้กำหนดข้อตกลงที่เรียกว่า 3J11 เพื่อสร้างภาษา C มาตรฐานขึ้นมา เรียนว่า ANSI C
ค.ศ. 1983 Bjarne Stroustrup แห่งห้องปฏิบัติการเบล (Bell Laboratories) ได้พัฒนาภาษา C++ ขึ้นรายละเอียดและความสามารถของ C++ มีส่วนขยายเพิ่มจาก C ที่สำคัญ ๆ ได้แก่ แนวความคิดของการเขียนโปรแกรมแบบกำหนดวัตถุเป้าหมายหรือแบบ OOP (Object Oriented Programming) ซึ่งเป็นแนวการเขียนโปรแกรมที่เหมาะกับการพัฒนาโปรแกรมขนาดใหญ่ที่มีความสลับซับซ้อนมาก มีข้อมูลที่ใช้ในโปรแกรมจำนวนมาก จึงนิยมใช้เทคนิคของการเขียนโปรแกรมแบบ OOP ในการพัฒนาโปรแกรมขนาดใหญ่ในปัจจุบันนี้

การเขียนโปรแกรมภาษาซี

การเขียนโปรแกรมรับเลขจำนวนเต็มและหาผลบวกของตัวเลขทั้ง 2 จำนวน
- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้
- ใช้ฟังก์ชัน Void main() เป็นฟังก์ชันที่ไม่มีการส่งค่ารับค่า
ใช้ int , %d เพราะเป็นจำนวนเต็ม


ผลลัพธ์

การเขียนโปรแกรม แปลง ค.ศ. เป็น พ.ศ.
- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้
- ฟังก์ชัน Void main() เป็นฟังก์ชันที่ไม่มีการส่งค่ารับค่า
- Scanf เป็นการกรอกข้อมูลในช่องว่างทำหน้าที่รับค่าคีย์บอร์ด
- เอาค.ศ.+543 = พ.ศ.
- ใช้ int , %d เพราะเป็นจำนวนเต็ม  


ผลลัพธ์

การเขียนโปรแกรม หาพื้นที่สี่เหลี่ยมคางหมู
- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้
- ฟังก์ชัน Void main() เป็นฟังก์ชันที่ไม่มีการส่งค่ารับค่า
- สูตร = 1/2 *(ผลคูณของด้านคู่ขนาน)*สูง
- มีการใช้ float ,%f   การแสดงเลขทศนิยม



ผลลัพธ์

การเขียนโปรแกรมหาค่าเฉลี่ยเลข 4 จำนวน
- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้
- ฟังก์ชัน Void main() เป็นฟังก์ชันที่ไม่มีการส่งค่ารับค่า
- มีการใช้ float ,%f   การแสดงเลขทศนิยม
- Scanf เป็นการกรอกข้อมูลในช่องว่างทำหน้าที่รับค่าคีย์บอร์ด


ผลลัพธ์

การแสดง ตัวดำเนินการคำนวณ

- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้
- ฟังก์ชัน Void main() เป็นฟังก์ชันที่ไม่มีการส่งค่ารับค่า
- char การประกาศค่าตัวแปรให้สอดคล้องกับข้อมูลที่จะนำไปใช้
- เรียกใช้ฟังก์ชั่น printf เพื่อแสดง ผลลัพธ์ทางคณิตศาสตร์

ผลลัพธ์

การใส่ค่าคอมเม้น
\n คือการเริ่มบรรทัดใหม่


ผลลัพธ์


การเก็บจำนวนตัวอักษร..... การแสดงข้อความ  Hello
- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้ในบันทัดที่ 5
- ฟังก์ชัน int main() เป็นฟังก์ชันหลักสำหรับเขียนโปรแกรม โดยทุกโปรแกรมจะต้องมีฟังก์ชันหลักนี้เสมอ
- เรียกใช้ฟังก์ขัน printf เพื่อแสดงคำว่า Hello
- คืนค่า 0 เพื่อบอกว่าจบโปรแกรม


ผลลัพธ์


คําสั่งเงื่อนไข if, if-else

        คำสั่งที่ใช้ในการตรวจสอบเงื่อนไขในภาษาซี คำสั่งแรกที่เราจะเรียนรู้กันก็คือ if (แปลว่า ถ้า”) นั่นคือเราจะใช้ if เพื่อตรวจสอบผลของการเปรียบเทียบว่าเป็น จริงหรือ เท็จ ถ้า เป็นจริง จะให้ทำอะไรต่อไป และถ้าเป็นเท็จ จะให้ทำอะไรต่อไป
การเขียนโปรแกรมแสดงค่าพี่ชายน้องชาย
- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้
- ฟังก์ชัน Void main() เป็นฟังก์ชันที่ไม่มีการส่งค่ารับค่า
- ใช้คำสั่ง if  ในการเปรียบเทียบ


ผลลัพธ์

การเขียนโปรแกรมแสดงค่าอายุ
- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้
- ฟังก์ชัน Void main() เป็นฟังก์ชันที่ไม่มีการส่งค่ารับค่า
- ใช้คำสั่ง if  ในการเปรียบเทียบ

ผลลัพธ์







การเขียนโปรแกรมแสดงเกรดเฉลี่ย
- เป็นการเรียกใช้ไฟล์ stdio.h ซึ่งเป็นไฟล์ที่บรรจุฟังก์ชัน printf ที่ถูกเรียกใช้
- ฟังก์ชัน Void main() เป็นฟังก์ชันที่ไม่มีการส่งค่ารับค่า
- คำสั่ง if else นั้นเป็นการกำหนดทางเลือกอื่นๆ หากกรณีโปรแกรมนั้นไม่ตรงกับเงื่อนไขที่อยู่ใน if โปรแกรมก็จะทำงานคำสั่งต่างๆ ที่อยู่ในวงเล็บปีกกาของ else แทน



ผลลัพธ์
 เมื่อกรอกเลข 55  ลงไป ก็จะได้ผลลัพธ์ คือเกรด D+


การเปรียบเทียบตัวแปรแบบ char
                โปรแกรมจะต้องมีการรับตัวอักษร 1 ตัวหลังจากนั้นก็จะมีการเปรียบเทียบตัวอักษรตัวนั้นๆ เช่น
ถ้าต้องการเขียนโปรแกรมถามเพศ(Gender) โดยให้ผู้ใช้ตอบว่า m(Male) หรือ f(Female) เราจะเขียนได้ดังนี้




ผลลัพธ์


การเขียนโปรแกรมแบบ วนซ้ำ (Repetition & Loop) 
      กระบวนการหนึ่งที่สำคัญในการออกแบบอัลกอริทึม ก็คือความสามารถในการวนลูปของการทำงานของกลุ่มคำสั่งตามที่นักพัฒนาต้องการ ดังนั้นสำหรับตอนนี้ ก็จะนำเสนอการพัฒนาโปรแกรมเพื่อให้บางส่วนของคำสั่งสามารถมีการวนซ้ำได้หลายครั้ง สำหรับคำสั่งที่สามารถใช้ในการเขียนโปรแกรมแบบวนซ้ำในภาษา C ได้แก่ While, Do-while และ For 
การเขียนโปรแกรม...การทำสูตรคูณ

ผลลัพธ์


คำสั่ง For การเขียน ชื่อพันครั้ง


ผลลัพธ์

คำสั่ง For การเขียน ชื่อพันครั้ง มีกรอบ

ผลลัพธ์


การใช้ while



ผลลัพธ์

การใช้ while,switch

ผลลัพธ์


จัดทำโดย
นางสาวชุติรัตน์ ชมรัตน์
57170098 กลุ่ม 01

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

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