16
不不不不不不不 不不不不不不不不不不不不不 不不不不 不不不 不不不 不不不不 不不不 不不不 不 不 不不不 不不不 不不不 :,, 不 不 不不不 不不不 不不不 :,, 不不 不不不 不不不 ,, 不不 不不不 不不不 ,,

นางสาว ปรา นิสา ทองอ่อน ผู้สอน

Embed Size (px)

DESCRIPTION

การเขียนโปรแกรมภาษาซีเบื้องต้น (Introduction to C Programming). นางสาว ปรา นิสา ทองอ่อน ผู้สอน. โครงสร้างของภาษา C. ภาษา C เป็นภาษาระดับกลาง ( Middle –lever language) - PowerPoint PPT Presentation

Citation preview

Page 1: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน
Page 2: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

โครงสร�างของภาษา C

ภาษา C เป็�นภาษาระดั�บกลาง (Middle –lever language)

ภาษา C เป็�นภาษาคอมพิ�วเตอร�ชน�ดัคอมไพิล� (compiled Language) ซึ่ !งม"คอมไพิลเลอร� (Compiler) ทำ$าหน�าทำ"!ในการคอมไพิล� (Compile) หร'อแป็ลงค$าส�!งทำ�)งหมดัในโป็รแกรมให�เป็�นภาษาเคร'!อง (Machine Language) เพิ'!อให�เคร'!องคอมพิ�วเตอร�น$าค$าส�!งเหล*าน�)นไป็ทำ$างานต*อไป็

Page 3: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ต�วแป็ลภาษาคอมพิ�วเตอร� (Translator)

แอสเซึ่มเบลอ (Assembler) เป็�นต�วแป็ลภาษาแอสแซึ่มบล"ซึ่ !งเป็�นภาษาระดั�บต$!าให�เป็�นภาษาเคร'!อง

อ�นเตอร�พิร"เตอร� (Interpreter) เป็�นต�วแป็ลภาษาระดั�บส+งซึ่ !งเป็�นภาษาทำ"!ใกล�เค"ยงก�บภาษามน-ษย� ไป็เป็�นภาษาเคร'!อง

คอมไพิเลอร� (Compiler) จะเป็�นต�วแป็ลภาษาระดั�บส+งเช*นเดั"ยวก�บอ�นเตอร�พิร"เตอร�แต*จะใช�ว�ธี"แป็ลโป็รแกรมทำ�)งโป็รแกรมให�เป็�นออบเจคโคดั ก*อนทำ"!จะสามารถน$าไป็ทำ$างานเช*นเดั"ยวก�บแอสแซึ่มเบลอ

Page 4: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

โครงสร�างของภาษา C

พิร"โพิรเซึ่สเซึ่อร�ไดัเรกทำ"ฟ ส*วนการก$าหนดัค*า ส*วนฟ2งก�ช�นหล�ก การสร�างฟ2งก�ช�นและการใช�ฟ2งก�ช�น ส*วนอธี�บายโป็รแกรม

Page 5: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

โครงสร�างของภาษา C

Page 6: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

พิร"โพิรเซึ่สเซึ่อร�ไดัเรกทำ"ฟ เฮดัเดัอร�ไฟล� (Header

Files) ทำ-กโป็รแกรมต�องม"ใช�ส$าหร�บเร"ยกไฟล�ทำ"!โป็รแกรมต�องการในการทำ$างานและก$าหนดัค*าต*างๆเร�!มต�นดั�วยเคร'!องหมาย ไดัเร5กทำ"ฟ (#) ตามดั�วยช'!อโป็รแกรม หร'อต�วแป็รทำ"!ต�องการก$าหนดัค*า# include เป็�นการแจ�งให�คอมไพิเลอร�อ*านไฟล�อ'!นเข�ามาคอมไพิร*วมดั�วย

Page 7: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

พิร"โพิรเซึ่สเซึ่อร�ไดัเรกทำ"ฟ เฮดัเดัอร�ไฟล� (Header

Files) # include<ช'!อเฮดัเดัอร�ไฟล� > หร'อ # include  “ช'!อเฮดัเดัอร�ไฟล�”

*** เคร'!องหมาย <> คร*อมช'!อไฟล� เป็�นการอ*านไฟล�จากไดัเร5กทำอร"ทำ"!ก$าหนดัไว�ก*อน*** เคร'!องหมาย “” คร*อมช'!อไฟล� เป็�นการอ*านไฟล�จากไดัเร5กทำอร"ป็2จจ-บ�นทำ"!ก$าล�งต�ดัต*ออย+* และไฟล�ทำ"!จะ include เข�ามาน") จะต�องไม*ม"ฟ2งก�ช�น main()

