การเขียนโปรแกรมคอมพิวเตอร์ turbo c++ ·...

21
การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ ชื่อวิชา 33201 (การเขียนโปรแกรมคอมพิวเตอร์ ) จุดประสงค์รายวิชา 1. ผู้เรียนมีความรู้เบื ้องต ้นเกี่ยวกับการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ต่างๆ 2. ผู้เรียนเข้าใจหลักการเขียนโปรแกรม 3. ผู้เรียนสามารถเขียนโปรแกรมภาษาซีได้อย่างเป็นระบบและมีขั ้นตอน 4 . ผู้เรียนสามารถเขียนโปรแกรมประยุกต์ตามการใช้งานต่างๆ ได้ สาระสาคัญ ภาษาซีจัดเป็นภาษาระดับกลางที่มีลักษณะเป็นภาษาโครงสร้าง สามารถประยุกต์ใช้ได้กับงาน ในลักษณะต่างๆ เป็นภาษาที่ใกล้เคียงกับภาษาแอสแซมบลี ผ้เขียนโปรแกรมจะสามารถเขียนโปรแกรมได้อย่าง คล่องตัวโดยไม่มีข้อจากัดในการวางตาแหน่งฟังก์ชันในโปรแกรม ภาษาซีจึงเป็นภาษาที่ง่ายต่อการเข้าใจและ การนาไปใช้งาน การสร้างโปรแกรมภาษาซีจะเริ่มจากการเขียนโปรแกรมต้นกาเนิด แล้วนาไปทาการแปลด้วย ตัวแปลภาษาซีเกิดเป็นโปรแกรมประสงค์ หลังจากนั ้นจึงนาโปรแกรมประสงค์ไปทาการเชื่อมโยง เพื่อให้เกิด เป็นโปรแกรมทาการที่สามารถทางานได้อย่างรวดเร็ว ประวัติของภาษาซี

Upload: others

Post on 02-Sep-2019

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

การเขยนโปรแกรมคอมพวเตอร Turbo c++

ชอวชา ง 33201 (การเขยนโปรแกรมคอมพวเตอร) จดประสงครายวชา 1. ผเรยนมความรเบองตนเกยวกบการเขยนโปรแกรมดวยภาษาคอมพวเตอรตาง ๆ2. ผเรยนเขาใจหลกการเขยนโปรแกรม 3. ผเรยนสามารถเขยนโปรแกรมภาษาซไดอยางเปนระบบและมขนตอน 4 . ผเรยนสามารถเขยนโปรแกรมประยกตตามการใชงานตาง ๆได

สาระส าคญ

ภาษาซจดเปนภาษาระดบกลางทมลกษณะเปนภาษาโครงสราง สามารถประยกตใชไดกบงาน

ในลกษณะตางๆ เปนภาษาทใกลเคยงกบภาษาแอสแซมบล ผเขยนโปรแกรมจะสามารถเขยนโปรแกรมไดอยาง

คลองตวโดยไมมขอจ ากดในการวางต าแหนงฟงกชนในโปรแกรม ภาษาซจงเปนภาษาทงายตอการเขาใจและ

การน าไปใชงาน การสรางโปรแกรมภาษาซจะเรมจากการเขยนโปรแกรมตนก าเนด แลวน าไปท าการแปลดวย

ตวแปลภาษาซเกดเปนโปรแกรมประสงค หลงจากนนจงน าโปรแกรมประสงคไปท าการเชอมโยง เพอใหเกด

เปนโปรแกรมท าการทสามารถท างานไดอยางรวดเรว

ประวตของภาษาซ

Page 2: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

ภาษาซมประโยชน

หลกการเรยนรภาษาซใหเขาใจ

Page 3: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

ตวแปรภาษา ( Translator)

Page 4: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

สวนประกอบของโปรแกรม

Editor ของภาษาซ

Page 5: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

แนวขอสอบ

Page 6: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

ขนตอนในการเขยนโปรแกรม

