วันจันทร์ที่ 30 มิถุนายน พ.ศ. 2557

การเขียนโปรแกรมแบบโครงสร้างใน ภาษา C

      เราก็มาอธิบายเกียวกับการเขียนโปรแกรมด้วยภาษา C สนับสนุนการเขียนโปรแกรมแบบโครงสร้างทั้ง 3 แบบ คือ โครงสร้างลำดับ โครงสร้างการเลือก โครงสร้างทำซ้ำ

โครงสร้างลำดับใน C

      โครงสร้างแบบลำดับใน C การประมวลผลคำสั่งจะทำจากบนล่างทีละคำสั่ง โดยที่คำสั่งแต่ละคำสั่งจะถูกคั่นด้วยเครื่องหมายอัฒภาค ";" เช่น

    a = a + 1;
    printf ("a = d% \n",a) ;
   
      การทำงานของทั้งสองคำสั่งจะทำจากบนล่างคือ ทำจาก คำสั่ง a = a + 1 ; แล้วไปทำคำสั่ง printf เครื่องหมาย ; ใช้แสดงตำแหน่งสิ้นสุดของแต่ละคำสั่ง ดังนั้นการเขียนคำสั่งอาจเขียนอยู่ในบรรทัดเดียวกันก็ได้ จากสองคำสั่งข้างต้นสามารถเขียนได้อีกแบบ คือ

    a = a + 1 ; printf (" a = d% \n" ,a) ;
   
      แต่อย่างไรก็ตามการเขียนคำสั่งต่อเนื่องกันในลักษณะนี้ถือว่าไม่ดีนัก เพราะอ่านยาก เวลาแก้ไขอาจใช้เวลานานกว่าจะหาที่ผิดพบ
      คำสั่งแต่ละบรรทัดถือว่าเป็นคำสั่งเดี่ยว ( single staments ) เมื่อต้องการเขียนคำสั่งให้เป็นกลุ่มคำสั่งสามารถทำได้ด้วยการใช้เครื่องหมายวงเล็บปีกกา {} เรียกคำสั่งเหล่านี้ว่า คำสั่งประกอบ ( compound statement ) ภายในวงเล็บปีกกาสามารถเขียนกี่คำสั่งก็ได้ เช่น

   {
         printf ( "hello \n") ;
         printf ( "how to programming in C. \n") ;
   }

      คำสั่งประกอบนี้ ประกอบด้วยสองคำสั่งเดียว การใช้คำสั่งประกอบนี้มักจะใช้กับคำสั่ง if , for , while

      โครสร้างแบบการเลือกใน C

      โครงสร้างแบบเงื่อนไขเป็นโครงสร้างที่ต้องมีการตัดสินใจเลือกเส้นทางการประมวลผลโดยมีสองเส้นทาง คือเส้นทางที่เงื่อนไขเป็นจริง ( true ) และเส้นทางที่เงื่อนไขเป็นเท็จ ( false ) การเขียนคำสั่งเลือกเส้นทางการประมวลในภาษา C มีคำสั่งให้เราใช้คือ คำสั่ง if และคำสั่ง switch

      โครงสร้างแบบทำซ้ำใน C

      โครงสร้างแบบทำซ้ำใน C ได้แก่ คำสั่ง for คำสั่ง while และ คำสั่ง do....while ตัวอย่าง คำสั่งต่อไปนี้

     for ( k = 1 ; k <= 3 ; k++ )
         printf ("**********\n") ;
      
      คำสั่งนี้เป็นการวนพิมพ์ "********\n" จำนวน 3 รอบ ได้ผลลัพธ์ดังนี้