Page 8: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

พิร"โพิรเซึ่สเซึ่อร�ไดัเรกทำ"ฟ

Int main (void){

เฮดัเดัอร�ไฟล� (Header Files) เป็�นส*วนทำ"!เก5บไลบราร"!มาตรฐานของภาษา C ซึ่ !งจะถ+กดั งเข�ามารวมก�บโป็รแกรมในขณะทำ"!ก$าล�งทำ$าการคอมไพิล� โดัยใช�ค$าส�!ง # include<ช'!อเฮดัเดัอร�ไฟล� > หร'อ # include  “ช'!อเฮดัเดัอร�ไฟล� ”

Page 9: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ต�วอย*าง # include<stdio.h>     เฮดัเดัอร�ไฟล�น")จะม"ส*วนขยายเป็�น .h เสมอ และเฮดัเดัอร�ไฟล�เป็�นส*วนทำ"!จ$าเป็�นต�องม"อย*างน�อย 1 เฮดัเดัอร�ไฟล� ก5ค'อ เฮดัเดัอร�ไฟล� stdio.h ซึ่ !งจะเป็�นทำ"!เก5บไลบราร"!มาตรฐานทำ"!จ�ดัการเก"!ยวก�บอ�นพิ-ตและเอาทำ�พิ-ต

Page 10: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ส*วนต�วแป็รแบบ Global (Global Variables) เป็�นส่�วนที่�ใช้�ป็ระกาศตั�วแป็รหร�อค่�าตั�าง ๆ ที่�ให�ใช้�ได้�ที่� �งโป็รแกรม ซึ่#�งใช้�ได้�ที่� �งโป็รแกรม  ซึ่#�งในส่�วนไม�จำ&าเป็�นตั�องมก'ได้�

ฟ2งก�ช�น (Functions) เป็�นส่�วนที่�เก'บค่&าส่��งตั�าง ๆ ไว� ซึ่#�งในภาษา C จำะบ�งค่�บให�มฟั,งก-ช้�นอย่�างน�อย่ 1 ฟั,งก-ช้� �นน��นค่�อ ฟั,งก-ช้� �น Main() และในโป็รแกรม 1 โป็รแกรมส่ามารถมฟั,งก-ช้�นได้�มากกว�า 1 ฟั,งก-ช้� �น

Page 11: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ส*วนต�วแป็รแบบ Local (Local Variables) เป็�นส่�วนที่�ใช้�ส่&าหร�บป็ระกาศตั�วแป็รที่�จำะใช้�ในเฉพาะฟั,งก-ช้�นของตันเอง ฟั,งก-ช้� �นอ��นไม�ส่ามารถเข�าถ#งหร�อใช้�ได้� ซึ่#�งจำะตั�องที่&าการป็ระกาศตั�วแป็รก�อนการใช้�งานเส่มอ  และจำะตั�องป็ระกาศไว�ในส่�วนน�เที่�าน��น

Page 12: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ต�วแป็รโป็รแกรม (Statements) เป็�นส่�วนที่�อย่4�ถ�ด้ลงมาจำากส่�วนตั�วแป็รภาย่ใน ซึ่#�งป็ระกอบไป็ด้�วย่ค่&าส่��งตั�าง ๆ ของภาษา C และค่&าส่��งตั�าง ๆ จำะใช้�เค่ร��องหมาย่ ; เพ��อเป็�นการบอกให�ร4 �ว�าจำบค่&าส่��งหน#�ง ๆ แล�ว ส่�วนใหญ่� ค่&าส่��งตั�าง ๆ ของภาษา C เขย่นด้�วย่ตั�วพ6มพ-เล'ก เน��องจำากภาษา C จำะแย่กค่วามแตักตั�างของตั�วพ6มพ-เล'กและพ6มพ-ใหญ่�หร�อ Case Sensitive น��นเอง ย่กตั�วอย่�างใช้� Test, test หร�อจำะถ�อว�าเป็�นตั�วแป็รค่นละตั�วก�น นอกจำากน�ภาษา C ย่�งไม�ส่นใจำก�บการข#�นบรรที่�ด้ใหม� เพราะฉะน��นผู้4�ใช้�ส่ามารถพ6มพ-ค่&าส่��งหลาย่ค่&าส่��งในบรรที่�ด้เด้ย่วก�นได้� โด้ย่ไม�เค่ร��องหมาย่ ; เป็�นตั�วจำบค่&าส่��ง

Page 13: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค*าส*งกล�บ (Return Value) เป็�นส่�วนที่�บอกให�ร4 �ว�า ฟั,งก-ช้�นน�จำะส่�งค่�าอะไรกล�บไป็ให�ก�บฟั,งก-ช้� �นที่�เรย่กฟั,งก-ช้� �น ซึ่#�งเร��องน�ผู้4�เขย่นจำะย่กไป็กล�าวในเร��องฟั,งก-ช้� �นอย่�างละเอย่ด้อกที่หน#�ง

หมายเหต- (Comment)      เป็�นส่�วนที่�ใช้�ส่&าหร�บแส่ด้งข�อค่วามเพ��ออธิ6บาย่ส่6�งที่�ตั�องการในโป็รแกรม ซึ่#�งจำะใช้�เค่ร��องหมาย่ */ และ */ป็9ด้ห�วและป็9ด้ที่�าย่ของข�อค่วามที่�ตั�องการ

Page 14: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน
Page 15: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

การต�)งช'!อ การต�)งช'!อ (Identifier) ให�ก�บต�วแป็ร ฟ2งก�ช�นหร'ออ'!น ๆ ม"

