รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา C
Advertisements

แนวคิดในการเขียนโปรแกรม
Chapter 8 : Logic Modeling & Data Modeling
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
การทำงานแบบเลือกทำ (Selection)
ลักษณะโครงสร้างของผังงาน
บทที่ ๖ หลักการแก้ปัญหาด้วยคอมพิวเตอร์
การเขียนผังงาน.
Data Structures and Algorithms
Lecture no. 1: Introduction to Computer and Programming
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
การแก้ปัญหาด้วยคอมพิวเตอร์
CE 112 บทที่ 5 การทำซ้ำในภาษา C
หน่วยที่ 1 ระบบคอมพิวเตอร์
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
วิชา การออกแบบและพัฒนาซอฟต์แวร์
บทที่ 1. พื้นฐานความรู้ทั่วไป
การจำลองความคิด
Surachai Wachirahatthapong
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
การเขียนผังงานแบบโครงสร้าง
แนะนำรายวิชา STC0101 หลักการเขียนโปรแกรมคอมพิวเตอร์ และอัลกอริทึม
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
ให้ประหยัดการใช้หน่วยความจำ (space) ด้วยความรวดเร็ว (time)
Flow Control.
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
วิธีการทางคอมพิวเตอร์
ใบงานที่ 5 สัญลักษณ์ (Flowchart)
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
Flow Chart INT1103 Computer Programming
โครงสร้างข้อมูลคืออะไร ?
การเขียนผังงาน ผังงานคือ อะไร ?.
การออกแบบโปรแกรม ขั้นตอนการแก้ปัญหา การนิยามปัญหา (Problem definition)
Week 7 การเขียนโปรแกรมเบื้องต้น
2.1 วิธีแก้ปัญหาด้วยคอมพิวเตอร์ (Computer problem solving methods)
2.3.1 รหัสเทียม (Pseudo code)
Recursion การเรียกซ้ำ
การออกแบบโครงสร้าง (Structured Design)
การเขียนโปรแกรมเบื้องต้น
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
Introduction : Principle of Programming
การพัฒนาระบบประยุกต์
การเขียนโปรแกรมเบื้องต้น
การเขียนผังงาน (Flowchart)
หลักการเขียนโปรแกรม ( )
PHP การตรวจสอบเงื่อนไข.
บทที่ 7 การวิเคราะห์งานและการโปรแกรม แบบมีโครงสร้าง
หลักการและวิธีการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การเขียนซูโดโค้ด และการเขียนโฟลชาร์ต
บทที่ 2 แนวคิดในการเขียนโปรแกรม. ขั้นตอนการ พัฒนาโปรแกรม ในการพัฒนาโปรแกรมมีขั้นตอนหลัก 5 ขั้นตอน ซึ่งไม่ว่าจะทำการพัฒนาโปรแกรม ครั้งใดจะต้องปฏิบัติตามขั้นตอนเหล่านี้
การแก้ปัญหาโปรแกรม (Flowchart)
หลักการเขียนโปรแกรม ( )
โครงสร้าง ภาษาซี.
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
คำสั่งวนซ้ำ.
โครงสร้างข้อมูลและอังกอลิทึม
หลักการเขียนโปรแกรมเบื้องต้น
Introduction ธนวัฒน์ แซ่เอียบ.
บทที่ 6 พจนานุกรมข้อมูล และ คำอธิบายกระบวนการ
การเขียนผังงาน ผังงาน (Flowchart)
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
บทที่ 2 ขั้นตอนการทำงาน (Algorithm)
การเขียนโปรแกรมคอมพิวเตอร์
Lecture no. 1: Introduction to Computer and Programming
ใบสำเนางานนำเสนอ:

รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี โรงเรียนมหิดลวิทยานุสรณ์

ความรู้เบื้องต้นของโครงสร้างข้อมูลและขั้นตอนวิธี

ความหมาย “โครงสร้างข้อมูล” ความสัมพันธ์ระหว่างข้อมูลที่อยู่ในโครงสร้างซึ่งจะถูกกำหนดให้มีรูปแบบที่เหมาะสม เพื่อการนำมาประยุกต์ใช้ในโปรแกรม

รูปแบบของโครงสร้างข้อมูล ด้านกายภาพ Primitive Data Type เช่น char, int, float Structure Data Type เช่น array, struct ด้านตรรกกะ - Linear Data Structure - Nonlinear Data Structure 5 A C K S 3 8 -1 3 4 5 8 12 -1 4 12

วัตถุประสงค์ของการศึกษาโครงสร้างข้อมูลและขั้นตอนวิธี โปรแกรมทำงานได้อย่างรวดเร็ว ใช้เนื้อที่หน่วยความจำน้อยที่สุด

การออกแบบโปรแกรม/ขั้นตอนวิธี วางแผนการเขียนโปรแกรม ออกแบบโปรแกรม เอกสารประกอบโปรแกรม และเทคนิคการเขียนโปรแกรม เขียนโปรแกรม แก้ไขโปรแกรม จัดทำเอกสารคู่มือผู้ใช้ บำรุงรักษา

