วันพุธที่ 17 กันยายน พ.ศ. 2557

06:33

3.2 ฟังก์ชันแสดงผลข้อมูล  (output  functions)

            ในเนื้อหาฟังก์ชันการแสดงผลข้อมูลของภาษา  C  มีฟังก์ชันที่ใช้ในการแสดงผลลัพธ์ออกทางจอภาพอยู่หลายฟังก์ชันที่จะกล่าวถึง  ดังนี้คือ ฟังก์ชัน  printf( ), ฟังก์ชัน  putchar( ) และฟังก์ชัน  puts( )  ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้
            3.2.1 ฟังก์ชัน  printf( )
            เป็นฟังก์ชันที่ใช้ในการแสดงผลลัพธ์ออกทางจอภาพ  โดยสามารถกำหนดรหัสรูปแบบข้อมูล  (format  code)  และรหัสควบคุม  (control  code)  ให้เหมาะสมกับข้อมูลและรูปแบบผลลัพธ์ที่ต้องการ  (ดังแสดงในตารางที่  3.2  และ  3.3)
           รูปแบบการใช้งานฟังก์ชัน    
          
printf(control  string,  argument  list);
            โดยที่

control string  คือ  รหัสรูปแบบข้อมูลที่ใช้ในการพิมพ์ผลลัพธ์ใช้รหัสเหมือนฟังก์ชัน  scanf( )  และในฟังก์ชัน  printf( )  นี้ยังสามารถใช้รหัสควบคุมเพื่อช่วยจัดรูปแบบการพิมพ์ผลลัพธ์ให้สวยงามขึ้น  โดยที่  control  string  จะต้องเขียนอยู่ภายใต้เครื่องหมาย  “………” (double  quotation)   เช่นเดียวกับฟังก์ชัน  scanf( )
argument list คือ  ค่าคงที่  หรือตัวแปร  หรือนิพจน์  ในกรณีที่มีค่าคงที่  ตัวแปร  หรือนิพจน์หลาย ๆ ค่าให้ใช้เครื่องหมาย  , (comma) คั่นระหว่างค่าคงที่  ตัวแปร หรือนิพจน์แต่ละค่า 
ตารางที่  3.2  แสดงรหัสรูปแบบข้อมูลที่สามารถใช้ในฟังก์ชัน  printf( )
รหัสรูปแบบ 
(format  code)
ความหมาย
%c
  ใช้กับข้อมูลชนิดตัวอักขระตัวเดียว  (single  character :  char)
%d
  ใช้กับข้อมูลชนิดตัวเลขจำนวนเต็ม (integer : int)  โดยสามารถใช้กับตัวเลขฐาน  10  เท่านั้น
%e
  ใช้กับข้อมูลชนิดตัวเลขจุดทศนิยม  (floating  point : float)
%f, %lf
ใช้กับข้อมูลชนิด  float  และ  double  ตามลำดับ
%g
ใช้กับข้อมูลชนิด  float
%h
ใช้กับข้อมูลชนิด  short  integer
%l
ใช้กับข้อมูลชนิด  int  โดยใช้กับตัวเลขฐาน 8, ฐาน 10 และฐาน 16
%o
ใช้กับข้อมูลชนิด  int  โดยสามารถใช้กับตัวเลขฐาน  8  เท่านั้น
%u
ใช้กับข้อมูลชนิด  unsigned  int  โดยใช้กับตัวเลขฐาน  10  เท่านั้น
%x
ใช้กับข้อมูลชนิด  int  โดยสามารถใช้กับตัวเลขฐาน  16  เท่านั้น
%s
ใช้แสดงข้อมูลชนิด  string
%p
ใช้แสดงค่า  address  ของตัวแปรพอย์นเตอร์
ที่มา  :  Gottfried, S. Byron, 1990 : 481.