กฎเกณฑ์�ในการต�)งช'!อ ดั�งน")   1. ตั�วแรกของช้��อจำะตั�องข#�นตั�นด้�วย่ตั�วอ�กษรหร�อเค่ร��องหมาย่ _

เที่�าน��น   2. ตั�วอ�กษรตั��งแตั�ตั�วที่� 2 ส่ามารถเป็�นตั�วเลข หร�อ

เค่ร��องหมาย่_ก'ได้�   3. จำะตั�องไม�มการเว�นวรรค่ภาย่ในช้��อ แตั�ส่ามารถใช้�เค่ร��อง_ค่��นได้�   4. ส่ามารถตั��งช้��อได้�ย่าวไม�จำ&าก�ด้ แตั�จำะใช้�ตั�วอ�กษรแค่� 31 ตั�ว

แรกในการอ�างอ6ง   5. ช้��อที่�ตั� �งด้�วย่ตั�วอ�กษรพ6มพ-ใหญ่�และพ6มพ-เล'ก จำะถ�อว�าเป็�นค่นละ

ตั�วก�น   6. ห�ามตั��งช้��อซึ่&�าก�บค่&าส่งวนของภาษา C

Page 16: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

โครงสร�างพิ')นฐานของการเข"ยนภาษา โครงสร�างพิ')นฐานของการเข"ยนภาษา CC

ร+ป็แบบ ร+ป็แบบ ………………………………………………………………………………………………# include “stdio.h”Main(){

}