ขั้นตอนวิธีหรืออัลกอริทึม (Algorithm) อัลกอริทึมเป็นขั้นตอนการแก้ปัญหา การเขียนอัลกอริทึมถือว่าเป็นเรื่องที่สำคัญ ในการเขียนโปรแกรม อัลกอริทึมที่ดีต้องประกอบด้วย แต่ละขั้นในอัลกอริทึมต้องชัดเจนและถูกต้อง ลำดับการเขียนคำสั่งต้องเป็นไปตามลำดับที่ถูกต้อง ชัดเจน เพื่อนำไปสู่คำตอบที่ถูกต้อง อัลกอริทึมต้องมีจุดสิ้นสุดเสมอ ใช้เวลาในการประมวลผลน้อย แก้ไขดัดแปลงได้ง่าย

ตัวอย่างโจทย์ Let's say that you have a friend arriving at the airport, and your friend needs to get from the airport to your house. Here are four different algorithms that you might give your friend for getting to your home:

ตัวอย่างอัลกอริทึม The taxi algorithm: Go to the taxi stand. Get in a taxi. Give the driver my address. The call-me algorithm: When your plane arrives, call my cell phone. Meet me outside baggage claim.

ตัวอย่างอัลกอริทึม The rent-a-car algorithm: Take the shuttle to the rental car place. Rent a car. Follow the directions to get to my house. The bus algorithm: Outside baggage claim, catch bus number 70. Transfer to bus 14 on Main Street. Get off on Elm street. Walk two blocks north to my house.

เทคนิคที่ช่วยในการออกแบบ ผังงาน (Flowchart) ผังงานระบบ (System Flowchart) ผังงานโปรแกรม (Program Flowchart) รหัสเทียม (Pseudocode) ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง อาจเป็นภาษาไทยหรือภาษาอื่นก็ได้ แต่การใช้ภาษาอังกฤษจะสะดวกที่สุด

Pseudocode เป็นคำสั่งที่มีลักษณะการเขียนใกล้เคียงกับภาษาอังกฤษ แต่มีโครงสร้างเกือบจะเป็นภาษาโปรแกรม เช่น เริ่มต้นอาจให้มีคำว่า BEGIN จบลงให้ใช้ END อ่าน เขียนข้อมูลอาจใช้ READ และ PRINT การทดสอบเงื่อนไขอาจใช้ IF , ELSE , ELSEIF การทำซ้ำอาจใช้ WHILE , DO ENDWHILE เป็นต้น

ตัวอย่าง Pseudocode BEGIN READ A, B SUM = A+B IF SUM > 10 THEN PRINT SUM ELSE PRINT A-B END

ตัวอย่าง Pseudocode Algorithm arrayMax(A,n) Input: An array A storing n integers. Output: The maximum element in A. currentMax < A[0] for I <- 1 to n-1 do if currentMax < A[i] then currentMax <- A[i] return currentMax

ลักษณะโปรแกรมแบบมีโครงสร้างที่ดี ง่ายต่อการทำความเข้าใจและการอ่าน ใช้โครงสร้างควบคุมที่ชัดเจนและรัดกุม พยายามใช้คำสั่งแบบ goto ให้น้อยที่สุด Good Programs run correctly run efficiently be easy to read and understand be easy to debug and be easy to modify.

การจัดเก็บข้อมูลในหน่วยความจำหลัก Static memory allocation เช่น การประกาศตัวแปร int a, b; char s[10], c; static float f; Dynamic memory allocation เช่น การใช้ pointer และมีการจองเนื้อที่ในหน่วยความจำด้วยคำสั่ง malloc(); int *p; p = malloc(sizeof(int)*2);

การวัดประสิทธิภาพของโปรแกรม Space : โปรแกรมนั้นใช้เนื้อที่ความจำมากน้อยแค่ไหน Time : โปรแกรมนั้นใช้อักกอริทึม (Algorithm) ที่เร็วเพียงใด

Running time analysis Most algorithms have running time proportional to one of the following function: 1 most programs are executed once or at most only a few times. Its running time is constant. N When running time is linear, it is the case that a small amount of processing is done on each input element. N log N algorithms that solve a problem by breaking it up into smaller subprogram, solving them independently, and then combining the solutions.

Running time analysis N2 When running time is quadratic, it is for use only on relatively small problems. They arise in algorithms that process all pairs of data items (perhaps in a double nested loop) 2N Few algorithms with exponential running time are likely to be in appropriate for practical use, such algorithms arise as “brute-force” solutions to problems.

การวิเคราะห์ความเร็วของ Algorithm ช้า

n2 n log n n log n n3 2n

Running time calculations A simple Example Int sum(int n) { int i, partialSum; partialSum = 0; //1 for(i=1;i<=N;i++) //2 partialSum += i*i*i; //3 return partialSum; } -> Count for 1 unit per time executed -> Count for 2N+1 units -> 4N units The total is 6N+2 This function is O(N)

Running time calculations A simple Example Int factorial(int n) { int fac if((n==0)||(n=1)) fac = 1; else fac = n*factorial(n-1); } -> Running time = 1 -> เรียกตัวเอง N ครั้ง This function is O(N)