หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 ·...

22
การออกแบบและพัฒนาโปรแกรมขนาดเล็ก ด้วยโปรแกรมภาษาซี 1. ความรู้พื ้นฐานในการเขียนโปรแกรมภาษาซี 2. องค์ประกอบพื ้นฐานของภาษาซี 3. เริ่มต้นใช้งานภาษาซี 4. คาสั่งในการรับข้อมูล การแสดงผล และการคานวณ 1. บอกพื ้นฐานในการเขียนโปรแกรมภาษาซีได2. บอกองค์ประกอบของภาษาซีได้ 3. บอกวิธีการใช้งานภาษาซีได้ 4. บอกคาสั่งในการรับข้อมูล แสดงผล และการคานวณได้ สาระการเรียนรู จุดประสงค์การเรียนรู หน่วยที่ 5

Transcript of หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 ·...

Page 1: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลก

ดวยโปรแกรมภาษาซ

1. ความรพนฐานในการเขยนโปรแกรมภาษาซ 2. องคประกอบพนฐานของภาษาซ 3. เรมตนใชงานภาษาซ 4. ค าสงในการรบขอมล การแสดงผล และการค านวณ

1. บอกพนฐานในการเขยนโปรแกรมภาษาซได 2. บอกองคประกอบของภาษาซได 3. บอกวธการใชงานภาษาซได 4. บอกค าสงในการรบขอมล แสดงผล และการค านวณได

สาระการเรยนร

จดประสงคการเรยนร

หนวยท 5

Page 2: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

142

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยภาษาซ

สาระส าคญ

ภาษาซเปนภาษาระดบกลาง ทเหมาะส าหรบการเขยนโปรแกรมแบบโครงสราง เนองจากเปนภาษาทมความยดหยนสงมาก คอ สามารถใชงานกบเครองตางๆได และทส าคญในปจจบนมโปรแกรม รนใหม เชน C++,Perl,Java,C# ทใชหลกการของภาษาซเปนพนฐานดวย

1. ความรพนฐานในการเขยนโปรแกรมภาษาซ

โปรแกรมภาษาซ ไดรบการออกแบบและด าเนนการในระบบปฏบตการยนกซโดย Dennis Ritchie ตงแตป ค.ศ. 1970 โปรแกรมภาษาซมขนาดเลก ปจจบนภาษาซเปนหนงในภาษาทมการเรยนรมากทสดและน ามาใชในงานวศวกรรมซอฟตแวรและบนแพลตฟอรมเกอบทงหมด จะเหนไดวาในอนาคตภาษาซมความโดดเดนในงานวศวกรรมซอฟตแวรแบบมออาชพ เปนเวลาอกหลายป เนองจากภาษาซเปนตนก าเนดและทเปนทนยมมากในการเขยนโปรแกรมเชงวตถ ยกตวอยาง เชนโปรแกรม C + + (Lars Ole Andersen.1994:18)

1.1 ขอดของภาษาซ (ปญญาพล หอระตะ.2545:6) ภาษาซเปนภาษาทนยมน ามาพฒนาเปนโปรแกรมส าเรจรป เนองจากมขอด ดงน 1.1.1 สมรรถนะสง มความนาเชอถอ และมคลงโปรแกรมใหเรยกใชเกอบทกอยาง 1.1.2 ประสทธภาพ เมอแปลงเปนแฟม .exe แลวจะมขนาดเลกท าใหโปรแกรมภาษาซท างานไดเรวกวาภาษาระดบสงอน ๆ เชน PASCAL,BASIC

1.1.3 ยดหยนสง นกเขยนโปรแกรมสามารถเขยนโปรแกรมจดการขอมลไดถงระดบบตหรอไบต สามารถตดตอกบอปกรณตางๆไดงาย โดยเฉพาะงานการเขยนโปรแกรมควบคมอปกรณ (Device Driver) 1.1.4 โครงสรางทด ภาษาซ มลกษณะแบบโครงสราง (Structure Language) ท าใหการพฒนาโปรแกรมแบบโครงสรางท าไดงาย อกทงไวยากรณมนอยมความชดเจน ท าใหงายในการท าความเขาใจ 1.1.5 โมดลาร (Modular) ภาษาซ สนบสนนการพฒนาโปรแกรมแบบโมดลาร โดยมหลกการวา โปรแกรมหนงโปรแกรมประกอบดวยสวนของโปรแกรมเลกๆ มาประกอบกน เรยกวา โปรแกรมยอย หรอ โมดล (Modules)แตละโมดล เปนอสระจากโมดลอนๆ ท าให งายตอการบ ารงรกษา

