ยินดีต้อนรับเพื่อนๆ เอกคอมพิวเตอร์ศึกษา และผู้ที่เวะเข้ามาชมทุกคนคับ ที่เข้ามาเยี่ยมชมเว็บบร็อกของผม ยินดีต้อนรับเข้าสู้เว็บไซต์http://teenemerux.blogspot.com

วันจันทร์ที่ 13 กุมภาพันธ์ พ.ศ. 2555

ฟังก์ชันแสดงผลข้อมูล (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
\a Bell
007
\b Backspace
008
\t Horizontal tab
009
\n Newline (line feed)
010
\v Vertical tab
011
\f From feed
012
\r Carriage return
013
\” Quotation mark (“)
034
\’ Apostrophe (‘)
039
\? Question mark (?)
063
\\ Backslash (\)
092
\0 Null (ศูนย์)
000
\ooo Octal number (o)
-
\xhh Hexadecimal 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 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังต่อไปนี้


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

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

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

มุมแซตมันๆ คับผม