ตารางที่  3.3  แสดงรหัสควบคุมข้อมูลที่สามารถใช้ในฟังก์ชัน  printf( )
รหัสควบคุม
(control  code)
ความหมาย
ค่า  ASCII
\aBell
007
\bBackspace
008
\tHorizontal  tab
009
\nNewline  (line  feed)
010
\vVertical  tab
011
\fFrom  feed
012
\rCarriage  return
013
\”Quotation  mark (“)
034
\’Apostrophe (‘)
039
\?Question  mark (?)
063
\\Backslash (\)
092
\0Null (ศูนย์)
000
\oooOctal  number (o)
-
\xhhHexadecimal  number  (h)
-
ที่มา  :  Gottfried, S. Byron, 1990 : 474.
            เพื่อให้เกิดความเข้าใจการใช้งานฟังก์ชัน  printf( )  ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างที่  3.8, 3.9  และ  3.10  ดังต่อไปนี้
โปรแกรมตัวอย่างที่  3.8  แสดงโปรแกรมการใช้ฟังก์ชัน  printf( )  พิมพ์ข้อความออกแสดงที่จอภาพ

/*          printf1.c             */
#include<stdio.h>                                                                           /*  บรรทัดที่  1  */
#include<conio.h>                                                                          /*  บรรทัดที่  2  */
void main(void)                                                                                 /*  บรรทัดที่  3  */
{                                                                                                         /*  บรรทัดที่  4  */
      clrscr( );                                                                                 /*  บรรทัดที่  5  */
      printf("Welcome to Thailand !!!");                                     /*  บรรทัดที่  6  */
      getch( );                                                                                 /*  บรรทัดที่  7  */
}                                                                                                         /*  บรรทัดที่  8  */

ผลลัพธ์ที่ได้จากโปรแกรม
แผนผังลำดับงาน: จอภาพ: Welcome to Thailand !!! 
คำอธิบายโปรแกรม 
            จากโปรแกรมตัวอย่างที่  3.8  สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้

บรรทัดที่  6  คำสั่ง  printf(“Welcome to Thailand !!!”);  เป็นคำสั่งที่นำข้อความ  Welcome to Thailand !!!  แสดงที่จอภาพ  และหยุดรอรับค่าใด ๆ  จากคีย์บอร์ด  ซึ่งถ้าเรากด  enter  ก็จะกลับสู่โปรแกรม
โปรแกรมตัวอย่างที่  3.9  แสดงโปรแกรมการใช้ฟังก์ชัน  printf( )  ควบคู่กับ  รหัสรูปแบบ  %c  และ  %s  เพื่อแสดงข้อมูลที่จอภาพ

/*          printf2.c             */
#include<stdio.h>                                                                           /*  บรรทัดที่  1  */
#include<conio.h>                                                                          /*  บรรทัดที่  2  */
void main(void)                                                                                 /*  บรรทัดที่  3  */
{                                                                                                         /*  บรรทัดที่  4  */
      char ch='A';                                                                         /*  บรรทัดที่  5  */
      char str[]="Computer";                                                      /*  บรรทัดที่  6  */
      clrscr( );                                                                                /*  บรรทัดที่  7  */
      printf("%5c \t\tCHARACTER %s", ch, str);                       /*  บรรทัดที่  8  */
      getch( );                                                                         /*  บรรทัดที่  9  */              
}                                                                                           /*  บรรทัดที่  10 */

ผลลัพธ์ที่ได้จากโปรแกรม

แผนผังลำดับงาน: จอภาพ:      A        CHARACTER Computer
คำอธิบายโปรแกรม 
            จากโปรแกรมตัวอย่างที่  3.9  สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้

บรรทัดที่  5  ประกาศตัวแปรชนิดอักขระ  ชื่อ  ch  ให้เก็บตัวอักษร  A
บรรทัดที่  6  ประกาศตัวแปรชุดชนิดอักขระ  ชื่อ  str  ให้เก็บข้อความ  Computer
บรรทัดที่  8  ให้นำค่าของตัวแปร  ch  มาแสดงตรงตำแหน่ง  %c  ก่อนแสดงให้เว้นช่องว่าง  5  ช่อง  และพบ  \t \t  คือให้เว้น  tab  ไป  2  ครั้ง  (tab  1  ครั้ง  มี  8  ช่องว่าง)  แล้วค่อยพิมพ์ข้อความ  CHARACTER  และนำข้อความที่เก็บในตัวแปร  str  มาแสดงตรงตำแหน่ง  %s  แล้วหยุดรอรับค่าใด ๆ  จากคีย์บอร์ด  ซึ่งถ้าเรากด  enter  ก็จะกลับสู่โปรแกรม 
โปรแกรมตัวอย่างที่  3.10  แสดงโปรแกรมการใช้ฟังก์ชัน  printf( )  ควบคู่กับ  รหัสรูปแบบ  %d, %c, %s  และ  %f  เพื่อแสดงข้อมูลที่จอภาพ