Page 3: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

143

1.1.6 ปรบเปลยนสภาพแวดลอมการประมวลผลไดงาย เชน เขยนบนยนกส แลวน ามาประมวลผลบนดอสได

1.2 ขอเสยของภาษาซ (ปญญาพล หอระตะ.2545:7) ภาษาซมรปแบบการเขยนทใหอสระแกนกเขยนโปรแกรมมาก ดงนน การเขยนโปรแกรมเพอใหไดผลลพธเดยวกน อาจท าไดหลายรปแบบ เชน x++ / x=x+1 มความหมายเดยวกน

1.3 ขนตอนในการพฒนาโปรแกรมดวยภาษาซ 1.3.1 การเขยนโปรแกรมตนฉบบ (Source Program) สามารถใช Text Editor เชน Notepad, EditPlus , Wordpad เขยนโปรแกรมเรมตน แลวท าการบนทกไฟลใหนามสกลเปน .cpp 1.3.2 การแปลภาษา (Compile) เปนขนตอนการน าโปรแกรมตนฉบบ (Source Program) มาแปลจากภาษามนษยใหเปนภาษาเครอง (Object Program) เรยกวา การคอมไพล โดยตวแปลภาษาซ (C Compiler) จะท าการแปลผลทงโปรแกรม เพอใหไดไฟลนามสกลเปน .obj (object program) 1.3.3 การเชอมโยงโปรแกรม (Link) เปนขนตอนการน าเอาโปรแกรมทเขยนขนไปเชอมโยงเขากบ library เพอใหไดไฟลนามสกลเปน .exe (executable program) ซงสามารถใชงานได 1.3.4 การประมวลผล (Run) จะไดผลลพธหลงจากการใชโปรแกรมทไฟลนามสกลเปน .exe (executable program)

ภาพท 6-1 ขนตอนการสรางแฟม .exe (ทมา : ปญญาพล หอระตะ.2545:8)

Page 4: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

144

2. องคประกอบพนฐานของภาษาซ

ภาษาซมลกษณะแบบโครงสราง (Structure language) แบงได 2 สวนใหญ ๆ คอ (ดอนสน ปงผาบ.2543:7)

2.1 ไฟลหวโปรแกรม (Header files) เปนไฟลทมสวนขยายเปน *.h ใชเกบไลบราร (Library) ของภาษาซเพอใชรวม (Include) ในการคอมไพลโปรแกรม เชน stdio.h เปนไฟลท เกบไลบรารมาตรฐานเกยวกบการรบขอมลและการแสดงผล ซงฟงกชน printf(); ถกนยามไวใน stdio.h ดงนนโปรแกรมทมการเรยกใชฟงกชน printf(); ควรประกาศไฟล stdio.h เพอใชรวมในการคอมไพลโปรแกรม 2.2 สวนของตวโปรแกรม เรมตนดวย ฟงกชน main() โปรแกรมภาษาซทกโปรแกรมตองมฟงกชนหลกอยดวยเสมอ ขอบเขตของฟงกชนหลกถกก าหนดดวยเครองหมายเรมตน “{” และเครองหมายสนสด “}” ชดค าสงและฟงกชนตางๆ จะปดทายดวยเครองหมายอฒภาค(;) การเขยนโปรแกรมจะเขยนดวยภาษาองกฤษตวพมพเลก

กฎการตงชอ ภาษาซมกฎเกณฑในการตงชอ ซงจะตองไมซ ากบค าสงวน (reserved word) ดงน

(นร ธารจรต.2549:22) คอ asm default for pascal switch _ds auto do goto register typedef _es break double huge return union _ss case else if short unsigned cdecl enum int signed void char extern interrupt sizeof volatile const far long static while continue float near struct _cs

3. เรมตนใชงานภาษาซ

