1 / 74

1. โครงสร้างการเขียนโปรแกรมและอัลกอริทึม ขั้นตอนการพัฒนาซอฟแวร์ ปัญหาและอัลกอริทึม

1. โครงสร้างการเขียนโปรแกรมและอัลกอริทึม ขั้นตอนการพัฒนาซอฟแวร์ ปัญหาและอัลกอริทึม ขั้นตอนการวิเคราะห์ปัญหา การเขียนอัลกอริทึมและเทคนิคการนำเสนอ. ระบบคอมพิวเตอร์. Hardware Software Data. ภาษาของคอมพิวเตอร์. ภาษาระดับต่ำ ( Low-level Language) Machine Code Assembly Language

archer
Download Presentation

1. โครงสร้างการเขียนโปรแกรมและอัลกอริทึม ขั้นตอนการพัฒนาซอฟแวร์ ปัญหาและอัลกอริทึม

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 1. โครงสร้างการเขียนโปรแกรมและอัลกอริทึม ขั้นตอนการพัฒนาซอฟแวร์ ปัญหาและอัลกอริทึม ขั้นตอนการวิเคราะห์ปัญหา การเขียนอัลกอริทึมและเทคนิคการนำเสนอ

  2. ระบบคอมพิวเตอร์ • Hardware • Software • Data

  3. ภาษาของคอมพิวเตอร์ • ภาษาระดับต่ำ (Low-level Language) • Machine Code • Assembly Language • ภาษาระดับสูง • Basic (Beginners All-purpose Symbolic Instruction Code) • FORTRAN (FORmula TRANslation) • COBOL(Common Business Oriented Language) • …

  4. ขั้นตอนการสร้างรหัสภาษาเครื่อง

  5. ระบบไมโครคอมพิวเตอร์ทั่วไประบบไมโครคอมพิวเตอร์ทั่วไป

  6. ระบบคอมพิวเตอร์

  7. หน่วยความจุ • “1” หรือ“0”= 1 Bit • 8 Bit = 1 Byte • 1024 Bit = 1 KByte • 1024 KByte = 1 MByte • 1024 MByte = 1 GByte • 1024 GByte = 1 TByte etc.

  8. ตัวแปร(Variables) • หมายถึง ชื่อที่ใช้เก็บค่าที่เป็นจำนวนเลขหรือสายอักขระ (string) ใช้ในการเขียนโปรแกรมคอมพิวเตอร์ ค่านี้จะแปลเปลี่ยนไปในระหว่างที่เครื่องดำเนินการตามโปรแกรม เป็นต้นว่า ชื่อที่ใช้เก็บ อินพุทจากคีย์บอร์ดที่เปลี่ยนค่าไปตามการกดแป้นคีย์ หรือเก็บค่าที่มีการเปลี่ยนแปลงเพิ่มขึ้นหรือลดลงจากการคำนวณวงวนหลายรอบ

  9. การตั้งชื่อตัวแปร โปรแกรมแมทแลป มีหลักการการตั้งชื่อ ตัวแปร ฟังก์ชันและซับฟังก์ชัน ชื่อโครงสร้างฟิลด์ ออฟเจค M-file, MEX-fileและMDL-fileดังนี้ 1.ขึ้นต้นด้วยตัวอักษรเท่านั้น หลังจากนั้นตามด้วยตัวเลขก็ย่อมได้ 2.ควรตั้งชื่อเป็นภาษาอังกฤษเท่านั้น ไม่ว่าจะเป็นชื่อตัวแปร หรือชื่อแฟ้มข้อมูล 3.ห้ามใช้สัญลักษณ์เป็นส่วนประกอบของชื่อ ยกเว้น “_” (Underscore) 4.หลีกเลี่ยงการเว้นวรรคระหว่างชื่อ 5.ตั้งชื่อยาวได้ ไม่เกิน 63 ตัว (ลองใช้คำสั่ง namelengthmax)

  10. 6.ตัวแปรชื่อเดียวกัน หากชื่อประกอบด้วยตัวพิมพ์ใหญ่-เล็ก จะถือว่าเป็นตัวแปรคนละตัวกันเช่น Items, items, itemsและ ITEMS จะถือว่าเป็นตัวแปรคนละตัวกัน 7.ใช้ตัวพิมพ์ใหญ่-เล็ก ผสมกันได้ แต่ต้องระวังเมื่อเวลาเรียกใช้งาน ต้องถูกต้องชื่อที่ตั้งต้องไม่ซ้ำกับ keyword หรือคำสงวน (Reserveword) ดังนี้ (ลองใช้คำสั่งiskeyword และ help iskeyword) breakcasecatchcontinueelseelseifendforfunction globalifotherwisepersistentreturnswitchtrywhile 8. หลีกเลี่ยงการตั้งชื่อที่ซ้ำกับชื่อของฟังชันเดิมที่มีอยู่ในโปรแกรมแมทแลปทั้งที่มีมาให้ กับส่วนที่สร้างเอง ผู้ใช้สามารถตรวจสอบเพื่อแน่ใจว่าชื่อตัวแปรที่ตั้งขึ้น ผิดกฎการตั้งชื่อ หรือซ้ำกับชื่อตัวแปรเดิมที่มีอยู่หรือไม่ได้โดยใช้คำสั่ง isvarname เช่น ตัวอย่างต่อไปนี้ แสดงว่า ตัวแปรชื่อ 8thColumn ไม่สามารถใช้เป็นตัวแปรได้ เนื่องจากขึ้นต้นด้วยตัวเลข >> isvarname 8thColumn ans = 0

  11. 9.พยายามหลีกเลี่ยงการใช้ชื่อตัวแปร iและjในการคำนวณเกี่ยวกับจำนวนเชิงซ้อน เนื่องจากตัวอักษรiและ j ซ้ำกับตัวอักษรที่ใช้ในส่วนจินตภาพ (Imaginary part)ของจำนวนเชิงซ้อน ซึ่งอาจทำให้ การคำนวณผิดพลาด

  12. FLOW CHART

  13. FLOWCHART(ต่อ)

  14. FLOWCHART(ต่อ)

  15. FLOWCHART(ต่อ)

  16. วิธีการเขียนโฟล์วชาร์ทวิธีการเขียนโฟล์วชาร์ท • ใช้ลูกศรแสดงทิศทางขั้นตอน • ใช้ภาษาอธิบายและเข้าใจง่าย • เขียนจากบนลงล่าง • กรณีเต็มหน้ากระดาษ ให้เริ่มแถวใหม่จากซ้ายไปขวา • เมื่อทิศทางอินพุทเอาท์พุทมาบรรจบกัน ต้องใช้ Connector • กรณีไม่สามารถเชื่อมต่อไปยังจุดที่ต้องการได้ให้ใช้ สัญญาลักษณ์ อ้าง • เริ่มต้นด้วย Start และจบด้วย End เสมอ

  17. ตัวอย่าง

  18. เขียนจาก บน-ลง-ล่าง ซ้าย-ไป-ขวา

  19. % โปรแกรมทดสอบโครงสร้างแบบมีเงื่อนไข % //////// IF STRUCTURE //////// clc; y=9; if y>10 % เงื่อนไข fprintf('You are very beautyful'); %โมดุล end if y<10 % เงื่อนไข fprintf('You are very HANSUME'); %โมดุล end

  20. กำหนดการเทียบเกรดกับระดับคะแนนกำหนดการเทียบเกรดกับระดับคะแนน คะแนน 80-100 เกรด A คะแนน 75-79 เกรด B+ คะแนน 70-74 เกรด B คะแนน 65-69 เกรด C+ คะแนน 60-64 เกรด C คะแนน 55-59 เกรด D+ คะแนน 50-54 เกรด D คะแนน 0-49 เกรด E

  21. คำสั่งinput Format 1). R = input('How many apples') 2). R = input('What is your name','s')

  22. คำสั่ง input %////// คำสั่งอินพุท ////// clc clear all Radius=input('กรุณาใส่รัศมีของวงกลม: เซนติเมตร'); Area=2*pi*Radius; fprintf('รัศมี = %2.2f เซนติเมตร \n',Radius); fprintf('พื้นที่วงกลม = %2.2f เซนติเมตร \n',Area); clear all;

  23. fprintf fprintf('A unit circle has circumference %g.\n',2*pi) fprintf(1,'It''s Friday.\n') fprintf(1,'It's Friday.\n') fprintf('รัศมีของวงกลม วงกลมวงนอก:=%5.2f cm วงกลมวง.o:=%5.2f cm\n',BigRadius,SmallRadius);

  24. B = [8.8 7.7; 8800 7700] fprintf(1,'X is %6.2f meters or %8.3f mm\n',9.9,9900,B) a = [6 10 14 44]; fprintf('%9X\n',a + (a<0)*2^32)

  25. Conversion Characters • Conversion characters specify the notation of the output. • Specifier • Description • %c Single character • %d Decimal notation (signed) • %e Exponential notation (using a lowercase e as in 3.1415e+00) • %E Exponential notation (using an uppercase E as in 3.1415E+00) • %f Fixed-point notation • %g The more compact of %e or %f, as defined in [2]. • Insignificant zeros do not print.

  26. Conversion Characters • %G Same as %g, but using an uppercase E • %i Decimal notation (signed) • %o Octal notation (unsigned) • %s String of characters • %u Decimal notation (unsigned) • %x Hexadecimal notation (using lowercase letters a-f) • %X Hexadecimal notation (using uppercase letters A-F)

  27. พิมพ์ CHARACTER(Single character) • %c ตัวอักษรตัวเดียว เช่นY, N, M, W, F, L พิมพ์ status = input('If true please press Y ...','s'); fprintf(1,'you press %c Key \n’,status); เครื่องตอบ >>If true please press Y ...Y >>you press Y Key

  28. รูปแบบการแสดงผลแบบExponentialรูปแบบการแสดงผลแบบExponential • %eตัวเลขที่มีรูปแบบเป็น 3.1415e+00 พิมพ์ A=126598.561; fprintf(1,'X is %e Kilograms \n',A); X is 1.265986e+005 Kilograms • %Eตัวเลขที่มีรูปแบบเป็น 3.1415E+00 พิมพ์ A=126598.561; fprintf(1,'X is %E Kilograms \n',A); X is 1.265986E+005 Kilograms

  29. Fixed-point %f >> A=126598.565; >> fprintf(1,'X is %f Kilograms \n',A); X is 126598.565000 Kilograms >>fprintf(1,'X is %2.2f Kilograms \n',A); X is 126598.57 Kilograms >> A=98.565; fprintf(1,'X is %10.2f Kilograms \n',A); X is 98.57 Kilograms

  30. %g The more compact of %e or %f, as defined in [2]. >> A=598.565; fprintf(1,'X is %g Kilograms \n',A); X is 598.565 Kilograms >> A=0; fprintf(1,'X is %g Kilograms \n',A); X is 0 Kilograms >> fprintf(1,'X is %f Kilograms \n',A); X is 0.000000 Kilograms

  31. การ save ตัวแปรลงแฟ้ม • x = 'Seri Pansang'; • fid = fopen('seri.txt','w'); • fprintf(fid,'%s\n',x); • fclose(fid)

  32. การเก็บข้อมูลลงแฟ้ม • save • save filename • save filename var1 var2 ... • save ... option • save('filename', ...) helpdesk search type : function name search for : keyword function

  33. การบันทึกข้อมูล Save อย่างเดียวไม่มีอะไรตามหลัง หมายถึง เก็บตัวแปรทั้งหมดลงแฟ้มmatlab.mat โดยอัตโนมัติ save filename เช่น save data หมายถึง เก็บตัวแปรทั้งหมดลงแฟ้มชื่อdata.mat save filename var1 var2 ... เช่นsave data erasers, pads, tape หมายถึง เก็บตัวแปรerasers, pads, tape ลงแฟ้มชื่อ data.mat

  34. กำหนด path ที่จะนำข้อมูลไปเก็บได้ • To save the variables vol and temp in ASCII format to a file named june10, type save('d:\mymfiles\june10','vol','temp','-ASCII')

  35. คำสั่ง load • Load workspace variables from disk Syntax • load • load filename • load filename X Y Z • load filename -ascii • load filename -mat • S = load(...)

  36. โครงสร้างโปรแกรมพื้นฐานโครงสร้างโปรแกรมพื้นฐาน • โครงสร้างแบบมีเงื่อนไข • If …end • If …else …end • If…elseif…else….end…end • โครงสร้างการทำงานแบบวนซ้ำ • For …end จำนวนรอบแน่นอน • While…end จำนวนรอบเป็นไปตามเงื่อนไข • Switch…case…end

  37. โครงสร้างแบบมีเงื่อนไขโครงสร้างแบบมีเงื่อนไข โครงสร้างแบบมีเงื่อนไข if.....end ifเงื่อนไข โมดุลคำสั่ง end

  38. โครงสร้างแบบมีเงื่อนไขโครงสร้างแบบมีเงื่อนไข โครงสร้างแบบมีเงื่อนไข if.....end ifเงื่อนไขที่ 1 โมดุลคำสั่งA end ifเงื่อนไขที่ 2 โมดุลคำสั่งB end

  39. โครงสร้างแบบมีเงื่อนไข(ต่อ)โครงสร้างแบบมีเงื่อนไข(ต่อ) โครงสร้างแบบมีเงื่อนไข if.....else….end ifเงื่อนไข 1 โมดุลคำสั่งA else เงื่อนไข 2 โมดุลคำสั่งB end if else

  40. เปรียบเทียบ คำสั่ง if 3 1 2 4

  41. clc Buffalo = input('please input your mark =...'); if Buffalo < 50 fprintf(1,'Sorry!!! you are fail\n'); else if Buffalo < 55 fprintf(1,'your grade = D \n'); end end

  42. ตัวอย่างโครงแบบมีเงื่อนไขตัวอย่างโครงแบบมีเงื่อนไข

  43. clc Buffalo = input('please input your mark =...'); if Buffalo < 50 fprintf(1,'Sorry!!! you are fail\n'); else if Buffalo < 55 fprintf(1,'Congratulation!!! your grade = D \n'); else if Buffalo < 60 fprintf(1,'Congratulation!!! your grade = D+ \n'); else if Buffalo < 65 fprintf(1,'Congratulation!!! your grade = C \n'); else if Buffalo < 70 fprintf(1,'Congratulation!!! your grade = C+ \n'); else if Buffalo < 75 fprintf(1,'Congratulation!!! your grade = B \n'); else if Buffalo < 80 fprintf(1,'Congratulation!!! your grade = B+ \n'); else fprintf(1,'Congratulation!!! your grade = A\n'); end end end end end end end end

  44. การทำซ้ำ

  45. โครงสร้างแบบทำซ้ำ โครงสร้างแบบทำซ้ำ for.....end forตั้งจำนวนloop โมดุลคำสั่ง ที่ต้องการให้ทำซ้ำ end

  46. ผังงานแสดงการทำซ้ำ Student = Student+1 Student < 45 for

  47. กำหนดค่าการทำซ้ำแบบตายตัวกำหนดค่าการทำซ้ำแบบตายตัว clc for student = 1:5 fprintf(1, ‘นศ.เลขที่ %d ’,student); Mark=input(‘ได้คะแนน = …’); end

  48. ผู้ใช้เป็นผู้กำหนดจำครั้งการทำซ้ำผู้ใช้เป็นผู้กำหนดจำครั้งการทำซ้ำ clc ID=input(‘จำนวนนักศึกษา = …’); for student = ID fprontf(1, ‘นศ.เลขที่ %d , ’,student); Mark=input(‘ได้คะแนน = …’); end

More Related