ประกอบดวย 5 ขนตอน

1.การวเคราะหปญหา

2.การก าหนดแผนในการแกปญหา

3.การลงรหสโปรแกรม

4.การทดสอบและตรวจสอบโปรแกรม

5.การจดท าคมอเอกสารในการใชโปรแกรม

การวเคราะหปญหา

การก าหนดปญหา

สามารถใชเครองมอ 2 ชนด

1.การเขยนผงงาน (Flowchart)

2.การเขยนดวยค าสงเทยม (Psuedo Code)

Page 7: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม
Page 8: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม
Page 9: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

การลงรหส โดยใชภาษาทตองการลงรหส เชน ภาษาปาสคาล ภาษาซ ภาษาโคบอล การทดสอบและตรวจสอบโปรแกรม

- เปนการทดสอบและตรวจสอบโปรแกรมทท าขน วาสามารถน าไปใชงานไดตามทตองการหรอไม - โดยน ามาทดสอบกบระบบจรง - ถาตรวจสอบแลวพบความผดพลาด จะไดด าเนนการแกไขไดถกตอง

การจดท าคมอเอกสารดารใชโปรแกรม

- เพอใหผใช (User) สามารถใชงานโปรแกรมไดสะดวกขน

Page 10: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

องคประกอบของภาษาซ กฏเกณฑการเขยนค าสง ( Rule of Command )

โครงสรางของภาษาซ

Page 11: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม
Page 12: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

แนวขอสอบ

Page 13: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

ค าสงในการรบและแสดงผลขอมล ล าดบขนตอนการเขยนโปรแกรม

ค าสง

Page 14: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม
Page 15: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

นบต งแตคอมพวเตอรเครองแรกถกสรางขนเมอประมาณป ค.ศ1930-1940 การ

เขยนโปรแกรมเพอส งงานคอมพวเตอร นบวาเปนสวนส าคญในการพฒนาคอมพวเตอร

เรอยมา เพราะคอมพวเตอรยอมไมสามารถท างานได เมอปราศจากโปรแกรม

การเขยนโปรแกรมกคอการ "ส งงาน" ใหกบคอมพวเตอร ซงการส งงานจะอยในรปแบบ

ของ "ชดค าส ง" ซงค าส งทใชในการเขยนโปรแกรมกมนบรอยนบพน(ม ง)

"แลวอะไรคอภาษาซละ" คนทไมเคยเรยนมากอนกคงสงสย การเขยนโปรแกรมทวาอยใน

รปของค าส งนน กเปรยบเสมอนค าพดทเราใชในชวตประจ าวน ซงแนนอนวามหลากหลาย

ภาษา แตกสามารถตความหมายออกมาไดเหมอนๆกน ในคอมพวเตอรเอง กม "ภาษา" ท

ใชในการเขยนโปรแกรม ตรงนถาใครยงงงๆ กผานไปกไดครบ เดยวเราจะคอยๆเขาใจไป

Page 16: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

เองเมอเรยนไปซกพก ตอเลยนะ แตละภาษาจะมชอของค าส งตางๆกน แตกสามารถ

ส งงานไดคลายๆกน

ระดบของ "ภาษา"

"ภาษากมระดบดวยหรอ"ใชแลว ภาษาในการเขยนโปรแกรมถกจดเปนระดบๆครบ

ภาษาระดบสง เชน Pascal JAVA(ชอนคนๆม ย) มรปแบบค าส งทเหมอนกบภาษามนษย

(print,while,for,if..) ส งงานระดบฮารดแวรไดบาง แตไมถงทสด

ภาษาระดบต า เชน Assembly รปแบบค าส งจะจ ายากๆหนอย แตเกงกวาตรงทท างานเรว

และส งงานฮารดแวรในเครองไดในระดบทลกทสด

แลวภาษาซละ...