ภาษาซทใชประกอบการเรยนในเอกสารประกอบการสอนวชาน คอ โปรแกรมเทอรโบซ (Turbo C++ v4.5) ของบรษทบอรแลนดอนเตอรเนชนแนล (Borland International) สามารถสบคนแลวดาวนโหลดไดทางอนเทอรเนต (http://turbo-c.en.malavida.com/download) ดงภาพท 6-2

Page 5: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

145

ภาพท 6-2 การดาวนโหลดโปรแกรมจากอนเทอรเนต (ทมา : อรรณพ ทองธรกล.2555)

ภาพท 6-3 ก าลงดาวนโหลดโปรแกรมภาษาซ (ทมา : อรรณพ ทองธรกล.2555)

Page 6: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

146

Program Turbo C++ v4.5 เปน Turbo C for Windows หลงจากตดตงโปรแกรมเสรจแลวสามารถใชงานไดทนท ดงภาพท 6-4

3.1 การปอนขอมลโปรแกรม การพฒนาโปรแกรมภาษาซโดยการสรางโปรแกรมตนฉบบ สามารถปอนขอมลได 2 วธ

3.1.1 ปอนขอมลโปรแกรมผานหนาตาง Editor ของ Program Turbo C++ v4.5 ดงภาพท 6-5

ภาพท 6-4 การเรมตนใชงานโปรแกรมภาษาซ (ทมา : อรรณพ ทองธรกล.2555)

ภาพท 6-5 หนาตาง Editor ของ Program Turbo C++ v4.5 (ทมา : อรรณพ ทองธรกล.2555)

Page 7: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

147

ภาพท 6-7 การบนทกไฟลโปรแกรม (ทมา : อรรณพ ทองธรกล.2555)

3.1.2 ปอนขอมลโปรแกรมผานโปรแกรม Text Editor อน ๆ เชน Notepad , Edit plus แลวบนทกไฟลโปรแกรมใหมนามสกล *.cpp ดงภาพท 6-6

3.2 การบนทกไฟลโปรแกรม หลงจากทสรางโปรแกรมตนฉบบแลว ตองจดเกบไฟลตามขนตอนตอไปน คลกทเมนของโปรแกรม File -----> Save/Save As ก าหนดชอไฟลเปน ex1 แลวคลก OK ไฟลทไดจะมนามสกล *.cpp (ex1.cpp) ดงภาพท 6-7

ภาพท 6-6 หนาตางโปรแกรม Text Editor อน ๆ (ทมา : อรรณพ ทองธรกล.2555)

Page 8: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

148

ภาพท 6-9 การรนโปรแกรม (ทมา : อรรณพ ทองธรกล.2555)

3.3 การคอมไพลโปรแกรม (Compile) การคอมไพลโปรแกรมเปนขนตอนทน าโปรแกรมตนฉบบ มาแปลใหเปนภาษาเครอง มขนตอนดงน

3.3.1 คลกทเมน Project ----> Compile หรอกดทแปนพมพ Alt+F9 3.3.2 ไฟลทไดผานการคอมไพลแลวจะมนามสกล *.obj ดงภาพท 6-8

3.4 การรนโปรแกรม (Run) เปนการสงใหโปรแกรมประมวลผลเพอใหเกดไฟล นามสกล *.exe มขนตอนดงน

3.4.1 คลกทเมน Debug ----> Run หรอกดทแปนพมพ Ctrlt+F9 ดงภาพท 6-9 3.4.2 ไฟลทไดผานการ Run จะมนามสกล *.exe

ภาพท 6-8 การคอมไพลโปรแกรม (ทมา : อรรณพ ทองธรกล.2555)

Page 9: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

149

3.4.3 ผลจากการ Run โปรแกรม ดงภาพท 6-10

3.5 การเขยนบรรทดค าสง ค าสงในภาษาซ แตละค าสงประกอบดวย ตวระบ (Identifier) ค าสงวน ตวแปร ชอฟงกชน และตวด าเนนการ (Operator) ตางๆ แตละค าสงจบลงดวยเครองหมายอฒภาค (;) ค าสงหมายเหต ลกษณะของการเขยนโปรแกรมทดอกประการหนง คอ การเขยนหมายเหตหรอค าอธบายลงในโปรแกรม เพอใหโปรแกรมอานงาย และอธบายโปรแกรม โดยเขยนไวเครองหมาย /*........*/ เชน /* ขอความหมายเหต */ (ปญญาพล หอระตะ.2545:37)

4. การรบขอมล และการแสดงผล

การเขยนโปรแกรมภาษาซ ค าสงทเกยวของกบการรบขอมล และการแสดงผล มดงน ค าสง clrscr();

เปนค าสงลางจอภาพใหวางๆ มาจากค าวา Clear Screen ตวอยางท 1 #include<stdio.h> /* การเรยกใชอปกรณรบขอมล-แสดงผลจากไฟล stdio.h */ #include<conio.h> /* การเรยกใชอปกรณเกยวกบจอภาพ จากไฟล conio.h */ main() /* โปรแกรมหลก */ { int a,b,c; /* ประกาศตวแปรทใชทงหมดเปนเลขจ านวนเตม */ clrscr(); /* ฟงกชนลางหนาจอ */

ภาพท 6-10 ตวอยางผลการรนโปรแกรม (ทมา : อรรณพ ทองธรกล.2555)

Page 10: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

150

a = 5; /* ก าหนดคาใหกบตวแปร a = 5 */ b = 3; /* ก าหนดคาใหกบตวแปร b = 3 */ c = a + b; /* ก าหนดใหค านวณหาคา c = a + b */ printf("Result of A + B = %d",c); /* แสดงผลลพธของ c */ getch(); /* หยดเพอใหดค าตอบชวขณะจนกวาจะกดปมใดๆ จงท างานตอ */ } ผลลพธ ดงปรากฏตามภาพท 6-11

