SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
ชันมัธยมศึกษาปี ที 6/1
ความหมายของฟั งก์ ชันและฟั งก์ ชันมาตรฐานของ
ภาษาซี
      ฟ ังก์ชนหรือโปรแกรมย่อย (Function) ในการเขียนโปรแกรมคอมพิวเตอร์
               ั
 บ่อยครังจะต้องมีชุดคําสังบางชุดทีจะต้องถูกทํางานบ่อยๆ ถ้าหากโปรแกรมต้องทํา
 ชุดคําสังเหล่านันอีกครังผูเขียนโปรแกรมจะต้องเขียนชุดคําสังชุดเดิมใหม่อกครังทําให้
                             ้                                             ี
 โปรแกรมมีขนาดใหญ่ขน แต่เราสามารถนําชุดคําสังทีจะต้องถูกใช้งานบ่อย ๆ มารวม
                           ึ
 เป็ นฟ ังก์ชนได้ แล้วจึงเรียกใช้ชอฟ ังก์ชนแทนการทีจะต้องเขียน ชุดคําสังนันใหม่อกครัง
             ั                    ื       ั                                     ี
โครงสร้ างของฟั งก์ ชัน
การสร้างฟ ังก์ชน ทังฟ ังก์ชนมาตรฐานและฟ ังก์ชนทีผูใช้สร้างขึนมีรปแบบโครงสร้างดังนี
               ั           ั                 ั ้                ู
คําอธิบาย
     type คือ ชนิดของฟังก์ชน หรื อ ชนิดของข้อมูล เช่น int , float , char , double , void ที
                              ั
ส่ งไปให้ตาแหน่งทีเรี ยกใช้ ถ้าไม่มีการส่ งค่ากลับไปให้ตาแหน่งทีเรี ยกใช้ จะใช้ void ถ้าไม่
                ํ                                              ํ
มีการกําหนดจะได้ขอมูลทีส่ งกลับมาเป็ น int เสมอ
                        ้
       function_name คือ ชือของฟังก์ชน ควรต้องชือให้สือความหมายถึงการทํางานของ
                                           ั
ฟังก์ชน และต้องเป็ นไปตามกฏเกณฑ์การตังชือตัวแปรในภาษาซี
          ั
       type parameter คือ ชนิดและชือของ parameter ค่าที 1 , 2 ถึง N ทีจะรับมาจากผู้
เรี ยกใช้ฟังก์ชน ถ้าเป็ นฟังก์ชนทีไม่มีการรับส่ งค่า parameter จะใช้คาว่า void
                  ั              ั                                        ํ
       { คือ จุดเริ มต้นของฟังก์ชน   ั
        location variable declaration คือ ส่ วนทีมีการประกาศชนิดและชือของตัวแปรทีจะใช้
เฉพาะในฟังก์ชน โดยส่ วนทีอยูนอกฟังก์ชน จะไม่สามารถเรี ยกใช้ตวแปรเหล่านีได้
                    ั                  ่       ั                        ั
       statement_1; statement_2; ... statement_N คือ คําสั งทีใช้งานในฟังก์ชน  ั
       return(value); คือ คําสั งทีใช้ส่งข้อมูลหรื อค่าทีเป็ นผลลัพธ์จากการประมวลผลใน
ฟังก์ชน ไปให้ผเู้ รี ยกใช้ฟังก์ชน โดยชนิดของข้อมูลทีส่ งต้องเป็ นชนิดเดียวกับชนิดของ
            ั                      ั
ฟังก์ชนหรื อชนิดของข้อมูลของฟังก์ชน ถ้าเป็ นฟังก์ชนทีไม่มีการส่ งค่า(void) จะไม่ตองใช้
              ั                              ั               ั                         ้
คําสั ง return
      } คือ ส่ วนสิ นสุ ดของฟังก์ชน      ั
ฟั งก์ ชันในภาษาซีแบ่ งตามทีมาของฟั งก์ ชันแบ่ ง
ได้ เป็ น 2 ประเภทคือ
                              FUNCTIONS IN C


                 C STANDARD                  PROGRAMMER
                LIBRARY                 DEFINED FUNCTION


1. ฟังก์ชนทีผู้เขียนโปรแกรมสร้างขึนเอง (User-defined Function)
            ั
   เป็ นฟ ังก์ชนหรือโปรแกรมย่อยทีผูใช้สร้างขึนมาใช้ในการเขียนโปรแกรมเพือทํางาน
                ั                  ้
   อย่างใดอย่างหนึง
2. ฟังก์ชนมาตรฐาน (Standard Function) เป็ นฟ ังก์ชนทีถูกสร้างขึนและ
              ั                                                   ั
   เก็บไว้ในไลบรารี ในการใช้งานเราต้องเรียกใช้ include directives เพือเรียก
   header file ขนมาก่อนจงจะสามารถใช้งานฟ ังกชันนันได้
1. ฟั งก์ ชันทีผู้เขียนโปรแกรมสร้ างขึนเอง หรือการ
เขียนโปรแกรมแบบโปรแกรมย่ อย
          โปรแกรมย่อยเป็นวิธเี ขียนโปรแกรมทีต้องการแยกระบบงานเป็ นส่วน เช่น ระบบงาน
  เป็นระเบียบเพราะแบ่งเป็นส่วนงาน สามารถสร้างทีมงานช่วยพัฒนาระบบได้ เมือเกิด
  ข้อผิดพลาดจุดใด สามารถแก้ไขได้ทนทีั


1.1 โครงสร้างของฟ ังก์ชน
                       ั
type function_name(type1 arg1, type2 arg2,.., typeN argN)
  {
  local variable declaration;
  statement(s);
  return( varlue);
  }
อธิบาย
   type คือ ชนิดของข้อมูลทีส่งกลับมายังชือฟ ังก์ชนทีเรียกใช้ โดยปกติแล้วถ้าไม่มการกําหนด
                                                   ั                              ี
   type ว่าเป็นชนิด int, float, char หรือ double จะได้ค่าข้อมูลทีส่งกลับมาเป็ น
   ชนิด int เสมอ ยกเว้นว่าฟ ังก์ชนนันไม่มการส่งค่ากลับจะต้องกําหนดให้ type เป็ น void
                                  ั          ี
   function_name คือ ชือฟ ังก์ชน ซึงเราสามารถตังชือฟ ังก์ชนโดยอาศัยกฎเกณฑ์ของ
                                           ั                        ั
   การตังชือตัวแปรในภาษาซี
   type1 arg1, type2 arg2,…, typeN argN คือ การประกาศชือและชนิดของ
   ตัวแปรทีจะใช้เป็น argument ตัวที 1, 2, 3,…, N ตามลําดับ ถ้าเป็ นฟ ังก์ชนทีไม่มทง
                                                                                ั       ี ั
   การส่งค่าไปและรับค่ากลับเลย ให้ใช้คาว่า void แทน
                                       ํ
   { คือ จุดเริมต้นของฟ ังก์ชนั
   } คือจุดสินสุดของฟ ังก์ชนั
   local variable declaration คือ การประกาศชนิดและชือของตัวแปรทีใช้ได้
   เฉพาะภายในฟ ังก์ชน ถ้าอยู่นอกฟ ังก์ชนจะไม่สามารถใช้ตวแปร local ทีประกาศไว้ได้
                         ั               ั                 ั
   statement(s) คือ คําสังต่าง ๆ ทีใช้ในฟ ังก์ชน ถ้ามีมากกว่า 1 คําสังให้จบท้ายแต่ละ
                                                     ั
   คําสังด้วยเครืองหมาย ; (semicolon)
   return(value) คือ คําสังทีใช้ส่งค่ากลับไปยังชือฟ ังก์ชนทีเรียกใช้ ส่วน value ทีอยู่
                                                               ั
   ภายใน ( ) คือ ค่าทีจะถูกส่งกลับ คําสังนี จะใช้เฉพาะฟั งก์ชนที มีการส่งค่ากลับเท่านัน ถ้า
                                                             ั
   เป็นฟ ังก์ชนทีไม่มทงการส่งค่าไปและกลับ หรือเป็นฟ ังก์ชนชนิดทีมีแต่การส่งค่าไปอย่างเดียว ก็
              ั      ี ั                                 ั
   ไม่ตองใช้คาสังนี
        ้       ํ
#include<stdio.h>
#include<conio.h>
void one(void); /* function Prototype
void two(void); /* function Prototype            ผลลัพธ์ทีได้จากโปรแกรม
void main(void)
{
clrscr();
one(); /* call one() */
two(); /* call two() */
printf("nPress any key back to program ...");
getch();
}
/* one function */
void one()
{
int a=5, b=7;
printf("A = %d, B = %dn",a,b);
}
/* two function */
void two()
{
float p=4.5, q=3.5;
p+=q;
printf("P = %6.3f, Q = %6.3fn",p,q);
}
คําอธิ บายโปรแกรม
    จากโปรแกรม สามารถอธิบายการทํางานของโปรแกรมทีสําคัญ ๆ ได้ดงนี         ั
    บรรทัดที 3 และ 4 คําสัง void one(void); และ void two(void); คําสังประกาศชือ
   ฟ ังก์ชนและชนิดของการส่งค่ากลับมายังฟ ังก์ชน ซึงในกรณีนีทังฟ ังก์ชน one( ) และ two( ) เป็ น
          ั                                     ั                    ั
   ฟ ังก์ชนชนิดทีไม่มทงการส่งค่าไปและรับค่ากลับ เนืองจากคําว่า void ทีอยู่หน้าชือฟ ังก์ชน one( )
            ั        ี ั                                                                ั
   และ two( ) เป็ นการบอกว่าไม่มการรับค่าทีส่งกลับ ส่วนคําว่า void ทีอยู่ภายใน ( ) ของฟ ังก์ชน
                                    ี                                                         ั
   one( ) และ two เป็ นการบอกว่าไม่ม ี argument นันคือไม่มการส่งค่าไปนันเอง
                                                                       ี
   ข้อสังเกต การประกาศชือและชนิดของฟ ังก์ชนจะต้องประกาศไว้ก่อนฟ ังก์ชน main( ) เพราะจะทํา
                                              ั                            ั
   ให้เราสามารถใช้ฟ ังก์ชนทีประกาศไว้ในส่วนใดของโปรแกรมก็ได้
                           ั
   บรรทัดที 8 และ 9 คําสัง one( ); และ two( ); เป็ นการเรียกใช้ฟ ังก์ชนชือ one( ) และ
                                                                             ั
   two( ) ตามลําดับ โดยฟ ังก์ชน one( ) อยู่ทคําสังบรรทัดที 14 ถึง 18 และ ฟ ังก์ชน two( ) อยู่
                                  ั                  ี                               ั
   ทีบรรทัดที 20 ถึง 25
   บรรทัดที 14 ถึง 18 ฟ ังก์ชน one( ) ให้พมพ์ค่าทีเก็บไว้ในตัวแปร a และ b แสดงทีจอภาพ
                              ั                   ิ
   บรรทัดที 20 ถึง 25 ฟ ังก์ชน two( ) ให้พมพ์คาทีเก็บไว้ในตัวแปร p และ q และพิมพ์ค่าตัวแปร
                                ั                   ิ ่
   q แสดงทีจอภาพ
   บรรทัดที 10 และ 11 ภายหลังจากทํางานตามฟ ังก์ชน one( ) และ two( ) แล้ว พิมพ์ขอความให้
                                                        ั                                  ้
   กดคียใด ๆ เพือกลับสูโปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
              ์          ่
