You are on page 1of 20

~1~

หน่วยการเรียนรู้ที่ 3
การจัดรูปแบบในการรับและแสดงผลข้อมูล

ในการประมวลผลข้อมูลด้วยคอมพิวเตอร์นั้นจําเป็นที่จะต้องมีการรับข้อมูลเข้าจากผู้ใช้ ซึ่งมักจะ
รับจากแป้นพิมพ์ เมื่อคอมพิวเตอร์ได้รับข้อมูลแล้วจะนํามาเก็บในตัวแปร (variable) หลังจากนั้นจะทํา
การประมวลผลข้อมูลที่เก็บอยู่ในตัวแปรและแสดงผลให้ผู้ใช้ทราบผ่านทางจอภาพ ดังนั้นคําสั่งที่เกี่ยวข้อง
กับการรับและแสดงผลข้อมูลจึงมีความจําเป็นอย่างยิ่งในการเขียนโปรแกรมทุกภาษา
สํ า หรั บ ภาษาซี นั้ น ได้ มี ก ารเตรี ย มฟั ง ก์ ชั น มาตรฐานที่ เ กี่ ย วข้ อ งกั บ การรั บ และแสดงผลไว้ ใ น
header file ที่ชื่อว่า stdio.h ดังนั้นผู้เขียนโปรแกรมสามารถเรียกใช้ฟังก์ชันเหล่านี้ได้โดยที่จะต้อง
ประกาศให้ตัวแปลโปรแกรม (compiler) ได้ทราบถึงแหล่งที่มาของฟังก์ชันเหล่านี้ โดยการใช้ข้อความสั่ง
#include <stdio.h> ที่ส่วนต้นของโปรแกรม

3.1 ฟังก์ชันรับข้อมูล
3.1.1 ฟังก์ชัน scanf()
ใช้ในการรับข้อมูลจากแป้นพิมพ์ ซึ่งมีรูปแบบดังนี้
scanf("%รูปแบบ", &ตัวแปร);
รูปแบบ หมายถึง รูปแบบการรับข้อมูล เช่น %d ใช้กับการรับข้อมูลจํานวนเต็ม %f ใช้กับ
การรับข้อมูลจํานวนจริง
ในการรับข้อมูลสามารถรับข้อมูลได้ครั้งละหลายตัวแปรได้โดยจะต้องมีการระบุรูปแบบกํากับ
ให้กับตัวแปรทุกตัว เช่น scanf("%d%d", &x, &y); หมายถึง การรับข้อมูลชนิดจํานวนเต็มมาเก็บไว้ใน
ตัวแปร x และตัวแปร y ที่ตําแหน่งของตัวแปรดังกล่าวในหน่วยความจํา ตามลําดับ โดยที่ตัวแปรทั้งสอง
ได้มีการประกาศไว้ที่ส่วนต้นของโปรแกรมหลักแล้ว โดยจะต้องใช้เครื่องหมาย & นําหน้าตัวแปรทุกครั้ง
สําหรับฟังก์ชัน scanf()
เนื่องจากตัวแปรมีหลายชนิด ดังนั้นจะขอแสดงรูปแบบการรับข้อมูลเข้าตามชนิดของตัวแปรดังนี้
ชนิดข้อมูล ชนิดตัวแปร รูปแบบสําหรับ scanf()
short %hd หรือ %hi
Integer %d หรือ %i
long %ld หรือ %li
จํานวนเต็ม
unsigned short %hu
unsigned int %u
unsigned long %lu

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~2~

ชนิดข้อมูล ชนิดตัวแปร รูปแบบสําหรับ scanf()


float %f
จํานวนจริง double %lf
long double %Lf
อักขระ char %c
สายอักขระ char s[] %s

ตารางที่ 3.1 รูปแบบของตัวแปรแบบต่าง ๆ สําหรับฟังก์ชัน scanf()

int speed; สร้างตัวแปรชนิด int สําหรับเก็บค่าตัวเลขจํานวนเต็ม


