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

ประวัติภาษาซี

ภาษาซีเป็นภาษาที่ถือว่าเป็นทั้งภาษาระดับสูงและระดับต่ำ ถูกพัฒนาโดยเดนนิส ริดชี (Dennis ritche) แห่งห้องทดลองเบลล์ (Bell laboratories) ที่เมอร์รีฮิล มลรัฐนิวเจอร์ซี่ โดยเดนนิสได้ใช้หลักการของภาษา บีซีพีแอล (BCPL : Basic Combine Programming Language) ซึ่งพัฒนาขึ้นโดยเคน ทอมสัน (Ken tomson) การออกแบบและพัฒนาภาษาซีของเดนนิส ริดชี มีจุดมุ่งหมายให้เป็นภาษาสำหรับใช้เขียนโปรแกรมปฏิบัติการระบบยูนิกซ์ และได้ตั้งชื่อว่า ซี (C) เพราะเห็นว่า ซี (C) เป็นตัวอักษรต่อจากบี (B) ของภาษา BCPL ภาษาซีถือว่าเป็นภาษาระดับสูงและภาษาระดับต่ำ ทั้งนี้เพราะ ภาษาซีมีวิธีใช้ข้อมูลและมีโครงสร้างการควบคุมการทำงานของโปรแกรมเป็นอย่างเดียวกับภาษาของโปรแกรมระดับสูงอื่นๆ จึงถือว่าเป็นภาษาระดับสูง ในด้านที่ถือว่าภาษาซีเป็นภาษาระดับต่ำ เพราะภาษาซีมีวิธีการเข้าถึงในระดับต่ำที่สุดของฮาร์ดแวร์ ความสามารถทั้งสองด้านของภาษานี้เป็นสิ่งที่เกื้อหนุนซึ่งกันและกัน ความสามารถระดับต่ำทำให้ภาษาซีสามารถใช้เฉพาะเครื่องได้ และความสามารถระดับสูง ทำให้ภาษาซีเป็นอิสระจากฮาร์ดแวร์ ภาษาซีสามารถสร้างรหัสภาษาเครื่องซึ่งตรงกับชนิดของข้อมูลนั้นได้เอง ทำให้โปรแกรมที่เขียนด้วยภาษาซีที่เขียนบนเครื่องหนึ่ง สามารถนำไปใช้กับอีกเครื่องหนึ่งได้ ประกอบกับการใช้พอยน์เตอร์ในภาษาซี นับได้ว่าเป็นตัวอย่างที่ดีของการเป็นอิสระจากฮาร์ดแวร



ภาษาซีเป็นภาษาที่มีลักษณะเด่นพอสรุปได้ดังนี้

- เป็นภาษาคอมพิวเตอร์ที่มีการพัฒนาขึ้นใช้งานเพื่อเป็นภาษามาตรฐานที่ไม่ขึ้นกับโปรแกรมจัดระบบงานและไม่ขึ้นกับฮาร์ดแวร์

- เป็นภาษาคอมพิวเตอร์ที่อาศัยหลักการที่เรียกว่า "โปรแกรมโครงสร้าง" จึงเป็นภาษาที่เหมาะกับการพัฒนาโปรแกรมระบบ

- เป็นคอมไพเลอร์ที่มีประสิทธิภาพสูง ให้รหัสออบเจ็กต์สั้น ทำงานได้รวดเร็ว เหมาะกับงานที่ต้องการ ความรวดเร็วเป็นสำคัญ

- มีความคล่องตัวคล้ายภาษาแอสแซมบลี ภาษาซีสามารถเขียนแทนภาษาแอสแซมบลีได้ดี ค้นหาที่ผิดหรือ แก้โปรแกรมได้ง่าย ภาษาซีจึงเป็นภาษาระดับสูงที่ทำงานเหมือนภาษาระดับต่ำ

- มีความคล่องตัวที่จะประยุกต์เข้ากับงานต่างๆ ได้เป็นอย่างดี การพัฒนาโปรแกรม เช่น เวิร์ดโพรเซสซิ่ง สเปรดชีต ดาตาเบส ฯลฯ มักใช้ภาษาซีเป็นภาษาสำหรับการพัฒนา

- เป็นภาษาที่มีอยู่บนเกือบทุกโปรแกรมจัดระบบงาน มีในเครื่องไมโครคอมพิวเตอร์ตั้งแต่ 8 บิต ไปจนถึง 32 บิต เครื่องมินิคอมพิวเตอร์ และเมนเฟรม

- เป็นภาษาที่รวมข้อดีเด่นในเรื่องการพัฒนา จนทำให้ป็นภาษาที่มีผู้สนใจมากมายที่จะเรียนรู้หลักการของภาษา และวิธีการเขียนโปรแกรม ตลอดจนการพัฒนางานบนภาษานี้