4.1 ค าสงรบขอมล (Input) ฟงกชนทใชในการรบขอมลจากแปนพมพ คอ scanf (scan formatted) รปแบบของฟงกชน scanf() คอ (ปญญาพล หอระตะ.2545:41) scanf(“format string”,&Variable); format string ตางจาก string format ของฟงกชน printf() ตรงท string format ของ ฟงกชน scanf() จะอยในรปแบบของตวแทนชนดขอมล เชน %d,%c,%s,%f,… Variable เปนตวตวแปรทตองการสงคากลบคน ตวอยาง int a = 5; scanf(“%d”,&a); printf(“%d”,a); scanf(“%d%d%d%c%c”,&a,&b,&c,&d,&f); printf(“%d %d %d %d %c %c”,a,b,c,d,f);

ภาพท 6-11 ผลการรนโปรแกรมตวอยางท 1 (ทมา : อรรณพ ทองธรกล.2555)

Page 11: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

151

4.2 ค าสงแสดงผลขอมล (Output) ฟงกชนทใชในการแสดงผลขอมลออกทางจอภาพ คอ printf (print formatted) หนาทหลก คอ แปลงขอมลจากเลขฐานสองใหอยในรปแบบ ทผเขยนโปรแกรมตองการกอนแสดงผลออกทางจอภาพ รปแบบของฟงกชน printf คอ (ปญญาพล หอระตะ.2545:38) printf(“formatstring”,argumentlist); formatstring คอ ขอความทตองการแสดงผล หรอสญลกษณทใชแทนชนดขอมลตางๆ ซงจะถกแทนดวยคาคงท,ตวแปรหรอนพจนใดๆ argumentlist คอ คาคงท หรอตวแปร หรอทจะน าไปจดรปแบบกอนแสดงผล ถามมากกวา 1 คา ใหคนดวยจลภาค ทงนตองสอดคลองกบรปแบบทก าหนดไวใน formatstring ตวอยาง printf(“Your name is %s”,name); printf(“Your Salary is %10.2f”,545454.545454); ผลลพธ Your name is ….. Your Salary is ….545454.55 ตวแทนชนดขอมลแตละประเภท แสดงในตารางท 6-1

ตารางท 6-1 ชนดขอมลแตละประเภท (ทมา : อรพน ประวตบรสทธ.2547 ) ลกษณะขอมล ชนดขอมล ตวแทน ขนาด(ไบต) ชวงขอมล

single character char %c 1 -128 ถง 127 string string %s 1 0 ถง 255 integer int %d 2 -32,768 ถง 32,767 short integer short %hd 2 -32,768 ถง 32,767

long integer long %Ld 4 -2,147,482,648 ถง

2,147,482,647 unsigned integer unsigned int %u 2 0 ถง 65,535 unsigned long integer unsigned long %Lu 4 0 ถง 4,294,967,295 float float %f 4 3.4x10-38 ถง 3.4x10+38 double double %Lf 8 1.7x10-308 ถง 1.7x10+308 long double long double %Lf 10 3.4x10-4932 ถง 1.1x10+4932