โปรแกรมย่อย
 ฟ ังก์ชนทีเขียนขึนเองใหม่เพือให้ทางานตามต้องการ
         ั                         ํ
 นิยมเขียนเพือทํางานอย่างใดอย่างหนึง
 สามารถเรียกใช้ฟ ังก์ชนนีหลายๆ ทีได้
                        ั
 ประโยชน์
    ทําให้ทงโปรแกรมมีโครงสร้างทีดี กะทัดรัด เข้าใจง่าย
            ั
    ง่ายต่อการทดสอบและแก้ไขโปรแกรม
    นํากลับมาใช้ง่ายและรวดเร็ว
1.2 การวางตําแหน่ งโปรแกรมย่อย ภาษาซีมให้เลือกใช้งาน 2 ลักษณะคือ
                                         ี
 วางโปรแกรมย่อยไว้ในตําแหน่งก่อนส่วนโปรแกรม
 วางโปรแกรมย่อยไว้ในตําแหน่งหลังส่วนโปรแกรมหลัก
   วางโปรแกรมย่อยไว้ในตําแหน่ ง      วางโปรแกรมย่อยไว้ในตําแหน่ งหลัง
   ก่อนส่วนโปรแกรม                   ส่วนโปรแกรมหลัก
 #include <stdio.h>                  #include <stdio.h>
 Main ()                             Main ()
 {                                   {
 Function-name2 ();                          Function-name1 ();
 …………………...                                  Function-name2
 Function-name1 ();                  ();
 }                                           …………………..
                                     }
 ข้อแนะนําในการเขียนโปรแกรมย่อย
    กรณีเลือกวางโปรแกรมย่อยไว้หลังโปรแกรมหลัก ต้องประกาศชือโปรแกรมย่อยต่อ
  จาก #include เสมอ มิฉะนันจะเกิดข้อผิดพลาดได้
     กรณีมโปรแกรมย่อยหลายส่วนงาน วางโปรแกรมย่อยไว้หลังโปรแกรมหลัก เพราะ
           ี
  หลักการอ่านคําสังงานจะต้องอ่านในส่วนโปรแกรมหลักก่อน แล้วจึงโนยงไปทีโปรแกรม
  ย่อย หากมีโปรแกรมย่อยจํานวนมากจะดันโปรแกรมหลักไปอยูสวนล่าง ทําให้เสียเวลา
                                                        ่่
  ค้นหาโปรแกรมหลัก
1.3 โปรแกรมย่อยแบบไม่มีการรับส่งค่าพารามิ เตอร์
  มีจุดประสงค์สร้างโปรแกรมเพือใช้แบ่งส่วนการทํางานโปรแกรมหลักเป็ น
  ส่วนย่อยเท่านัน การเรียกใช้งาน เพียงพิมพ์ชอโปรแกรมย่อยตามด้วย ( )
                                            ื
  เท่านัน

รูปแบบ void function_name(void )
โครงสร้างของโปรแกรม
ตัวอย่างโปรแกรมย่อยแบบไม่มการรับส่งค่าพารามิเตอร์
                          ี
  #include<stdio.h>
  #include<conio.h>
  void asterisk_line(void);
  void main(void)
  {
  clrscr( );
  asterisk_line( );
  printf("****** C and C++ PROGRAMMING ******n");
  asterisk_line();
  printf("nPress any key back to program ..."); ผลลัพธ์ทีได้จาก
  โปรแกรม
  getch();
  }
  /* asterisk_line function */
  void asterisk_line( )
  {
  int j, n=40;
  for(j=1; j<=n; j++)
  printf("*");
  printf("n");
  }
คําอธิ บายโปรแกรม
   จากโปรแกรม สามารถอธิบายการทํางานของโปรแกรมทีสําคัญ ๆ ได้ดงนี  ั
   บรรทัดที 3 คําสัง void asterisk_line (void); แสดงว่าฟ ังก์ชนชือ ั
   asterisk_line( ) เป็ นฟ ังก์ชนทีไม่มทงการส่งค่าไป และรับค่ากลับ
                                   ั       ี ั
   บรรทัดที 7 และ 9 เป็ นคําสังเรียกใช้ฟ ังก์ชน asterisk_line( ) ซึงฟ ังก์ชนอยู่
                                               ั                           ั
   คําสังบรรทัดที 14 ถึง 19
   บรรทัดที 14 ถึง 19 ฟ ังก์ชน asterisk_line( ) มีการทํางานโดยพิมพ์ *
                             ั
   จํานวน 40 ตัวออกแสดงทีจอภาพ
   บรรทัดที 10 และ 11 พิมพ์ขอความให้กดคียใด ๆ เพือกลับสูโปรแกรม และหยุดรอรับ
                               ้                 ์        ่
   ค่าใด ๆ เช่น กด enter จะกลับเข้าสูโปรแกรม
                                      ่
1.4 โปรแกรมย่อยแบบรับค่าพารามิ เตอร์ไปใช้อย่างเดียว
  โปรแกรมย่อยลักษณะนี มีจดประสงค์เพือแบ่งระบบงานเป็ นโปรแกรม
                            ุ
  ย่อย และต้องการให้โปรแกรมย่อยมีประสิทธิภาพรับค่าข้อมูลจาก
  โปรแกรมหลักทีส่งไปให้ใช้ในการประมวลผลภายในโปรแกรมย่อยได้
  ดังนัน การเรียกชือโปรแกรมย่อย ต้องตามด้วยค่าข้อมูลทีส่งไปให้ใช้
  งานด้วย
  การกําหนดคุณสมบัตให้โปรแกรมย่อยทํางานในลักษณะรับ
                       ิ
  ค่าพารามิเตอร์ไปใช้ เขียนรูปแบบดังนี
รูปแบบ void function_name (type_parameter parameter_name [,..] ) ;
กําหนดคุณสมบัติให้โปรแกรมย่อยทํางานในลักษณะรับค่าพารามิ เตอร์ไปใช้
   #include <stdio.h>
   Void addition (int , int ) ;
   Void main ()
   {
   Int a,b ;
   ……....
   Addition (a,b) ;
   }
   Void addition (int m , int n)
   {
   …............
   }
1.5 โปรแกรมย่อยแบบรับและคืนค่าพารามิ เตอร์
  มีจดประสงค์แบ่งโปรแกรมเป็ นโปรแกรมส่วนย่อย และให้โปรแกรมย่อยมีประสิทธิภาพ
     ุ
  รับค่าข้อมูลจากโปรแกรมหลัก ไปใช้ในการประมวลภายในโปรแกรมย่อย รวมทัง
  สามารถส่งค่าทีได้จากการประมวลผลกลับไปทีโปรแกรมหลัก