************
************
************

      คำสั่ง if

      โครงสร้างการเลือก เมื่อเขียนใน C สามารถใช้คำสั่ง if และ switch คำสั่ง if เป็นคำสั่งใช้ตัดสินใจตามนิพจน์เงื่อนไขมีรูปแบบด้งนี้

                        if ( coundition )
                              statement ;

      coundition
          
          เป็นเงื่อนไข ซึ่งอยู่ในรูปนิพจน์ตรรกะ ค่าของเงื่อนไขมีค่าเป็นจริง หรือ เท็จ ในภาษา C ถ้านิพจน์ตรรกะมีค่าเป็นจริงแทนด้วยตัวเลใดๆ ที่มีค่าไม่เท่ากับ 0 แต่ถ้าเงื่อนไขเท็จแทนด้วย 0 เสมอ

      statement

          เป็นคำสั่งที่จะให้ทำงานเมื่อเงื่อนไขมีค่าเป็นจริง แต่ถ้าเงื่อนไขเป็นเท็จก็จะข้ามคำสั่งนี้ไป คำสั่งนี้อาจเป็นคำสั่งเดี่ยว หรือคำสั่งประกอบ(ที่ประกอบด้วยคำสั่งอื่นๆ หลายคำสั่ง) ก็ได้ที่อยู่ภายใต้บล็อก {} เดียวกัน ดังรูปแบบต่อไปนี้

                         if ( coundition )
                            {
                              statement1 ;
                              statement2 ;
                                 ......
                              statementN ;
                            }

        คำสั่ง for

         คำสั่ง for ใน C มีความสามารถทำงานลูปได้ทั้งแบบจำนวนรอบแน่นอน และแบบจำนวนรอบไม่แน่นอน ซึ่งมีรูปแบบดังนี้

                         for ( initialization ; condition ; increment )
                             statement ;

initialization

    เป็นตัวแปรนับรอบ

conition

    เป็นนิพจน์เงื่อนไขการนับรอบ กาวนลูปจะทำจนกว่าเงื่อนไขนี้จะเป็นเท็จ

increment

    เป็นนิพจน์การเพิ่มค่า หรือลดค่าตัวนับรอบ

statement

    เป็นคำสั่ง หรือกลุ่มของคำสั่งทที่ให้ทำในแต่ละรอบ ตัวอย่าง เช่น

                for (I=1 ; I < = 10; I++ )
                      printf ("A") ;
                printf ("\n") ;
                printf ("The out size of loop\n") ;

    ให้วนลูปพิมพ์ "A" จำนวน 10 รอบ คำสั่งที่อยู่ในลูปมีเพียง 1 คำสั่ง คือ printf ("A") หลังจากจบลูปจะมาทำคำสั่งภายนอกลูป คือ คำสั่ง

        printf ("\n")

แล้วไปทำคำสั่ง

        printf ("The out size of loop\n)

แต่อย่างไรก็ตามก็เพื่อให้อ่านคำสั่งได้ง่ายให้ใช้วงเล็บีกกาช่วยบอกขอบเขตของลูป for เช่น

        for ( I=1; I <=10 ; I++)
        {
              printf ("A") ;
        }
        printf ("\n") ;
        printf ("The out size of loop\n") ;

      คำสั่ง while

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

                 while ( coundition )
                 {
                            statement1 ;
                            statement2 ;
                             ....
                 }
counding
  
   เป็นเงื่อนไขที่ใช้ตรวจสอบการวนลูป ถ้าเงื่อนไขมีค่าจริง ( true ) จะไปทำคำสั่งในลูป แต่ถ้าเงื่อนไขเป็นเท็จ ( false ) ให้ออกจากลูปไปทำคำสั่งต่อจาก while (ตามหลังวงเล็บปีกกาปิด) การเขียนเงื่อนไขต้องเขียนวงเล็บเสมอ มิฉะนั้นจะเกิดข้อผิดพลาด เมื่อต้องการออกจากลูปกลางคันสามารถใช้คำสั่ง break เพื่อให้หลุดจากลูปไปทำคำสั่ง while ต่อไป 
statement1 , statement2 ,.... เป็นกลุ่มของคำสั่งที่เราต้องการให้ทำในแต่ละรอบ

ตัวอย่าง

output1 = (13 > 8) ;

 ค่าของ output1 มีค่าเป็น 1 แสดงว่าเก็บค่าจริง

 สำหรับ output2 มีค่าเป็น 0 เนื่องจาก (9<4) เป็นเท็จ

output 2 = ( 9 < 4) ;

เขียนโปรแกรมได้ดังนี้

1    / * File Name : chap06_01 .c* /
2    #include <stdio.h>
3    void main ()
4    {
5         int output1, output2 ;
6         output1 = (13 > 8) ;
7         output2 = (9 <4) ;
8         printf (" Value of true in C is %d \n" ,output1) ;
9         printf (" Value of false in C is %d \n" , output2) ;
10         if (99)
11             printf ("99 is not equal to zero, it is true. \n") ;
12         if (-99)
13             printf ("-99 is also true. \n") ;
14    }




    อ้างอิงข้อมูลจาก : หนังสือ หลักการเขียนโปรแกรมภาษา C โดย ผศ.ปัญญาพล หอระตะ
      

ไม่มีความคิดเห็น:

แสดงความคิดเห็น