/*          printf3.c             */
   #include<stdio.h>                                                                           /*  บรรทัดที่  1  */
#include<conio.h>                                                                          /*  บรรทัดที่  2  */
void main(void)                                                                                 /*  บรรทัดที่  3  */
{                                                                                                         /*  บรรทัดที่  4  */
      int a=5, b=2;                                                                        /*  บรรทัดที่  5  */
      char c='D', d='F';                                                               /*  บรรทัดที่  6  */
      char e[20]="Thailand";                                                    /*  บรรทัดที่  7  */
      float f = 9.5 , g;                                                                    /*  บรรทัดที่  8  */
      clrscr( );                                                                                /*  บรรทัดที่  9  */
      b+=a;   d+=5;    g = f + 2.5;                                              /*  บรรทัดที่  10 */
      printf("%5d \t%-5d\n",a, b);                                               /*  บรรทัดที่  11 */
      printf("%3c \t%-3c\n",c--, ++d);                                        /*  บรรทัดที่  12 */
      printf("%s\n",e);                                                                    /*  บรรทัดที่  13 */
      printf("%.3f \t%-.3f\n", f+2, g);                                            /*  บรรทัดที่  14 */
      getch( );                                                                                /*  บรรทัดที่  15 */
}                                                                                                         /*  บรรทัดที่  16 */

ผลลัพธ์ที่ได้จากโปรแกรม
แผนผังลำดับงาน: จอภาพ: 5 7  D             L  Thailand  11.500     12.000
คำอธิบายโปรแกรม 
            จากโปรแกรมตัวอย่างที่ 3.10 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้

บรรทัดที่  10  คำสั่ง  b+ = a  คือ  b = b + a  เพราะฉนั้น  b = 2 + 5 = 7
คำสั่ง  d+ = 5  คือ  d = d + 5  เพราะฉนั้น  d = ‘K’
คำสั่ง  g = f + 2.5  คือ  g = 9.5 + 2.5 = 12.0
บรรทัดที่  11  ใช้ฟังก์ชัน  printf( )  พิมพ์ข้อมูลชนิด  int  ของตัวแปร  a  และ  b  โดยใช้รัสควบคุม  เป็น  %d  สำหรับตัวเลข  5  เป็นการบอกให้เว้นช่องว่าง  5  ช่องก่อนแล้วค่อยนำค่าตัวแปร  a  มาแสดง  ส่วนเครื่องหมาย – หน้าตัวเลขเป็นการบอกให้พิมพ์ตัวเลขชิดซ้าย  สำหรับรูปแบบการแสดงตัวแปร  b
บรรทัดที่  12  ใช้ฟังก์ชัน  printf( )  พิมพ์ข้อมูลชนิด  char  โดยใช้รหัสควบคุม  %c  ของตัวแปร  c  ก่อนแล้วค่อยลดค่าตัวแปรลง  1  และ  ++d  คือ  เพิ่มค่าตัวแปร  d  ขึ้น  1  ค่าก่อนแล้วค่อยแสดงผลออกจอภาพ
บรรทัดที่  13  ใช้ฟังก์ชัน  printf( )  พิมพ์ข้อมูลชนิด  string  โดยใช้รหัสควบคุม  %s  ของตัวแปร  e  ออกจอภาพ
บรรทัดที่  14  ใช้ฟังก์ชัน  printf( )  พิมพ์ข้อมูลชนิด  float  โดยใช้รหัสควบคุม  %f  ของตัวแปร  f + 2  คือ  11.500  (%3f  คือ  ทศนิยม  3  ตำแหน่ง)  และแสดงค่าตัวแปร  g  ออกจอภาพ  แล้วหยุดรอรับค่าใด ๆ  จากคีย์บอร์ด  ซึ่งถ้าเรากด  enter  ก็จะกลับสู่โปรแกรม
3.2.2 ฟังก์ชัน  putchar( )
            เป็นฟังก์ชันที่ใช้ในการแสดงผลลัพธ์ออกจอภาพทีละ  1  ตัวอักขระ  โดยลักษณะของฟังก์ชันนี้เป็นฟังก์ชันที่ต้องการ  argument  1  ค่าที่เป็นข้อมูลชนิด  single  character  (char)