printf("Enter wind speef : "); แสดงข้อความให้กรอกค่าความเร็วลมเป็นจํานวนเต็ม
scanf("%d",&speed); รับค่าความเร็วลมเข้ามาเก็บไว้ในตัวแปร speed

char answer; สร้างตัวแปรชนิด char สําหรับเก็บอักขระ


printf("Enter Figure (Y : N) : ") แสดงข้อความให้ป้อนอักขระ Y หรือ N
scanf("%c",&answer ); รับอักขระเข้ามาเก็บไว้ในตัวแปร answer

char name[10]; สร้างตัวแปรสตริงสําหรับเก็บข้อความ


printf("Enter your name = "); แสดงข้อความให้ป้อนชื่อ
scanf("%s",name ); รั บ ชื่ อ เข้ า มาเก็ บ ไว้ ใ นตั ว แปร name สั ง เกตจะไม่ ใ ส่
เครื่องหมาย & ตัวแปรชนิดข้อความ

ตัวอย่างที่ 3.1
การรับข้อมูลชนิดอักขระและสายอักขระ
#include <stdio.h>
#include <conio.h>
main()
{
char a;
char b[10];
printf ("enter your string : ");
scanf ("%c%s", &a, b);

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~3~

getch();
}
ผลการกระทําการที่เกิดขึ้นบนจอภาพคือ ข้อมูลป้อนจากผู้ใช้
enter your string : chaiyaphum

จากตัวอย่างข้างต้นจะเห็นว่าการรับข้อมูลโดยฟังก์ชัน scanf() สําหรับตัวแปรชนิดอักขระ (a)


และตัว แปรชนิ ดสายอั กขระ (b) มีความแตกต่างกั นที่ตัวแปรชนิด สายอักขระไม่ ต้องมีเ ครื่องหมาย &
หน้าตัวแปร เมื่อโปรแกรมรับข้อมูลจากแป้นพิมพ์แล้ว จะส่งผลให้ตัวแปร a มีค่า c เก็บอยู่ และตัว
แปร b[] มีค่าเป็น "haiyaphum"

ตัวอย่างที่ 3.2
การรับข้อมูลชนิดจํานวนเต็ม
#include <stdio.h>
#include <conio.h>
main()
{
int y;
printf ("enter an integer : ");
scanf ("%d", &y);
getch();
}
ผลการกระทําการที่เกิดขึ้นบนจอภาพคือ ข้อมูลป้อนจากผู้ใช้
enter an integer : 123

แหล่งอ้างอิง:
การเขียนโปรแกรมคอมพิวเตอร์ภาษาซี , มูลนิธิส่งเสริมโอลิมปิกวิชาการและพัฒนามาตรฐานวิทยาศาสตร์
ศึกษา ในพระอุปถัมภ์สมเด็จพระเจ้าพี่นางเธอ เจ้าฟ้ากัลยาณิวัฒนา กรมหลวงนราธิวาสราชนครินทร์,
2547.

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~4~

ตัวอย่างที่ 3.3
โปรแกรมคํานวณหาพื้นที่สี่เหลี่ยม
กําหนดตัวแปร x แทนค่าความสูง (Length) และตัวแปร y แทนค่าความกว้าง (Width)
#include <stdio.h>
#include <conio.h>
main()
{
int x,y,sum;
printf("Enter The Length is : ");
scanf ("%d",&x);
printf("Enter The Width is : ");
scanf ("%d",&y);
sum = x*y;
printf("The area is :%d",sum);
getch();
}

ผลการกระทําการที่เกิดขึ้นบนจอภาพคือ ข้อมูลป้อนจากผู้ใช้
Enter The Length is : 10
Enter The Width is : 20 ข้อมูลป้อนจากผู้ใช้
The area is : 200