Page 12: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

152

4.3 การรบและแสดงผลขอมลแบบตวอกษร getchar(); เปนฟงกชนส าหรบรบขอมล 1 ตวอกษรจากแปนพมพแลว กด Enter putchar(); เปนฟงกชนส าหรบแสดงผลขอมล 1 ตวอกษรออกทางจอภาพ ตวอยาง main() { char a; a = getchar(); putchar(a); } อธบายโปรแกรม

ตวแปร a เปนชนดของตวอกษรตวเดยวทท าหนาทรบคาจากแปนพมพดวยฟงกชน getchar() แลวน าขอมลทเกบไวในตวแปร a มาแสดงผลดวยฟงกชน putchar()

getch(); เปนฟงกชนส าหรบรบขอมล 1 ตวอกษรจากแปนพมพ โดยไมตองกด Enter แต ไมแสดงตวอกษรทรบเขามาออกทางหนาจอ

getche(); เปนฟงกชนส าหรบรบขอมล 1 ตวอกษรจากแปนพมพ โดยไมตองกด Enter และแสดงตวอกษรทรบเขามาออกทางหนาจอ

gets(); เปนฟงกชนส าหรบอานขอมล (get string) ซงสามารถรบขอมลไดมากกวา 1 ตว จากแปนพมพ โดยตองกด Enter แลวน ามาเกบไวในหนวยความจ า

puts(); เปนฟงกชนส าหรบแสดงผลขอมล (put string) ออกทางจอภาพ ตวอยาง main() { char name[20]; printf(“Enter your name”); gets(name); puts(name); } อธบายโปรแกรม name[20] เปนตวแปรชนดสตรงทมขนาด 20 จะถกปอนขอมลเขามาเกบไวดวยฟงกชน gets(name); แลวน าขอมลทเกบไวในหนวยความจ ามาแสดงผลดวยฟงกชน puts(name);

Page 13: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

153

4.4 การค านวณ ภาษาซมรปแบบของค าสงเกยวกบการค านวณดงตอไปน

4.4.1 การด าเนนการทางคณตศาสตร หมายถง การน าคา 2 คามากระท ากนโดยใชโอเปอเรเตอรหรอตวด าเนนการทางคณตศาสตร เชน บวก, ลบ, คณ, หาร ในภาษาซมตวด าเนนการ ทางคณตศาสตร 7 ประเภท ดงตารางท 6-2

ตารางท 6-2 เครองหมายตวด าเนนการทางคณตศาสตร (ทมา : วทยา เรองพรวสทธ.2537:36 ) โอเปอเรเตอร ความหมาย ตวอยาง ผลลพธ

+ บวก 1+2 3 - ลบ 5-3 2 * คณ 4*5 20

/ หาร 5/2 2 (กรณ 5,2 เปนเลข

จ านวนเตม) % หารเอาเศษ 7%3 1 ++ เพมคาทละ 1 x++ เปนการสะสมคา x -- ลดคาทละ 1 x-- เปนการลดคา x

4.4.2 ล าดบการท างานของโอเปอรเรเตอร ดงตารางท 6-3 ตารางท 6-3 ล าดบการท างานของโอเปอรเรเตอร (ทมา : อรพน ประวตบรสทธ.2547:50) ล าดบความส าคญจากสงลงต า โอเปอเรเตอร

()

++,--

-(เครองหมายหนาตวเลข)

*,/,%

+,- ถาโอเปอรเรเตอรทมความส าคญเทากน จะกระท าจากซายไปขวา

4.4.3 ล าดบความส าคญของการประมวลผล นพจน 5/2*4+3*12/6 มล าดบการประมวลผล ดงน 1. 5/2 ได 2 แลวน า 2*4 ได 8 2. 3*12 ได 36 แลวน า 36/6 ได 6 3. น า 8 + 6 ได 14 เปนค าตอบสดทาย

Page 14: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

154

ภาพท 6-12 ผงงานตวอยางท 2 (ทมา : อรรณพ ทองธรกล.2555)

ตวอยางท 2 ก าหนดให a = 50, b = 85,c = 92 จงหาคาของ d = (a * b) – (c*a)