Page 17: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!ง printf() ค$าส�!ง printf ถ'อว*าเป็�นค$าส�!งพิ')นฐานทำ"!ส-ดัในการแสดังผลข�อม+ลทำ-กชน�ดัออกทำางหน�าจอ ไม*ว*าจะเป็�นจ$านวนเต5ม ( int ) , ทำศน�ยม ( float ) , ข�อความ ( string ) หร'ออ�กขระ นอกจากน")ค$าส�!งย�งม"ความย'ดัหย-*นส+ง โดัยเราสามารถก$าหนดัหร'อจ�ดัร+ป็แบบการแสดังผลให�ม"ระเบ"ยบหร'อเหมาะสมตามความต�องการไดั�อ"กดั�วย

Page 18: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!ง printf() printf(“ format ” , variable);format : ข�อม+ลทำ"!ต�องการแสดังออกทำางหน�าจอ

: ข�อม+ลเข"ยนไว�ในเคร'!องหมาย “ ”: ข�อม+ลทำ"!สามารถแสดังผลไดั�ม"อย+* 2

ป็ระเภทำ ค'อ ข�อความธีรรมดัา และค*าทำ"!เก5บไว�ในต�วแป็ร ซึ่ !งถ�าเป็�นค*าทำ"!เก5บไว�ในต�วแป็รต�องใส*รห�สควบค-มร+ป็แบบให�ตรงก�บชน�ดัของข�อม+ลทำ"!เก5บไว�ในต�วแป็รน�)นดั�วย variable : ต�วแป็รหร'อน�พิจน�ทำ"!ต�องการน$าค*าไป็แสดังผลให�ตรงก�บรห�สควบค-มร+ป็แบบทำ"!ก$าหนดัไว�

Page 19: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!ง printf() printf(“ format ” , variable);ร+ป็แบบ printf(“ข�อความ”); หร'อร+ป็แบบ printf(“รห�สควบค-มร+ป็แบบ”,ต�วแป็ร); หร'อร+ป็แบบ printf(“control string”,variable list,……);

Page 20: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ฟ2งก�ช�!น ฟ2งก�ช�!น PrintfPrintfร+ป็แบบ printf(“ข�อความ”); หร'อร+ป็แบบ printf(“รห�สควบค-มร+ป็แบบ”,ต�วแป็ร); หร'อร+ป็แบบ printf(“control string”,variable list,……); # include

“stdio.h”Main(){

printf(“PRANISA”);}

Page 21: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

แก�ป็2ญหาการ แก�ป็2ญหาการ Run Run ไม*ผ*าน ฟ2งช�!น ไม*ผ*าน ฟ2งช�!น Printf Printf

# include “stdio.h”# include “conio.h”Main(){

printf(“PRANISA”);getch();}

ร+ป็แบบ printf(“ข�อความ”);

# include “stdio.h”Main(){

printf(“PRANISA”);}

Page 22: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!ง ค$าส�!ง \t \t ให�เว�น ให�เว�น tebteb

ร+ป็แบบ printf(“…ข�อความ...\t”); # include

“stdio.h”# include “conio.h”Main(){

printf(“PRANISA\t”);

printf(“THONGON”);getch();}

Page 23: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!ง ค$าส�!ง \n \n ให�ข )นบรรทำ�ดัให�ข )นบรรทำ�ดัร+ป็แบบ printf(“…ข�อความ...\

n”); หร'อพิ�มพิ�ข�อความเร"ยบร�อยแล�วให�ข )น

บรรทำ�ดัใหม*{

printf(“PRANISA\t”);

printf(“THONGON\n”);

printf(“PRANISA\t”);

printf(“THONGON”);getch();}

Page 24: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!ง ค$าส�!ง \n \n ให�ข )นบรรทำ�ดัให�ข )นบรรทำ�ดัร+ป็แบบ printf(“\n…ข�อความ...”);ค$าส�!ง \n น$าหน�าให�ข )นบรรทำ�ดัใหม*ก*อน

