วันพุธที่ 24 มิถุนายน พ.ศ. 2552

ชื่อแบบ ASCII อ่ะ

PRANEE
010100000101001001000001010011100100010101000101

LOVEME
010011000100111101010110010001010100110101000101

บ้านแบบภาษา C

#include

#include

main()

{

clrscr();

printf(" **********************************\n");

printf(" * ***********************************\n");

printf(" * ***********************************\n");

printf(" * ************************************\n");

printf(" * * *************************************\n");

printf(" * * * *************************************\n");

printf(" * * * **************************************\n");

printf(" * * * ***************************************\n");

printf(" * * * ****************************************\n");p

rintf(" * * * *****************************************\n");

printf(" *************************************************************\n");

printf(" *************************************************************\n");

printf(" *************************************************************\n");

printf(" *************************************************************\n");

printf(" *************************************************************\n");

printf(" *************************************************************\n");

printf(" *************************************************************\n");

printf(" *************************************************************\n");

printf(" *************************************************************\n");

getch();

return 0;

}

วันพุธที่ 3 มิถุนายน พ.ศ. 2552

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

จุดเริ่มต้นของภาษาซี
ภาษาซีเกิดขึ้นในปี ค.ศ.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"Dennis Ritchieภาษาซีนั้นจัดเป็นภาษาที่ใช้ในการเขียนโปรแกรมที่นิยมใช้งาน ซึ่งภาษาซีจัดเป็นภาษาระดับกลาง (Middle-Level Language) เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดยมีคุณสมบัติโดดเด่นอย่างหนึ่งคือ มีความยืดหยุ่นมาก กล่าวคือ สามารถทำงานกับเครื่องมือต่างๆ สามารถปรับเปลี่ยนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น สามารถเขียนโปรแกรมที่มีความยาวหลายบรรทัดให้เหลือความยาว 2-3 บรรทัดได้ โดยมีการผลการทำงานที่เหมือนเดิมครับเหตุผลที่ควรเรียนภาษาซีก็เนื่องจากภาษาซีเป็นภาษาแบบโครงสร้างที่สามารถศึกษาและทำความเข้าใจได้ไม่ยาก อีกทั้งยังสามารถเป็นพื้นฐานในการเขียนโปรแกรมภาษาอื่นๆ ได้อีก เช่น C++, Perl, JAVA เป็นต้นจาก C สู่ C++ถูกพัฒนาโดย Bjarne Stroustrup แห่ง Bell Labs โดยได้นำเอาภาษา C มาพัฒนาและใส่แนวคิดการเขียนโปรแกรมเชิงวัตถุ หรือ OOP (Object Oriented Programming) เข้าไปด้วย ซึ่งเป็นที่มาของ C++ ก็คือ นำภาษา C มาพัฒนาปรับปรุงให้มีประสิทธิภาพมากขึ้นBjarne Stroustrupจำเป็นไหม? ที่ต้องเรียนภาษา C ก่อน เรียน C++ เลยไม่ได้เหรอ? คำตอบก็คือ คุณจะเรียน C++ เลยก็ได้ครับ โดยไม่ต้องศึกษาภาษา C มาก่อน แต่ถ้าคุณเข้าใจหลักการทำงาน และการเขียนโปรแกรมภาษา C แล้วจะสามารถต่อยอด C++ ได้เร็วกว่า อีกทั้งยังสามารถเข้าใจแนวคิดการเขียนโปรแกรมภาษาอื่นๆ ได้อีก ซึ่งในบทความในช่วงแรกผมจะนำเสนอหลักและแนวคิดในการเขียนโปรแกรมภาษา C ก่อนนะครับ เพื่อให้ผู้อ่านได้เข้าใจในพื้นฐานก่อนนะครับต่อไปจะขอเกริ่นถึงการเขียนโปรแกรมแบบโครงสร้างสักเล็กน้อยก่อนนะครับ แล้วก็จะเริ่มเข้ากระบวนการการเขียนโปรแกรมกันลักษณะโปรแกรมแบบโครงสร้างการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) ก็คือ การนำโครงสร้างของคำสั่งหลายๆ รูปแบบ นำมาใช้ในโปรแกรม โดยจะมีการใช้คำสั่งลักษณะ goto ให้น้อยที่สุด ตัวอย่างการเขียนโปรแกรมแบบโครงสร้าง ก็มี ภาษา C, Pascal และ Cobol เป็นต้นครับ ผมจะยกตัวอย่างในภาษา C ในรูปแบบการเขียนโปรแกรมแบบโครงสร้างให้ดูดังด้านล่างนะครับภาพ: โปรแกรมที่เขียนด้วยภาษาซีแบบง่ายๆ แสดงถึงโครงสร้างจากโปรแกรมข้างต้นนะครับ สามารถแบ่งโครงสร้างตามลักษณะหน้าที่การทำงานได้ 3 ส่วนหลักๆ นะครับ ก็คือส่วนที่ 1 ประกาศค่าตัวแปร และ การกำหนดค่าให้กับตัวแปร (Declare)ส่วนที่ 2 เพิ่มค่า และเก็บค่าไว้ในตัวแปร (Calculation)ส่วนที่ 3 แสดงผลทางจอภาพ (Display)




