การรับและแสดงผลข้อมูล

ใบความรู้4.4 การรับและแสดงผลข้อมูล
          ใบความรู้นี้จะกล่าวถึงวิธีการรับข้อมูลผ่านคีย์บอร์ดเข้ามาในโปรแกรม (input) เพื่อนำมาประมวลผล รวมทั้งวิธีการแสดงผลข้อความหรือผลลัพธ์ของโปรแกรมออกทางจอภาพ (output)

การแสดงผลข้อมูล (output)
           ฟังก์ชั่นที่ใช้ในการแสดงผลข้อมูลออกทางจอภาพ คือ printf (print formatted)
           รูปแบบของฟังก์ชั่น printf คือ
     printf(“string_format”, data_list);
            string_format คือ สตริงที่ต้องการแสดงผล ซึ่งอาจเป็นข้อความธรรมดา เช่น Hello หรือเป็นสัญลักษณ์แทนชนิดข้อมูลต่างๆ ซึ่งจะถูกแทนด้วยค่าคงที่, ตัวแปร, หรือนิพจน์ใดๆ ที่กำหนดมาเป็นพารามิเตอร์(ในส่วนของ data_list) ตั้งแต่ตัวที่ 2 เป็นต้นไป เช่น %d ใช้แทนข้อมูลชนิดเลขจำนวนเต็ม, %c ใช้แทนข้อมูลชนิดตัวอักษร เป็นต้น

             data_list คือ ข้อมูลที่จะแสดงผล ซึ่งอาจเป็นค่าคงที่, ตัวแปร, หรือนิพจน์ใดๆ 
ตัวอย่างการใช้งานฟังก์ชั่น printf()

ตัวอย่างที่ 8.1
  printf(“Hello World”);

ผลลัพธ์ของโปรแกรม 
Hello World

อธิบายโปรแกรม 
          การใช้งานฟังก์ชั่น printf() ในลักษณะนี้เป็นการแสดงข้อความที่กำหนดออกทางจอภาพเท่านั้น ไม่ได้ต้องการแสดงผลข้อมูลอื่นเพิ่มเติม ดังนั้นจึงรับค่าพารามิเตอร์เพียงตัวเดียวเท่านั้น คือ รับค่า string format ไม่จำเป็นต้องรับพารามิเตอร์ data list

ตัวอย่างที่ 8.2
  printf(“1+1 = %d”, 2);

ผลลัพธ์ของโปรแกรม
     1+1 = 2
อธิบายโปรแกรม
           ฟังก์ชั่น printf() ในข้อนี้มีการใช้ string format ในรูปแบบของข้อความธรรมดาผสมกับตัวแทนชนิดข้อมูล ดังนั้นเมื่อมีการแทนที่ชนิดข้อมูลแล้ว จะต้องมีการรับค่าพารามิเตอร์อีกตัวหนึ่งสำหรับเป็นข้อมูลที่จะนำมาแทนที่ลงในตัวแทนชนิดข้อมูลนั้น ซึ่งในที่นี้ทำการรับค่าพารามิเตอร์ data list เป็นข้อมูลค่าคงที่เข้ามา

ตัวอย่cางที่ 8.3 


     char  X = ‘x’;
     printf(“Hello %cyz”, X);

ผลลัพธ์ของโปรแกรม
  Hello xyz

อธิบายโปรแกรม
          ข้อนี้คล้ายกับข้อที่ผ่านมา แต่มีสิ่งหนึ่งที่แตกต่าง คือ data list ในข้อนี้เป็นตัวแปร แต่ในข้อที่ผ่านมาเป็นค่าคงที่

ตัวอย่างที่ 8.4
   int  x = 3;
     char  y[5] = “five”;
     printf(“%d + %d = %s”, 2, x, y);
ผลลัพธ์ของโปรแกรม
     2+3 = five
อธิบายโปรแกรม
           จากตัวอย่างที่ผ่านมาจะเห็นว่าฟังก์ชั่น printf() รับค่าพารามิเตอร์ได้หลายตัว ซึ่งขอบเขตของพารามิเตอร์ string format จะถูกกำหนดอยู่ภายในเครื่องหมาย “ ” แต่สำหรับพารามิเตอร์ data list ไม่ต้องใช่เครื่องหมาย “ ” คลุม
           ฟังก์ชั่น printf() จะจับคู่ข้อมูลที่จะแสดงผลกับตัวแทนชนิดข้อมูลเรียงตามลำดับ เช่น จากตัวอย่าง
           1. จับคู่ตัวแทนชนิดข้อมูล %d เข้ากับค่าคงที่ (ค่า 2)
           2. จับคู่ตัวแทนชนิดข้อมูล %d เข้ากับตัวแปร x ซึ่งเป็นข้อมูลชนิดเลขจำนวนเต็ม
           3. จับคู่ตัวแทนชนิดข้อมูล %s เข้ากับตัวแปร y ซึ่งเป็นข้อมูลชนิดสตริง 

รหัสที่ขึ้นต้นด้วยเครื่องหมาย “\” (Backslash)
            รหัสที่ขึ้นต้นด้วยเครื่องหมาย “\” (Backslash) เรียกวา Escape Character มักใช้กำหนดไว้ในส่วนของ string format ของฟังก์ชั่น printf() เพื่อช่วยในการจัดการแสดงผลตัวอักษรออกทางจอภาพ ซึ่งแบ่งออกเป็นหลายประเภทดังนี้