ตัวอย่างที่ 3.4
โปรแกรมรับและพิมพ์อายุ
กําหนด ตัวแปร age แทน อายุ
//Program GetAge.c
#include <stdio.h>
#include <conio.h>
main()
{
int age; // ประกาศตัวแปร age แทนค่าอายุ เป็นชนิด จํานวนเต็ม
printf("How old are you? : "); // แสดงข้อความ How old are you? :

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~5~

scanf("%d",&age); // รับค่าจํานวนเต็ม เก็บไว้ในตัวแปร age


printf("\nYou are %d years old.", age); /* ขึ้นบรรทัดใหม่ และแสดงข้อความ You
are ค่าของตัวแปร age years old */
printf("\n\nPress any key to continue . . . ");
getch();
}

ผลลัพธ์โปรแกรม ข้อมูลป้อนจากผู้ใช้
How old are you? : 25
You are 25 years old

Press any key to continue . . .

3.1.2 ฟังก์ชัน getchar ( )


getchar ( ) เป็นฟังก์ชันที่ใช้รับข้อมูลเข้ามาทางแป้นพิมพ์ทีละ 1 ตัวอักษร โดยต้องกด enter
ทุกครั้งเมื่อสิ้นสุดข้อมูล และข้อมูลที่ป้อนจะปรากฏให้เห็นบนหน้าจอภาพด้วย
รูปแบบ
getchar ( ) ;

3.1.3 ฟังก์ชัน getch ( )


getch( ) เป็นฟังก์ชันที่ใช้รับข้อมูลที่เป็นตัวอักษร 1 ตัว เข้ามาทางแป้นพิมพ์ โดยเมื่อป้อน
ข้อมูลเสร็จไม่ต้องกดปุ่ม enter และอักษรที่ป้อนเข้ามาจะไม่ปรากฏบนจอภาพ
รูปแบบ
getch ( ) ;

3.1.4 ฟังก์ชัน gets ( )


gets ( ) เป็นฟังก์ชันที่ใช้รับข้อมูลที่เป็นข้อความ (ตัวอักษรจํานวนหนึ่ง) จากแป้นพิมพ์
เข้ามาเก็บไว้ในตัวแปร (จําง่ายๆ ว่า gets = get string)
รูปแบบ
gets (n ) ;

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~6~

n เป็นชื่อตัวแปรชนิดที่เก็บค่าข้อความ โดยรับค่าข้อความจากแป้นพิมพ์ ฟังก์ชันจะทํา


การใส่ ‘ \0 ’ เอาไว้ที่ตัวสุดท้ายของข้อความ เพื่อแสดงการสิ้นสุดของข้อความที่รับเข้ามาเมื่อผู้ใช้กดปุ่ม
enter

แหล่งอ้างอิง:
http://61.7.214.35/tsscom/teacher/c/

3.2 ฟังก์ชันในการแสดงผลข้อมูลออกทางจอภาพ
3.2.1 ฟังก์ชัน printf()
เมื่อต้องการแสดงข้อความออกทางจอภาพหรือแสดงผลลัพธ์ที่ได้จากการกระทําการ ภาษาซีได้
สร้างฟังก์ชันมาตรฐานเตรียมไว้โดยมีชื่อว่า printf() การใช้งานฟังก์ชันนี้แบ่งเป็น 3 ลักษณะ คือ การ
แสดงเฉพาะข้อความ การแสดงค่าของตัวแปรที่ได้จากการประมวลผล และการแสดงทั้งข้อความและ
ค่าที่เก็บอยู่ในตัวแปร การแสดงข้อความนี้สามารถจัดรูปแบบการขึ้นบรรทัด การเว้นวรรค ได้ดังแสดง
ในตารางที่ 3.2
รหัสที่ใช้ในฟังก์ชัน printf() ความหมาย
\n เป็นการสั่งให้เคอร์เซอร์ขึ้นบรรทัดใหม่
\t เป็นการสั่งให้เคอร์เซอร์เลื่อนไปทางขวา 1 ช่วงแท็บ
\a เป็นการสั่งให้เครื่องคอมพิวเตอร์ส่งเสียงระฆัง
\\ เป็นการแสดงสัญลักษณ์ \ ออกทางจอภาพ 1 ตัว
\" เป็นการแสดงสัญลักษณ์ " ออกทางจอภาพ 1 ตัว
\v เป็นการสั่งให้เคอร์เซอร์เลื่อนตําแหน่งไป 1 แท็บแนวดิ่ง
\r เลื่อนไปต้นบรรทัด
\? แสดงเครื่องหมาย ?
\b ลบตัวอักษรที่อยู่ด้านซ้าย1ตําแหน่ง (backspace)