จุดเด่นของภาษาซี
1. เป็นภาษาที่เข้าใจง่าย มีลักษณะเป็นโครงสร้าง ท่านอ่านคำสั่งต่างๆแล้ว ทำความเข้าใจไม่ยากเลยสามารถควบคุมฮาร์ดแวร์ได้อย่างไม่มีสิ่งใดมาขวางกั้น โปรแกรมทำงานได้อย่างรวดเร็ว ใช้งานได้หลากหลาย ยืดหยุ่น สามารถเขียนแยกเป็นโมดูล (เป็นโปรแกรมย่อยๆ) ได้
2. เป็นรากฐานเพื่อไปศึกษาภาษาอื่นได้อีก ไม่ว่าจะเป็น Java Perl PHP C# ล้วนแต่ถูกสร้างมาจากภาษาซี เพราะภาษาซีนั้นเป็นภาษาที่ถูกสร้างขึ้นมานานมากแล้ว และถูกนำมาใช้กันทั่วโลก และหากท่านจะสร้างภาษาโปรแกรมขึ้นมาสักภาษาหนึ่ง หากท่านอยากจะให้มันเข้าใจง่าย และใช้กันแพร่หลาย ท่านจะคิดคำสั่งเอง หรือท่านจะเอาคำสั่งที่โปรแกรมเมอร์ทั่วโลกเขาเข้าใจอยู่แล้วมาใช้ล่ะครับ แน่นอน ก็ต้องอย่างหลังอยู่แล้ว ทำให้ภาษาโปรแกรมหลายๆตัวที่นิยม ล้วนสร้างขึ้นมาจากภาษาซี หากท่านศึกษาภาษาซีก่อน เมื่อท่านไปศึกษาภาษาอื่น ท่านจะข้ามพื้นฐานไปได้เลย ทำให้การศึกษาภาษาอื่น เป็นไปด้วยความรวดเร็ว
3. เป็นภาษาที่ทำงานเร็ว คล่องตัว เพราะการเรียนภาษาซีนั้น ทำกันบนบรรทัดคำสั่ง เพื่อสั่งให้ทำงานบนหน้าจอโดยตรง หรือจะสั่งเครื่องพิมพ์ก็ย่อมได้ ภาษาโปรแกรมใหม่ๆ มักจะมีตัวแปลภาษาและอีดิตเตอร์เป็นแบบ IDE ไม่ทันไรผู้เรียนก็สามารถสร้างหน้าจอ GUI (กราฟิกยูเซอร์อินเตอร์เฟช) ได้แล้ว แต่มันเป็นง่ายไปครับ การข้ามขั้นพื้นฐานไป ทำให้ความรู้ท่านไม่แน่นพอ หากท่านเรียนภาษาซีท่านจะได้เริ่มตั้งแต่รันบนดอสกันไปเลย ทำให้ท่านเข้าใจพื้นฐานของโปรแกรมต่างๆ เมื่อพื้นฐานท่านแน่น อีกหน่อยจะไปพัฒนาระบบใหญ่ๆ หรือเขียนโปรแกรมเชิงวัตถุก็สบาย
4. มีพอยเตอร์ให้เราได้ศึกษาในเรื่องของหน่วยความจำ ภาษาซีจะสามารถเข้าจัดการหน่วยความจำได้ ไม่ว่าจะเป็นการจัดสรร เพิ่มลดข้อมูลในหน่วยความจำ ก็ย่อมได้ เพราะอย่างที่ได้กล่าวไว้ว่า ภาษาซีสามารถควบคุมฮาร์ดแวร์ได้ การจะจัดการกับหน่วยความจำก็ไม่ใช่ปัญหาเลย ท่านสามารถจัดสรรทรัพยากรให้เหมาะสมกับการทำงานของท่านได้ เช่น หากโปรแกรมอยู่เฉยๆก็ไม่ต้องให้โปรแกรมกินหน่วยความจำ เมื่อมันเริ่มทำงานเมื่อไหร่ก็ให้เริ่มกินหรือจองหน่วยความจำ ทำให้โปรแกรมของท่านมีความยืดหยุ่น พลิกแพลงได้ เรื่องพอยเตอร์นี่แหละครับ จุดเด่นของภาษาซี
5. มีชุดพัฒนาอยู่มากมาย เพื่อใช้ในงานเฉพาะทาง ไม่ว่าจะเป็นการจัดการกับรูปภาพ ด้วยชุดพัฒนา Images Processing การพัฒนาโปรแกรมบนวินโดวส์ด้วย MFC หรือ Visual C++ และอีกมากมาย หากท่านมีพื้นฐานดีแล้ว ท่านสามารถศึกษาชุดพัฒนาเหล่านี้ได้ไม่ยาก และที่สำคัญสามารถหาชุดพัฒนาที่ถูกสร้างจากภาษาซีได้ทั่วโลก
6. ภาษาซีนั้นมีมาตรฐานเดียวกันทั่วโลก นั่นหมายความว่า ท่านศึกษาครั้งเดียว ท่านเขียนได้ทั้งบน วินโดวส์และยูนิกซ์หรือลีนุกซ์ ซึ่งทำให้ท่านสามารถพัฒนาโปรแกรมในระบบปฏิบัติการหลายๆแบบได้ ไม่ต้องศึกษาภาษาใหม่เลย อาจจะศึกษาลักษณะที่ต่างกัน ก็เพียงเล็กน้อย นอกนั้นก็คล้ายกันเลยทีเดียว
7. หลายๆสถาบันมักจะให้เรียนภาษาซีเป็นภาษาแรก เพื่อเป็นพื้นฐานไปสู่การเขียนโปรแกรมเชิงวัตถุ เช่น C++ , Java ท่านยังสามารถศึกษาไปในด้านของวิชาโครงสร้างข้อมูลได้ ซึ่งใช้ในการจัดสรรทรัพยากรหน่วยความจำ การจัดเก็บข้อมูล การเรียงลำดับ การค้นหา และเป็นพื้นฐานของอีกหลายๆวิชา