เพอนๆครบ ภาษาซเปนภาษาทเจงตรงทมนเปนท งสงและต าครบ (บางคนเรยกวา

ระดบกลางกม) ค าส งสวนมากอยในรปของภาษามนษยครบ แตมนกสามารถส งงาน

ฮารดแวรในระดบลกไดเชนกน (เจงใชมะ...)

อยางแรก อยากใหทกคนมจดมงหมายทจะเรยนกอนครบ

- เพอใชสอบแขงขน (สอวน - โอลมปกท งไทยและนานาชาต นยมใชภาษาน)

- อยากท างานดานน ซงหากจะเรยนทางคอมพวเตอร เราควรจะเขยนโปรแกรมเปน

- เสรมบารม (แบบวาอวดเคาได หรอเอาไวเวลาหางานจะไดดเหมอนมความร)

- ไมร แตกอยากเรยน (ความมงม นอยางเดยวกเพยงพอ)

ท าไมจงควรเรยน C เปนอยางแรก

เปนปญหาโลกแตกเหลอเกน ทวาเราจะเร มตนทภาษาอะไรด แตส าหรบผม...เชยรCสดใจ

1. C เปนเสมอนรากฐานของหลายๆภาษา ถาทานเรยน C ภาษาอนกงายนดเดยว

2. C มพอยนเตอร พอยเตอรเปนสวนหนงทใชท างานกบหนวยความจ าไดอยางอสระสดๆ

ท าใหเราพลกแพลงโปรแกรมไดอยางหลากหลาย ซงหลายๆภาษาไมมส งน

3. C เปนมาตรฐานเดยวกนทงโลก ทานสามารถเอาภาษาซไปคอมไพลใชงานไดในทกๆ

ระบบปฏบตการ

4. C เปนท งระดบสงและต า ทานสามารถเขยนภาษาซดวยค าส งทจ างาย และกยงสามารถ

เขยนตดตอกบฮารดแวรไดเตมท

กอนจะเขยนภาษาซ อยากใหเราเขาใจวาการเรยนเขยนโปรแกรมในบลอกแหงน

โปรแกรมทไดจะอยในรปของ command line คอเปนแคหนาตางสด าๆและตวหนงสอส

ขาวๆ (ลองกด start -> run แลวพมพ cmd กดok)ทดแสนจะโบราณ ไมไดเปนโปรแกรม

หนาตาสวยหรอยางทเราใช แตหากเราอยากเขยนไดแบบน น กมสองทางครบ คอไปเขยน

Page 17: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

ดวย visual basic ซงคอนขางงาย แตจะไมอธบายในน และอกทางคอเรยนในบลอกน

จนทานแนใจแลววาเขยนโปรแกรมโบราณๆแบบน ไดคลองแลว จงไปตอในดาน

GUI(Graphic User interface) ซงยากพอสมควร แตทานจะสามารถเขยนโปรแกรมเพอ

ใชงานจรงไดอยางเตมท

สดทายผมขอใหทกๆคนพมพโคดโปรแกรมท งหมดดวยตวเองและลองท าแบบฝกหดทก

ขอ หากท าได ผมเชอวาไมนานทานจะเกงขนครบ

จรงๆครบ มนท าอะไรไ าดมากมาย

หลกการงายๆคอ มนจะเอาสงทอยในวงเลบไปแสดงผลทางหนาจอครบ

เชน printf("Good morning C"); มนกจะเอาขอความในวงเลบไปแสดงผล แตตองม

เครองหมายค าพดนะครบ

แลวถาอยากขนบรรทดใหมละ

ถาอยากขนบรรทดใหม ใชเครองหมาย \n (แบคสแลช+เอน) ครบ

printf("Hello\nGood morning\nC is easy");

ผลลพธ

Hello

Good morning

C is easy

นอกจากนยงม \t = เลอนไป 6 ตวอกษร

\b = เลอนกลบไป 1 ตวอกษร

\a = สงเสยง บบ ส นๆ

ถาตองการแสดงผลเครองหมาย backSlash จะท ายงไงละ