ตารางที่ 3.2 รูปแบบของรหัสคําสั่งสําหรับจัดรูปแบบโดยใช้ฟังก์ชัน printf()

1) การแสดงเฉพาะข้อความ
ในการประมวลผลด้วยคอมพิวเตอร์นั้นจําเป็นที่โปรแกรมจะต้องสื่อสารกับผู้ใช้เพื่อให้
ทราบถึงวัตถุประสงค์ของโปแกรมหรือสั่งให้ผู้ใช้เตรียมการป้อนข้อมูล ดังนั้นโปรแกรมที่ดีจึงควรมีการ
แสดงข้อความต่าง ๆ ซึ่งมีรูปแบบคําสั่งดังนี้
printf("ข้อความ");

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~7~

เช่น printf("This program will calculate tax \n"); โดยจะมีเครื่องหมาย ฟันหนู


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

ตัวอย่างที่ 3.5
โปรแกรมแสดงการแสดงข้อความในรูปแบบต่าง ๆ

#include <stdio.h>
#include <conio.h>
main()
{
printf("Welcome to C ");
printf("programming \n");
printf("This is my first program\n\n");
printf("Thank you");
printf("\nbye bye");
getch();
}
ผลการกระทําการที่ปรากฏบนจอภาพคือ
Welcome to C programming
This is my first program
บรรทัดว่าง
บรรทัดว่าง
Thank you
bye bye
จากโปรแกรมในตัวอย่างที่ 3.4 จะสังเกตได้ว่าฟังก์ชัน printf() จะใช้ในการแสดงข้อความบน
จอภาพ ซึ่งจะมีการขึ้นบรรทัดใหม่เมื่อมีสัญลักษณ์ \n ต่อท้าย และถ้าสัญลักษณ์ \n ติดกันก็จะเว้น
บรรทัดเพิ่ม โดยผู้เขียนโปรแกรมสามารถแทรกสัญลักษณ์ \n ไว้ในส่วนใดของข้อความก็ได้เพื่อที่จะให้มี
การขึ้นบรรทัดใหม่

ตัวอย่างที่ 3.6

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~8~

โปรแกรมแสดงการแสดงสัญลักษณ์ขึ้นบรรทัดใหม่
#include <stdio.h>
#include <conio.h>
main()
{
printf("1 January \n2 February \n3 March \n4 April \n ");
printf("5 May \n");
getch();
}
ผลการกระทําการที่ปรากฏบนจอภาพคือ
1 January
2 February
3 March
4 April
5 May
บรรทัดว่าง

2) การแสดงค่าของตัวแปรที่ได้จากการกระทําการ
เมื่อการกระทําการโปรแกรมเสร็จสิ้นสามารถแสดงผลลัพธ์ที่เก็บอยู่ในตัวแปรได้โดยการ
ระบุรูปแบบที่ต้องการ โดยดูได้จากตารางที่ 3.3 นอกจากนี้ยังสามารถระบุจํานวนตัวเลขหลังจุดทศนิยม
ที่ต้องการแสดงได้อีกด้วย เช่น printf("%10.2f", amount); ในกรณีที่ต้องการแสดงตัวเลขจากตัวแปร
ต่าง ๆ ในหลายบรรทัดและต้องการจัดรูปแบบให้อยู่ในสดมภ์เดียวกันก็สามารถนํามาจัดรูปแบบลักษณะนี้
มาใช้ได้เช่นเดียวกัน

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~9~

ชนิดข้อมูล ชนิดตัวแปร รูปแบบสําหรับ scanf()


