เริ่มต้นกับภาษาซี
ภาษา ซีเป็นภาษาคอมพิวเตอร์ระดับสูง ที่ใช้สำหรับเขียนโปรแกรมประยุกต์ต่างๆ เช่นเดียวกับ ภาษาปาสคาล ภาษาเบสิก และภาษาฟอร์แทรน เป็นต้น นอกจากนี้ภาษาซียังใช้สำหรับเขียนดปรแกรมระบบ และโปรแกรมสำหรับควบคุมฮาร์ดแวร์บางส่วนที่ภาษาโปรแกรมระดับสูงหลายภาษาไม่ สามารถทำได้ ภาษาซีจึงจัดเป็นภาษาระดับกลางด้วย
ก่อนที่โปรแกรมภาษาซีจะถูกรัน(run) จะต้องถูกแปลงให้อยู่ในรูปของอ็อบเจกต์โค้ด(object code) โดยการคอมไพล์ (compile) โปรแกรมภาษาซีที่เขียนโดยใช้คำสั่งตามมาตรฐานของ ANSI C สามารถนำไปคอมไพล์ และรันที่เครื่องคอมพิวเตอร์ต่างระบบกันได้
1.1 การคอมไพล์และรันโปรแกรม
โปรแกรมที่เขียนขึ้นโดยใช้ภาษาโปรแกรมต่างๆ นั้น เราเรียกว่า รหัสต้นฉบับ (source code) ซึ่ง อยู่ในรูปของข้อความตามหลักการเขียนโปรแกรมของภาษาโปรแกรมที่สามารถอ่าน และทำความเข้าใจได้โดยมนุษย์เท่านั้น ดังนั้นเพื่อให้เครื่องคอมพิวเตอร์สามารถเข้าใจโปรแกรมและปฏิบัติได้ จึงต้องนำรหัสต้นฉบับมาผ่านกระบวนการแปลงให้อยู่ในรูปของอ็อบเจกต์โค้ดที่ ประกอบด้วยรหัสตัวเลข 0 และ 1 เราเรียกกระบวนการแปลงดังกล่าวว่า การคอมไพล์โปรแกรม
1.2 โครงสร้างพื้นฐานของโปรแกรมภาษาซี
โครงสร้างพื้นฐานของโปรแกรมภาษาซีจะต้องประกอบด้วยโปรแกรมย่อย หรือเรียกว่า ฟังก์ชัน (function) อย่างน้อย 1 ฟังก์ชัน คือ ฟังก์ชัน main() ซึ่งมีรูปแบบดังนี้
| void main() { // ส่วนหัวของฟังก์ชันการประกาศตัวแปรท้องถิ่น; // ส่วนการประกาศตัวแปรคำสั่งต่างๆ; // ส่วนคำสั่ง
}
|
รูปที่ 1.1 แสดงโครงสร้างพื้นฐานของโปรแกรม
ฟังก์ชัน main() ประกอบด้วย 3 ส่วนหลัก คือ
1) ส่วนหัวของฟังก์ชัน ประกอบด้วย ชนิดข้อมูล void ชื่อฟังก์ชัน main ตามด้วยเครื่องหมาย ( และ ) ตามลำดับ
2) ส่วนการประกาศตัวแปร ใช้สำหรับประกาศตัวแปรชนิดต่างๆ เพื่อเก็บข้อมูลระหว่างการประมวลผล
3) ส่วนคำสั่ง ประกอบด้วยคำสั่งที่เกี่ยวข้องกับการรับเข้าและการแสดงผลข้อมูล และคำสั่งประมวลผลอื่นๆ
ส่วนประกาศตัวแปรและส่วนคำสั่งจะต้องเขียนอยู่ระหว่างเครื่องหมาย { และ } เสมอ ทั้งสองส่วนนี้ใช้สำหรับนิยามการทำงานของฟังก์ชัน main() หรือในที่นี้เป็นการนิยามการทำงานของโปรแกรมนั่นเอง และคำสั่งทุกคำสั่งในภาษาซีจะต้องเปิดท้ายด้วยเครื่องหมาย ; เสมอ
1.3 โปรแกรมภาษาซีอย่างง่าย
โปรแกรมในตัวอย่างที่ 1.1 เป็นโปรแกรมภาษาซีที่สั้นที่สุด ที่สามารถคอมไพล์ และรับได้โดยคอมไพเลอร์ตามมาตรฐานของ ANSI C
ตัวอย่างที่ 1.1 โปรแกรมภาษาซีที่สั้นที่สุด
| // Program: First.c// แสดงการใช้ฟังก์ชัน main() ในโปรแกรมvoid main() {
}
|
ในตัวอย่างนี้จะเห็นได้ว่า โปรแกรมภาษาซีมีชื่อว่า First และมีส่วนขยายเป็น .c นอกจากนี้ภายในฟังก์ชัน main() ได้ละทั้งส่วนการประกาศตัวแปรและส่วนคำสั่ง หรือกล่าวได้ว่าฟังก์ชัน main() ของโปรแกรม First.c เป็นฟังก์ชันว่าง เมื่อรันโปรแกรมจึงไม่ปรากฏผลใดๆ
อย่างไรก็ตามแม้ว่าภายในฟังก์ชันได้ละส่วนการประกาศตัวแปร และส่วนคำสั่ง แต่ยังต้องมีเครื่องหมาย { และ } เพื่อบอกขอบเขตของฟังก์ชัน main()
1.4 การแสดงผลลัพธ์เบื้องต้น
ตัวอย่างที่ 1.2 โปรแกรมพิมพ์ข้อความออกทางจอภาพ
| /* 1 */ // Program: Output1.c/* 2 *//* 3 */ #include <stdio.h>
/* 4 */
/* 5 */ void main() {
/* 6 */ printf(“The first output form C.\n”);
/* 7 */}
|
ผลลัพธ์ คือ
| The first output form C. |
ชุด อักขระ /* ซึ่งใช้คู่กับ */ ที่ปรากฏในโปรแกรม ใช้บอกจุดเริ่มต้น และจุดสิ้นสุดของการเขียนคำอธิบายกำกับส่วนต่างๆ ของโปรแกรม ข้อความที่เขียนอยู่ระหว่างชุดอักขระดังกล่าวสามารถมีความยาวต่อเนื่องกัน ได้หลายบรรทัด และเป็นส่วนที่ไม่ถูกประมวลผล
บรรทัด ที่ 1 และ 2 ใช้ชุดอักขระ // ด้านหน้าคำอธิบายกำกับส่วนต่างๆ ของโปรแกรมที่สิ้นสุดภายในบรรทัด ในที่นี้ใช้แสดงชื่อโปรแกรม และคำอธิบายการทำงานของโปรแกรม
บรรทัดที่ 3 และ 5 เป็นบรรทัดว่าง นักเขียนโปรแกรมสามารถใช้บรรทัดว่าง เพื่อเว้นช่วงระหว่างบรรทัด หรือใช้อักขระต่างๆ เช่น ช่องว่าง(blank) หรือแท็บ(tab) เพื่อสร้างระยะเยื้องในการจัดรูปแบบของโปรแกรมให้ง่ายต่อการอ่าน และมีรูปแบบเป็นของตนเอง
บรรทัดที่ 4 เป็นการใช้คำสั่งของตัวประมวลผลก่อนซีที่มีชื่อว่า include ซึ่งขึ้นต้นด้วยอักขระ # ในที่นี้คำสั่ง #include จะมีผลทำให้แฟ้มชื่อ stdio.h ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรม Outpuc1.c
บรรทัดที่ 7 เรียกใช้คำสั่ง printf() ซึ่งเป็นเพียงคำสั่งเดียวของโปรแกรม Output1.c การทำงานของคำสั่ง printf() อาร์กิวเมนต์ของคำสั่ง printf() ซึ่งเขียนอยู่ระหว่างเครื่องหมาย ( และ ) ได้แก่ข้อความที่เขียนอยู่ระหว่างเครื่องหมาย “ และ ” ซึ่งเรียกว่าสายอักขระ(string) ในที่นี้สายอักขระ “The first output from C.\n” เป็นอาร์กิวเมนต์ค่าเดียวของคำสั่ง printf() จะมีผลทำให้คำสั่ง printf() แสดงข้อความของสายอักขระออกทางจอภาพ
จะเห็นได้ว่าชุดอักขระ \n ที่ปรากฏเป็นส่วนหนึ่งของสายอักขระในบรรทัดที่ 7 ไม่ได้ถูกแสดงผลออกทางจอภาพ เหตุที่เป็นเช่นนั้นเนื่องจากว่าอักขระ \ ซึ่งเรียกว่า อักขระหลีก (escape character) มีผลทำให้อักขระ 1 ตัวที่ตามมา ในที่นี้คืออักขระ n มีความหมายเปลี่ยนไปจากความหมายปกติ สำหรับชุดอักขระ \n คอมไพลเลอร์ภาษาซีได้กำหนดให้มีความหมายเป็น ขึ้นบรรทัดใหม่ และนอกจาก \n แล้วยังมีชุดอักขระของอักขระหลีกอื่นที่มีความหมายที่แตกต่างกันออกไป เช่น
\t หมายถึง อักขระ แท็บ
หมายถึง อักขระ NULL
\’ หมายถึง อักขระ ‘
\” หมายถึง อักขระ ”
\\ หมายถึง อักขระ \
ตัวอย่างที่ 1.3 โปรแกรมพิมพ์หัวรายงาน
| /* 1 */ // Program: Output2.c/* 2 */ // พิมพ์หัวรายงาน/* 3 */
/* 4 */ #include <stdio.h>
/* 5 */
/* 6 */ void main() {
/* 7 */ printf(“\n—< Paroll Report >—”);
/* 8 */ printf(“\n 24/05/2555\n”);
/* 9 */}
|
ผลลัพธ์ คือ
| —< Paroll Report >—24/05/2555 |
ตัวอย่างที่ 1.4 โปรแกรมพิมพ์จำนวนเต็ม
| /* 1 */ // Program: Output3.c/* 2 */ // พิมพ์จำนวนเต็ม/* 3 */
/* 4 */ #include <stdio.h>
/* 5 */
/* 6 */ void main() {
/* 7 */ printf(“\nFirst value is %d. ”,5);
/* 8 */ printf(“\nSecond value is %d. ”,7);
/* 9 */ }
|
ผลลัพธ์ คือ
| First value is 5.Second value is 7. |
ตัวอย่างที่ 1.5 โปรแกรมพิมพ์จำนวนเต็มหลายค่าในบรรทัดเดียว
| /* 1 */ //Program: Output4.c/* 2 */ // พิมพ์จำนวนเต็มหลายค่าในบรรทัดเดียว/* 3 */
/* 4 */ #include <stdio.h>
/* 5 */
/* 6 */ void main() {
/* 7 */ printf(“\nSum of %d and %d is %d. ”, 9, 4, 9+4);
/* 8 */ printf(“\nDifference of %d and %d is %d. ”, 9, 4, 9-4);
/* 9 */ printf(“\Multiplication of %d and %d is %d. ”, 9, 4, 9*4);
/* 10 */ printf(“\nDivision of %d and %d is %d. \n”, 9, 4, 9/4);
/* 11 */}
|
ผลลัพธ์ คือ
| Sum of 9 and 4 is 13.Difference of 9 and 4 is 5.Multiplication of 9 and 4 is 36.
Division of 9 and 4 is 2.
|
เนื้อหามีประโยชน์มากค่ะ
ตอบลบว้าววววว
ตอบลบเป็นประโยชน์มากค่ะ
ตอบลบ