เวลา จะแสดงเครองหมาย \ หรอวา " ทางหนาจอ ถาพมพลงไปตรงๆมนจะใชงานไมได

คบ (ลองดด) ใหใชวธน แทน คอถาตองการแสดง \ กใหพมพ \\ ถาตองการแสดง " กให

พมพ \" ครบ

printf("\\n is new line \nAnd \" is double quote");

ผลลพธจะเปน

\n is new line

" isdouble quote

การแสดงผลการค านวณดวย printf

Page 18: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

printf ไมไดแสดงไดแตขอความโงๆ เทาน น เรายงสามารถใหมนแสดงคาจากการค านวณ

รปแบบคอ printf("%d",นพจน); (นพจนอยหลงคอมมาซงอยนอกเครองหมายค าพดนะ

ครบ) เมอเราใสนพจนเขาไป โปรแกรมจะหาค าตอบและแสดงผลในสวนทเปน "%d" ครบ

เชนถาเราใช printf("%d",5+9*7);

ผลลพธ

68 (ค านวณจาก 9*7 กอน แลวจงบวก 5)

เราสามารถใชรวมกบสวนของขอความไดครบ เชน printf("Result = %d",5+9*7);

ผลลพธ

Result = 68

แตถาเราใสแบบน printf("5+9*7");

ผลลพธท แสดงออกมาจะไมใช 68 นะครบ แตมนจะแสดงขอความทเขยนวา "5+9*7"

ออกมาเลย

เพราะฉะน น ถาอยากใหผลลพธโผลตรงไหน ใหใส %d ไวตรงนนครบ