รูปแบบการใช้งานฟังก์ชัน
putchar(char_argument);
            โดยที่

putchar( )  คือ  ฟังก์ชันที่ใช้แสดงผลลัพธ์ทีละ  1  ตัวอักขระออกทางจอภาพ
char_argument  คือ  ตัวแปรชนิด  single  character  (char)
            เพื่อให้เกิดความเข้าใจการใช้งานฟังก์ชัน  putchar( )  ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างที่  3.11  และ  3.12  ดังต่อไปนี้
โปรแกรมตัวอย่างที่  3.11  แสดงโปรแกรมการใช้ฟังก์ชัน  putchar( )  เพื่อแสดงข้อมูลออกจอภาพ

/*          putchar1.c          */
#include<stdio.h>                                                                           /*  บรรทัดที่  1  */
#include<conio.h>                                                                          /*  บรรทัดที่  2  */
void main(void)                                                                                 /*  บรรทัดที่  3  */
{                                                                                                         /*  บรรทัดที่  4  */
      char p;                                                                                   /*  บรรทัดที่  5  */
      clrscr( );                                                                                 /*  บรรทัดที่  6  */
      printf("Enter a single character :");                                   /*  บรรทัดที่  7  */
      p=getche( );                                                                         /*  บรรทัดที่  8  */
      printf("\nYour character is ...%c");                                    /*  บรรทัดที่  9  */
      putchar(p);                                                                           /*  บรรทัดที่  10 */
      getch( );                                                                                 /*  บรรทัดที่  11 */
}                                                                                                         /*  บรรทัดที่  12 */
ผลลัพธ์ที่ได้จากโปรแกรม

แผนผังลำดับงาน: จอภาพ: Enter a single character : t  Your character is …<<t

คำอธิบายโปรแกรม 
            จากโปรแกรมตัวอย่างที่ 3.11 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้

บรรทัดที่  8  ใช้ฟังก์ชัน  getche( )  โดยนำค่าที่รับจากคีย์บอร์ดไปเก็บไว้ในตัวแปร  p
บรรทัดที่  10  ใช้ฟังก์ชัน  putchar( )  โดยนำค่าที่เก็บไว้ในตัวแปร  p  ออกแสดงผลที่จอภาพตรงตำแหน่ง  %c  ในฟังก์ชัน  printf( )  ของบรรทัดที่  9  แล้วหยุดรอรับค่าใด ๆ  จากคีย์บอร์ด  ซึ่งถ้าเรากด  enter  ก็จะกลับสู่โปรแกรม
โปรแกรมตัวอย่างที่  3.12  แสดงโปรแกรมการใช้ฟังก์ชัน  putchar( )  เพื่อแสดงข้อมูลออกจอภาพ  และแทรกด้วยการใช้ฟังก์ชัน  printf( )  ก่อนนำข้อมูลออกแสดงผล

/*          putchar2.c          */
#include<stdio.h>                                                                           /*  บรรทัดที่  1  */
#include<conio.h>                                                                          /*  บรรทัดที่  2  */
void main(void)                                                                                 /*  บรรทัดที่  3  */
{                                                                                                         /*  บรรทัดที่  4  */
      char p;                                                                                   /*  บรรทัดที่  5  */
      clrscr( );                                                                                 /*  บรรทัดที่  6  */
      printf("Enter a single character : ");                                  /*  บรรทัดที่  7  */
      p=getche( );                                                                         /*  บรรทัดที่  8  */
      printf("\nThank you !!!");                                                      /*  บรรทัดที่  9  */
      printf("\nYour character is ...%c");                                    /*  บรรทัดที่  10 */
      putchar(p);                                                                           /*  บรรทัดที่  11 */
      getch( );                                                                                 /*  บรรทัดที่  12 */
}                                                                                                         /*  บรรทัดที่  13 */