short %hd หรือ %hi
Integer %d หรือ %i
long %ld หรือ %li
จํานวนเต็ม
unsigned short %hu
unsigned int %u
unsigned long %lu
float %f
จํานวนจริง double %lf
long double %Lf
อักขระ char %c
สายอักขระ char s[] %s
ตารางที่ 3.3 รูปแบบของรหัสคําสั่งสําหรับการจัดรูปแบบโดยใช้ฟังก์ชัน printf()

ตัวอย่างที่ 3.7
โปรแกรมแสดงตัวเลขในรูปแบบต่าง ๆ
#include <stdio.h>
#include <conio.h>
main()
{
int a;
double b;
a = 1;
b = 1040.041;
printf("%4i = %10.2f \n ",a , b);
a = 2;
b = 5.05;
printf("%4i = %10.2f \n ",a , b);
a = 3;
b = 1234567.351;
printf("%4i = %10.2f \n ",a , b);
printf("100%% "); // ใช้สัญลักษณ์ % สองครั้ง เมื่อต้องการแสดงสัญลักษณ์ % ทางจอภาพ
getch();
}

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 10 ~

ผลการกระทําการที่ปรากฏบนจอภาพคือ
1 = 1 0 4 0 . 0 4
2 = 5 . 0 5
3 = 1 2 3 4 5 6 7 . 3 5
1 0 0 %

ตัวอย่างที่ 3.8
โปรแกรมแสดงตัวเลขที่ระบุเฉพาะจํานวนตัวเลขหลังจุดทศนิยม
#include <stdio.h>
#include <conio.h>
main()
{
float a = 5;
printf("%.3f \n ",a );
printf("%.4f \n ",a );
getch();
}
ผลการกระทําการที่ปรากฏบนจอภาพคือ
5 . 0 0 0
5 . 0 0 0 0

นอกจากนี้ในการแสดงตัวเลขที่มีจุดทศนิยม ยังสามารถจัดรูปแบบได้หลายลักษณะ เช่น การ


แสดงให้อยู่ในรูปแบบตัวเลขแบบวิทยาศาสตร์ เป็นต้น รายละเอียดของการใช้ตัวระบุรูปแบบแสดงใน
ตารางที่ 2.4
ตัวระบุรูปแบบ ความหมาย
%e หรือ %E แสดงตัวเลขในรูปแบบวิทยาศาสตร์ เช่น 1.357911e+10
%f แสดงตัวเลขในรูปแบบทศนิยม เช่น 2.34567
%g หรือ %G แสดงตัวเลขในรูปแบบวิทยาศาสตร์หรือแสดงตัวเลขในแบบทศนิยม
%L แสดงตัวเลขในรูปแบบ f เพื่อเป็นการแสดงถึงการแสดงเลขแบบ long double

ตารางที่ 3.4 การจัดรูปแบบตัวเลขที่มีจุดทศนิยม

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 11 ~

ตัวอย่างที่ 3.9
การจัดรูปแบบจํานวนจริง
#include <stdio.h>
#include <conio.h>
main()
{
printf("%e \n ",9876543.21 );
printf("%e \n ",+9876543.21 );
printf("%e \n ",-9876543.21 );
printf("%E \n ",-9876543.21 );
printf("%f \n ",9876543.21 );
printf("%g \n ",9876543.21 );
printf("%G \n ",9876543.21 );
getch();
}
ผลการกระทําการที่ปรากฏบนจอภาพคือ
9 . 8 7 6 5 4 3 e + 0 0 6
9 . 8 7 6 5 4 3 e + 0 0 6
- 9 . 8 7 6 5 4 3 e + 0 0 6
9 . 8 7 6 5 4 3 E + 0 0 6
9 8 7 6 5 4 3 . 2 1
9 . 8 7 6 5 4 3 e + 0 0 6
9 . 8 7 6 5 4 3 E + 0 0 6