จุดเริ่มต้นของภาษาซี

ภาษาซีเกิดขึ้นในปี ค.ศ.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"

ภาษาซีนั้นจัดเป็นภาษาที่ใช้ในการเขียนโปรแกรมที่นิยมใช้งาน ซึ่งภาษาซีจัดเป็นภาษาระดับกลาง (Middle-Level Language) เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดยมีคุณสมบัติโดดเด่นอย่างหนึ่งคือ มีความยืดหยุ่นมาก กล่าวคือ สามารถทำงานกับเครื่องมือต่างๆ สามารถปรับเปลี่ยนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น สามารถเขียนโปรแกรมที่มีความยาวหลายบรรทัดให้เหลือความยาว 2-3 บรรทัดได้ โดยมีการผลการทำงานที่เหมือนเดิมครับ

เหตุผลที่ควรเรียนภาษาซี
ก็เนื่องจากภาษาซีเป็นภาษาแบบโครงสร้างที่สามารถศึกษาและทำความเข้าใจได้ไม่ยาก อีกทั้งยังสามารถเป็นพื้นฐานในการเขียนโปรแกรมภาษาอื่นๆ ได้อีก เช่น C++, Perl, JAVA เป็นต้น
รักเทอร์รัก มากในตอนนี้
แต่บางทีต่อไปอาจไม่แน่
ต่อไปฉันอาจทำเหมือนไม่แค ร์
แต่ที่แน่ๆตอนนี้ฉันรักเทอร์

รั ก แ ร ก มั น แ ย ก ย า ก
รั ก ม า ก มั น ย า ก แ ย ก
รั ก เ ท อ เ ป ง ค น แ ร ก
จ ะ ใ ห้ แ ย ก มั น ค ง ย า ก


ต้ อ ง ทำ ตั ว เ ป็ น ค น เ จ้ า น้ำ ต า
เ มื่ อ รู้ ว่ า รั ก แ ท้ ดุ แ ล ไ ม่ ไ ด้
มั ก ป า ก ดี กั บ เ ท อ ร์ ม า ก เ กิ น ไ ป
ถึ ง ยั ง ไ ง ฉั น ก็ เ ป็ น แ ค่ . . . .ส่ ว น เ กิ น


อ ย า ก จ า เ ป น ห ม อ น ข้ า ง ใ ห้ เ ท อ ร์ ก อ ด
อ ย า ก จ า เ ป น ท า ม ม า ก๊ อ ต ใ ห้ เ ท อ ร์ เ ลี้ ย ง
อ ย า ก จ า เ ป น ตุ๊ ก ต า อ ยุ่ บ น เ ตี ย ง
จ า ไ ด้ เ คี ย ง ข้ า ง เ ท อ ร์ ต ล อ ด ไ ป


น เ จ็ บ ดี ก ว่ า เ ห ง า ดี ก ว่ า ต้ อ ง ห น า ว มั น เ รื่ อ ย ม า
สุ ข แ ค่ บ า งเ วล า ก้ อ ค ง ดี ก ว่ า เห งา ทุ ก วั น


ไ ม่ มี ถ้ อ ย คำ ม า เ รี ย ง ร้ อ ย เป็ น อั ก ษ ร
ไ ม่ มี บ ท ก ล อ น ห ว า น ซึ้ ง ม า เ ส น อ
มี เ พี ย ง ห นึ่ ง หั ว ใ จ ที่ ใ ห้ เ ท อ ร์
รั ก แ ล ะ ภั ก ดี เ ส ม อ ไ ม่ เ ป ลี่ ย น แ ป ล ง