ตารางที่ 8.2 แสดง Escape Character
รหัส
ความหมาย
\0
ค่าว่าง (null character)
\a
ส่งเสียง 1 ครั้ง (bell)
\b
ถอยหลัง 1 ช่องตัวอักษร (backspace)
\f
ขึ้นหน้าใหม่ (form feed)
\n
ขึ้นบรรทัดใหม่ (new line)
\r
เลื่อนเคอร์เซอร์ไปทางซ้ายสุด (carriage return)
\t
แท็บแนวนอน (horizontal tab)
\v
แท็บแนวตั้ง (vertical tab)
\’
พิมพ์เครื่องหมาย ‘
\”
พิมพ์เครื่องหมาย “
\\
พิมพ์เครื่องหมาย \
การรับข้อมูล(Input)
            ฟังก์ชั่นที่ใช้ในการรับข้อมูลจากคีย์บอร์ด คือ scanf (scan formatted)
            รูปแบบของฟังก์ชั่น scanf คือ

     scanf(“string_format”, address_list);
             string_format ต่างจาก string format ของฟังก์ชั่น printf() ตรงที่ string format ของฟังก์ชั่น scanf() จะอยู่ในรูปแบบของตัวแทนชนิดข้อมูลต่าง ๆ เช่น %d, %c, %s, %f, ... เท่านั้น
             address_list เป็นตัวระบุที่อยู่ (address) ในหน่วยความจำที่จะใช้ในการเก็บข้อมูลที่รับเข้ามา โดยใช้ ampersand (&) นำหน้าชื่อตัวแปรที่ต้องการรับข้อมูลเข้ามาเก็บไว้
ตัวอย่างที่ 8.5
  scanf(“%d %d %c”, &a, &b, &c);
     printf(“%d %d %c”, a, b, c);
ผลลัพธ์ของโปรแกรม

     10 20 c
     10 20 c
ตัวอย่างที่ 8.6
    #include <stdio.h>
    
     main() {
          char name[10];
          int a, b, c;
          float d, e, f;

          printf(“Enter your name : ”);    
          scanf(“%s”, name);
          printf(“Enter integer number1 : ”);
          scanf(“%d”, &a);
          printf(“Enter integer number2 : ”);
          scanf(“%d”, &b);
          printf(“Enter integer number3 : ”);
          scanf(“%d”, &c);
          printf(“Enter integer number4 : ”);
          scanf(“%d”, &d);
          printf(“Enter integer number5 : ”);
          scanf(“%d”, &e);
          f = (a+b+c+d+e) / 5;
          printf(“\nHi %s\n”, name);    
          printf(“Average of your number is %.2f”, f);    
ผลลัพธ์ของโปรแกรม 


     Enter your name : somsak
     Enter integer number1 :  1
     Enter integer number2 :  2
     Enter integer number3 :  3
     Enter integer number4 :  4.5
     Enter integer number5 :  5.5

     Hi Somsak
     Average of your number is 3.20

การรับและแสดงผลข้อมูลแบบตัวอักษร 
           การรับและแสดงผลข้อมูลแบบตัวอักษร นอกจากจะใช้ฟังก์ชั่น scanf() และ printf() แล้ว ยังมีฟังก์ชั่นเฉพาะที่ใช้ในการรับข้อมูลแบบตัวอักษร คือ getchar() และแสดงผลข้อมูลแบบตัวอักษร คือ putchar() ด้วย 
          getchar() เป็นฟังก์ชั่นสำหรับรับข้อมูล 1 ตัวอักษรจากคีย์บอร์ด 
          putchar() เป็นฟังก์ชั่นสำหรับแสดงผลข้อมูล 1 ตัวอักษรออกทางจอภาพ 
ตัวอย่างที่ 8.7 การทำงานของฟังก์ชั่น getchar() และ putchar() 


     #include <stdio.h>
    
     main() {
          char c;
          c = getchar();
          putchar(c);
     }
ผลลัพธ์ของโปรแกรม 


     a
     b
     c
     d
     e
     D
     E

     abcdeDE


อธิบายโปรแกรม โปรแกรมที่ 1 ฟังก์ชั่น getchar() เมื่อป้อนตัวอักษรเข้ามาแล้วจะต้องกด Enter ทุกครั้ง ฟังก์ชั่น getchar() ถึงจะรับตัวอักษรไปประมวลผล และเมื่อกด Enter เคอร์เซอร์ก็จะย้ายไปยังบรรทัดถัดไป โปรแกรมที่ 2 ฟังก์ชั่น getch() เมื่อป้อนตัวอักษรเข้ามา ตัวอักษรจะถูกนำไปประมวลผลทันที โดยที่ผู้ใช้ไม่ต้องกด Enter (ฟังก์ชั่น getch() เป็นฟังก์ชั่นของเฮดเดอร์ไฟล์ conio.h) โปรแกรมที่ 3 ฟังก์ชั่น getche() เมื่อป้อนตัวอักษรเข้ามา ตัวอักษรจะถูกนำไปประมวลผลและแสดงผลทันที โดยที่ผู้ใช้ไม่ต้องกด Enter (ฟังก์ชั่น getch() เป็นฟังก์ชั่นของเฮดเดอร์ไฟล์ conio.h)

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

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

ใบความรู้ที่4.1 แนวคิดในการเขียนโปรแกรม

ใบความรู้ที่4.1 แนวคิดในการเขียนโปรแกรม           การเขียนโปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่ง จนกระทั่งได้ผลลัพธ์ออกมาตามที่ต้องการนั้น...