วันอังคารที่ 8 มีนาคม พ.ศ. 2559

บทที่ 2

บทที่ 2

อาร์เรย์  (Array )

โครงสร้างข้อมูลแบบอาร์เรย์  (Array )

          อาร์เรย์  (Array ) หรือแถวลำดับคือการรวมกลุ่มของตัวแปรที่สามารถใช้ตัวแปรที่สามารถ
ใช้ตัวแปรที่สามารถใช้ตัวแปรชื่อเดียวแทนข้อมูลสมาชิกได้หลาย ๆ ตัวในคราวเดียวกันด้วยการใช้
เลขดรรชนี(index) หรือซับสคริปต์ (Subscript) เป็นตัวอ้างอิงตำแหน่งสมาชิกบนแถวลำดับนั้นๆ
ในความเป็นจริงแล้วโครงสร้างข้อมูลแบบอาร์เรย์นั้นจัดเป็นโครงสร้างข้อมูลพื้นฐานที่เข้าใจง่ายที่
สุดเมื่อเทียบกับบรรดาโครงสร้างข้อมูลชนิดอื่นๆภาษาคอมพิวเตอร์ระดับสูงทุกภาษาสามารถนิยาม
ข้อมูลแบบอาร์เรย์ได้ทั้งสิ้น

คุณสมบัติของอาร์เรย์  (Array )

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

การอ้างอิงตำแหน่งสมาชิกในอาร์เรย์

        อาร์เรย์ หรือแถวลำดับ คือการรวมกลุ่มของตัวแปรชื่อเดียวแทนข้อมูลสมาชิกหลายตัวโดยใช้เลขดัชนี(Index) หรือ ซับสคริปต์ (Subscript) เป็นตัวอ้างตำแหน่งสมาชิกบนแถวลำดับนั้นโดยเลขดรรชนีจะอยู่ภายในเครื่องหมาย ( ) หรือ [ ] ก็ได้ ทั้งนี้ขึ้นอยู่กับภาษาคอมพิวเตอร์แต่
ละภาษาตัวอย่างที่เช่น 
Month [1]   แทนเดือนที่ 1     คือเดือนมกราคม
Month [2]   แทนเดือนที่ 2     คือเดือนกุมภาพันธ์
:
Month [12] แทนเดือนที่12    คือเดือนธันวาคม
  
อย่างไรก็ตาม ในภาษาคอมพิวเตอร์อย่างภาษา C หรือ JAVA หมายเลขลำดับของอาร์เรย์จะเริ่มต้นด้วยหมายเลข0 ในขณะที่ภาษา FORTRAN จะเริ่มต้นด้วยหมายเลข 1 ดังนั้นหากมีการประกาศตัวแปรอาร์เรย์ด้วยภาษา C หรือ JAVA ก็อาจทำให้การใช้งานเพื่ออ้างอิงลำดับสมาชิกในอาร์เรย์เกิดความสับสนได้ จึงจำเป็นต้องใช้อย่างระมัดระวัง

 ขอบเขตของอาร์เรย์ (Bounds)

        เลขดรรชนีในอาร์เรย์ประกอบด้วยช่วงขอบเขตของค่า ซึ่งประกอบด้วยขอบเขตล่างสุด 
(Lower Bound)และขอบเขตบนสุด (Upper Bound) แต่อย่างไรก็ตาม ในภาษาคอมพิว
เตอร์บางภาษาจะกำหนดขอบเขตค่าดังกล่าวได้เพียงขอบเขตบนสุดเท่านั้นโดยขอบเขตล่าง
สุดจะถูกกำหนดคงที่เตรียมไว้อยู่แล้ว เช่น ภาษาC, C++, C# และ JAVAจะถูกกำหนดขอบ
เขตล่างสุดเท่ากับ 0 ในขณะที่ภาษาFORTRANจะถูกกำหนดขอบเขตล่างสุดเท่ากับ 1

        ตัวอย่าง  การกำหนดตัวแปรอาร์เรย์ในภาษา FORTRAN ซึ่งขอบเขตล่างสุดของภาษา