โปรแกรมย่อยประเภทนี ประกาศลักษณะการทํางานด้วยรูปแบบดังนี
 รูปแบบ Type_variable function_name (parameter_name

  Type_variable       ชือชนิดข้อมูลของตัวแปร ทีส่งกลับมาจากโปรแกรมย่อย
  function_name ชือโปรแกรม
  parameter_name ชือพารามิเตอร์ทรับค่ามาใช้งานในโปรแกรม หากมี
                                     ี
  มากกว่า 1 ใช้ , คัน
 โครงสร้างของโปรแกรม
 ตัวอย่างคําสัง กําหนดให้โปรแกรมย่อยรับค่าพารามิเตอร์จากโปรแกรมหลักไปใช้ และส่งค่า
  กลับมาให้ได้
  #include<stdio.h>
  #include<conio.h>
  int calculate(int, int);
  void main(void)
  {                                              ผลลัพธ์ทีได้จาก
  โปรแกรม
  int p=3, q=4, r;
  clrscr( );
  r = calculate(p,q);
  printf("P = %d, Q = %d, R = %dn",p,q,r);
  printf("nPress any key back to program ...");
  getch();
  } /* end main() */
  int calculate(int p, int q)
  {
  return (p+q);
  }
คําอธิ บายโปรแกรม
   จากโปรแกรม สามารถอธิบายการทํางานของโปรแกรมทีสําคัญ ๆ ได้ดงนี     ั
   บรรทัดที 3 คําสัง int calculate (int, int); การประกาศรูปแบบฟ ังก์ชนที         ั
   มีการส่งค่า argument ไป 2 ตัว ชนิด int และ มีการส่งค่ากลับมายังฟ ังก์ชน     ั
   เป็ นชนิด int เช่นกัน โดยฟ ังก์ชนชือ caculate( )
                                     ั
   บรรทัดที 8 คําสัง r = caculate (p, q); เป็ นการเรียกใช้ฟ ังก์ชน    ั
   caculate( ) และส่งค่า p และ q ส่งไปให้ฟ ังก์ชนด้วย ตามลําดับ ซึงฟ ังก์ชน
                                                  ั                          ั
   caculate( ) อยูคาสังบรรทัดที 13 ถึง 16
                      ่ ํ
   บรรทัดที 13 ถึง 16 ฟ ังก์ชน caculate( ) โดยมีการทํางาน คือ นําค่าตัวแปร p
                             ั
   และ q ทีได้มาบวกกัน แล้วส่งผลลัพธ์ทได้กลับไปให้ ณ จุดทีเรียกใช้ในฟ ังก์ชน
                                         ี                                 ั
   main( ) นันคือ ไปเก็บไว้ทตัวแปร r
                                 ี
   บรรทัดที 9 แสดงค่าตัวแปร p, q และ r แสดงทีจอภาพ
   บรรทัดที 10 และ 11 พิมพ์ขอความให้กดคียใด ๆ เพือกลับสูโปรแกรม และหยุดรอ
                                   ้         ์              ่
   รับค่าใด ๆ เช่น กด enter จะกลับเข้าสูโปรแกรม
                                           ่
1.6 ฟังก์ชนทีไม่มีการรับค่าพารามิ เตอรแต่มีการส่งคืนค่า
            ั
มีการเรียกใช้ ดังนี   variable_name = function_name();
โดย variable_name คือ ชือของตัวแปรทีจะมารับค่าของฟ ังก์ชนทีส่งคืนมา
                                                                ั
 ฟ ังก์ชนประเภทนีต้องมีชนิดของฟ ังก์ชน แต่ไม่มพารามิเตอร และในโครงสร้างต้องมี
        ั                            ั        ี
   คําสัง return (value) เพือส่งค่ากลับ
 โครงสร้างของโปรแกรม
 ตัวอย่าง โปรแกรมฟังก์ชนทีไม่มีการรับคาพารามิ เตอรแต่มีการส่งคืนค่า
                        ั
1.7 ประสิ ทธิ ภาพการทํางานของตัวแปร
           ตัวแปรทีประกาศการใช้งานในตําแหน่งของโครงสร้างตัวซีในตําแหน่งทีต่างกัน ย่อมมี
  ประสิทธิภาพการทํางานทีแตกต่างกันไปคือ ตัวแปรทีประกาศการใช้งานตัวนอกส่วนของ
  โปรแกรมใดๆ มีประสิทธิภาพการใช้งานต่างกันกับตัวแปรภายในโปรแกรมหลัก
 ตัวแปรภายใน (Local Variable) คือ ตัวแปรทีถูกสร้างขึนภายในฟ ังก์ชน สามารถ
                                                                         ั
  เรียกใช้งานได้เฉพาะภายในฟ ังก์ชนทีสร้างขึน และจะถูกทําลายลงเมือเสร็จสินการทํางานของ
                                  ั
  ฟ ังก์ชนนันๆ
         ั
 ตัวแปรภายนอก (Global Variable) คือ ตัวแปรทีถูกสร้างขึนภายนอกฟ ังก์ชน         ั
  สามารถใช้งานได้ในทุกฟ ังก์ชน หรือทังโปรแกรม (ยกเว้นฟ ังก์ชนทีมีตวแปรภายในชือ
                             ั                              ั     ั
  เดียวกับตัวแปรภายนอก ซึงมีความเป็ นไปได้) และจะคงอยูตลอดการทํางานของโปรแกรม
                                                         ่
 โปรแกรมตัวอย่าง
/* 7th Sample Program: Local vs Global Variable */
#include<stdio.h>
int ans = 0;
 int inc_one(int);                 /* function prototype */
void main()
{
   int a = 3;
   ans = inc_one(a);
   printf(“Answer is %dn”, ans);
}
/* function definition: return x+1 */
int inc_one(int x)
{
   int ans;
   ans = x + 1;
   return ans;
}
สังเกตง่ายทีสุดคือตัวแปรภายนอก ans เพราะถูกประกาศเอาไว้ภายนอก
ฟ ังก์ชน โดยสามารถเรียกใช้งานได้โดยฟ ังก์ชนหลัก (main) หรือฟ ังก์ชนใดๆ
       ั                                  ั                            ั
สังเกตได้วาฟ ังก์ชนหลัก ใช้ตวแปร ans โดยไม่มการประกาศตัวแปร
             ่            ั       ั             ี
       หากจะระบุวาตัวแปรใดเป็ นตัวแปรภายใน จะต้องพิจารณาทีละฟ ังก์ชน ในฟ ังก์ชน
                        ่                                          ั          ั
หลักตัวแปร a คือ ตัวแปรภายใน เพราะถูกประกาศในฟ ังก์ชนหลัก
                                                      ั
         ในฟ ังก์ชน inc_one มีตวแปร x และ ans เป็ นตัวแปรภายใน ข้อสังเกต
                  ั                 ั
เพิมเติมคือ ans ทีประกาศขึนในฟ ังก์ชนนีมีชอเหมือนกับ ans ทีเป็ นตัวแปร
                                      ั     ื
ภายนอกของทังโปรแกรม อย่างไรก็ตามหากลองย้อนกลับไปดูนิยามก็จะพบว่าสามารถ
ทําได้ เพียงแต่วาในฟ ังก์ชน inc_one ได้ประกาศตัวแปร ans ขึนใหม่เป็ นตัวแปร
                    ่           ั
ภายใน ใช้งานในฟ ังก์ชน inc_one เท่านันโดยไม่เกียวกับตัวแปร ans ซึงเป็ นตัว
                            ั
แปรภายนอก หากฟ ังก์ชน inc_one ไม่ได้ประกาศตัวแปร ans ขึนใหม่ ก็จะมา
                              ั
สามารถเรียกใช้ตวแปร ans ซึงเป็ นตัวแปรภายนอกได้เช่นเดียวกับฟ ังก์ชนหลัก
                      ั                                              ั
 ตัวอย่าง แสดงโกลบอลและโลคอล
 PROGRAM AA;
 VAR NUM:INTEGER;
 PROCEDURE A;                     ผลทีได้จาการ RUN
 BEGIN
 NUM:=NUM*10;                     NUM*10 = 50
 WRITELN(‘NUM*10 = ‘,NUM);
 END;                             NUM = 124
 VAR ANY:INTEGER;
 PROCEDURE B;                     CNTR = 122
 VAR NUM,CNTR:INTEGER;
 BEGIN
                                  BACK TO MAIN
 NUM:=124;                        NUM = 50
 WRITELN(‘NUM = ‘,NUM);
 CNTR:=122;
 WRITELN(‘CNTR =’,CNTR);
 END;
 BEGIN {MAIN PROGRAM}
 NUM:=5;
 WRITELN(‘IN MAIN’,’NUM = ‘,NUM);
 A;
 B;
 WRITELN(‘BACK TO MAIN NUM = ‘,NUM);
 END.
อธิบาย
   - NUM ทีกําหนดในโปรแกรมหลักเป็ นโกบอล คือให้คาและ output ใน
                                                       ่
   โปรแกรมหลักและให้คาและ output ใน program ย่อย A
                         ่
   - NUM, cntr ทีกําหนดใน program ย่อย B เป็ นโลคอล B ซึงโปรแกรมหลัก
   หรือโปรแกรมย่อยอืน ๆ จะนําไปใช้ไม่ได้ แต่ชอ NUM ซํากับ NUM ใน
                                             ื
   โปรแกรมหลัก จึงถือว่าเป็ นคนละ NUM กัน ทีโปรแกรมหลัก NUM=5 แต่พอถึง
   A นํามาคูณ 10 ได้ 50 เมือถึง B ให้คาใหม่เป็ น 124 เมือกลับมาโปรแกรมหลักก็
                                       ่
   เป็ น 124 แต่ยงเป็ น 50 เพราะเป็ น NUM คนละตัวกัน
                   ั
   - ก่อน procedure B ได้กําหนดตัวแปร ANY ซึงเป็ นโกบอล แต่ใช้ใน
   procedure A ไม่ได้ใช้ได้ใน procedure B และโปรแกรมหลัก
   - เพราะฉะนัน B เรียกใช้ A แต่ A เรียกใช้ B ไม่ได้ และทัง A,B เรียกใช้ AA
   ไม่ได้ เพราะเป็ นโปรแกรมหลัก
2. การใช้ ฟังก์ ชันมาตรฐานภาษาซี
      ฟ ังก์ชนมาตรฐาน เป็ นคําสังสําเร็จรูปทีภาษา C มีไว้ให้เรียกใช้งานได้เลย โดยจะ
             ั
  ถูกจัดเก็บไว้ในส่วนของไลบรารี โดยจะแบ่งตามกลุ่มงาน เช่น กลุ่มงานคํานวณ กลุ่ม
  อักขระ เป็ นต้น ผูเขียนโปรแกรมจําเป็ นต้องรูวามีฟ ังก์ชนใดบ้าง อยู่ในไลบรารีไหน
                    ้                           ้่       ั
  เพือให้เรียกใช้งานได้อย่างง่ายวิธการใช้งานเพียงแค่ระบุไลบรารีทต้องการใช้ในส่วน
                                    ี                              ี
  ของHeader ของโปรแกรม #include ให้ถูกต้อง
#include<stdio.h> #include<math.h>
void main()                                     Square root 4 =
                                                Square root 4 =
{                                             2.000000
                                               2.000000
  printf(“square root 4 =”);                  5 power 3 =
                                               5 power 3 =
  printf(“%fn”, sqrt(4));
                                              125.000000
                                               125.000000
  printf(“5 power 3 =”);
  printf(“%f”, pow(5,3));
}

ฟ ังก์ชนมาตรฐาน
       ั
เรียกใช้โดยการ include ไฟล์นามสกุล .h ทีเก็บฟ ังก์ชนนันไว้ เช่น
                                                     ั
ถ้าต้องการใช้ฟ ังก์ชน printf หรือ scanf จะต้อง include ไฟล์ชอ stdio.h มาก่อน
                    ั                                           ื
ถ้าเราต้องการใช้ฟ ังก์ชนทางคณิตศาสตร์ เช่น sqrt หรือ pow ต้อง include ไฟล์ชอ
                       ั                                                   ื
    math.h
2.1 ฟังก์ชนทีใช้กบงานคํานวณ
             ั      ั
ฟ ังก์ชนทางคณิตศาสตร์ เป็ นฟ ังก์ชนทีใช้ทางการคํานวณ ทางคณิตศาสตร์ ปกติอยูใน
       ั                           ั                                      ่
    math.h ผลลัพธ์ ทีได้จากฟ ังก์ชนกลุ่มนีเป็ นข้อมูลประเภท double ดังนันตัวแปร
                                     ั
    ทีใช้จงเป็ นพวกทีมีชนิดเป็ น double
          ึ
ตัวอย่าง การใช้ฟ ังก์ชนทางคณิตศาสตร์ คือ sin(), cos() และ tan()
                       ั




ผลลัพธ์ของโปรแกรม
ฟ ังก์ชนทางคณิตศาสตร์ เป็นฟ ังก์ชนทีใช้ทางการคํานวณ ทางคณิตศาสตร์ ปกติอยู่ใน math.h
       ั                             ั
     ผลลัพธ์ ทีได้จากฟ ังก์ชนกลุ่มนีเป็ นข้อมูลประเภท double ดังนันตัวแปรทีใช้จงเป็นพวกทีมี
                               ั                                                 ึ
     ชนิดเป็น double
 ฟ ังก์ชน sin(x) เป็นฟ ังก์ชนใช้คานวณหาค่าของ sine โดย x มีค่าของมุมในหน่ วย เรเดียน
                             ั   ั      ํ
ฟ ังก์ชน cos(x) ใช้หาค่า cosine โดย x มีหน่ วยเป็ นเรเดียน(radian)
         ั
ฟ ังก์ชน tan(x) ใช้หาค่า tangent โดย x มีหน่ วยเป็ นเรเดียน(radian)
           ั
ฟ ังก์ชน sqrt(x) ใช้หาค่ารากทีสองของ x โดย x เป็นตัวเลขหรือตัวแปรทีไม่ตดลบ
             ั                                                                 ิ
ฟ ังก์ชน exp(x) ใช้หาค่า ex โดย e มีค่าประมาณ 2.718282
               ั
ฟ ังก์ชน pow(x,y) ใช้หาค่า x y
                 ั
ฟ ังก์ชน log(x) ใช้หาค่า log ฐาน e เรียกว่า natural logarithm โดย x เป็ นตัวเลข
                   ั
     หรือตัวแปรทีไม่ติดลบ
ฟ ังก์ชน log10(x) ใช้หาค่า log ฐาน 10 โดย x เป็นตัวเลขหรือตัวแปรทีไม่ติดลบ
                     ั
ฟ ังก์ชน ceil(x) ใช้ในการป ัดเศษทศนิยมของ x เมือ x เป็ นเลขทศนิยม
                       ั
ฟ ังก์ชน floor(x) ใช้ในการตัดเศษทศนิยมของ x ทิงเมือ x เป็ นเลขทศนิยม
                         ั
ฟ ังก์ชน fabs(x) ใช้ในการหาค่าสัมบูรณ์ของค่าคงทีหรือตัวแปรทีมีทศนิยม โดยเป็ นบวกหรือ
                           ั
     ลบก็ได้
ตัวอย่าง ฟ ังก์ชนทางคณิตศาสตร์
                ั
2.2 ฟังก์ชนทีใช้กบงานข้อความ
          ั      ั
(string.h)•เฮดเดอร์ไฟล์ชอstring.hจะบรรจุฟ ังก์ชนมาตรฐานทีเกียวข้องกับการทางาน
                         ื                     ั
  กับข้อความไว้

ฟังก์ชน strcpy
      ั
   ประสิ ทธิ ภาพ : คัดลอดข้อความจากตัวแปร string 2 มาเก็บไว้ทตัวแปร string 1
                                                              ี
               < strcpy (สตริงปลายทาง, สตริงต้นทาง) ทําสําเนาข้อความ>
                      รูปแบบ strcpy (string 1,string 2)


ฟังก์ชน strcat
      ั
   ประสิ ทธิ ภาพ : เชือมต่อข้อความ โดยนําข้อความจากตัวแปร string 2 มาต่อท้าย
   ข้อความตัวแปร string 1
                                รูปแบบ strcat (string 1,string 2)
ฟังก์ชน strcmp
      ั
   ประสิ ทธิ ภาพ : เปรียบเทียบความยาวของข้อความ
ถ้าความยาว string 1 มากกว่าหรือเท่ากับstring 2 ได้ค่าเป็ น 1 (จริง)
ถ้าความยาว string 1 สันกว่า string 2 ได้ค่าเป็ น 0 (เท็จ)
                                รูปแบบ strcmp(string 1,string 2)
ฟังก์ชน strlen
        ั
   ประสิ ทธิ ภาพ : หาความยาวของข้อความ
                                      รูปแบบ strlen (string)
ฟังก์ชน strcmpi
          ั
   ประสิ ทธิ ภาพ : เปรียบเทียบข้อความ
ถ้าความยาว string 1 เป็ นข้อความเดียวกับ string 2 ได้ค่าเป็ น 0 (เท็จ)
ถ้าความยาว string 1 เป็นข้อความมีค่า < string 2 ได้ค่าเป็ น < 0
ถ้าความยาว string 1 เป็นข้อความมีค่า > string 2 ได้ค่าเป็ น > 0
                               รูปแบบ strcmpi (string 1,string 2)
2.3 ฟังก์ชนทีใช้กบงานกับอักขระ
          ั      ั
       กลุ่มเรียกใช้งานในไลบรารีตองสัง #include <ctype.h>
                                 ้
ฟังก์ชน TOLOWER ฟ ังก์ชน LOWER ใช้ในการแปลงข้อความทีเป็ นตัวพิมพ์ใหญ่ ไม่วาจะเป็ นแค่บาง
       ั                           ั                                      ่
    ตัวอักษรหรือทังข้อความ ให้เป็ นตัวพิมพ์เล็กทังหมด
           หน้ าที   แปลงข้อความให้เป็ นตัวพิ มพ์เล็ก

           รูปแบบ TOLOWER(text)

            text     ข้อความทีต้องการแปลงเป็ นตัวพิมพ์เล็ก ซึงต้องเป็ นตัวอักษรเท่านัน


ฟังก์ชน TOUPPER ฟ ังก์ชน UPPER จะตรงข้ามกับฟ ังก์ชน LOWER โดยฟ ังก์ชน
      ั                ั                            ั               ั
    TOUPPER จะแปลงข้อความทังหมดให้เป็ นตัวพิมพ์ใหญ่
          หน้ าที    แปลงข้อความให้เป็ นตัวพิ มพ์ใหญ่

          รูปแบบ     TOUPPER(text)

          text       ข้อความทีต้องการแปลงเป็ นตัวพิมพ์ใหญ่ ซึงต้องเป็ นตัวอักษรเท่านัน
ตัวอย่าง ฟ ังก์ชนกับงานอักขระ
                ั




ผลลัพธ์ของโปรแกรม
สรุปเนื อหา
         เทคนิคการเขียนโปรแกรมในรูปแบบแบ่งระบบงานเป็ นโปรแกรมย่อยนันช่วยให้เกิด
   ประโยชน์หลายด้าน เช่น โปรแกรมมีความเป็นระบบระเบียบมากขึน สามารถมุง     ่
   เป้ าหมายไปยังส่วนของระบบงานย่อยทีต้องการได้งายขึน รวมทังเอือต่อการทํางานแบบทีม
                                                ่
   ได้
        การวางตําแหน่งของโปรแกรมในตําแหน่ งย่อยในโครงสร้างภาษาซีทาได้ 2 รูปแบบคือ
                                                                 ํ
   วางโปรแกรมย่อยในตําแหน่งก่อนโปรแกรมหลักและวางโปรแกรมย่อยในตําแหน่ งหลัง
   โปรแกรมหลัก โปรแกรมย่อยมีประสิทธิภาพการทํางานให้เลือกใช้ 4 รูปแบบคือ
1.แบบไม่มการรับส่งค่าพารามิเตอร์
           ี
2.แบบรับค่าพารามิเตอร์ไปใช้งานอย่างเดียว
3.แบบรับ-ส่งค่าพารามิเตอร์
4.แบบไม่มการรับค่าพารามิเตอรแต่มการส่งคืนค่า
             ี                    ี
การเขียนโปรแกรมย่อยแบบไม่มการรับส่งค่าพารามิเตอร์นิยมนําไปใช้งาน
                                      ี
โปรแกรมประเภทมีเมนูให้เลือกกดหมายเลขการทํางานในส่วนย่อยของระบบงานนัน
ส่วนการเขียนโปรแกรมย่อยในรูปแบบรับ – ส่งค่าพารามิเตอร์ระหว่างโปรแกรมหลัก
กับโปรแกรมย่อย นิยมนําไปใช้งานคํานวณและภาษาซี ผูใชงานสามารถสร้าง
                                                          ้
ฟ ังก์ชนขึนมาใช้งานได้เอง แต่หากต้องการใช้ฟ ังก์ชนสําเร็จรูปทีมีอยูแล้วในภาษาซีให้
       ั                                            ั              ่
ศึกษาเรืองฟ ังก์ชน มาตราฐาน
                    ั
      ฟ ังก์ชนมาตรฐานเป็ นโปรแกรมย่อยชนิดหนึงทีผูพฒนาภาษาซีสร้างไว้ให้ผเขียน
              ั                                       ้ ั                  ู้
งานภาษาซีนําไปใช้ควบคุมการทํางาน เช่น ฟ ังก์ชนควบคุมการแสดงผล คือ
                                                  ั
ฟ ังก์ชน printf เป็ นต้น ฟ ังก์ชนเหล่านีถูกจัดเก็บในส่วนทีเรียกว่า ไลบรารี
         ั                          ั
ดังนันผูเขียนงานโปรแกรมภาษาซีตองศึกษาว่าฟ ังก์ชนทีต้องการใช้งานนัน จัดเก็บใน
            ้                     ้                    ั
ไลบรารี ใด แล้วจึงเรียกการใช้งานด้วย #include ชือ ไลบรารี ให้ถูกต้อง
แบบฝึ กหัด
1.กําหนด char s3[5] = {‘G’, ‘O’, ‘O’, ‘D’, ‘0’}; ดังนัน s3 เป็ นตัวแปรประเภทใด
    ก)    ตัวอักขระ
    ข)    ข้อความ
    ค)    ถูกทังข้อ ก. และข้อ ข.
    ง)    ไม่มคาตอบทีถูกต้อง
              ี ํ