ผลลัพธ์ที่ได้จากโปรแกรม

แผนผังลำดับงาน: จอภาพ: Enter a single character : r  Thank you !!!  Your character is …>>r
คำอธิบายโปรแกรม 
            โปรแกรมตัวอย่างที่  3.12  จะทำงานคล้ายกับโปรแกรมตัวอย่างที่  3.11  โดยการเก็บค่าที่รับจากคีย์บอร์ดไว้ในตัวแปร  แล้วนำค่าที่เก็บไว้ในตัวแปรออกแสดงผลด้วยฟังก์ชัน  putchar( )  ซึ่งก่อนจะแสดงผลมีการใช้ฟังก์ชัน  printf( )  พิมพ์ข้อความ  Thank you !!!  ออกมาแทรกก่อน  1  บรรทัด  แล้วหยุดรอรับค่าใด ๆ  จากคีย์บอร์ด  ซึ่งถ้าเรากด  enter  ก็จะกลับสู่โปรแกรม
3.2.3 ฟังก์ชัน  puts( )
            เป็นฟังก์ชันที่พิมพ์ข้อความออกแสดงทางจอภาพ  โดยลักษณะของฟังก์ชันนี้เป็นฟังก์ชันที่ต้องการ  argument  1  ค่าที่เป็นชนิดข้อความ  (string constant)
รูปแบบการใช้งานฟังก์ชัน
puts(string_argument);
            โดยที่

puts( )  คือ  ฟังก์ชันที่ใช้พิมพ์ข้อความออกทางจอภาพ
string_argument  คือ  ค่าคงที่ชนิดสตริง  (string  constant)  ซึ่งค่าคงที่สตริงนี้จะถูกพิมพ์ออกแสดงทางจอภาพผ่านฟังก์ชัน  puts( )
            เพื่อให้เกิดความเข้าใจการใช้งานฟังก์ชัน  puts( )  ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างที่  3.13  ดังต่อไปนี้
โปรแกรมตัวอย่างที่  3.13  แสดงโปรแกรมการใช้ฟังก์ชัน  puts( )

/*          puts1.c              /
 #include<stdio.h>                                                                           /*  บรรทัดที่  1  */
#include<conio.h>                                                                          /*  บรรทัดที่  2  */
void main(void)                                                                                 /*  บรรทัดที่  3  */
{                                                                                                         /*  บรรทัดที่  4  */
      clrscr( );                                                                                 /*  บรรทัดที่  5  */
      printf("Computer  Programming Language 1");           /*  บรรทัดที่  6  */
      puts(" is your course." );                                                      /*  บรรทัดที่  7  */
      getch( );                                                                                 /*  บรรทัดที่  8  */
}                                                                                                         /*  บรรทัดที่  9  */
ผลลัพธ์ที่ได้จากโปรแกรม

แผนผังลำดับงาน: จอภาพ: Computer Programming Language 1 is your course.
คำอธิบายโปรแกรม 
            จากโปรแกรมตัวอย่างที่ 3.13 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้

บรรทัดที่   ใช้ฟังก์ชัน  printf( )  พิมพ์ข้อความออกจอภาพ  คือ Computer  Programming Language 1  แสดงที่จอภาพ
บรรทัดที่  7  ใช้ฟังก์ชัน  puts( )  พิมพ์ข้อความ  is your course. ต่อท้ายของฟังก์ชัน  printf( )  ในบรรทัดที่  6  จะได้   Computer  Programming Language 1  is your course.  แล้วหยุดรอรับค่าใด ๆ  จากคีย์บอร์ด  ซึ่งถ้าเรากด  enter  ก็จะกลับสู่โปรแกรม

0 ความคิดเห็น:

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