FORTRAN

จะเท่ากับ 1 (L = 1)

INTEGER a (5)
         การประกาศดังกล่าวก็คือ กำหนดอาร์เรย์ชื่อ a เป็นชนิดข้อมูลแบบจำนวนเต็มโดยกำหนด
ขนาด 5ช่องซึ่งเป็นไปดังรูป


  รูปที่ 2.1รายละเอียดของอาร์เรย์ a

        สำหรับการคำนวณหาจำนวนสมาชิกของอาร์เรย์หนึ่งมิติ สามารถคำนวณได้จากสูตรดังนี้
จำนวนสมาชิก = U – L + 1
โดยที่      U = ขอบเขตบนสุด (Upper Bound)
               L = ขอบเขตล่างสุด (Lower Bound)
สำหรับการคำนวณหาจำนวนสมาชิกของอาร์เรย์ a ก็จะเป็นไปตามสูตรดังนี้
จำนวนสมาชิก = U – L + 1
                      = 5 –  1 + 1
                      = 5
สำหรับในกรณีเดียวกัน แต่หากกำหนดตัวแปรอาร์เรย์ด้วยภาษา C ซึ่งขอบเขตล่างสุดของภาษา C
จะเท่ากับ 0 (L = 0)
Int b[5];

รูปที่ 2.2  รายละเอียดของอาร์เรย์  b

        สำหรับการคำนวณหาจำนวนสมาชิกของอาร์เรย์ a ก็จะเป็นไปตามสูตรดังนี้
จำนวนสมาชิก = U – L + 1

                      = 4 –  0 + 1

                      = 5
ในกรณีที่ อาร์เรย์มีมากกว่า 1 มิติ

     U1    ขอบเขตบนสุด (Upper Bounds) ของแถว
     L1    ขอบเขตล่างสุด (Lower Bounds) ของแถว
     U2    ขอบเขตบนสุด (Upper Bounds) ของคอลัมน์
     L2    ขอบเขตล่างสุด (Lower Bounds) ของคอลัมน์

จำนวนสมาชิก = (U1 – L1 + 1)  x  (U2 – L2 + 1)

การจัดเก็บอาร์เรย์ในหน่วยความจำ


     สมาชิกทุกตัวในอาร์เรย์ต้องเป็นข้อมูลชิดเดียวกันการเข้าถึงข้อมูลในอาร์เรย์แต่ละตำแหน่งใช้เวลาในการเข้าถึงข้อมูลเท่าๆกัน