2. ข้อใด หมายถึงฟ ังก์ชนในภาษาซี
                       ั
    ก)    ฟ ังก์ชนมาตรฐาน
                    ั
    ข)    ฟ ังก์ชนทีสร้างขึนเอง
                      ั
    ค)    ถูกทังข้อ ก. และข้อ ข.
    ง)    ไม่มคาตอบทีถูกต้อง
                ี ํ
3.ข้อใดถูกต้องในการเขียนรูปแบบโครงสร้างของฟ ังก์ชนทีมีการส่งค่าไปและไม่มการส่งค่ากลับ
                                                 ั                      ี
    ก)    int function_name(type arg, …)
    ข)    void function_name(type arg, …)
    ค)    function_name(type arg, ….)
    ง)    void function_name()
4.ข้อใด ไม่ใช่ ข้อมูลในภาษาซี
    ก)   เลขจํานวนเต็ม
    ข)   ตัวอักขระ
    ค)   ข้อความ
    ง)   รูปภาพ
5.ฟ ังก์ชนทีสร้างขึนเองในภาษาซี ต้องเขียนอยู่ ภายในเครืองหมายอะไร
         ั
    ก)   ()
    ข)
    ค)   {} []
    ง)   ถูกทุกข้อ
6.กําหนด char s1[9] = “LANGUAGE”; ดังนัน s1 เป็นตัวแปรประเภทใด
    ก)   ตัวอักขระ
    ข)   ข้อความ
    ค)   ถูกทังข้อ ก. และข้อ ข.
    ง)   ไม่มคําตอบทีถูกต้อง
              ี
7.กําหนด char s2[4] = {‘G’, ‘O’, ‘O’, ‘D’}; ดังนัน s2 เป็ นตัวแปรประเภทใด
    ก)   ตัวอักขระ
    ข)   ข้อความ
    ค)   ถูกทังข้อ ก. และข้อ ข.
    ง)   ไม่มคําตอบทีถูกต้อง
              ี
8.ข้อใดเขียนรูปแบบการเรียกใช้ฟ ังก์ชนได้ ถูกต้อง
                                    ั
    ก)   function_name();
    ข)   function_name()
    ค)   function_name(arg1,arg2)
    ง)    Function_name(arg1; arg2);
9.ข้อใดถูกต้องในการเขียนรูปแบบโครงสร้างของฟ ังก์ชนทีมีการส่งค่าไปและไม่มการส่งค่ากลับ
                                                 ั                      ี
    ก)   int function_name(type arg, …)
    ข)   void function_name(type arg, …)
    ค)   function_name(type arg, ….)
    ง)   void function_name()
10.ฟ ังก์ชนทีใช้กบงานข้อความหาความยาวของข้อความคือฟ ังก์ชนอะไรและมีรปแบบ
          ั      ั                                       ั          ู
  อย่างไร
   ก)   ฟ ังก์ชน
               ั         strcmp รูปแบบ    strcmp(string 1,string 2)
   ข)   ฟ ังก์ชน ั       strcat รูปแบบ   strcat (string 1,string 2)
   ค)   ฟ ังก์ชน   ั     strcpy รูปแบบ    strcpy (string 1,string 2)
   ง)   ฟ ังก์ชน     ั   strlen รูปแบบ   strlen (string)
เฉลย
       1.    ก
       2.    ค
       3.    ข
       4.    ง
       5.    ข
       6.    ข
       7.    ก
       8.    ก
       9.    ข
       10.   ง
รายชือสมาชิก
1.   น.ส.กฤตวรรณ       แต้มประเสริฐ      เลขที     13
2.   น.ส.ณัฐชยา        พลูสวัสดิ         เลขที     14
3.   น.ส.นพวรรณ        ปลาบู่ทอง         เลขที     19
4.   น.ส.กาญจนาพร      พงศ์อมพรทิพย์
                             ั            เลขที     21
5.   น.ส.นภัสกร        นาควิโรจน์         เลขที    22
6.   น.ส. ลลิตา         บันลือศรีสกุล      เลขที   23

                ชันมัธยมศึกษาปี ที 6/1

Weitere ähnliche Inhalte

Was ist angesagt?

การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)Visaitus Palasak
 
6.Flow control
6.Flow control6.Flow control
6.Flow controlUsableLabs
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1Ja Phenpitcha
 
2.Java fundamentals
2.Java fundamentals2.Java fundamentals
2.Java fundamentalsUsableLabs
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานNookky Anapat
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาJK133
 
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา CWarawut
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาSarocha Makranit
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Thanachart Numnonda
 

