หน้าเว็บ

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

ใบความรู้ที่ 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 เป็นข้อมูลค่าคงที่เข้ามา
ตัวอย่างที่ 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);
     }
ผลลัพธ์ของโปรแกรม
     c
          getch()         อ่าน 1 ตัวอักษรจากคีย์บอร์ด แต่ไม่แสดงตัวอักษรที่รับเข้ามาออกทางหน้าจอ
          getche()       อ่าน 1 ตัวอักษรจากคีย์บอร์ด และแสดงตัวอักษรที่รับเข้ามาออกทางหน้าจอด้วย
ตัวอย่างที่ 8.7 การทำงานของฟังก์ชั่น getchar() และ putchar()
    #include <stdio.h>
    
    main() {
         char c;
         do {
         c = getchar();
         } while(c != ‘E’);
    }
    #include <stdio.h>
    #include <conio.h>
    main() {
         char c;
         do {
         c = getch();
         } while(c != ‘E’);
    }
     #include <stdio.h>
     #include <conio.h>
     main() {
          char c;
          do {
          c = getch();
          } while(c != ‘E’);
     }
ผลลัพธ์ของโปรแกรม
     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 แนวคิดในการเขียนโปรแกรม           การเขียนโปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่ง จนกระทั่งได้ผลลัพธ์ออกมาตามที่ต้องการนั้น...