เราท าแบบนกไดนะ printf("Number A = %d\nNumber B = %d\nNumber

C %d",18+5,9,39+1*5);

ผลลพธ

Number A = 23

Number B = 9

Number C = 44

ซงใสตวอยางจะเหนวามหลายนพจน ซงจะแสดงเรยงตามล าดบ

แตถาเราอยากพมพค าวา "%d" ใหเราพมพวา printf("%%d"); คอม % ซ าสองตว

ครบ

ผลลพธ

%d

นอกจาก %d แลวยงม % อนๆอกนะครบ %d จะแสดงผลเปนเลขฐานสบจ านวณเตม

หากนพจนเปน 20/6 มนจะแสดงผลเปน 3 (20 หาร 6 ได 3.กวาๆ แตมนแสดงจ านวณ

เตม จงตดเศษทง ไมมการปดขนนะครบ ปดลงอยางเดยว)

ดจากตาราง(ทไมเปนตารางเทาไ าหร)

Page 19: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

%d - เลขจ านวณเตมฐานสบ (Decimal)

%ld - เหมอน %d แตถาใน TC จะตางกนนดหนอย เดยวจะบอกตอนเรยนเรองตวแปร

%f - แสดงเลขทศนยมได (ปกตทศนยม 6 ต าแหนง) (Float)

%lf - เหมอน %f แตแสดงคาไดมากกวา

%c - แสดงตวอกษรตวเดยว(Charator)

%s - แสดงขอความยาวๆ (String)

จรงๆยงมอก แตหลกๆจะใชเทานครบ เราจะขาม %c กบ %s ไปกอน จะบอกทหลง

ถาเราตองการแสดงทศนยม เรากท าแบบน printf("%f",20.0/6.0); (ตองเตม .0 หรอ

.00 ดวยนะครบ)

ผลลพธ

3.333333

ถาเราอยากใหมนแสดงทศนยมแค 2 ตว ใหเราใช %.2f (เปอรเซนตจดสองเอฟ) หรอถา

อยากแสดงทศนยม 3 หลก กใช %.3f ครบ ลองดๆ

จรงๆยงมอกนดหนอย แตจะยงไมพดถงละกนนะครบ ยงไมคอยจ าเปนตองใช

หวงวาจะเปนความรใหทกๆคนนะครบ ใครอานแลวงงไมวาบทไหน ทงคอมเมนตไวกได

ครบ

เราไดเรยนแบบเงอนไขเดยวและสองเงอนไขกนไปแลว ตอนนจะมาเรยนการใช if...else

แบบมากกวาสองเงอนไขกนครบ

ยกตวอยางโจทยเรองโปรแกรมตดเกรด

ถา คะแนน >= 80 ใหเกรด 4

ถาไมใช แตถาเกรด >= 70 เกรด 3

ถาไมใชอก แตถาเกรด >= 60 เกรด 2

ถาไมใชอกแลว แตถา เกด >= 50 เกรด 1

ถาไมใชอก ให 0 ไปเลย เพราะยงไงกต ากวา 50

จ าไดม ยครบ ลองดโคดตรงนนะครบ

int score;

scanf("%d",&score); // รบคาคะแนนนกเรยน

ถงตรงนเรากจะรบคะแนนจากผปใชแลวแปลงเปนเกรดตามเกณฑดานบน วธการคอใชส ง

ทเรยกวา "else if" ครบ ออ ลมบอกไปวา เราอยามองวา if เปนฟงกชนนะครบ ถงมนจะม

วงเลบ () เหมอนกน ใหมองวามนเปนค าส งอยางนงครบ เราสามารถใช if ไดโดยไม

include อะไรเลย ตอๆ "else if" มความหมายวา "ถาไมใช แตถา"

Page 20: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

แลวกอยากบอกอกอยาง คอ ถาใน if ของเรามแคค าส งเดยว เราไมจ าเปนตองม { } กได

ครบ คอเขยนแบบนไปเลย

if(เงอนไข) ค าส ง; // ค าส งนถอวาอยใน if

ค าส ง; // ค าส งท 2 เปนตนไป ถอวาอยนอก if

หรอวาจะขนบรรทดใหมกอนกไดนะ

if(เงอนไข)

ค าส ง; // ค าส งนอยใ if

ค าส ง; // อนนเปนอนทสอง จงถอวาอยนอก if แลว

การใช else if กเหมอนการใช if แทบทกประการครบ ดโคดนนะครบ

#include [stdio.h] // เปลยน [ ,] เปน < , > ดวยนะ

int main()

{

int score;

scanf("%d",&score);

if(score>=80) //

printf("Grade A"); // ค าส งนถอวาอยใน if แมวา าไมมปกกา

else if(score>=70)

printf("Grade B");

else if(score>=60)

printf("Grade C");

else if(score>=50)

printf("Grade D");

else

printf("Grade F");

scanf(" ");

return 0;

}

แบบนลองดตามนะครบ ถา score เปน 100 เตม มนกจะเชคจาก if อนแรกครบ ถา score

>= 80 ซงเปนจรง(ในทน score เปน 100) มนกจะพมพ Grade A ครบ พอมนท าอนน

แลว ถามวามนไปเชคอนตอไปรเปลา (else if(score>=70)) ค าตอบคอไมครบ เพราะถา

มนท าอนนงแลว ไมจะไมท าเงอนอนอนในชดเดยวกนอก ถามวาชดเดยวกนคออะไ าร

คอ if 1 ชด ม if ไดอนเดยว ม else if กอนกได แลวกม else ไดอนเดยวครบ โดยจะม

else if แล else ไดกตอเมอม if แลว ถางง ลองดตวอยาง

Page 21: การเขียนโปรแกรมคอมพิวเตอร์ Turbo c++ · การจัดท าคู่มือเอกสารดารใช้โปรแกรม

if(...) {...}

else if(...) {...}

else if(...) {...}

else {...}

อนนคอ 1 ชด

if(...) {...}

else if(...) {...}

if(...)

else {...}

อนนม 2 ชดครบ เพราะม if สองตวเหนม ย if ตวใหมกคอขนชดใหมน นเอง

if(...) {...}

if(..) {...}

อนนก 2 ชด

else {...}

อนนผด เพราะม else แตไมม if น ามากอน