เ ป็ น อ ย่ า ง ไ ร บ้ า ง
ส บ า ย ดี ไ ห ม
คำ ถ า ม จ า ก ค น ห่ า ง ไ ก ล
ที่ ส่ ง ไ ป ไ ม่ ถึ ง เ ท อ ร์
รูปแบบคำสั่งในภาษาซี มีกฏเกณฑ์ในการเขียนคำสั่ง ดังนี้
คำสั่งทุกคำสั่งต้องเขียนด้วยอักษรตัวเล็กเสมอ เช่นคำสั่ง printf , scanf , for
ทุกคำสั่งจะใช้เครื่องหมาย ; แสดงการจบของคำสั่ง เช่น printf(“Hello”) ;
การเขียนคำสั่ง จะเขียนได้แบบอิสระ (Free Format) คือ สามารถเขียนหลายๆคำสั่ง
Function
หรือฟังก์ชัน เป็นแนวความคิดที่สำคัญในภาษาซี ซึ่งจะมีทั้งฟังก์ชันมาตรฐานและฟังก์ชันที่สร้างขึ้นเอง แต่ฟังก์ชันที่สำคัญที่สุดในภาษาซี คือ ฟังก์ชัน main ซึ่งภาษาซีจะเริ่มต้นทำงานในชุดคำสั่งที่อยู่ในฟังก์ชัน main ก่อน ฟังก์ชันในภาษาซีแบ่งได้เป็น 2 ส่วน ได้แก่ ฟังก์ชันที่เป็นโปรแกรมหลักหรือฟังก์ชันหลักที่ถูกกำหนดให้มีเพียงฟังก์ชันเดียวเท่านั้น นั่นก็คือ ฟังก์ชัน main สำหรับฟังก์ชันในส่วนที่ 2 เป็นฟังก์ชันที่ไม่ใช่ฟังก์ชันหลัก ซึ่งมีกี่ฟังก์ชันก็ได้

1.ฟังก์ชั่น printf()
รูปแบบ
เป็นฟังก์ชันหนึ่งที่เก็บไว้ในไฟล์ stdio.h ใช้สำหรับแสดงผลข้อมูล เนื่องจาก Turbo C ไม่มีฟังก์ชันเฉพาะในการแสดงผลข้อมูล จึงจำเป็นต้องเรียกใช้ฟังก์ชันที่อยู่ใน Library ออกมาใช้งาน ดังนั้นจึงอาจกล่าวได้ว่า ฟังก์ชัน printf() เป็นโปรแกรมย่อยสำหรับการพิมพ์ข้อมูล ตัวแปร นิพจน์ หรือ ข้อความต่าง ๆ ที่กำหนดไว้ในพารามิเตอร์ภายในวงเล็บ ( ) ออกทางจอภาพ
ตัวอย่าง printf()
เป็นสตริงที่มีข้อความและรูปแบบของการพิมพ์โดยอยู่ในเครื่องหมาย " " แบ่งออกเป็น 2 ส่วน คือ
1. ข้อความที่จะพิมพ์เพื่อแสดงให้ทราบ เช่น printf("Hello");
2. รูปแบบการพิมพ์หรือแสดงผล โดยมีเครื่องหมาย % หรือ \ กำกับไว้หน้าตัวอัขระ เช่น printf("You are %d years old. \n",age);

2.ฟังก์ชัน scanf()
รูปแบบ
เมื่อโปรแกรมทำงานถึงฟังก์ชันนี้จะหยุดเพื่อให้ป้อนข้อมูล โดยข้อมูลที่ป้อนจะแสดงบนจอภาพ เมื่อป้อนข้อมูลเสร็จกด Enter ข้อมูลทั้งหมดจะเก็บในตัวแปร var ชนิดของข้อมูลที่กำหนดให้กับตัวแปร var จะถูกกำหนดโดยตัวกำหนดชนิดข้อมูลซึ่งระบุในส่วนของ format code ตัวกำหนดชนิดข้อมูลของฟังก์ชัน scanf() จะเหมือนกับของฟังก์ชันprintf() ฟังก์ชัน scanf() จะทำให้เคอร์เซอร์ ขึ้นบรรทัดใหม่หลังจากกด Enter
ฟังก์ชัน getchar()
รหัสรูปแบบ ชนิดตัวแปร ลักษณะการแสดงผลออกจอภาพ
%d int ใช้แสดงข้อมูลที่เป็นเลขจำนวนเต็มฐานสิบ
%ld long int ใช้แสดงข้อมูลที่เป็นเลขจำนวนเต็มฐานสิบแบบ long
%u unsigned int ใช้แสดงข้อมูลที่เป็นเลขจำนวนเต็มฐานสิบแบบ unsigned
%c char ใช้แสดงข้อมูลที่เป็นตัวอักษร
%s string ใช้แสดงข้อมูลที่เป็นตัวแปรสตริงหรือชุดตัวอักษร
%o int (octal) ใช้แสดงข้อมูลที่เป็นเลขฐานแปด
%x int (hexa) ใช้แสดงข้อมูลที่เป็นเลขฐานสิบหก
%f float ใช้แสดงข้อมูลที่เป็นเลขทศนิยม ที่ไม่มีเลขยกกำลัง
%e float, double ใช้แสดงข้อมูลที่เป็นเลขทศนิยม ที่มีเลขชี้กำลัง
%lf double ใช้แสดงข้อมูลที่เป็นเลขทศนิยมแบบ double
ตัวอย่าง scanf ()
โปรแกรมแสดงการใช้ฟังก์ชัน scanf () และใช้รูปแบบ %dในการรับข้อมูลจากแป้นพิมพ์2 จำนวน
#include
main()
{
int x1, x2 ;
scanf("%d %d",&x1,&x2);
}