Was ist angesagt? (20)

การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
 
6.Flow control
6.Flow control6.Flow control
6.Flow control
 
3.6 ฟังก์ชัน
3.6 ฟังก์ชัน3.6 ฟังก์ชัน
3.6 ฟังก์ชัน
 
3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล
 
3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น 1
 
2.Java fundamentals
2.Java fundamentals2.Java fundamentals
2.Java fundamentals
 
ภาษาซีเบื้องต้น
ภาษาซีเบื้องต้นภาษาซีเบื้องต้น
ภาษาซีเบื้องต้น
 
ตัวแปรและคำสงวน
ตัวแปรและคำสงวนตัวแปรและคำสงวน
ตัวแปรและคำสงวน
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี
 
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา C
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
 
งานทำBlog บทที่ 10
งานทำBlog บทที่ 10งานทำBlog บทที่ 10
งานทำBlog บทที่ 10
 
Vb6 5 ข้อมูลและตัวแปร
Vb6 5 ข้อมูลและตัวแปร Vb6 5 ข้อมูลและตัวแปร
Vb6 5 ข้อมูลและตัวแปร
 
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 

Ähnlich wie ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1

Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นDararat Worasut
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานchanamanee Tiya
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานchanamanee Tiya
 
โครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซีโครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซีณัฐพล บัวพันธ์
 
ภาษา C
ภาษา Cภาษา C
ภาษา C0872671746
 
4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซีmansuang1978
 
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซีmansuang1978
 
หน่วยการเรียนรู้ที่ 2
หน่วยการเรียนรู้ที่ 2หน่วยการเรียนรู้ที่ 2
หน่วยการเรียนรู้ที่ 2SubLt Masu
 
1. ประวัติภาษาซี
1. ประวัติภาษาซี1. ประวัติภาษาซี
1. ประวัติภาษาซีmansuang1978
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น Ja Phenpitcha
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Thank Chiro
 

Ähnlich wie ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1 (20)

Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
 
โครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซีโครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซี
 
งานทำBlog บทที่ 10
งานทำBlog บทที่ 10งานทำBlog บทที่ 10
งานทำBlog บทที่ 10
 
งานทำBlog บทที่ 10
งานทำBlog บทที่ 10งานทำBlog บทที่ 10
งานทำBlog บทที่ 10
 
3.6 ฟังก์ชัน
3.6 ฟังก์ชัน3.6 ฟังก์ชัน
3.6 ฟังก์ชัน
 
Pbl2
Pbl2Pbl2
Pbl2
 
ภาษา C
ภาษา Cภาษา C
ภาษา C
 
4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี
 
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี
 
หน่วยการเรียนรู้ที่ 2
หน่วยการเรียนรู้ที่ 2หน่วยการเรียนรู้ที่ 2
หน่วยการเรียนรู้ที่ 2
 
Learn 2
Learn 2Learn 2
Learn 2
 
Mindmapping
MindmappingMindmapping
Mindmapping
 
Mindmapping
MindmappingMindmapping
Mindmapping
 
1. ประวัติภาษาซี
1. ประวัติภาษาซี1. ประวัติภาษาซี
1. ประวัติภาษาซี
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 

Mehr von Little Tukta Lita

งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Little Tukta Lita
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1Little Tukta Lita
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบLittle Tukta Lita
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบLittle Tukta Lita
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบLittle Tukta Lita
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1Little Tukta Lita
 
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม. 6 1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม. 6  1ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม. 6  1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม. 6 1Little Tukta Lita
 

Mehr von Little Tukta Lita (9)

งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
มายแม็บ
มายแม็บมายแม็บ
มายแม็บ
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
 
It news
It newsIt news
It news
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบ
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบ
 
สรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบสรุปงานผู้ทดสอบ
สรุปงานผู้ทดสอบ
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
 
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม. 6 1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม. 6  1ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม. 6  1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม. 6 1
 

ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1

  • 2. ความหมายของฟั งก์ ชันและฟั งก์ ชันมาตรฐานของ ภาษาซี ฟ ังก์ชนหรือโปรแกรมย่อย (Function) ในการเขียนโปรแกรมคอมพิวเตอร์ ั บ่อยครังจะต้องมีชุดคําสังบางชุดทีจะต้องถูกทํางานบ่อยๆ ถ้าหากโปรแกรมต้องทํา ชุดคําสังเหล่านันอีกครังผูเขียนโปรแกรมจะต้องเขียนชุดคําสังชุดเดิมใหม่อกครังทําให้ ้ ี โปรแกรมมีขนาดใหญ่ขน แต่เราสามารถนําชุดคําสังทีจะต้องถูกใช้งานบ่อย ๆ มารวม ึ เป็ นฟ ังก์ชนได้ แล้วจึงเรียกใช้ชอฟ ังก์ชนแทนการทีจะต้องเขียน ชุดคําสังนันใหม่อกครัง ั ื ั ี
  • 3. โครงสร้ างของฟั งก์ ชัน การสร้างฟ ังก์ชน ทังฟ ังก์ชนมาตรฐานและฟ ังก์ชนทีผูใช้สร้างขึนมีรปแบบโครงสร้างดังนี ั ั ั ้ ู
  • 4. คําอธิบาย type คือ ชนิดของฟังก์ชน หรื อ ชนิดของข้อมูล เช่น int , float , char , double , void ที ั ส่ งไปให้ตาแหน่งทีเรี ยกใช้ ถ้าไม่มีการส่ งค่ากลับไปให้ตาแหน่งทีเรี ยกใช้ จะใช้ void ถ้าไม่ ํ ํ มีการกําหนดจะได้ขอมูลทีส่ งกลับมาเป็ น int เสมอ ้ function_name คือ ชือของฟังก์ชน ควรต้องชือให้สือความหมายถึงการทํางานของ ั ฟังก์ชน และต้องเป็ นไปตามกฏเกณฑ์การตังชือตัวแปรในภาษาซี ั type parameter คือ ชนิดและชือของ parameter ค่าที 1 , 2 ถึง N ทีจะรับมาจากผู้ เรี ยกใช้ฟังก์ชน ถ้าเป็ นฟังก์ชนทีไม่มีการรับส่ งค่า parameter จะใช้คาว่า void ั ั ํ { คือ จุดเริ มต้นของฟังก์ชน ั location variable declaration คือ ส่ วนทีมีการประกาศชนิดและชือของตัวแปรทีจะใช้ เฉพาะในฟังก์ชน โดยส่ วนทีอยูนอกฟังก์ชน จะไม่สามารถเรี ยกใช้ตวแปรเหล่านีได้ ั ่ ั ั statement_1; statement_2; ... statement_N คือ คําสั งทีใช้งานในฟังก์ชน ั return(value); คือ คําสั งทีใช้ส่งข้อมูลหรื อค่าทีเป็ นผลลัพธ์จากการประมวลผลใน ฟังก์ชน ไปให้ผเู้ รี ยกใช้ฟังก์ชน โดยชนิดของข้อมูลทีส่ งต้องเป็ นชนิดเดียวกับชนิดของ ั ั ฟังก์ชนหรื อชนิดของข้อมูลของฟังก์ชน ถ้าเป็ นฟังก์ชนทีไม่มีการส่ งค่า(void) จะไม่ตองใช้ ั ั ั ้ คําสั ง return } คือ ส่ วนสิ นสุ ดของฟังก์ชน ั
  • 5. ฟั งก์ ชันในภาษาซีแบ่ งตามทีมาของฟั งก์ ชันแบ่ ง ได้ เป็ น 2 ประเภทคือ FUNCTIONS IN C C STANDARD PROGRAMMER LIBRARY DEFINED FUNCTION 1. ฟังก์ชนทีผู้เขียนโปรแกรมสร้างขึนเอง (User-defined Function) ั เป็ นฟ ังก์ชนหรือโปรแกรมย่อยทีผูใช้สร้างขึนมาใช้ในการเขียนโปรแกรมเพือทํางาน ั ้ อย่างใดอย่างหนึง 2. ฟังก์ชนมาตรฐาน (Standard Function) เป็ นฟ ังก์ชนทีถูกสร้างขึนและ ั ั เก็บไว้ในไลบรารี ในการใช้งานเราต้องเรียกใช้ include directives เพือเรียก header file ขนมาก่อนจงจะสามารถใช้งานฟ ังกชันนันได้
  • 6. 1. ฟั งก์ ชันทีผู้เขียนโปรแกรมสร้ างขึนเอง หรือการ เขียนโปรแกรมแบบโปรแกรมย่ อย โปรแกรมย่อยเป็นวิธเี ขียนโปรแกรมทีต้องการแยกระบบงานเป็ นส่วน เช่น ระบบงาน เป็นระเบียบเพราะแบ่งเป็นส่วนงาน สามารถสร้างทีมงานช่วยพัฒนาระบบได้ เมือเกิด ข้อผิดพลาดจุดใด สามารถแก้ไขได้ทนทีั 1.1 โครงสร้างของฟ ังก์ชน ั type function_name(type1 arg1, type2 arg2,.., typeN argN) { local variable declaration; statement(s); return( varlue); }
  • 7. อธิบาย type คือ ชนิดของข้อมูลทีส่งกลับมายังชือฟ ังก์ชนทีเรียกใช้ โดยปกติแล้วถ้าไม่มการกําหนด ั ี type ว่าเป็นชนิด int, float, char หรือ double จะได้ค่าข้อมูลทีส่งกลับมาเป็ น ชนิด int เสมอ ยกเว้นว่าฟ ังก์ชนนันไม่มการส่งค่ากลับจะต้องกําหนดให้ type เป็ น void ั ี function_name คือ ชือฟ ังก์ชน ซึงเราสามารถตังชือฟ ังก์ชนโดยอาศัยกฎเกณฑ์ของ ั ั การตังชือตัวแปรในภาษาซี type1 arg1, type2 arg2,…, typeN argN คือ การประกาศชือและชนิดของ ตัวแปรทีจะใช้เป็น argument ตัวที 1, 2, 3,…, N ตามลําดับ ถ้าเป็ นฟ ังก์ชนทีไม่มทง ั ี ั การส่งค่าไปและรับค่ากลับเลย ให้ใช้คาว่า void แทน ํ { คือ จุดเริมต้นของฟ ังก์ชนั } คือจุดสินสุดของฟ ังก์ชนั local variable declaration คือ การประกาศชนิดและชือของตัวแปรทีใช้ได้ เฉพาะภายในฟ ังก์ชน ถ้าอยู่นอกฟ ังก์ชนจะไม่สามารถใช้ตวแปร local ทีประกาศไว้ได้ ั ั ั statement(s) คือ คําสังต่าง ๆ ทีใช้ในฟ ังก์ชน ถ้ามีมากกว่า 1 คําสังให้จบท้ายแต่ละ ั คําสังด้วยเครืองหมาย ; (semicolon) return(value) คือ คําสังทีใช้ส่งค่ากลับไปยังชือฟ ังก์ชนทีเรียกใช้ ส่วน value ทีอยู่ ั ภายใน ( ) คือ ค่าทีจะถูกส่งกลับ คําสังนี จะใช้เฉพาะฟั งก์ชนที มีการส่งค่ากลับเท่านัน ถ้า ั เป็นฟ ังก์ชนทีไม่มทงการส่งค่าไปและกลับ หรือเป็นฟ ังก์ชนชนิดทีมีแต่การส่งค่าไปอย่างเดียว ก็ ั ี ั ั ไม่ตองใช้คาสังนี ้ ํ
  • 8. #include<stdio.h> #include<conio.h> void one(void); /* function Prototype void two(void); /* function Prototype ผลลัพธ์ทีได้จากโปรแกรม void main(void) { clrscr(); one(); /* call one() */ two(); /* call two() */ printf("nPress any key back to program ..."); getch(); } /* one function */ void one() { int a=5, b=7; printf("A = %d, B = %dn",a,b); } /* two function */ void two() { float p=4.5, q=3.5; p+=q; printf("P = %6.3f, Q = %6.3fn",p,q); }
  • 9. คําอธิ บายโปรแกรม จากโปรแกรม สามารถอธิบายการทํางานของโปรแกรมทีสําคัญ ๆ ได้ดงนี ั บรรทัดที 3 และ 4 คําสัง void one(void); และ void two(void); คําสังประกาศชือ ฟ ังก์ชนและชนิดของการส่งค่ากลับมายังฟ ังก์ชน ซึงในกรณีนีทังฟ ังก์ชน one( ) และ two( ) เป็ น ั ั ั ฟ ังก์ชนชนิดทีไม่มทงการส่งค่าไปและรับค่ากลับ เนืองจากคําว่า void ทีอยู่หน้าชือฟ ังก์ชน one( ) ั ี ั ั และ two( ) เป็ นการบอกว่าไม่มการรับค่าทีส่งกลับ ส่วนคําว่า void ทีอยู่ภายใน ( ) ของฟ ังก์ชน ี ั one( ) และ two เป็ นการบอกว่าไม่ม ี argument นันคือไม่มการส่งค่าไปนันเอง ี ข้อสังเกต การประกาศชือและชนิดของฟ ังก์ชนจะต้องประกาศไว้ก่อนฟ ังก์ชน main( ) เพราะจะทํา ั ั ให้เราสามารถใช้ฟ ังก์ชนทีประกาศไว้ในส่วนใดของโปรแกรมก็ได้ ั บรรทัดที 8 และ 9 คําสัง one( ); และ two( ); เป็ นการเรียกใช้ฟ ังก์ชนชือ one( ) และ ั two( ) ตามลําดับ โดยฟ ังก์ชน one( ) อยู่ทคําสังบรรทัดที 14 ถึง 18 และ ฟ ังก์ชน two( ) อยู่ ั ี ั ทีบรรทัดที 20 ถึง 25 บรรทัดที 14 ถึง 18 ฟ ังก์ชน one( ) ให้พมพ์ค่าทีเก็บไว้ในตัวแปร a และ b แสดงทีจอภาพ ั ิ บรรทัดที 20 ถึง 25 ฟ ังก์ชน two( ) ให้พมพ์คาทีเก็บไว้ในตัวแปร p และ q และพิมพ์ค่าตัวแปร ั ิ ่ q แสดงทีจอภาพ บรรทัดที 10 และ 11 ภายหลังจากทํางานตามฟ ังก์ชน one( ) และ two( ) แล้ว พิมพ์ขอความให้ ั ้ กดคียใด ๆ เพือกลับสูโปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม ์ ่
  • 10. โปรแกรมย่อย  ฟ ังก์ชนทีเขียนขึนเองใหม่เพือให้ทางานตามต้องการ ั ํ  นิยมเขียนเพือทํางานอย่างใดอย่างหนึง  สามารถเรียกใช้ฟ ังก์ชนนีหลายๆ ทีได้ ั  ประโยชน์  ทําให้ทงโปรแกรมมีโครงสร้างทีดี กะทัดรัด เข้าใจง่าย ั  ง่ายต่อการทดสอบและแก้ไขโปรแกรม  นํากลับมาใช้ง่ายและรวดเร็ว
  • 11. 1.2 การวางตําแหน่ งโปรแกรมย่อย ภาษาซีมให้เลือกใช้งาน 2 ลักษณะคือ ี  วางโปรแกรมย่อยไว้ในตําแหน่งก่อนส่วนโปรแกรม  วางโปรแกรมย่อยไว้ในตําแหน่งหลังส่วนโปรแกรมหลัก วางโปรแกรมย่อยไว้ในตําแหน่ ง วางโปรแกรมย่อยไว้ในตําแหน่ งหลัง ก่อนส่วนโปรแกรม ส่วนโปรแกรมหลัก #include <stdio.h> #include <stdio.h> Main () Main () { { Function-name2 (); Function-name1 (); …………………... Function-name2 Function-name1 (); (); } ………………….. }
  • 12.  ข้อแนะนําในการเขียนโปรแกรมย่อย กรณีเลือกวางโปรแกรมย่อยไว้หลังโปรแกรมหลัก ต้องประกาศชือโปรแกรมย่อยต่อ จาก #include เสมอ มิฉะนันจะเกิดข้อผิดพลาดได้ กรณีมโปรแกรมย่อยหลายส่วนงาน วางโปรแกรมย่อยไว้หลังโปรแกรมหลัก เพราะ ี หลักการอ่านคําสังงานจะต้องอ่านในส่วนโปรแกรมหลักก่อน แล้วจึงโนยงไปทีโปรแกรม ย่อย หากมีโปรแกรมย่อยจํานวนมากจะดันโปรแกรมหลักไปอยูสวนล่าง ทําให้เสียเวลา ่่ ค้นหาโปรแกรมหลัก
  • 13. 1.3 โปรแกรมย่อยแบบไม่มีการรับส่งค่าพารามิ เตอร์ มีจุดประสงค์สร้างโปรแกรมเพือใช้แบ่งส่วนการทํางานโปรแกรมหลักเป็ น ส่วนย่อยเท่านัน การเรียกใช้งาน เพียงพิมพ์ชอโปรแกรมย่อยตามด้วย ( ) ื เท่านัน รูปแบบ void function_name(void ) โครงสร้างของโปรแกรม
  • 14. ตัวอย่างโปรแกรมย่อยแบบไม่มการรับส่งค่าพารามิเตอร์ ี #include<stdio.h> #include<conio.h> void asterisk_line(void); void main(void) { clrscr( ); asterisk_line( ); printf("****** C and C++ PROGRAMMING ******n"); asterisk_line(); printf("nPress any key back to program ..."); ผลลัพธ์ทีได้จาก โปรแกรม getch(); } /* asterisk_line function */ void asterisk_line( ) { int j, n=40; for(j=1; j<=n; j++) printf("*"); printf("n"); }
  • 15. คําอธิ บายโปรแกรม จากโปรแกรม สามารถอธิบายการทํางานของโปรแกรมทีสําคัญ ๆ ได้ดงนี ั บรรทัดที 3 คําสัง void asterisk_line (void); แสดงว่าฟ ังก์ชนชือ ั asterisk_line( ) เป็ นฟ ังก์ชนทีไม่มทงการส่งค่าไป และรับค่ากลับ ั ี ั บรรทัดที 7 และ 9 เป็ นคําสังเรียกใช้ฟ ังก์ชน asterisk_line( ) ซึงฟ ังก์ชนอยู่ ั ั คําสังบรรทัดที 14 ถึง 19 บรรทัดที 14 ถึง 19 ฟ ังก์ชน asterisk_line( ) มีการทํางานโดยพิมพ์ * ั จํานวน 40 ตัวออกแสดงทีจอภาพ บรรทัดที 10 และ 11 พิมพ์ขอความให้กดคียใด ๆ เพือกลับสูโปรแกรม และหยุดรอรับ ้ ์ ่ ค่าใด ๆ เช่น กด enter จะกลับเข้าสูโปรแกรม ่
  • 16. 1.4 โปรแกรมย่อยแบบรับค่าพารามิ เตอร์ไปใช้อย่างเดียว โปรแกรมย่อยลักษณะนี มีจดประสงค์เพือแบ่งระบบงานเป็ นโปรแกรม ุ ย่อย และต้องการให้โปรแกรมย่อยมีประสิทธิภาพรับค่าข้อมูลจาก โปรแกรมหลักทีส่งไปให้ใช้ในการประมวลผลภายในโปรแกรมย่อยได้ ดังนัน การเรียกชือโปรแกรมย่อย ต้องตามด้วยค่าข้อมูลทีส่งไปให้ใช้ งานด้วย การกําหนดคุณสมบัตให้โปรแกรมย่อยทํางานในลักษณะรับ ิ ค่าพารามิเตอร์ไปใช้ เขียนรูปแบบดังนี รูปแบบ void function_name (type_parameter parameter_name [,..] ) ;
  • 17. กําหนดคุณสมบัติให้โปรแกรมย่อยทํางานในลักษณะรับค่าพารามิ เตอร์ไปใช้ #include <stdio.h> Void addition (int , int ) ; Void main () { Int a,b ; …….... Addition (a,b) ; } Void addition (int m , int n) { …............ }
  • 18. 1.5 โปรแกรมย่อยแบบรับและคืนค่าพารามิ เตอร์ มีจดประสงค์แบ่งโปรแกรมเป็ นโปรแกรมส่วนย่อย และให้โปรแกรมย่อยมีประสิทธิภาพ ุ รับค่าข้อมูลจากโปรแกรมหลัก ไปใช้ในการประมวลภายในโปรแกรมย่อย รวมทัง สามารถส่งค่าทีได้จากการประมวลผลกลับไปทีโปรแกรมหลัก โปรแกรมย่อยประเภทนี ประกาศลักษณะการทํางานด้วยรูปแบบดังนี รูปแบบ Type_variable function_name (parameter_name Type_variable ชือชนิดข้อมูลของตัวแปร ทีส่งกลับมาจากโปรแกรมย่อย function_name ชือโปรแกรม parameter_name ชือพารามิเตอร์ทรับค่ามาใช้งานในโปรแกรม หากมี ี มากกว่า 1 ใช้ , คัน
  • 20.  ตัวอย่างคําสัง กําหนดให้โปรแกรมย่อยรับค่าพารามิเตอร์จากโปรแกรมหลักไปใช้ และส่งค่า กลับมาให้ได้ #include<stdio.h> #include<conio.h> int calculate(int, int); void main(void) { ผลลัพธ์ทีได้จาก โปรแกรม int p=3, q=4, r; clrscr( ); r = calculate(p,q); printf("P = %d, Q = %d, R = %dn",p,q,r); printf("nPress any key back to program ..."); getch(); } /* end main() */ int calculate(int p, int q) { return (p+q); }
  • 21. คําอธิ บายโปรแกรม จากโปรแกรม สามารถอธิบายการทํางานของโปรแกรมทีสําคัญ ๆ ได้ดงนี ั บรรทัดที 3 คําสัง int calculate (int, int); การประกาศรูปแบบฟ ังก์ชนที ั มีการส่งค่า argument ไป 2 ตัว ชนิด int และ มีการส่งค่ากลับมายังฟ ังก์ชน ั เป็ นชนิด int เช่นกัน โดยฟ ังก์ชนชือ caculate( ) ั บรรทัดที 8 คําสัง r = caculate (p, q); เป็ นการเรียกใช้ฟ ังก์ชน ั caculate( ) และส่งค่า p และ q ส่งไปให้ฟ ังก์ชนด้วย ตามลําดับ ซึงฟ ังก์ชน ั ั caculate( ) อยูคาสังบรรทัดที 13 ถึง 16 ่ ํ บรรทัดที 13 ถึง 16 ฟ ังก์ชน caculate( ) โดยมีการทํางาน คือ นําค่าตัวแปร p ั และ q ทีได้มาบวกกัน แล้วส่งผลลัพธ์ทได้กลับไปให้ ณ จุดทีเรียกใช้ในฟ ังก์ชน ี ั main( ) นันคือ ไปเก็บไว้ทตัวแปร r ี บรรทัดที 9 แสดงค่าตัวแปร p, q และ r แสดงทีจอภาพ บรรทัดที 10 และ 11 พิมพ์ขอความให้กดคียใด ๆ เพือกลับสูโปรแกรม และหยุดรอ ้ ์ ่ รับค่าใด ๆ เช่น กด enter จะกลับเข้าสูโปรแกรม ่
  • 22. 1.6 ฟังก์ชนทีไม่มีการรับค่าพารามิ เตอรแต่มีการส่งคืนค่า ั มีการเรียกใช้ ดังนี variable_name = function_name(); โดย variable_name คือ ชือของตัวแปรทีจะมารับค่าของฟ ังก์ชนทีส่งคืนมา ั ฟ ังก์ชนประเภทนีต้องมีชนิดของฟ ังก์ชน แต่ไม่มพารามิเตอร และในโครงสร้างต้องมี ั ั ี คําสัง return (value) เพือส่งค่ากลับ  โครงสร้างของโปรแกรม
  • 24. 1.7 ประสิ ทธิ ภาพการทํางานของตัวแปร ตัวแปรทีประกาศการใช้งานในตําแหน่งของโครงสร้างตัวซีในตําแหน่งทีต่างกัน ย่อมมี ประสิทธิภาพการทํางานทีแตกต่างกันไปคือ ตัวแปรทีประกาศการใช้งานตัวนอกส่วนของ โปรแกรมใดๆ มีประสิทธิภาพการใช้งานต่างกันกับตัวแปรภายในโปรแกรมหลัก  ตัวแปรภายใน (Local Variable) คือ ตัวแปรทีถูกสร้างขึนภายในฟ ังก์ชน สามารถ ั เรียกใช้งานได้เฉพาะภายในฟ ังก์ชนทีสร้างขึน และจะถูกทําลายลงเมือเสร็จสินการทํางานของ ั ฟ ังก์ชนนันๆ ั  ตัวแปรภายนอก (Global Variable) คือ ตัวแปรทีถูกสร้างขึนภายนอกฟ ังก์ชน ั สามารถใช้งานได้ในทุกฟ ังก์ชน หรือทังโปรแกรม (ยกเว้นฟ ังก์ชนทีมีตวแปรภายในชือ ั ั ั เดียวกับตัวแปรภายนอก ซึงมีความเป็ นไปได้) และจะคงอยูตลอดการทํางานของโปรแกรม ่
  • 25.  โปรแกรมตัวอย่าง /* 7th Sample Program: Local vs Global Variable */ #include<stdio.h> int ans = 0; int inc_one(int); /* function prototype */ void main() { int a = 3; ans = inc_one(a); printf(“Answer is %dn”, ans); } /* function definition: return x+1 */ int inc_one(int x) { int ans; ans = x + 1; return ans; }
  • 26. สังเกตง่ายทีสุดคือตัวแปรภายนอก ans เพราะถูกประกาศเอาไว้ภายนอก ฟ ังก์ชน โดยสามารถเรียกใช้งานได้โดยฟ ังก์ชนหลัก (main) หรือฟ ังก์ชนใดๆ ั ั ั สังเกตได้วาฟ ังก์ชนหลัก ใช้ตวแปร ans โดยไม่มการประกาศตัวแปร ่ ั ั ี หากจะระบุวาตัวแปรใดเป็ นตัวแปรภายใน จะต้องพิจารณาทีละฟ ังก์ชน ในฟ ังก์ชน ่ ั ั หลักตัวแปร a คือ ตัวแปรภายใน เพราะถูกประกาศในฟ ังก์ชนหลัก ั ในฟ ังก์ชน inc_one มีตวแปร x และ ans เป็ นตัวแปรภายใน ข้อสังเกต ั ั เพิมเติมคือ ans ทีประกาศขึนในฟ ังก์ชนนีมีชอเหมือนกับ ans ทีเป็ นตัวแปร ั ื ภายนอกของทังโปรแกรม อย่างไรก็ตามหากลองย้อนกลับไปดูนิยามก็จะพบว่าสามารถ ทําได้ เพียงแต่วาในฟ ังก์ชน inc_one ได้ประกาศตัวแปร ans ขึนใหม่เป็ นตัวแปร ่ ั ภายใน ใช้งานในฟ ังก์ชน inc_one เท่านันโดยไม่เกียวกับตัวแปร ans ซึงเป็ นตัว ั แปรภายนอก หากฟ ังก์ชน inc_one ไม่ได้ประกาศตัวแปร ans ขึนใหม่ ก็จะมา ั สามารถเรียกใช้ตวแปร ans ซึงเป็ นตัวแปรภายนอกได้เช่นเดียวกับฟ ังก์ชนหลัก ั ั
  • 27.  ตัวอย่าง แสดงโกลบอลและโลคอล PROGRAM AA; VAR NUM:INTEGER; PROCEDURE A; ผลทีได้จาการ RUN BEGIN NUM:=NUM*10; NUM*10 = 50 WRITELN(‘NUM*10 = ‘,NUM); END; NUM = 124 VAR ANY:INTEGER; PROCEDURE B; CNTR = 122 VAR NUM,CNTR:INTEGER; BEGIN BACK TO MAIN NUM:=124; NUM = 50 WRITELN(‘NUM = ‘,NUM); CNTR:=122; WRITELN(‘CNTR =’,CNTR); END; BEGIN {MAIN PROGRAM} NUM:=5; WRITELN(‘IN MAIN’,’NUM = ‘,NUM); A; B; WRITELN(‘BACK TO MAIN NUM = ‘,NUM); END.
  • 28. อธิบาย - NUM ทีกําหนดในโปรแกรมหลักเป็ นโกบอล คือให้คาและ output ใน ่ โปรแกรมหลักและให้คาและ output ใน program ย่อย A ่ - NUM, cntr ทีกําหนดใน program ย่อย B เป็ นโลคอล B ซึงโปรแกรมหลัก หรือโปรแกรมย่อยอืน ๆ จะนําไปใช้ไม่ได้ แต่ชอ NUM ซํากับ NUM ใน ื โปรแกรมหลัก จึงถือว่าเป็ นคนละ NUM กัน ทีโปรแกรมหลัก NUM=5 แต่พอถึง A นํามาคูณ 10 ได้ 50 เมือถึง B ให้คาใหม่เป็ น 124 เมือกลับมาโปรแกรมหลักก็ ่ เป็ น 124 แต่ยงเป็ น 50 เพราะเป็ น NUM คนละตัวกัน ั - ก่อน procedure B ได้กําหนดตัวแปร ANY ซึงเป็ นโกบอล แต่ใช้ใน procedure A ไม่ได้ใช้ได้ใน procedure B และโปรแกรมหลัก - เพราะฉะนัน B เรียกใช้ A แต่ A เรียกใช้ B ไม่ได้ และทัง A,B เรียกใช้ AA ไม่ได้ เพราะเป็ นโปรแกรมหลัก
  • 29. 2. การใช้ ฟังก์ ชันมาตรฐานภาษาซี ฟ ังก์ชนมาตรฐาน เป็ นคําสังสําเร็จรูปทีภาษา C มีไว้ให้เรียกใช้งานได้เลย โดยจะ ั ถูกจัดเก็บไว้ในส่วนของไลบรารี โดยจะแบ่งตามกลุ่มงาน เช่น กลุ่มงานคํานวณ กลุ่ม อักขระ เป็ นต้น ผูเขียนโปรแกรมจําเป็ นต้องรูวามีฟ ังก์ชนใดบ้าง อยู่ในไลบรารีไหน ้ ้่ ั เพือให้เรียกใช้งานได้อย่างง่ายวิธการใช้งานเพียงแค่ระบุไลบรารีทต้องการใช้ในส่วน ี ี ของHeader ของโปรแกรม #include ให้ถูกต้อง
  • 30. #include<stdio.h> #include<math.h> void main() Square root 4 = Square root 4 = { 2.000000 2.000000 printf(“square root 4 =”); 5 power 3 = 5 power 3 = printf(“%fn”, sqrt(4)); 125.000000 125.000000 printf(“5 power 3 =”); printf(“%f”, pow(5,3)); } ฟ ังก์ชนมาตรฐาน ั เรียกใช้โดยการ include ไฟล์นามสกุล .h ทีเก็บฟ ังก์ชนนันไว้ เช่น ั ถ้าต้องการใช้ฟ ังก์ชน printf หรือ scanf จะต้อง include ไฟล์ชอ stdio.h มาก่อน ั ื ถ้าเราต้องการใช้ฟ ังก์ชนทางคณิตศาสตร์ เช่น sqrt หรือ pow ต้อง include ไฟล์ชอ ั ื math.h
  • 31. 2.1 ฟังก์ชนทีใช้กบงานคํานวณ ั ั ฟ ังก์ชนทางคณิตศาสตร์ เป็ นฟ ังก์ชนทีใช้ทางการคํานวณ ทางคณิตศาสตร์ ปกติอยูใน ั ั ่ math.h ผลลัพธ์ ทีได้จากฟ ังก์ชนกลุ่มนีเป็ นข้อมูลประเภท double ดังนันตัวแปร ั ทีใช้จงเป็ นพวกทีมีชนิดเป็ น double ึ ตัวอย่าง การใช้ฟ ังก์ชนทางคณิตศาสตร์ คือ sin(), cos() และ tan() ั ผลลัพธ์ของโปรแกรม
  • 32. ฟ ังก์ชนทางคณิตศาสตร์ เป็นฟ ังก์ชนทีใช้ทางการคํานวณ ทางคณิตศาสตร์ ปกติอยู่ใน math.h ั ั ผลลัพธ์ ทีได้จากฟ ังก์ชนกลุ่มนีเป็ นข้อมูลประเภท double ดังนันตัวแปรทีใช้จงเป็นพวกทีมี ั ึ ชนิดเป็น double ฟ ังก์ชน sin(x) เป็นฟ ังก์ชนใช้คานวณหาค่าของ sine โดย x มีค่าของมุมในหน่ วย เรเดียน ั ั ํ ฟ ังก์ชน cos(x) ใช้หาค่า cosine โดย x มีหน่ วยเป็ นเรเดียน(radian) ั ฟ ังก์ชน tan(x) ใช้หาค่า tangent โดย x มีหน่ วยเป็ นเรเดียน(radian) ั ฟ ังก์ชน sqrt(x) ใช้หาค่ารากทีสองของ x โดย x เป็นตัวเลขหรือตัวแปรทีไม่ตดลบ ั ิ ฟ ังก์ชน exp(x) ใช้หาค่า ex โดย e มีค่าประมาณ 2.718282 ั ฟ ังก์ชน pow(x,y) ใช้หาค่า x y ั ฟ ังก์ชน log(x) ใช้หาค่า log ฐาน e เรียกว่า natural logarithm โดย x เป็ นตัวเลข ั หรือตัวแปรทีไม่ติดลบ ฟ ังก์ชน log10(x) ใช้หาค่า log ฐาน 10 โดย x เป็นตัวเลขหรือตัวแปรทีไม่ติดลบ ั ฟ ังก์ชน ceil(x) ใช้ในการป ัดเศษทศนิยมของ x เมือ x เป็ นเลขทศนิยม ั ฟ ังก์ชน floor(x) ใช้ในการตัดเศษทศนิยมของ x ทิงเมือ x เป็ นเลขทศนิยม ั ฟ ังก์ชน fabs(x) ใช้ในการหาค่าสัมบูรณ์ของค่าคงทีหรือตัวแปรทีมีทศนิยม โดยเป็ นบวกหรือ ั ลบก็ได้
  • 34. 2.2 ฟังก์ชนทีใช้กบงานข้อความ ั ั (string.h)•เฮดเดอร์ไฟล์ชอstring.hจะบรรจุฟ ังก์ชนมาตรฐานทีเกียวข้องกับการทางาน ื ั กับข้อความไว้ ฟังก์ชน strcpy ั ประสิ ทธิ ภาพ : คัดลอดข้อความจากตัวแปร string 2 มาเก็บไว้ทตัวแปร string 1 ี < strcpy (สตริงปลายทาง, สตริงต้นทาง) ทําสําเนาข้อความ> รูปแบบ strcpy (string 1,string 2) ฟังก์ชน strcat ั ประสิ ทธิ ภาพ : เชือมต่อข้อความ โดยนําข้อความจากตัวแปร string 2 มาต่อท้าย ข้อความตัวแปร string 1 รูปแบบ strcat (string 1,string 2)
  • 35. ฟังก์ชน strcmp ั ประสิ ทธิ ภาพ : เปรียบเทียบความยาวของข้อความ ถ้าความยาว string 1 มากกว่าหรือเท่ากับstring 2 ได้ค่าเป็ น 1 (จริง) ถ้าความยาว string 1 สันกว่า string 2 ได้ค่าเป็ น 0 (เท็จ) รูปแบบ strcmp(string 1,string 2) ฟังก์ชน strlen ั ประสิ ทธิ ภาพ : หาความยาวของข้อความ รูปแบบ strlen (string) ฟังก์ชน strcmpi ั ประสิ ทธิ ภาพ : เปรียบเทียบข้อความ ถ้าความยาว string 1 เป็ นข้อความเดียวกับ string 2 ได้ค่าเป็ น 0 (เท็จ) ถ้าความยาว string 1 เป็นข้อความมีค่า < string 2 ได้ค่าเป็ น < 0 ถ้าความยาว string 1 เป็นข้อความมีค่า > string 2 ได้ค่าเป็ น > 0 รูปแบบ strcmpi (string 1,string 2)
  • 36. 2.3 ฟังก์ชนทีใช้กบงานกับอักขระ ั ั กลุ่มเรียกใช้งานในไลบรารีตองสัง #include <ctype.h> ้ ฟังก์ชน TOLOWER ฟ ังก์ชน LOWER ใช้ในการแปลงข้อความทีเป็ นตัวพิมพ์ใหญ่ ไม่วาจะเป็ นแค่บาง ั ั ่ ตัวอักษรหรือทังข้อความ ให้เป็ นตัวพิมพ์เล็กทังหมด หน้ าที แปลงข้อความให้เป็ นตัวพิ มพ์เล็ก รูปแบบ TOLOWER(text) text ข้อความทีต้องการแปลงเป็ นตัวพิมพ์เล็ก ซึงต้องเป็ นตัวอักษรเท่านัน ฟังก์ชน TOUPPER ฟ ังก์ชน UPPER จะตรงข้ามกับฟ ังก์ชน LOWER โดยฟ ังก์ชน ั ั ั ั TOUPPER จะแปลงข้อความทังหมดให้เป็ นตัวพิมพ์ใหญ่ หน้ าที แปลงข้อความให้เป็ นตัวพิ มพ์ใหญ่ รูปแบบ TOUPPER(text) text ข้อความทีต้องการแปลงเป็ นตัวพิมพ์ใหญ่ ซึงต้องเป็ นตัวอักษรเท่านัน
  • 37. ตัวอย่าง ฟ ังก์ชนกับงานอักขระ ั ผลลัพธ์ของโปรแกรม
  • 38. สรุปเนื อหา เทคนิคการเขียนโปรแกรมในรูปแบบแบ่งระบบงานเป็ นโปรแกรมย่อยนันช่วยให้เกิด ประโยชน์หลายด้าน เช่น โปรแกรมมีความเป็นระบบระเบียบมากขึน สามารถมุง ่ เป้ าหมายไปยังส่วนของระบบงานย่อยทีต้องการได้งายขึน รวมทังเอือต่อการทํางานแบบทีม ่ ได้ การวางตําแหน่งของโปรแกรมในตําแหน่ งย่อยในโครงสร้างภาษาซีทาได้ 2 รูปแบบคือ ํ วางโปรแกรมย่อยในตําแหน่งก่อนโปรแกรมหลักและวางโปรแกรมย่อยในตําแหน่ งหลัง โปรแกรมหลัก โปรแกรมย่อยมีประสิทธิภาพการทํางานให้เลือกใช้ 4 รูปแบบคือ 1.แบบไม่มการรับส่งค่าพารามิเตอร์ ี 2.แบบรับค่าพารามิเตอร์ไปใช้งานอย่างเดียว 3.แบบรับ-ส่งค่าพารามิเตอร์ 4.แบบไม่มการรับค่าพารามิเตอรแต่มการส่งคืนค่า ี ี
  • 39. การเขียนโปรแกรมย่อยแบบไม่มการรับส่งค่าพารามิเตอร์นิยมนําไปใช้งาน ี โปรแกรมประเภทมีเมนูให้เลือกกดหมายเลขการทํางานในส่วนย่อยของระบบงานนัน ส่วนการเขียนโปรแกรมย่อยในรูปแบบรับ – ส่งค่าพารามิเตอร์ระหว่างโปรแกรมหลัก กับโปรแกรมย่อย นิยมนําไปใช้งานคํานวณและภาษาซี ผูใชงานสามารถสร้าง ้ ฟ ังก์ชนขึนมาใช้งานได้เอง แต่หากต้องการใช้ฟ ังก์ชนสําเร็จรูปทีมีอยูแล้วในภาษาซีให้ ั ั ่ ศึกษาเรืองฟ ังก์ชน มาตราฐาน ั ฟ ังก์ชนมาตรฐานเป็ นโปรแกรมย่อยชนิดหนึงทีผูพฒนาภาษาซีสร้างไว้ให้ผเขียน ั ้ ั ู้ งานภาษาซีนําไปใช้ควบคุมการทํางาน เช่น ฟ ังก์ชนควบคุมการแสดงผล คือ ั ฟ ังก์ชน printf เป็ นต้น ฟ ังก์ชนเหล่านีถูกจัดเก็บในส่วนทีเรียกว่า ไลบรารี ั ั ดังนันผูเขียนงานโปรแกรมภาษาซีตองศึกษาว่าฟ ังก์ชนทีต้องการใช้งานนัน จัดเก็บใน ้ ้ ั ไลบรารี ใด แล้วจึงเรียกการใช้งานด้วย #include ชือ ไลบรารี ให้ถูกต้อง
  • 40. แบบฝึ กหัด 1.กําหนด char s3[5] = {‘G’, ‘O’, ‘O’, ‘D’, ‘0’}; ดังนัน s3 เป็ นตัวแปรประเภทใด ก) ตัวอักขระ ข) ข้อความ ค) ถูกทังข้อ ก. และข้อ ข. ง) ไม่มคาตอบทีถูกต้อง ี ํ 2. ข้อใด หมายถึงฟ ังก์ชนในภาษาซี ั ก) ฟ ังก์ชนมาตรฐาน ั ข) ฟ ังก์ชนทีสร้างขึนเอง ั ค) ถูกทังข้อ ก. และข้อ ข. ง) ไม่มคาตอบทีถูกต้อง ี ํ 3.ข้อใดถูกต้องในการเขียนรูปแบบโครงสร้างของฟ ังก์ชนทีมีการส่งค่าไปและไม่มการส่งค่ากลับ ั ี ก) int function_name(type arg, …) ข) void function_name(type arg, …) ค) function_name(type arg, ….) ง) void function_name()
  • 41. 4.ข้อใด ไม่ใช่ ข้อมูลในภาษาซี ก) เลขจํานวนเต็ม ข) ตัวอักขระ ค) ข้อความ ง) รูปภาพ 5.ฟ ังก์ชนทีสร้างขึนเองในภาษาซี ต้องเขียนอยู่ ภายในเครืองหมายอะไร ั ก) () ข) ค) {} [] ง) ถูกทุกข้อ 6.กําหนด char s1[9] = “LANGUAGE”; ดังนัน s1 เป็นตัวแปรประเภทใด ก) ตัวอักขระ ข) ข้อความ ค) ถูกทังข้อ ก. และข้อ ข. ง) ไม่มคําตอบทีถูกต้อง ี
  • 42. 7.กําหนด char s2[4] = {‘G’, ‘O’, ‘O’, ‘D’}; ดังนัน s2 เป็ นตัวแปรประเภทใด ก) ตัวอักขระ ข) ข้อความ ค) ถูกทังข้อ ก. และข้อ ข. ง) ไม่มคําตอบทีถูกต้อง ี 8.ข้อใดเขียนรูปแบบการเรียกใช้ฟ ังก์ชนได้ ถูกต้อง ั ก) function_name(); ข) function_name() ค) function_name(arg1,arg2) ง) Function_name(arg1; arg2); 9.ข้อใดถูกต้องในการเขียนรูปแบบโครงสร้างของฟ ังก์ชนทีมีการส่งค่าไปและไม่มการส่งค่ากลับ ั ี ก) int function_name(type arg, …) ข) void function_name(type arg, …) ค) function_name(type arg, ….) ง) void function_name()
  • 43. 10.ฟ ังก์ชนทีใช้กบงานข้อความหาความยาวของข้อความคือฟ ังก์ชนอะไรและมีรปแบบ ั ั ั ู อย่างไร ก) ฟ ังก์ชน ั strcmp รูปแบบ strcmp(string 1,string 2) ข) ฟ ังก์ชน ั strcat รูปแบบ strcat (string 1,string 2) ค) ฟ ังก์ชน ั strcpy รูปแบบ strcpy (string 1,string 2) ง) ฟ ังก์ชน ั strlen รูปแบบ strlen (string)
  • 44. เฉลย 1. ก 2. ค 3. ข 4. ง 5. ข 6. ข 7. ก 8. ก 9. ข 10. ง
  • 45. รายชือสมาชิก 1. น.ส.กฤตวรรณ แต้มประเสริฐ เลขที 13 2. น.ส.ณัฐชยา พลูสวัสดิ เลขที 14 3. น.ส.นพวรรณ ปลาบู่ทอง เลขที 19 4. น.ส.กาญจนาพร พงศ์อมพรทิพย์ ั เลขที 21 5. น.ส.นภัสกร นาควิโรจน์ เลขที 22 6. น.ส. ลลิตา บันลือศรีสกุล เลขที 23 ชันมัธยมศึกษาปี ที 6/1