วธคด จากภาพท 6-12 โจทยก าหนดคา a = 50, b = 85, c = 92 แลวหาคา d = (a * b) – (c*a) ตวเลขทงหมดลวนเปนเลขจ านวนเตม เมอก าหนดคาใหกสามารถแทนคาลงในสตร d = (a * b) – (c*a) เพอท าการค านวณหาคา d แลวแสดงผลคา d

#include<conio.h> #include<stdio.h> main() { int a,b,c,d; /* ประกาศตวแปรเปนประเภท เลขจ านวนเตม */ clrscr(); a = 50; /* ก าหนดคาใหกบตวแปร a */ b = 85; /* ก าหนดคาใหกบตวแปร b */ c = 92; /* ก าหนดคาใหกบตวแปร c */ d = (a*b)-(c*a); /* ค านวณหาคา d จากสมการ */ printf(“The Result is %d”,d); /* แสดงผลลพธ */ getch(); }

Start

a = 50, b = 85, c = 92

d = (a * b) – (c * a)

d

Stop

Page 15: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

155

ผลลพธ ดงปรากฏตามภาพท 6-13

ตวอยางท 3

เขยนโปรแกรมเพอค านวณหาพนทของรปสามเหลยม โดยก าหนดความยาวและความสง ของรปสามเหลยม

lh, hg

area

Start

area = ½ * lh * hg

Stop

ภาพท 6-13 ผลการรนโปรแกรมตวอยางท 2 (ทมา : อรรณพ ทองธรกล.2555)

ภาพท 6-14 ผงงานตวอยางท 3 (ทมา : อรรณพ ทองธรกล.2555)

Page 16: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

156

วธคด

โจทยก าหนดใหเขยนโปรแกรมค านวณหาพนทของรปสามเหลยม สตรการหาพนทของรปสามเหลยมคอ ½ * ฐาน * สง โจทยก าหนดใหใสคา ความยาวและความสง จากสตรพนทของสามเหลยม = ½ * ฐาน * สง ค าตอบทไดจากการค านวณตองเปนเลขทมจดทศนยม (½ =0.5)

#include<conio.h> #include<stdio.h> main() { int lh, hg; float area; clrscr(); printf(“Enter Length = ”); scanf(“%d”,&lh); printf(“Enter Height = ”); scanf(“%d”,&hg); area = ½ . * (lh * hg); printf(“Area of Triangle = %.2f”,area); getch(); } ผลลพธ ดงปรากฏตามภาพท 6-15

Page 17: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

157

อธบาย ความยาว (length) เปนเลขจ านวนเตม ความสง (height) เปนเลขจ านวนเตม พนทของสามเหลยม (area) เปนเลขทมจดทศนยมทไดจากการค านวณโดยใช ½. ท าให ไดผลลพธ 0.5 เมอน าไปคณกบ ความยาวและความสง ซงเปนเลขจ านวนเตม จงท าใหไดผลลพธ เปนเลขจ านวนจรงทมจดทศนยม จากสตรพนทของสามเหลยม = ½ * ฐาน * สง ตวอยางท 4

Input ชอ,เพศ,อาย,เงนเดอน Compute คดภาษ 5% ของเงนเดอน หาเงนเดอนสทธ Output ชอ,เพศ,อาย,เงนเดอน,ภาษ,เงนเดอนสทธ

ภาพท 6-15 ผลการรนโปรแกรมตวอยางท 3 (ทมา : อรรณพ ทองธรกล.2555)

Page 18: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

158

วธคด จากภาพท 6-16

โจทยก าหนดใหปอนขอมล ชอ,เพศ,อาย,เงนเดอน

ชอ,เพศ เปนขอมลประเภทขอความแบบตวแปรชด(สตรง) อายและเงนเดอนเปนขอมลประเภทเลขจ านวนเตม

การค านวณ คดภาษ 5% ของเงนเดอน ภาษเปนขอมลประเภทเลขจ านวนจรงทมจดทศนยม เงนสทธ = เงนเดอน – ภาษ เงนสทธเปนขอมลประเภทเลขจ านวนจรงทมจดทศนยม โปรแกรม #include<conio.h>

#include<stdio.h> main() { char name[15],sex[6]; int age,salary; float tax,net; clrscr(); printf(“Enter Your Name = ”);

name,sex,age,salary

tax = salary * 5%

name,sex,age,salary,tax,net

net = salary - tax

Start

Stop

ภาพท 6-16 ผงงานตวอยางท 4 (ทมา : อรรณพ ทองธรกล.2555)