ตัวอย่างที่ 3.10
การจัดรูปแบบจํานวนเต็ม
#include <stdio.h>
#include <conio.h>
main()
{
printf("%5d \n ",9);
printf("%5d \n ",98);
printf("%5d \n ",987);

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 12 ~

printf("%5d \n ",9876);
printf("%5d \n ",98765);
printf("%5d \n ",987654);
printf("%5d \n ",-9);
printf("%5d \n ",-98);
printf("%5d \n ",-987);
printf("%5d \n ",-9876);
printf("%5d \n ",-98765);
printf("%5d \n ",-987654);
getch();
}
ผลการกระทําการที่ปรากฏบนจอภาพคือ
9
9 8
9 8 7
9 8 7 6
9 8 7 6 5
9 8 7 6 5 4
- 9
- 9 8
- 9 8 7
- 9 8 7 6
- 9 8 7 6 5
- 9 8 7 6 5 4

ตัวอย่างที่ 3.11
การจัดรูปแบบสายอักขระหรือข้อมูลในแถวลําดับ
#include <stdio.h>
#include <conio.h>
main()
{
char string[] = "This string is printed ";

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 13 ~

char alpha = 'a';


printf("%s \n ", string);
printf("%c \n ", alpha);
printf("%24s \n ", string);
printf("7s \n ", string);
getch();
}
ผลการกระทําการที่ปรากฏบนจอภาพคือ
Thi s s t r i n g i s p r i n t e d
a
T h i s s t r i n g i s p r i n t e d
Thi s s t

จากผลการกระทําการข้างต้นจะสังเกตได้ว่าในการแสดงสายอักขระนั้น ถ้ามีการกําหนดขนาดที่
น้อยกว่าความยาวของสายอักขระจะทําให้ไม่สามารถแสดงสายอักขระได้ครบทั้งหมด ซึ่งแตกต่างจากการ
แสดงตัวเลข และถ้ากําหนดความยาวเกินกว่าขนาดของสายอักขระโปรแกรมจะแสดงชิดขวา

ตัวอย่างที่ 3.12
การแสดงค่าของตัวแปรในรูปแบบเลขฐานแปดและฐานสิบหก
#include <stdio.h>
#include <conio.h>
main()
{
printf("%o \n ", 455); // แสดงในรูปแบบเลขฐานแปด
printf("%x \n ", 455); // แสดงในรูปแบบเลขฐานสิบหก
printf("%d \n ", 455); // แสดงในรูปแบบเลขฐานสิบ
getch();
}
ผลการกระทําการที่ปรากฏบนจอภาพคือ
707
1c 7
455

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 14 ~

3.2.2 ฟังก์ชัน puts ( )


puts ( ) เป็นฟังก์ชันที่ใช้แสดงผลข้อมูลที่เป็นข้อความที่เก็บไว้ในตัวแปรชุดออกมาบน
จอภาพ
รูปแบบ
puts ("ข้อความ" ) ;
หรือ
puts (ตัวแปรชนิดตัวชี้ที่ชี้ไปยังข้อมูลชนิดตัวอักขระ) ;

3.2.3 ฟังก์ชัน putchar( )


putchar( ) เป็นฟังก์ชันที่ใช้ให้คอมพิวเตอร์แสดงผลบนจอภาพทีละ 1 ตัวอักษร
รูปแบบ
putchar (ตัวแปร) ;

3) การแสดงทั้งข้อความและค่าที่เก็บในตัวแปร
ฟังก์ชัน printf() สามารถใช้ในการแสดงทั้งข้อความและค่าที่เก็บตัวแปรได้ เช่น
printf("The value of b = %10.2f", b);

ตัวอย่างที่ 3.13
การใช้ฟังก์ชัน printf() ในการแสดงทั้งข้อความและค่าที่เก็บในตัวแปร
#include <stdio.h>
#include <conio.h>
#define amount = 5000.00
#define rate 0.06
#define period 7
main()
{
printf("rate: %7.2f%% \n ", rate);
printf("amount : %7.2f \n\n ", amount);
printf("period: %7i years \n ", period);
getch();
}

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 15 ~

ผลการกระทําการที่ปรากฏบนจอภาพคือ
r a t e : 0 . 0 6
a mo u n t : 5 0 0 0 . 0 0

per i o d : 7 y e a r s