การจัดเก็บข้อมูลใน อาร์เรย์ มี 3 แบบคือ


              อาร์เรย์ 1 มิติ (One-Dimension Array)

   คือ อะเรย์ที่มีเพียง แถวนอน แต่มี แถวตั้งหลายแถว ซึ่งในการระบุตำแหน่งหรือตัวชี้(index) จะมีแต่ระบุแต่ตำแหน่งของแถวตั้งเท่านั้น โดยนับเริ่มจาก 0
               Array Name   คือ ชื่อของอาร์เรย์               L   คือขอบเขตล่างสุด (Lower Bound)                            U   คือขอบเขตบนสุด (Upper Bound)                          LOC ( a [ i ] )  =  B + w ( i – L )               LOC ( a [ i ] )   = ตำแหน่งแอดเดรสที่เก็บ a[i] ในหน่วยความจำ                B    = แอสเดรสเริ่มต้นของ a                 w    = จำนวนช่องของหน่วยความจำที่จัดเก็บข้อมูลต่อหนึ่งสมาชิก                 ตัวอย่างเช่น ขนาดหน่วยความจำที่ใช้เก็บข้อมูลสมาชิก 1 ตัวของแต่ละช่องเท่ากับ 4 ไบต์ (32 บิต) ดังนั้น กำหนดให้                  กำหนดให้ : แอดเดรสเริ่มต้น (Base Address) = 1000                                                              W      = 1                อยากทราบว่าอาร์เรย์ a[10] ถูกจัดเก็บไว้ในหน่วยความจำแอดเดรสใด ก็สามารถคำนวณได้จากสูตรดังต่อไปนี้                LOC (a[i]     = B + w(i – L)                LOC (a[10] = 1000 + 1(10 – 0)                                    = 1010                 ดังนั้นตำแหน่งอาร์เรย์ a[10] จะถูกเก็บไว้ในหน่วยความจำแอดเดรสที่ 1010 นั่นเอง
 รูปที่1  แสดงอาร์เรย์  number ที่จัดเก็บอยู่ภายในหน่วยความจำคอมพิวเตอร์


                  อาร์เรย์สองมิติ (Two  Dimension  Array) 
                  
                   อาร์เรย์สองมิติจะมีรูปแบบตารางที่ประกอบด้วยแถว (Row) และคอลัมม์ (Column) การอ้าองอิงอาร์เรย์สองมิติจึงต้องระบุบแนวแถวและคอลัมม์  สำหรับรูปแบบทั่วไปของโครงสร้างข้อมูลอาร์เรย์สองมิติ  คือ

                                                   ArrayName [L1 : U1 , L2 : U2]       
            
                    โดยที่  ArrayName  คือชื่อของอาร์เรย์

                    L1   คือขอบเขตล่างสุด  (Lower Bound)  ของแถว

                   U1  คือขอบเขตบนสุด  (Upper Bound)   ของแถว

                   L2   คือขอบเขตล่างสุด  (Lower Bound)  ของคอลัมน์

                  U2  คือขอบเขตบนสุด  (Upper Bound)   ของคอลัมน์

                 โดยสมมติว่าได้มีการกำหนดให้ K[4,3] หรือ K[0:3,0:2] ด้วยภาษา C ดังนี้

                  int K[4] [3];

                ซึ่งแสดงได้ดังรูป

                        
                 รูปที่ 2  รูปแสดงอาร์เรย์สองมิติชื่อ K ที่มีขนาดมิติ 4 x 3

          อย่างไรก็ตาม การจัดเก็บอาร์เรย์สองมิติในหน่วยความจำยังสามารถจัดเก็บได้ 2 วิธี 
ด้วยกันคือ
  1. การจัดเก็บด้วยการเรียงแถวเป็นหลัก (Row Major Order)
  2. การจัดเก็บด้วยการเรียงคอลัมน์เป็นหลัก (Column Major Order)
                ในกรณีการจัดเก็บอาร์เรย์สองมิติในหน่วยความจำด้วยการเรียงแถวเป็นหลัก การจัด เรียงจะเริ่มต้นตั้งแต่แถวแรกและเรียงลำดับต่อไปในแต่ละคอลัมน์จนครบ จากนั้นก็ขึ้นแถวใหม่ ไปเรื่อยๆ จนกระทั่งแถวสุดท้าย

       
                  รูปที่ 3 ข้อมูลของอาร์เรย์สองมิติชื่อ K ที่จัดเก็บอยู่ในหน่วยความจำหลักในรูปแบบเรียงแถวเป็น                              หลัก (Row Major Order)

                อาร์เรย์สามมิติ(Three Dimension Array) 


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

               ArrayName [L1 : U1 , L2 : U2 , L3 : U3]    
                                               
              โดยที่  ArrayName  คือชื่อของอาร์เรย์

              L1     คือขอบเขตล่างสุด  (Lower Bound)  ของชั้น

             U1      คือขอบเขตบนสุด  (Upper Bound)   ของชั้น

             L2      คือขอบเขตล่างสุด  (Lower Bound)  ของแถว

             U2     คือขอบเขตบนสุด  (Upper Bound)   ของแถว

             L3      คือขอบเขตล่างสุด  (Lower Bound)  ของคอลัมน์

             U3     คือขอบเขตบนสุด  (Upper Bound)   ของคอลัมน์

           โดยสมมติว่าได้มีการกำหนดให้ S[3,4,5] หรือ S[0:2, 0:3, 0:4] ด้วยภาษา C ดังนี้

           Int S [3] [4] [5] ;

          ในการอ้างสมาชิกแต่ละตัวบนแถวลำดับสามมิติสามารถกำหนดให้เป็นไปดังนี้คือ

          S [0, 0, 0], S [0, 0 1], S [i, j, k], … , S [2, 3, 4]

          การจัดเก็บอาร์เรย์สามมิติในหน่วยความจำ จะเป็นในลักษณะเช่นเดียวกันกับที่ผ่านมา 

คือเรียงลำดับเป็นแนวเดียว อีกทั้งยังสามารถจัดเก็บด้วยการเรียงแถวเป็นหลัก หรือคอลัมน์เป็นหลัก 

เช่นเดียวกับอาร์เรย์สองมิติที่ผ่านมา และต่อไปนี้คือสูตรการคำนวณหาแอดเดรสของอาร์เรย์สามมิติ

แบบแถวเป็นหลัก
    
            LOC (S[i, j, k] ) = B + [w X R X C (i-L1) ]  + [w X C (j-L2) ]  + [w(k- L3) ]

            และจากรูป คืออาร์เรย์สามมิติชื่อ S ที่จัดเก็บภายในหน่วยความจำในรูปแบบแถวเป็น

หลักในที่นี้ต้องการทราบตำแหน่งแอดเดรสที่เก็บข้อมูลอาร์เรย์ S ชั้นที่ 0 แถวที่ 3 คอลัมน์ 4

จากรูปแบบของอาร์เรย์สามมิติ         S[L1 : U1 , L2 : U2 , L3 :U3]

ได้มีการประกาศอาร์เรย์ด้วยภาษา C ดังนี้  S [3] [4] [5]

ผลที่ได้ อาร์เรย์ K จะมีขอบเขตระหว่าง     K [0:2, 0:3, 0:4]

LOC (S[i, j, k] )    = B + [w X R X C (i-L1) ]+ [w X C (j-L2) ]+ [w(k- L3) ]

LOC (S[0, 3, 4] ) = 500 + [4 X 4 X 5 (0-0) ]+ [4 X 5 (3-0) ]+ [4(4- 0) ]

                             = 500 + 0 + 60 +16

                             = 576




ดังนั้นอาร์เรย์ S ชั้นที่ 0 แถวที่ 3 คอลัมน์ 4 จะจัดเก็บอยู่ในตำแหน่งแอดเดรสที่ 576

 รูปที่ 4 อาร์เรย์ S ชั้นที่ 0 แถวที่ 3 คอลัมน์ 4 จะจัดเก็บอยู่ในตำแหน่งแอดเดรสที่ 576








บทที่ 1

โครงสร้างข้อมูลและขั้นตอนเพื่องานธุรกิจ


บทที่ 1
โครงสร้างข้อมูลและอัลกอริทึม


ความหมายของโครงสร้างข้อมูล

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

                      1.โครงสร้างข้อมูลเชิงเส้น (Linear  Lists)
               โครงสร้างข้อมูลชนิดนี้มีรูปแบบเป็นรายการต่อเนื่องมีข้อมูลที่จัดเก็บจะมีลักษณะเป็นแถวต่อเนื่องกันไป  ซึ่งเป็นไปตามลักษณะแนวเส้นตรง  ตัวอย่างโครงสร้างข้อมูลแบบเส้นประกอบด้วย  อาเรย์(Array)  สแต็ก(Stacks)  และคิว (Queues)

           2.โครงสร้างข้อมูลแบบไม่เป็นเชิงเส้น (Non-Linear  Lists) 
               โครงสร้างข้อมูลชนิดนี้จะตรงกันข้ามกับแบบแรก  โดยตัวอย่างข้อมูลแบบไม่เป็นเชิงเส้น  เช่น    ทรี(Trees)  และกราฟ (Graphs)

ความหมายของข้อมูล


        ข้อมูล หมายถึง ข้อเท็จจริงที่มีอยู่ในชีวิตประจำวันเกี่ยวกับบุคคล สิ่งของ หรือ เหตุการณ์ที่สนใจศึกษา ข้อมูลอาจเป็นตัวเลข(numeric)  หรืออาจเป็นตัวอักษรหรือข้อความ (alphabetic)  และข้อความที่เป็นตัวเลขผสมข้อความ (alphanumeric)นอกจาก นี้ข้อมูลอาจเป็นภาพ (image) หรือ เสียง(sound) ก็ได้ป็นต้น

ประโยชน์ของโครงสร้างข้อมูลและอัลกอริทึม

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


คุณสมบัติของอัลกอริทึม


     1.การเขียนอัลกอริทึมต้องไม่คลุมเครือ

     2.ต้องมีลำดับขั้นตอนที่ชัดเจน
     3.กระบวนวิธีการต้องให้ผลลัพธ์ตามที่กำหนดในปัญหา
     4.อัลกอริทึมต้องมีจุดสุดท้ายของการทำงาน

ข้อมูลและรูปแบบของข้อมูล


     ข้อมูลชนิดจำนวนเต็ม (integer)
     ข้อมูลชนิดจำนวนจริง (real หรือ floating point)
     ข้อมูลชนิดตัวอักขระ (character)

โครงสร้างการควบคุมพื้นฐาน 3 รูปแบบ (The Three Basic Control Structure)

         ในการเขียนโปรแกรมคอมพิวเตอร์ ส่วนใหญ่มักใช้โครงสร้างควบคุมพื้นฐาน(Control Structures)ซึ่งมีอยู่ 3 รูปแบบพื้นฐานดังนี้คือ แบบเรียงลำดับ(Sequence)แบบกำหนดทางเลือก(Selection) และแบบทำซ้ำ (Repetition)


โครงสร้างข้อมูลในภาษาคอมพิวเตอร์


         แบ่งเป็น 2 ประเภท คือ

        1.โครงสร้างข้อมูลทางกายภาพ (physical data structures)

        2.โครงสร้างข้อมูลทางตรรกะ  (logical data structures)


 โครงสร้างข้อมูลที่ทางกายภาพ


        เป็นโครงสร้างข้อมูลที่ใช้โดยทั่วไปในภาษาคอมพิวเตอร์ แบ่งออกเป็น 2 ประเภท ตามลักษณะข้อมูล

        คือ    1. ชนิดข้อมูลพื้นฐาน (Primitive Data Type) ใช้เก็บค่าพื้นฐานต่าง ๆ เช่น เลขจำนวนเต็ม                                      เลขทศนิยม  อักขระ และ ข้อมูลตรรกกะ 

                 2 ข้อมูลโครงสร้าง (Structured Data Types) ได้แก่ แถวลำดับ ระเบียนข้อมูล และ แฟ้มข้อมูล


โครงสร้างข้อมูลทางตรรกะ  Logical Data Structure) 


        จะมีลักษณะเป็นข้อมูลเชิงจำนวน และได้มีการประมวลมาแล้ว

        1.ข้อมูลแบบเชิงเส้น บอกความสัมพันธ์ บอกความเกี่ยวโยง ได้แก่ ลิสต์ แสตก คิว สตริง

        2 .ข้อมูลแบบไม่เชิงเส้น ได้แก่ ทรี กราฟ


โครงสร้างข้อมูลทางครรกะ


ขั้นตอนวิธี Algorithm


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

1.แบบเรียงลำดับ (Sequence)
        โครงสร้างการควบคุมแบบเรียงลำดับเป็นการทำงานแบบลำดับขั้นตอนต่อเนื่องกันไปในลักษณะบนลงล่าง การประมวลผลจะเป็นไปตามแต่ละชุดคำสั่งตามลำดับสำหรับการนำเสนอโครงสร้างการควบคุมแบบเรียงลำดับในรูปแบบของซูโดโค้ด

รูปที่ 1.1 รูปแบบโครงสร้างการควบคุมแบบเรียงลำดับ

2แบบเลือกการทำงาน (Selection)
           โครงสร้างการควบคุมแบบเลือกการทำงานจะเกี่ยวข้องกับการเปรียบเทียบ
เงื่อนไขเพื่อให้เกิดทางเลือกสองแนวทางด้วยกันเช่น ถ้าเงื่อนไขเป็นจริง ก็จะไป
ทำงานในโมดูลหนึ่ง หรือในกรณีที่เงื่อนไขเป็นเท็จ ก็จะไปทำงานอีกโมดูลหนึ่งหรือ
อาจทำการเปรียบเทียบเงื่อนไขในลำดับขั้นตอนต่อไปก็ได้ ในซูโดโค้ดการกำหนด
เงื่อนไขจะใช้คำเฉพาะคือif …then …else และ end ifประเภทของโครงสร้างแบบ
เลือก
  • เลือกทำงานเฉพาะเมื่อเงื่อนไขเป็นจริง




รูปที่ 1.2 รูปแบบโครงสร้างการควบคุมแบบเลือกการทำงาน
  • เลือกทำงานอย่างใดอย่างหนึ่งระหว่างเงื่อนไขจริงและเท็จ


รูปที่ 1.3 รูปแบบโครงสร้างการควบคุมแบบเลือกทำงานอย่างใดอย่างหนึ่งระหว่างเงื่อนไข
                    จริงและเท็จ

  • คำสั่งเลือกแบบซ้อนกัน




รูปที่ 1.4 รูปแบบโครงสร้างการควบคุมแบบเลือกแบบซ้อนกัน

  • คำสั่งแบบหลายทางเลือก เมื่อมีทางเลือกมากกว่า 2 ทาง




รูปที่ 1.5 รูปแบบโครงสร้างการควบคุมแบบหลายทางเลือก

3.แบบทำซ้ำ (Repetition)
        โครงสร้างการทำงานแบบทำงานซ้ำ กลุ่มของชุดคำสั่งที่อยู่ภายในบล็อกของวงจร

ลูปจะทำงานซ้ำไปเรื่อยๆ เมื่อตรงกับเงื่อนไข จนกระทั่งเงื่อนไขเป็นเท็จก็จะหลุดออก
จากลูป
  รูปที่ 1.6 รูปแบบโครงสร้างการควบคุมแบบทำงานซ้ำด้วย dowhile
            ลูปชนิด dowhile นี้จะมีการตรวจสอบเงื่อนไขก่อนที่จะดำเนินการทุกครั้ง โดยหากเงื่อนไขที่
เปรียบเทียบมีผลเป็นจริง (True) ก็จะดำเนินการเอ็กซีคิวต์ชุดประโยคคำสั่งภายในบล็อก จนกระทั่ง
ได้พบกับตัวปิดคือ enddo นั้น ๆ ต่อไปจนกระทั่งที่เปรียบเทียบจะมีผลเป็นเท็จ (False) ก็จะหลุดจาก
วงจรลูปนั้นออกไปทำงานชุดคำสั่งในลำดับถัดจากตัวปิดลูปหรือ enddo ต่อไป ดังนั้นชุดคำสั่งต่างๆ
ภายในลูปชนิด dowhile นั้นอาจจะไม่ถูกเอ็กซีคิวต์เลยก็เป็นได้ในกรณีเงื่อนไขที่ตรวจสอบครั้งแรกมี
ผลเป็นเท็จ

รหัสจำลองที่เรียกว่า การเขียนซูโดโค้ด (Pseudo Code) 

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