Page 19: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

159

scanf(“%s”,&name); printf(“Enter Your Sex = ”);

scanf(“%s”,&sex); printf(“Enter Your Age = ”); scanf(“%d”,&age); printf(“Enter Your Salary = ”); scanf(“%d”,&salary); tax = 5/100. * salary; net = salary – tax; printf(“Your Name is %s Your Sex is %s Your Age is %d Your Salary is %d”,name,sex,age,salary);

printf(“\nYour Tax is %.2f Your Net-Salary is %.2f”,tax,net); getch(); } ผลลพธ ดงปรากฏตามภาพท 6-17

ภาพท 6-17 ผลการรนโปรแกรมตวอยางท 4 (ทมา : อรรณพ ทองธรกล.2555)

Page 20: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

160

อธบาย การค านวณ คดภาษ 5% ของเงนเดอน ภาษเปนขอมลประเภทเลขจ านวนจรงทมจดทศนยม

5% = 5/100 แต 5/100=0 เนองจาก 5,100 เปนขอมลประเภทเลขจ านวนเตม แตถาก าหนด 5% = 5/100. แลว 5/100. = 0.05 ท าใหภาษและเงนสทธ เปนขอมลประเภท เลขจ านวนจรงทมจดทศนยม

ตวอยางท 5 Input ชอสนคา,ราคา/หนวย,จ านวนสนคาทซอ Compute จงหาราคาขาย, หกสวนลด 10% ของราคาขาย, หาราคาขายสทธ Output ชอสนคา,ราคา/หนวย,จ านวนสนคาทซอ,ราคาขาย, สวนลด,ราคาขายสทธ วธคด จากภาพท 6-18 โจทยก าหนดใหปอน ชอสนคา,ราคา/หนวย,จ านวนสนคาทซอ

ชอสนคา เปนขอมลประเภทขอความตวแปรชด(สตรง) ราคา/หนวย เปนขอมลประเภทเลขจ านวนจรงทมจดทศนยม

จ านวนสนคาทซอ เปนขอมลประเภทเลขจ านวนเตม

name,pu,amount

sale = pu * amount

disc = sale * 10%

net = sale - disc

name,pu,amount,sale,disc,net

Start

Stop

ภาพท 6-18 ผงงานตวอยางท 5 (ทมา : อรรณพ ทองธรกล.2555)

Page 21: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

161

การค านวณ ราคาขาย = ราคา/หนวย * จ านวนสนคาทซอ สวนลด = ราคาขาย * 10% ราคาขายสทธ = ราคาขาย – สวนลด

โปรแกรม

#include<conio.h>

#include<stdio.h> main() { char name[15]; int amount; float sale,pu,disc,net; clrscr(); printf(“Enter Your Product = ”); scanf(“%s”,&name); printf(“Enter Price/Unit = ”); scanf(“%f”,&pu); printf(“Enter Amount of Product = ”); scanf(“%d”,&amount); sale = pu * amount; disc = 10/100. * sale; net = sale – disc; printf(“Your Product is %s Price/Unit is %.2f Amount of Product is %d”,name,pu,amount);

printf(“\nSale is %.2f Discount of Product is %.2f Net-Sale is %.2f”,sale,disc,net);

getch(); } ผลลพธ ดงปรากฏตามภาพท 6-19

Page 22: หน่วยที่ 5 - Unnop Thongteerakun · 2014-11-19 · การออกแบบและพัฒนาโปรแกรมขนาดเล็กด้วยโปรแกรมภาษาซี

การออกแบบและพฒนาโปรแกรมขนาดเลกดวยโปรแกรมภาษาซ โดย อรรณพ ทองธรกล

162

อธบาย ก าหนดให จ านวนสนคาทซอเปนเลขจ านวนเตม ราคา/หนวย เปนขอมลประเภทเลขจ านวนจรงทมจดทศนยม ราคาขาย เปนขอมลประเภทเลขจ านวนจรงทมจดทศนยม สวนลด 10% (10/100.=0.1) ของราคาขาย เปนขอมลประเภทเลขจ านวนจรงทมจดทศนยม ราคาขายสทธ เปนขอมลประเภทเลขจ านวนจรงทมจดทศนยม

ภาพท 6-19 ผลการรนโปรแกรมตวอยางท 5 (ทมา : อรรณพ ทองธรกล.2555)