จุดด้อยของภาษา C

อีกปัญหาหนึ่ง ก็คือตัวของภาษา C ไม่มีตัวจัดการจองหน่วยความจำในตัวเอง เมื่อเวลาเราต้องการจองหน่วยความจำแบบ Dynamic ภาษา C ทำ wrapper เพื่อติดต่อกับ OS เพื่อขอจองหน่วยความจำโดยตรง ปัญหาก็คือ การติดต่อกันระหว่างโปรแกรมของเรากับ OS เป็นไปอย่างหลวมๆ ถ้าโปรแกรมลืมบอก OS ว่า เลิกจองหน่วยความจำดังกล่าว หน่วยความจำนั้นก็จะถูกจองไปเรื่อยๆ เราจะเห็นเครื่องคอมพิวเตอร์ทำงานได้เร็วในตอนเช้า แต่พอตกบ่ายก็ช้าลงจนทำงานไม่ไหว จนสุดท้ายต้อง boot ใหม่ สาเหตุหลักของปัญหานี้คือ สิ่งที่เรียกว่าหน่วยความจำรั่ว หรือ Memory Leak ก็เรื่องจองแล้วลืมเอาคืนนั่นแหละครับ

Code โปรแกรมแสดงชื่อ ภาษา C

#include
#include
main()
{
clrscr();
cout<<" My Name is Pranee Loveme\n";
cout<<"Addes 70/22 M.2 T.Bangjakrang A.city J.Samutsongkhram\n";
getch();
return 0;}