เมื่อเครื่องทำฟังก์ชัน scanf() เครื่องจะรอรับค่า 2 ค่าที่เป็นจำนวนเต็มจากแป้นพิมพ์แล้วเก็บลงตัวแปร x1 และ x2 การป้อนข้อมูลจะต้องเป็นชนิดข้อมูลที่สอดคล้องกลับรูปแบบ และต้องมีการเว้นระยะระหว่าง รูปแบบให้สอดคล้องกับส่วนควบคุมด้วย ข้อมูลที่ป้อนจะต้องมีช่องว่าง 1 ช่องระหว่างเลข 2 จำนวนเพื่อให้ สอดคล้องกับที่ได้กำหนดไว้ในส่วนควบคุม ดังเช่น 123 145
และถ้าส่วนควบคุมมีคอมม่าคั่นระหว่างรูปแบบ เช่น
scanf ("%d,%d",&x1,&x2); การป้อนข้อมูลก็จะต้องมีคอมม่าคั่นระหว่างเลข 2 จำนวน ดังเช่น 123,145


3.ฟังก์ชัน getchar()
ใช้สำหรับป้อนตัวอักษรผ่านทางแป้นพิมพ์โดยจะรับตัวอักษรเพียง 1 ตัวเท่านั้น และแสดงตัวอักษรบนจอภาพรูปแบบ ch = getchar(); เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนตัวอักษร 1 ตัว หลังจากนั้นกด Enter ตัวอักษรที่ป้อนจะถูกเก็บไว้ในตัวแปร ch ซึ่งเป็นชนิดตัวอักษรและเคอร์เซอร์จะขึ้นบรรทัดใหม่ ฟังก์ชัน getchar()กำหนดในไฟล์ stdio.h เช่นเดียวกับฟังก์ชัน scanf()
ฟังก์ชัน getchar() ใช้สำหรับป้อนตัวอักษรผ่านทางแป้นพิมพ์โดยจะรับตัวอักษรเพียง 1 ตัวเท่านั้น และแสดงตัวอักษรบนจอภาพ
รูปแบบ

กำหนดในไฟล์ stdio.h เช่นเดียวกับฟังก์ชัน scanf()

ตัวอย่างฟังก์ชัน getchar()
#include
#include
main()
{
clrscr()
int itsaret
printf("itsaret);
getchar();
getchar();
}

4.ฟังก์ชัน getche() และ getch()
รูปแบบ


ฟังก์ชัน getche() จะรับตัวอักษร 1 ตัวที่ป้อนทางแป้นพิมพ์ และจะแสดงตัวอักษรบนจอภาพ เมื่อป้อนข้อมูลเสร็จไม่ต้องกด Enter และเคอร์เซอร์จะไม่ขึ้นบรรทัดใหม่ ฟังก์ชัน getch() จะคล้ายกับฟังก์ชัน getche() ต่างกันตรงที่จะไม่แสดงตัวอักษรขณะป้อนข้อมูล ฟังก์ชัน getche() และ getch() กำหนดในไฟล์ conio.h ดังนั้นจะต้องระบุไฟล์ดังกล่าวในโปรแกรม
ตัวอย่างฟังก์ชัน eetche() และgetch()
#include
#include
main()
{
clrscr()
int itsaret
printf("itsaret);
getch();
}

5.ฟังก์ชัน gets
ฟังก์ชัน gets() ใช้สำหรับข้อมูลชนิดสตริงก์หรือข้อความซึ่งป้อนทางแป้นพิมพ์
รูปแบบ


เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนข้อความ เมื่อป้อนเสร็จแล้วกด Enter ข้อความ ทั้งหมดจะถูกเก็บไว้ในอาร์เรย์สตริงก์ str โดย carriage return (จากการกด Enter) จะแทนด้วยสตริงก์ศูนย์ ฟังก์ชัน gets() จะทำให้เคอร์เซอร์ขึ้นบรรทัดใหม่ หลังจากกด Enter กำหนดในไฟล์ stdio.h
ตัวอย่างฟังก์ชัน gets
char ตัวแปร[จำนวนตัวอักษร];
get(ตัวแปร);

วันอังคารที่ 23 มิถุนายน พ.ศ. 2552

ประวัติส่วนตัว :

ชื่อ นางสาวนารี เชืองศิลป์
ชั้น ปวช. 2/3 คอมพิวเตอร์ธุรกิจ
วิทยาลัยเทคนิคราชบุรี