แหล่งอ้างอิง:
การเขียนโปรแกรมคอมพิวเตอร์ภาษาซี , มูลนิธิส่งเสริมโอลิมปิกวิชาการและพัฒนามาตรฐานวิทยาศาสตร์
ศึกษา ในพระอุปถัมภ์สมเด็จพระเจ้าพี่นางเธอ เจ้าฟ้ากัลยาณิวัฒนา กรมหลวงนราธิวาสราชนครินทร์,
2547.

3.3 กรณีศึกษาโปรแกรมการใช้ฟังก์ชันในการรับข้อมูลและฟังก์ชันในการแสดงผลข้อมูล
ออกทางจอภาพ

ตัวอย่างที่ 3.14
โปรแกรม คํานวณหายอดขายเฉลี่ยพนักงานขายแต่ละราย กําหนดการแสดงผล ดังนี้
************************************
Report Average
************************************
Code : ……………………….
Name : ………………………
Summit : ……………………….
Number : ……………………….
************************************

Average = ……………………….

Press any to continue ……

แนวทางขั้นตอนการสร้างงานโปรแกรม
1. การวิเคราะห์ระบบงานเบื้องต้น

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 16 ~

1.1 สิ่งที่ต้องการ ค่าเฉลี่ยยอดขาย


1.2 สมการคํานวณ ค่าเฉลี่ยยอดขาย = ยอดขาย / จํานวนสินค้า
1.3 ข้อมูลนําเข้า รหัสพนักงาน, ชื่อพนักงาน, ยอดขาย, จํานวนสินค้า
1.4 การแสดงผล ตามโจทย์กําหนด
1.5 กําหนดคุณสมบัติตัวแปร
ข้อมูล ชื่อหน่วยความจํา ชนิดข้อมูล
รหัสพนักงาน no สายอักขระ
ชื่อพนักงาน name สายอักขระ
ยอดขาย sum ตัวเลขจํานวนเต็ม
จํานวนสินค้า num ตัวเลขจํานวนเต็ม
ค่าเฉลี่ยยอดขาย avg ตัวเลขจํานวนจริง
1.6 ลําดับขั้นตอนการทํางาน (action)
1) พิมพ์หัวข้อรายงาน
2) ป้อนข้อมูล รหัสพนักงาน (no), ชื่อพนักงาน (name), ยอดขาย (sum), จํานวน
สินค้า (num)
3) คํานวณค่าเฉลี่ยยอดขาย (avg) = sum / num
4) พิมพ์ avg
5) จบการทํางาน
2. ลําดับการทํางานด้วยผังงานโปรแกรม

3. คําสั่งควบคุมการทํางาน

#include <stdio.h>

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 17 ~

#include <conio.h>
main()
{
char name[30]; // ส่วนประกาศตัวแปร และชนิดของตัวแปร
int code, sum, num; // ส่วนประกาศตัวแปร และชนิดของตัวแปร
float avg; // ส่วนประกาศตัวแปร และชนิดของตัวแปร
printf("************************************\n");
printf(" Report Average\n");
printf("************************************\n\n");
printf(" Code : "); scanf("%d", &code); // ส่วนแสดงข้อความและป้อนข้อมูล
printf(" Name : "); scanf("%s", name); // ส่วนแสดงข้อความและป้อนข้อมูล
printf(" Summit : "); scanf("%d", &sum); // ส่วนแสดงข้อความและป้อนข้อมูล
printf(" Number : "); scanf("%d", &num); // ส่วนแสดงข้อความและป้อนข้อมูล
avg = sum / num; // ส่วนประมวลผล
printf("************************************\n\n");
printf("Average = %.2f \n\n",avg); // ส่วนแสดงผล
printf("Press any to continue …… ");
getch();
}

ผลการกระทําการโปรแกรม

ตัวอย่างที่ 3.15
โปรแกรม วิเคราะห์เงินคงเหลือของโครงการวิจัยที่นําเสนอ กําหนดการแสดงผล ดังนี้

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 18 ~

Report Thank you Company