แล�วพิ�มพิ�ข�อความ{

printf(“PRANISA\t”);

printf(“THONGON”);

printf(“\nPRANISA\t”);

printf(“THONGON”); getch();}

Page 25: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!งค$าส�!งเคร'!องหมาย %

ค$าส�!ง ค$าส�!ง %d %d ให�พิ�มพิ�ร+ป็แบบเลขจ$านวนเต5มให�พิ�มพิ�ร+ป็แบบเลขจ$านวนเต5มฐานส�บฐานส�บค$าส�!ง ค$าส�!ง %s %s ให�พิ�มพิ�ช-ดัต�วอ�กษรให�พิ�มพิ�ช-ดัต�วอ�กษร((string) string) หร'อข�อความหร'อข�อความค$าส�!ง ค$าส�!ง %f %f ให�พิ�มพิ�ร+ป็แบบเลขทำศน�ยมให�พิ�มพิ�ร+ป็แบบเลขทำศน�ยมค$าส�!ง ค$าส�!ง %c %c ให�พิ�มพิ�ต�วอ�กษรต�วให�พิ�มพิ�ต�วอ�กษรต�วเดั"ยวเดั"ยว(Char)(Char)

เคร'!องหมาย % เร"ยกว*า format specification

Page 26: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!งค$าส�!งเคร'!องหมาย %

Page 27: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!งค$าส�!งเคร'!องหมาย %

Page 28: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

รห�สควบค-มร+ป็แบบการแสดังผลค*าของต�วแป็ร

ออกทำางหน�าจอ แสดังไดั�ดั�งน")

เคร'!องหมาย \ เร"ยกว*า backslash

Page 29: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

รห�สควบค-มร+ป็แบบการแสดังผลค*าของต�วแป็ร

ออกทำางหน�าจอ แสดังไดั�ดั�งน")

การน&าอ�กขระค่วบค่:มการแส่ด้งผู้ลมาใช้� เราตั�องเขย่นอ�กขระค่วบค่:มการแส่ด้งผู้ลไว�ภาย่ในเค่ร��องหมาย่ “ ” ด้�งแส่ด้งตั�วอย่�างตั�อไป็น�

                                                                                                                                                                                                                                                                                                                                                                                           

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

Page 30: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!งร�บข�อม+ลจากค"ย�บอร�ดัค$าส�!งร�บข�อม+ลจากค"ย�บอร�ดั          การที่&างานของโป็รแกรมส่�วนใหญ่�ม�กจำะเป็�นการเช้��อมโย่งก�บผู้4�ใช้�แบบ    2ที่6ศที่าง  ค่�อ  ที่��งภาค่ของการแส่ด้งผู้ลการที่&างานออกที่างหน�าจำอ  และภาค่ของการร�บข�อม4ลจำากผู้4�ใช้�เข�ามาที่างค่ย่-บอร-ด้  เพ��อร�วมในการป็ระมวลผู้ลของโป็รแกรม 

Page 31: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ค$าส�!ง  ค$าส�!ง  scanf()scanf()          ในภาษา C  การร�บข�อม4ลจำากค่ย่-บอร-ด้ส่ามารถที่&าได้�โด้ย่การเรย่กใช้�ฟั,งก-ช้�น  scanf()  ซึ่#�งเป็�นฟั,งก-ช้�นมาตัรฐานส่&าหร�บร�บข�อม4ลจำากค่ย่-บอร-ด้  โด้ย่ส่ามารถร�บข�อม4ลได้�ที่:กป็ระเภที่  ไม�ว�าจำะเป็�นจำ&านวนเตั'ม  ที่ศน6ย่ม  อ�กขระ หร�อข�อค่วาม 

Page 32: นางสาว ปรา นิสา  ทองอ่อน ผู้สอน

ร+ป็แบบค$าส�!ง  ร+ป็แบบค$าส�!ง  scanf()scanf()

scanf("format",&variable);