320 likes | 521 Views
การเขียนโปรแกรมภาษาซีเบื้องต้น (Introduction to C Programming). นางสาว ปรา นิสา ทองอ่อน ผู้สอน. โครงสร้างของภาษา C. ภาษา C เป็นภาษาระดับกลาง ( Middle –lever language)
E N D
การเขียนโปรแกรมภาษาซีเบื้องต้นการเขียนโปรแกรมภาษาซีเบื้องต้น (Introduction to C Programming) นางสาวปรานิสา ทองอ่อนผู้สอน
โครงสร้างของภาษา C • ภาษา C เป็นภาษาระดับกลาง (Middle –lever language) • ภาษา C เป็นภาษาคอมพิวเตอร์ชนิดคอมไพล์ (compiled Language) ซึ่งมีคอมไพลเลอร์ (Compiler) ทำหน้าที่ในการคอมไพล์ (Compile) หรือแปลงคำสั่งทั้งหมดในโปรแกรมให้เป็นภาษาเครื่อง (Machine Language) เพื่อให้เครื่องคอมพิวเตอร์นำคำสั่งเหล่านั้นไปทำงานต่อไป
ตัวแปลภาษาคอมพิวเตอร์ (Translator) • แอสเซมเบลอ (Assembler) เป็นตัวแปลภาษาแอสแซมบลีซึ่งเป็นภาษาระดับต่ำให้เป็นภาษาเครื่อง • อินเตอร์พรีเตอร์ (Interpreter) เป็นตัวแปลภาษาระดับสูงซึ่งเป็นภาษาที่ใกล้เคียงกับภาษามนุษย์ ไปเป็นภาษาเครื่อง • คอมไพเลอร์ (Compiler) จะเป็นตัวแปลภาษาระดับสูงเช่นเดียวกับอินเตอร์พรีเตอร์แต่จะใช้วิธีแปลโปรแกรมทั้งโปรแกรมให้เป็นออบเจคโคด ก่อนที่จะสามารถนำไปทำงานเช่นเดียวกับแอสแซมเบลอ
โครงสร้างของภาษา C • พรีโพรเซสเซอร์ไดเรกทีฟ • ส่วนการกำหนดค่า • ส่วนฟังก์ชันหลัก • การสร้างฟังก์ชันและการใช้ฟังก์ชัน • ส่วนอธิบายโปรแกรม
พรีโพรเซสเซอร์ไดเรกทีฟเฮดเดอร์ไฟล์ (Header Files) • ทุกโปรแกรมต้องมี • ใช้สำหรับเรียกไฟล์ที่โปรแกรมต้องการในการทำงานและกำหนดค่าต่างๆ • เริ่มต้นด้วยเครื่องหมาย ไดเร็กทีฟ (#) ตามด้วยชื่อโปรแกรม หรือตัวแปรที่ต้องการกำหนดค่า • #include เป็นการแจ้งให้คอมไพเลอร์อ่านไฟล์อื่นเข้ามาคอมไพร่วมด้วย
พรีโพรเซสเซอร์ไดเรกทีฟ เฮดเดอร์ไฟล์ (Header Files) • #include<ชื่อเฮดเดอร์ไฟล์> หรือ • #include “ชื่อเฮดเดอร์ไฟล์” • *** เครื่องหมาย <> คร่อมชื่อไฟล์เป็นการอ่านไฟล์จากไดเร็กทอรีที่กำหนดไว้ก่อน • *** เครื่องหมาย “” คร่อมชื่อไฟล์เป็นการอ่านไฟล์จากไดเร็กทอรีปัจจุบันที่กำลังติดต่ออยู่ และไฟล์ที่จะ include เข้ามานี้ จะต้องไม่มีฟังก์ชัน main()
พรีโพรเซสเซอร์ไดเรกทีฟพรีโพรเซสเซอร์ไดเรกทีฟ Int main (void){ เฮดเดอร์ไฟล์ (Header Files) เป็นส่วนที่เก็บไลบรารี่มาตรฐานของภาษา C ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมในขณะที่กำลังทำการคอมไพล์ โดยใช้คำสั่ง #include<ชื่อเฮดเดอร์ไฟล์> หรือ #include “ชื่อเฮดเดอร์ไฟล์”
ตัวอย่าง #include<stdio.h> เฮดเดอร์ไฟล์นี้จะมีส่วนขยายเป็น .h เสมอ และเฮดเดอร์ไฟล์เป็นส่วนที่จำเป็นต้องมีอย่างน้อย 1 เฮดเดอร์ไฟล์ ก็คือ เฮดเดอร์ไฟล์ stdio.h ซึ่งจะเป็นที่เก็บไลบรารี่มาตรฐานที่จัดการเกี่ยวกับอินพุตและเอาท์พุต
ส่วนตัวแปรแบบ Global (Global Variables) เป็นส่วนที่ใช้ประกาศตัวแปรหรือค่าต่าง ๆ ที่ให้ใช้ได้ทั้งโปรแกรม ซึ่งใช้ได้ทั้งโปรแกรม ซึ่งในส่วนไม่จำเป็นต้องมีก็ได้ ฟังก์ชัน (Functions) เป็นส่วนที่เก็บคำสั่งต่าง ๆ ไว้ ซึ่งในภาษา C จะบังคับให้มีฟังก์ชันอย่างน้อย 1 ฟังก์ชั่นนั่นคือ ฟังก์ชั่น Main() และในโปรแกรม 1 โปรแกรมสามารถมีฟังก์ชันได้มากกว่า 1 ฟังก์ชั่น
ส่วนตัวแปรแบบ Local (Local Variables) เป็นส่วนที่ใช้สำหรับประกาศตัวแปรที่จะใช้ในเฉพาะฟังก์ชันของตนเอง ฟังก์ชั่นอื่นไม่สามารถเข้าถึงหรือใช้ได้ ซึ่งจะต้องทำการประกาศตัวแปรก่อนการใช้งานเสมอ และจะต้องประกาศไว้ในส่วนนี้เท่านั้น
ตัวแปรโปรแกรม (Statements) เป็นส่วนที่อยู่ถัดลงมาจากส่วนตัวแปรภายใน ซึ่งประกอบไปด้วยคำสั่งต่าง ๆ ของภาษา C และคำสั่งต่าง ๆ จะใช้เครื่องหมาย ; เพื่อเป็นการบอกให้รู้ว่าจบคำสั่งหนึ่ง ๆ แล้ว ส่วนใหญ่ คำสั่งต่าง ๆ ของภาษา C เขียนด้วยตัวพิมพ์เล็ก เนื่องจากภาษา C จะแยกความแตกต่างของตัวพิมพ์เล็กและพิมพ์ใหญ่หรือ Case Sensitive นั่นเอง ยกตัวอย่างใช้ Test, test หรือจะถือว่าเป็นตัวแปรคนละตัวกัน นอกจากนี้ภาษา C ยังไม่สนใจกับการขึ้นบรรทัดใหม่ เพราะฉะนั้นผู้ใช้สามารถพิมพ์คำสั่งหลายคำสั่งในบรรทัดเดียวกันได้ โดยไม่เครื่องหมาย ; เป็นตัวจบคำสั่ง
ค่าส่งกลับ (Return Value) เป็นส่วนที่บอกให้รู้ว่า ฟังก์ชันนี้จะส่งค่าอะไรกลับไปให้กับฟังก์ชั่นที่เรียกฟังก์ชั่น ซึ่งเรื่องนี้ผู้เขียนจะยกไปกล่าวในเรื่องฟังก์ชั่นอย่างละเอียดอีกทีหนึ่ง หมายเหตุ (Comment)เป็นส่วนที่ใช้สำหรับแสดงข้อความเพื่ออธิบายสิ่งที่ต้องการในโปรแกรม ซึ่งจะใช้เครื่องหมาย /*และ */ ปิดหัวและปิดท้ายของข้อความที่ต้องการ
การตั้งชื่อ • การตั้งชื่อ (Identifier) ให้กับตัวแปร ฟังก์ชันหรืออื่น ๆ มีกฎเกณฑ์ในการตั้งชื่อ ดังนี้ 1. ตัวแรกของชื่อจะต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมาย _ เท่านั้น 2. ตัวอักษรตั้งแต่ตัวที่ 2 สามารถเป็นตัวเลข หรือเครื่องหมาย_ก็ได้ 3. จะต้องไม่มีการเว้นวรรคภายในชื่อ แต่สามารถใช้เครื่อง_คั่นได้ 4. สามารถตั้งชื่อได้ยาวไม่จำกัด แต่จะใช้ตัวอักษรแค่ 31 ตัวแรกในการอ้างอิง 5. ชื่อที่ตั้งด้วยตัวอักษรพิมพ์ใหญ่และพิมพ์เล็ก จะถือว่าเป็นคนละตัวกัน 6. ห้ามตั้งชื่อซ้ำกับคำสงวนของภาษา C
โครงสร้างพื้นฐานของการเขียนภาษา C รูปแบบ ……………………………………………… # include “stdio.h” Main() { }
คำสั่ง printf() คำสั่ง printfถือว่าเป็นคำสั่งพื้นฐานที่สุดในการแสดงผลข้อมูลทุกชนิดออกทางหน้าจอ ไม่ว่าจะเป็นจำนวนเต็ม( int ) , ทศนิยม ( float ) , ข้อความ ( string ) หรืออักขระ นอกจากนี้คำสั่งยังมีความยืดหยุ่นสูง โดยเราสามารถกำหนดหรือจัดรูปแบบการแสดงผลให้มีระเบียบหรือเหมาะสมตามความต้องการได้อีกด้วย
คำสั่ง printf() printf(“ format ” , variable); format : ข้อมูลที่ต้องการแสดงออกทางหน้าจอ : ข้อมูลเขียนไว้ในเครื่องหมาย “ ” : ข้อมูลที่สามารถแสดงผลได้มีอยู่ 2 ประเภท คือ ข้อความธรรมดา และค่าที่เก็บไว้ในตัวแปร ซึ่งถ้าเป็นค่าที่เก็บไว้ในตัวแปรต้องใส่รหัสควบคุมรูปแบบให้ตรงกับชนิดของข้อมูลที่เก็บไว้ในตัวแปรนั้นด้วย variable : ตัวแปรหรือนิพจน์ที่ต้องการนำค่าไปแสดงผลให้ตรงกับรหัสควบคุมรูปแบบที่กำหนดไว้
คำสั่ง printf() printf(“ format ” , variable); รูปแบบ printf(“ข้อความ”); หรือ รูปแบบ printf(“รหัสควบคุมรูปแบบ”,ตัวแปร); หรือ รูปแบบ printf(“control string”,variable list,……);
ฟังก์ชั่น Printf รูปแบบ printf(“ข้อความ”); หรือ รูปแบบ printf(“รหัสควบคุมรูปแบบ”,ตัวแปร); หรือ รูปแบบ printf(“control string”,variable list,……); # include “stdio.h” Main() { printf(“PRANISA”); }
แก้ปัญหาการ Run ไม่ผ่าน ฟังชั่น Printf รูปแบบ printf(“ข้อความ”); # include “stdio.h” # include “conio.h” Main() { printf(“PRANISA”); getch(); } # include “stdio.h” Main() { printf(“PRANISA”); }
คำสั่ง \t ให้เว้น teb รูปแบบ printf(“…ข้อความ...\t”); # include “stdio.h” # include “conio.h” Main() { printf(“PRANISA\t”); printf(“THONGON”); getch(); }
คำสั่ง \n ให้ขึ้นบรรทัด รูปแบบ printf(“…ข้อความ...\n”); หรือ พิมพ์ข้อความเรียบร้อยแล้วให้ขึ้นบรรทัดใหม่ { printf(“PRANISA\t”); printf(“THONGON\n”); printf(“PRANISA\t”); printf(“THONGON”); getch(); }
คำสั่ง \n ให้ขึ้นบรรทัด รูปแบบ printf(“\n…ข้อความ...”); คำสั่ง \n นำหน้าให้ขึ้นบรรทัดใหม่ก่อน แล้วพิมพ์ข้อความ { printf(“PRANISA\t”); printf(“THONGON”); printf(“\nPRANISA\t”); printf(“THONGON”); getch(); }
คำสั่งเครื่องหมาย % คำสั่ง %d ให้พิมพ์รูปแบบเลขจำนวนเต็มฐานสิบ คำสั่ง %s ให้พิมพ์ชุดตัวอักษร(string) หรือข้อความ คำสั่ง %f ให้พิมพ์รูปแบบเลขทศนิยม คำสั่ง %c ให้พิมพ์ตัวอักษรตัวเดียว(Char) เครื่องหมาย % เรียกว่า format specification
รหัสควบคุมรูปแบบการแสดงผลค่าของตัวแปรออกทางหน้าจอ แสดงได้ดังนี้ เครื่องหมาย \ เรียกว่า backslash
การนำอักขระควบคุมการแสดงผลมาใช้ เราต้องเขียนอักขระควบคุมการแสดงผลไว้ภายในเครื่องหมาย “ ” ดังแสดงตัวอย่างต่อไปนี้ รหัสควบคุมรูปแบบการแสดงผลค่าของตัวแปรออกทางหน้าจอ แสดงได้ดังนี้
คำสั่งรับข้อมูลจากคีย์บอร์ด การทำงานของโปรแกรมส่วนใหญ่มักจะเป็นการเชื่อมโยงกับผู้ใช้แบบ 2 ทิศทาง คือ ทั้งภาคของการแสดงผลการทำงานออกทางหน้าจอ และภาคของการรับข้อมูลจากผู้ใช้เข้ามาทางคีย์บอร์ด เพื่อร่วมในการประมวลผลของโปรแกรม
คำสั่ง scanf()ในภาษา C การรับข้อมูลจากคีย์บอร์ดสามารถทำได้โดยการเรียกใช้ฟังก์ชัน scanf() ซึ่งเป็นฟังก์ชันมาตรฐานสำหรับรับข้อมูลจากคีย์บอร์ด โดยสามารถรับข้อมูลได้ทุกประเภท ไม่ว่าจะเป็นจำนวนเต็ม ทศนิยม อักขระ หรือข้อความ
รูปแบบคำสั่ง scanf()scanf("format",&variable);