540 likes | 780 Views
Data Structure. อ.วร พจน์ พรหมจักร. ข้อมูล (Data) หมายถึง ข้อเท็จจริงต่างๆ ซึ่งอาจจะเป็นตัวเลขหรือไม่เป็นก็ได้ โครงสร้าง (Structure) หมายถึง ความสัมพันธ์ของสมาชิกในกลุ่ม. ความหมายของโครงสร้างข้อมูล.
E N D
Data Structure อ.วรพจน์ พรหมจักร
ข้อมูล (Data) หมายถึง ข้อเท็จจริงต่างๆ ซึ่งอาจจะเป็นตัวเลขหรือไม่เป็นก็ได้ • โครงสร้าง (Structure) หมายถึง ความสัมพันธ์ของสมาชิกในกลุ่ม
ความหมายของโครงสร้างข้อมูลความหมายของโครงสร้างข้อมูล • โครงสร้างข้อมูล หมายถึง การรวมประเภทข้อมูล (data type) เข้าไว้ด้วยกันจนกระทั่งกลายเป็นประเภทข้อมูลและมีกำหนดคำนิยามของความสัมพันธ์ภายในกลุ่มข้อมูลไว้อย่างชัดเจน ซึ่งการรวมกลุ่มนั้นอาจจะเป็นการรวมกลุ่มระหว่างข้อมูลประเภทเดียวกัน, ต่างประเภท หรือต่างโครงสร้างกันก็ได้ (ขนิษฐา นามี, 2548, หน้า 3) • โครงสร้างข้อมูล หมายถึง รูปแบบการจัดระเบียบของข้อมูลที่ได้จากการดำเนินการทางคณิตศาสตร์ (Operation) เพื่อให้สามารถจัดการกับข้อมูลที่ใช้กับระบบคอมพิวเตอร์ได้ (วิวัฒน์ อภิสิทธิภิญโญ, อมร มุกสิกสาร, 2548, หน้า 12)
ความหมายของโครงสร้างข้อมูลความหมายของโครงสร้างข้อมูล • สรุป โครงสร้างข้อมูล หมายถึงการจัดรูปแบบข้อมูลหรือวิธีการจัดระบบข้อมูลเข้าด้วยกัน มีการกำหนดนิยามความสัมพันธ์ไว้อย่างชัดเจนภายในกลุ่ม เพื่อให้ข้อมูลมีลักษณะที่เหมาะสมสำหรับใช้ในระบบคอมพิวเตอร์
ประเภทของโครงสร้างข้อมูลประเภทของโครงสร้างข้อมูล • แบ่งเป็น 2 ประเภท คือ • 1. โครงสร้างข้อมูลแบบเป็นเชิงเส้น (Linear Data Structure) • 2. โครงสร้างข้อมูลแบบไม่เป็นเชิงเส้น (Non Linear Data Structure)
ประเภทของโครงสร้างข้อมูลประเภทของโครงสร้างข้อมูล 1. โครงสร้างข้อมูลแบบเชิงเส้น (Linear Structure) โครงสร้างที่มีการจัดเก็บข้อมูลในลักษณะต่อเนื่องกัน ถ้าทราบตำแหน่งแรกของข้อมูลก็สามารถทราบตำแหน่งข้อมูลตัวถัดไปหรือข้อมูลตัวอื่นได้ ทางคณิตศาสตร์จะเรียกว่า เวกเตอร์ (Vector) ข้อมูลมีลักษณะเป็น 1 มิติ เช่น อาเรย์, สแตก, คิว, ลิสต์
ประเภทของโครงสร้างข้อมูลประเภทของโครงสร้างข้อมูล D(1) D(2) D(3) D(4) อาเรย์ (Array) D(5) D(4) D(3) D(2) In Out D(1) โครงสร้างของสแตก
D1 D2 D3 Dn Header ประเภทของโครงสร้างข้อมูล Out In คิว (queue) ลิสต์ โครงสร้างของลิสต์
ประเภทของโครงสร้างข้อมูลประเภทของโครงสร้างข้อมูล 2. โครงสร้างข้อมูลแบบไม่เชิงเส้น (Non-Linear Structure) โครงสร้างที่ไม่มีคุณสมบัติของเชิงเส้น สามารถใช้แสดงความสัมพันธ์ของข้อมูลที่ซับซ้อนได้มากกว่าโครงสร้างข้อมูลแบบเชิงเส้น เช่น ทรีกราฟ
ในการเลือกใช้โครงสร้างข้อมูลแบบใดนั้น จะต้องคำนึงถึง • 1. โครงสร้างของข้อมูลนั้นสามารถสร้างความสัมพันธ์ให้กับชุดข้อมูลนั้น ได้อย่างสมบูรณ์ที่สุด • 2. โครงสร้างนั้นต้องง่ายต่อการดำเนินการในระบบ
ความหมายอัลกอริธึม • อัลกอริธึม (Algorithms) หมายถึง การอธิบายขั้นตอนการทำงานของโปรแกรมที่จะพัฒนาขึ้น ซึ่งผ่านการวิเคราะห์และแยกแยะงาน เพื่อแก้ปัญหาใดปัญหาหนึ่ง โดยอธิบายอย่างเป็นลำดับขั้นตอน ให้ผู้เป็นเจ้าของหรือผู้รับผิดชอบได้ตรวจสอบความถูกต้องในแต่ละขั้นตอนของโปรแกรมได้ โดยที่ผู้เป็นเจ้าของหรือผู้รับผิดชอบไม่จำเป็นต้องเขียนโปรแกรม (วุฒิพงษ์ เขื่อนดิน, โครงสร้างข้อมูลและอัลกอริทึม, หน้า 3) • อัลกอริธึม หมายถึง ลำดับขั้นตอนวิธีในการทำงานของโปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่ง ซึ่งถ้าปฏิบัติตามขั้นตอนอย่างถูกต้องแล้ว จะต้องสามารถช่วยแก้ปัญหาหรือประมวลผลตามต้องการได้สำเร็จ
อัลกอริธึม • ในการเขียนอธิบายอัลกอริธึมสมารถเขียนได้หลายแบบ เช่น ในรูปของ Flow Chart, Pseudo และภาษาคอมพิวเตอร์ แต่ในปัญหาเดียวกันเราสามารถคิดอัลกอริธึมเพื่อมาแก้ปัญหาได้หลายแบบ ซึ่งในแต่ละแบบเครื่องคอมพิวเตอร์ก็จะใช้หน่วยความจำ และเวลาในการประมวลผลไม่เท่ากัน ดังนั้น การเปรียบเทียบว่าโปรแกรมคอมพิวเตอร์ใครเก่งกว่ากันนั้นจึงใช้ในการเปรียบเทียบประสิทธิภาพของอัลกอริธึมนั่งเอง
พื้นฐานทางคณิตศาสตร์ (con.) เนื้อหาด้านอัลกอรึธึมส์จำเป็นต้องใช้พื้นฐานทางคณิตศาสตร์ โดย ส่วนใหญ่จะเน้นไปที่หลักการของ Discrete Mathematic โดยหัวข้อที่ยก มานี้จะเป็นเพียงส่วนหนึ่งที่มีการใช้งานกันบ่อยๆ ซึ่งประกอบไปด้วย - เลขยกกำลังและฟังก์ชั่น Exponential - ฟังก์ชั่น Logarithm - ฟังก์ชั่น Factorial - การ Modular
พื้นฐานทางคณิตศาสตร์ (con.) เลขยกกำลังและฟังก์ชั่น Exponential ความสัมพันธ์ที่เกี่ยวข้องกันของเลขยกกำลังกับฟังก์ชั่น Exponential คือ ฟังก์ชั่น Exponential เป็นส่วนหนึ่งของเลขยกกำลัง และมีคุณสมบัติ หลายข้อที่ต้องอาศัยพื้นฐานของเลขยกกำลังมาเป็นองค์ประกอบ
พื้นฐานทางคณิตศาสตร์ (con.) ทฤษฏีที่เกี่ยวข้องกับเลขยกกำลัง ถ้า a, b เป็นจำนวนจริง โดยที่ a≠0, b≠0 และ m, n เป็นจำนวนเต็ม 1. aman = am + n 2. (am) n = amn 3. (ab) m = ambm 4. (a/b) m = am/bm 5. am/an = am - n
พื้นฐานทางคณิตศาสตร์ (con.) ทฤษฏีที่เกี่ยวข้องกับฟังก์ชั่น Exponential ถ้า a, b เป็นจำนวนจริงบวก โดยที่ a≠1, b≠1 และ x, y เป็นจำนวน จริง, ตัวแปร หรือนิพจน์ทางคณิตศาสตร์ 1. กฏของเลขยกกำลัง (Exponent Laws) 1.1 axay = am + n 1.2 (ax) x = axy 1.3 (ab) x = axbx 1.4 (a/b) x = ax/bx 1.5 am/an = am - n
พื้นฐานทางคณิตศาสตร์ (con.) 1.6 a-x = 1/ax 1.7 a0 = 1 2. ax = ayก็ต่อเมื่อ x = y 3. ถ้า x≠0 แล้ว ax = byก็ต่อเมื่อ a = b
พื้นฐานทางคณิตศาสตร์ (con.) ฟังก์ชั่น Logarithms ฟังก์ชั่น Logarithm เป็นส่วนกลับกันของ ฟังก์ชั่น Exponential คือ โดเมนของ ฟังก์ชั่น Exponential กลายเป็นเรนจ์(Range) ของฟังก์ชั่น Logarithms ในทางกลับกันเรนจ์ของฟังก์ชั่น Exponential จะกลายเป็น โดเมนของฟังก์ชั่น Logarithm “กำหนดให้ a, x เป็นจำนวนจริง โดยที่ a > 0, x > 0 และ a ≠ 1 แล้วเป็นฟังก์ชัน Logarithms ก็ต่อเมื่อ y = loga x เมื่อ x = ay”
พื้นฐานทางคณิตศาสตร์ (con.) ทฤษฏีที่เกี่ยวข้องกับฟังก์ชั่น Logarithms กำหนด M, N, a และ b เป็นจำนวนจริงบวก โดยที่ a≠1, b≠1และ มี n เป็นจำนวนจริงแล้ว สามารถสรุปได้ ดังนี้ 1. loga MN = loga M + logaN 2. loga M/N = loga M - logaN 3. loga 1 = 0 4. logaMn = nloga M 5. loga a = 1
พื้นฐานทางคณิตศาสตร์ (con.) 6. loga M = logaN ก็ต่อเมื่อ M=N 7. loga M = logb M / logba 8. a loga M = M 9. logan M = 1/n loga M 10. log1/a M = - loga M 11. loga M = 1/ logMaเมื่อ M ≠ 1
พื้นฐานทางคณิตศาสตร์ (con.) ฟังก์ชั่น Factorial ค่า Factorial n (n Factorial) หมายถึง ผลคูณของจำนวนเต็มบวก ตั้งแต่ 1 ถึง n เมื่อ n เป็นจำนวนเต็มบวกใดๆ เช่น factorial 8 มีค่า เท่ากับ 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 เป็นต้น หรือ factorial n คือ ผลคูณของ จำนวนเต็มบวก n กับจำนวนที่ลดลงจาก n ทีละ 1 จนกระทั่งถึง 1 นั่นเอง โดยสัญลักษณ์ที่กำหนด คือ n! n! = n x (n-1) x (n-2) x (n-3) x … x 2 x 1 หรือn! = 1 x 2 x 3 x … x (n-1) x n
พื้นฐานทางคณิตศาสตร์ (con.) การ Modular การ Modular จะคล้ายกันกับการหาร (Division) แต่จะแตกต่างจาก การหารตรงที่ผลลัพธ์ของการคำนวณ โดยที่ Modular เป็นเศษที่เหลือจาก การหาร กำหนดให้ a เป็นจำนวนเต็ม และ m เป็นจำนวนเต็มบวกแล้ว ค่า a mod n มีค่าเท่ากับเศษที่เหลือจากการหาร a ด้วย m
ลำดับและอนุกรม ลำดับ (Sequence) คือ ฟังก์ชั่นที่มีโดเมนเป็นเซตของจำนวนเต็มบวก เขียนแทนด้วย n แบ่งเป็น 2 ประเภท คือ 1. ลำดับจำกัด คือ ลำดับที่มีโดเมนเป็นเซตของจำนวนเต็มบวก n ตัว แรก เช่น 1, 2, 3, 4, …, n 2. ลำดับอนันต์ (Infinite Sequence) คือ ลำดับที่มีโดเมนเป็นเซตของ จำนวนเต็มบวก จนกระทั่งถึงอนันต์ เช่น 1, 2, 3, 4, … (ไม่ทราบพจน์ สุดท้าย)
ลำดับและอนุกรม (con.) อนุกรม (Series) คือ ผลรวมของพจน์ทุกพจน์ของลำดับนั้นๆ ใช้ สัญลักษณ์ ∑ ตัวการแทนสัญลักษณ์เขียนได้ดังนี้ 1+2+3+4+…+n = ∑ i = ∑ n
รหัส Pseudo รหัส Pseudoจะมีลักษณะคล้ายภาษาอังกฤษ ก้ำกึ่งระหว่างภาษา อังกฤษกับภาษาคอมพิวเตอร์ใช้ในการอธิบายลักษณะโครงสร้างข้อมูล และการทำงานของอัลกอริธึมส์ที่เราเขียนขึ้น Open file linesPrint = 0 Loop (not end of file) read file if (full page) from feed add 1 to PageNumber Write page heading write report line
ผังงาน (Flowchart) • ผังงาน (flowchart) คือ แผนภาพซึ่งแสดงลำดับขั้นตอนของการทำงาน โดยแต่ละขั้นตอนจะถูกแสดงโดยใช้สัญลักษณ์ซึ่งมีความหมายบ่งบอกว่า ขั้นตอนนั้น ๆ มีลักษณะการทำงาน ทำให้ง่ายต่อความเข้าใจ ว่าในการทำงานนั้นมีขั้นตอนอะไรบ้าง และมีลำดับอย่างไร
ประโยชน์ของผังงาน • ช่วยให้สามารถทำความเข้าใจลำดับขั้นตอนการทำงานของโปรแกรมหรือระบบใด ๆได้อย่างรวดเร็ว • ช่วยแสดงลำดับขั้นตอนการทำงาน ทำให้สามารถเขียนโปรแกรมได้อย่างเป็นระบบไม่สับสน นอกจากนี้ผังงานยังเป็นอิสระต่อภาษาที่ใช้ในการ เขียนโปรแกรม กล่าวคือจากผังงานเดียวกันสามารถนำไปเขียนโปรแกรมด้วยภาษาใดก็ได้
ประเภทของผังงาน • ผังงานระบบ (system flowchart) • เป็นผังงานที่แสดงขั้นตอนการทำงานของระบบงานทั้งหมดอย่างกว้างๆ ผังงานระบบจะแสดงความสัมพันธ์ระหว่างการทำงาน เอกสารต่างๆ แสดงถึงการไหลของข้อมูล ว่ามีข้อมูลอะไรบ้าง เอกสารอะไรบ้าง ส่งต่อไปอย่างไร มีการประมวลผลอยู่ตรงขั้นไหน แต่จะมาแสดงวิธีการทำงาน หรือขั้นตอนย่อยของแต่ละงาน
ประเภทของผังงาน • ผังงานโปรแกรม (Program flowchart) • เป็นผังงานซึ่งแสดงลำดับขั้นตอนการทำงานของโปรแกรมหนึ่ง ๆ
ผังงานโปรแกรม (Program flowchart) • เป็นผังงานที่แสดงขั้นตอนการทำงานของโปรแกรมคอมพิวเตอร์อย่างละเอียด เริ่มตั้งแต่การนำเข้าข้อมูลมาในเครื่องคอมพิวเตอร์ การประมวลผลข้อมูล โดยแสดงสูตรต่างๆ ที่ใช้ในการคำนวณ ตลอดจนการเปรียบเทียบเงื่อนไข การกำหนดให้วนรอบการทำงาน และการแสดงผลลัพธ์ที่ได้จากการประมวลผล ซึ่งผังงานโปรแกรมนี้ จะทำให้โปรแกรมเมอร์ (Programmer) สามารถนำไปใช้ในการเขียนโปรแกรมได้อย่างสะดวกรวดเร็ว
สัญลักษณ์ที่ใช้ในการเขียนผังงาน (FLOWCHATING SYMBOLS) • การเขียนผังงาน เป็นการเขียนแผนภาพเพื่อแสดงขั้นตอนการทำงาน โดยนำภาพสัญลักษณ์ต่าง ๆ มาเรียนต่อกัน สัญลักษณ์ที่นิยมใช้ในการเขียนผังงานนั้นหน่วยงานที่ชื่อว่า American National Standards Institute (ANSI) และ International Standard Organization (ISO) ได้ร่วมกันกำหนดสัญลักษณ์มาตรฐานเพื่อใช้ในการเขียนผังงานดังนี้
หลักเกณฑ์ในการเขียนผังงานหลักเกณฑ์ในการเขียนผังงาน • สัญลักษณ์ที่ใช้อาจมีขนาดต่างๆ กันได้ แต่จะต้องมีรูปร่างเป็นสัดส่วนตามมาตรฐาน • ทิศทางของลูกศรในผังงาน ควรมีทิศทางจากบนลงล่าง หรืออาจจากซ้ายไปขวาเสมอ • ผังงานคสรมีความเรียบร้อย สะอาด พยายามหลีกเลี่ยงกากรเขียนลูกศรที่ทำให้เกิดจุดตัด เพราะจะทำให้ผังงานอ่านและทำความเข้าใจได้ยาก และถ้าในผังงานมีการเขียนข้อความอธิบายใด ๆ ควรทำให้สั้นกะทัดรัดและได้ใจความ
ลักษณะโครงสร้างของผังงานลักษณะโครงสร้างของผังงาน • ผังงานทั่วไปจะประกอบด้วยโครงสร้างพื้นฐาน 3 รูปแบบต่อไปนี้คือ • 1.โครงสร้างแบบเป็นลำดับ (sequence structure) • 2.โครงสร้างแบบมีการเลือก (selection structure) • 3.โครงสร้างแบบทำซ้ำ (iteration structure)
โครงสร้างแบบเป็นลำดับ (Sequence Structure) โครงสร้างลักษณะนี้เป็น โครงสร้างพื้นฐานของผังงาน และเป็นลักษณะ ขั้นตอนการทำงานที่พบมากที่สุด คือทำงานทีละขั้นตอนลำดับ
ตัวอย่างผังงานที่มีโครงสร้างแบบเป็นลำดับตัวอย่างผังงานที่มีโครงสร้างแบบเป็นลำดับ • จากตัวอย่างผังงานการคำนวณดอกเบี้ย • สามารถอธิบายเป็นขั้นตอนได้ดังนี้ • 1. เริ่มต้นการทำงาน • 2. รับค่าเงินต้น และอัตราดอกเบี้ยเพื่อใช้ในการคำนวณหาดอกเบี้ย • 3. คำนวณหาดอกเบี้ยโดยใช้สมการต่อไปนี้ • ดอกเบี้ย = เงินต้น * อัตราดอกเบี้ย • 4. แสดงค่าของดอกเบี้ยซึ่งคำนวณได้ • 5. จบการทำงาน
โครงสร้างแบบมีตัวเลือก (Selection Structure) โครงสร้างการทำงานแบบมีการเลือกมีรูปแบบที่ซับซ้อนกว่าโครงสร้างแบบเป็นลำดับรูปแบบ ที่ง่ายที่สุดของโครงสร้างแบบนี้คือ การเลือกแบบมีทางออก 2 ทาง ในการเลือกแบบมีทางออก 2 ทาง นี้จะมีทางออกจากสัญลักษณ์การตัดสินใจเพียง 2 ทาง คือ ใช่หรือไม่ใช่ เท่านั้น (แต่ระบบการเขียนผังงานระบบ อนุญาตให้มีทางออกจากการตัดสินใจ ได้มากกว่า 2 ทาง)
โครงสร้างการทำงานแบบมีการเลือก ( Selection ) • เป็นโครงสร้างที่ใช้การตรวจสอบเงื่อนไขเพื่อการทำงานอย่างใดอย่างหนึ่ง โดยโครงสร้างแบบนี้จะมีอยู่ด้วยกัน 2 รูปแบบ คือ IF - THEN - ELSE และ IF – THEN • โครงสร้างแบบ IF - THEN - ELSE เป็นโครงสร้างที่จะทำการเปรียบเทียบเงื่อนไขที่ใส่ไว้ในส่วนหลังคำว่า IF และเมื่อได้ผลลัพธ์จากการเปรียบเทียบก็จะเลือกว่าจะทำงานต่อในส่วนใด กล่าวคือถ้าเงื่อนไขเป็นจริง ( TRUE ) ก็จะเลือกไปทำงานต่อที่ส่วนที่อยู่หลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จ ( FALSE ) ก็จะไปทำงานต่อในส่วนที่อยู่หลังคำว่า ELSE • แต่ถ้าสำหรับโครงสร้างแบบ IF - THEN เป็นโครงสร้างที่ไม่มีการใช้ ELSE ดังนั้น ถ้ามีการเปรียบเทียบเงื่อนไขที่อยู่หลัง IF มีค่าเป็นจริง ก็จะไปทำส่วนที่อยู่หลัง Then แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทำคำสั่งที่อยู่ถัดจาก IF - THEN แทน
ตัวอย่างผังงานที่มีโครงสร้างแบบมีการเลือกตัวอย่างผังงานที่มีโครงสร้างแบบมีการเลือก ผังงานการคำนวณดอกเบี้ยซึ่งมีอัตราดอกเบี้ย 2 อัตรา คือถ้าเงินต้นน้อยกว่า 1 ล้านบาท จะคิดดอกเบี้ยด้วยอัตราร้อยละ 4 แต่ถ้ามีเงินต้นมากกว่า 1 ล้านบาท จะคิดดอกเบี้ยด้วยอัตราร้อยละ 5
จากผังงานสามารถอธิบายเป็นขั้นตอนได้ดังนี้จากผังงานสามารถอธิบายเป็นขั้นตอนได้ดังนี้ • 1. เริ่มต้นการทำงาน • 2. รับค่าเงินต้น • 3. พิจารณาเงินต้นที่รับค่าเข้ามามากกว่า 1 ล้านบาทหรือไม่ • 4. ถ้าใช่ ให้คำนวณดอกเบี้ยในอัตราร้อยละ 5 ดังนั้น ดอกเบี้ย = เงินต้น * 0.05 • 5. ถ้าไม่ใช่ ให้คำนวณดอกเบี้ยในอัตราร้อยละ 5 ดังนั้น ดอกเบี้ย = เงินต้น * 0.04 • 6. แสดงค่าดอกเบี้ยที่คำนวณได้ • 7. จบการทำงาน
โครงสร้างแบบทำซ้ำ (Iteration Structure) โครงสร้างการทำงานแบบทำซ้ำ จะทำงานแบบเดียวกันซ้ำไปเรื่อย ๆ ในขณะที่ยังเป็นไปตามเงื่อนไขหรือเงื่อนไขเป็นจริง จนกระทั้งเงื่อนไขเป็นเท็จจึงทำงานอื่นต่อไป
โครงสร้างการทำงานแบบมีการทำงานซ้ำ โครงสร้างการทำงานแบบมีการทำงานซ้ำ • เป็นโครงสร้างที่มีการประมวลผลกลุ่มคำสั่งซ้ำหลายครั้ง ตามลักษณะเงื่อนไขที่กำหนด อาจเรียก การทำงานซ้ำแบบนี้ได้อีกแบบว่า การวนลูป ( Looping ) โครงสร้างแบบการทำงานซ้ำนี้จะมีอยู่ 2 ประเภท คือ • DO WHILE • DO UNTIL
DO WHILE • เป็นโครงสร้างที่มีการทดสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะเข้ามาทำงานในกลุ่มคำสั่งที่ต้องทำซ้ำ ซึ่งเรียกว่าการเข้าลูป หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคงเป็นจริงอยู่ ก็ยังคงต้องทำกลุ่มคำสั่งซ้ำหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจากลูปไปทำคำสั่งถัดไปที่อยู่ถัดจาก DO WHILE หรืออาจเป็นการจบการทำงาน
DO UNTIL • เป็นโครงสร้างการทำงานแบบทำงานซ้ำเช่นกัน แต่มีการทำงานที่แตกต่างจาก DO WHILE คือจะมีการเข้าทำงานกลุ่มคำสั่งที่อยู่ภายในลูปก่อนอย่างน้อย 1 ครั้ง แล้วจึงจะไปทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จก็จะมีการเข้าทำกลุ่มคำสั่งที่ต้องทำซ้ำอีก หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคงเป็นเท็จอยู่ ก็ยังต้องทำกลุ่มคำสั่งซ้ำหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นจริง จึงจะออกจากลูปไปทำคำสั่งถัดจาก UNTIL หรืออาจเป็นการจบการทำงาน
ตัวอย่างผังงานที่มีโครงสร้างแบบทำซ้ำผังงานการคำนวณยอดบัญชี ( เงินต้นทบดอกเบี้ย )
จากตัวอย่างผังงานสามารถอธิบายเป็นขั้นตอนได้ดังนี้จากตัวอย่างผังงานสามารถอธิบายเป็นขั้นตอนได้ดังนี้ • 1. เริ่มต้นการทำงาน • 2. รับค่าเงินต้น อัตราดอกเบี้ย และจำนวนปีที่ฝากเงิน ซึ่งเป็นข้อมูลที่จำเป็นในการคำนวณยอดบัญชี(เงินต้นทบดอกเบี้ยตามจำนวนปี ที่ฝากเงิน) • 3. กำหนดให้ n มีค่าเท่ากับ 0 ในผังงานนี้ n คือจำนวนรอบของการคิดดอกเบี้ย • 4. กำหนดยอดบัญชีเริ่มต้นให้เท่ากับเงินต้นที่รับค่าเข้ามา
5. เปรียบเทียบว่า n น้อยกว่าจำนวนปีที่ฝากเงินหรือไม่ • 5.1 ถ้าใช่ให้ทำตามขั้นตอนต่อไปนี้ • คำนวณยอดบัญชีใหม่โดยทบดอกเบี้ยเพิ่มเข้าไปจากยอดบัญชีเดิมโดยใช้สมการต่อไปนี้ยอดบัญชี = ยอดบัญชี + (ยอดบัญชี * อัตราดอกเบี้ย) • เพิ่มค่า n ไปอีก 1 • กลับไปเปรียบเทียบเงื่อนไขในข้อ 5 • 5.2 ถ้าไม่ใช่ แสดงว่าคิดดอกเบี้ยทบต้นครบตามจำนวนปีที่ฝากเงินซึ่งรับค่าเข้ามาแล้วให้ทำตามขั้นตอนต่อไปนี้ • แสดงค่ายอดบัญชีสุดท้ายที่คำนวณได้ • จบการทำงาน