************************************************************************************
Project name (ชื่อโครงการวิจัย) : ………………………………………..
Budget (งบประมาณ) : ………………………………………..
************************************************************************************
Maintenance (หักค่าบํารุง 20%) : ………………………………………..
Public utility (หักค่าสาธารณูปโภค 5%) : ………………………………………..
Remaining (เงินคงเหลือ) : ………………………………………..
************************************************************************************
Press any to continue ……

แนวทางขั้นตอนการสร้างงานโปรแกรม
1. การวิเคราะห์ระบบงานเบื้องต้น
1.1 สิ่งที่ต้องการ เงินหักค่าบํารุง 20%, เงินหักค่าสาธารณูปโภค 5% และ เงินคงเหลือ
1.2 สมการคํานวณ
1) เงินหักค่าบํารุง 20%
เงินหักค่าบํารุง 20% = งบประมาณ * 20 / 100
2) เงินหักค่าสาธารณูปโภค 5%
เงินหักค่าสาธารณูปโภค 5% = (งบประมาณ - เงินหักค่าบํารุง 20%) * 5/100
3) เงินคงเหลือ
เงินคงเหลือ = งบประมาณ - เงินหักค่าบํารุง 20% - เงินหักค่าสาธารณูปโภค 5%
1.3 ข้อมูลนําเข้า ชื่อโครงการวิจัย, งบประมาณ
1.4 การแสดงผล ตามโจทย์กําหนด
1.5 กําหนดคุณสมบัติตัวแปร
ข้อมูล ชื่อหน่วยความจํา ชนิดข้อมูล
ชื่อโครงการวิจัย name สายอักขระ
งบประมาณ budget ตัวเลขจํานวนจริง
เงินหักค่าบํารุง 20% maint ตัวเลขจํานวนจริง
เงินหักค่าสาธารณูปโภค 5% pub ตัวเลขจํานวนจริง
เงินคงเหลือ remain ตัวเลขจํานวนจริง
1.6 ลําดับขั้นตอนการทํางาน (action)
1) พิมพ์หัวข้อรายงาน

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 19 ~

2) ป้อนข้อมูล ชื่อโครงการวิจัย (name) , งบประมาณ (budget)


3) เงินหักค่าบํารุง 20%
maint = budget * 20 / 100
4) เงินหักค่าสาธารณูปโภค 5%
pub = (budget - maint) * 5/100
5) เงินคงเหลือ
remain = budget – maint - pub
6) พิมพ์ค่า maint, pub, remain
7) จบการทํางาน
2. ลําดับการทํางานด้วยผังงานโปรแกรม

3. คําสั่งควบคุมการทํางาน

#include <stdio.h>
#include <conio.h>
main()
{
char name[40]; // ส่วนกําหนดคุณสมบัติตัวแปร
float budget, maint, pub, remain; // ส่วนกําหนดคุณสมบัติตัวแปร

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล


~ 20 ~

printf(" Report Thank you Company\n");


printf("========================================\n");
printf("Project name : "); scanf("%s",name);
printf("Budget : "); scanf("%f",&budget);
printf("\n");
maint = budget * 20 / 100; // ส่วนการประมวลผล
pub = (budget - maint) * 5/100; // ส่วนการประมวลผล
remain = budget – maint – pub; // ส่วนการประมวลผล
printf("========================================\n");
printf("\n Maintenance = %.2f\n", maint); // ส่วนแสดงผล
printf("\n Public utility = %.2f\n", pub); // ส่วนแสดงผล
printf("\n Remain = %.2f\n", remain); // ส่วนแสดงผล

printf("\nPress any to continue …… ");


getch();
}

ผลการกระทําการโปรแกรม

แหล่งอ้างอิง:
รุ่งทิวา เสาร์สิงห์ คู่มือเรียนรู้ด้วยภาษาซีด้วยตนเอง. กรุงเทพฯ : ซีเอ็ดยูเคชั่น, 2549.

รวบรวมโดย นางพวงพรรณ สุพิพัฒนโมลี ตําแหน่ง ครูชํานาญการ โรงเรียนชัยภูมิภักดีชุมพล

You might also like