Docstoc

Overview of Computer and Programming

Document Sample
Overview of Computer and Programming Powered By Docstoc
					การรับและแสดงผลข้อมูล

    เอกลักษณ์ สุ มนพันธุ์
Computer Engineering
 Ekkalak@rmutl.ac.th
                                   บทนา

 ภาษาซี เ มื่ อ ต้อ งการเขี ย นโปรแกรมเพื่ อ รั บ และแสดงผลข้อ มู ล ต้อ ง
  เรี ยกใช้ฟังก์ชนที่มีอยูในไฟล์หองสมุด (library)
                   ั        ่         ้
 ฟั ง ก์ ชัน เหล่ า นี้ จะรวบรวมไว้ภ ายใต้ไ ฟล์ก ารรั บ และการแสดงผล
  มาตรฐาน (Standard Input and Output File)
 เมื่ อ ต้อ งการเรี ยกใช้ ฟั ง ก์ ชั น ดั ง กล่ า วสามารถท าได้ โ ดยใช้ ค าสั่ ง
  #include กาหนดไว้ในส่ วนหัวของโปรแกรม
                            ั
             ประเภทของฟังก์ชนมาตราฐาน

 แบ่งออกได้เป็ น 2 ประเภท ได้แก่
  1. ฟั งก์ชนมาตราฐานสาหรับการรับและแสดงผลข้อมูลที่อยูในไฟล์
               ั                                       ่
  stdio.h ได้แก่ ฟังก์ชน printf() และ scanf()
                         ั
  2. ฟังก์ชนมาตราฐาน สาหรับการรับและแสดงผลครั้งละหนึ่งตัวอักษร
            ั
  ที่อยูในไฟล์ conio.h (Console I/O File) ได้แก่
        ่
  ฟังก์ชน getchar(), getche(), getch() และ
          ั
  putchar()
                                 ั
                           ฟังก์ชน printf()

 printf() เป็ นฟังก์ชนหนึ่ งในไฟล์ stdio.h สาหรับแสดงผล
                        ั
  ข้อมูล เนื่ องจาก Turbo C ไม่มีฟังก์ชนเฉพาะ (Built-in
                                               ั
  Function)
 printf() เป็ นโปรแกรมย่อยสาหรับการพิมพ์ขอมูล ตัวแปร นิพจน์
                                                 ้
  หรื อข้อความต่างๆ ออกทางจอภาพ
 รู ปแบบ ส่วนควบคุมการพิมพ์กาหนดในเครื่ องหมาย “” มีท้ งข้อความ
                                                        ั
            และรู ปแบบ % นาหน้า
           printf(“format string”,argument…);

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

#include “stdio.h”
main()
{
  int total=100;
  printf(“The total is %d”,total);
}
The total is 100
                        ั             ั
รู ปแบบการพิมพ์ของฟังก์ชน printf() มีดงนี้
รูปแบบการพิมพ์         ความหมาย
     %c                 ้
                     ใชกับ Character
     %d                   ้
                     ใชกับ Integer
     %e                     ้
                     ใชกับเลขทศนิยม
     %E                       ้
                     ใชเหมือน %e แต่แทนด ้วยตัว E
     %f                         ้             ่
                     ใชกับตัวแปรทีเก็บเลขทศนิยม
      %l                          ้
                     ใชกับตัวแปร Long
     %o                             ้
                     ใชกับตัวแปรเลขฐาน 8
     %p                               ้
                     ใชกับตัวแปร Pointer
     %s              ใชกับตัวแปร String ้
     %u              ใชกับตัวแปร Unsign   ้
     %x              ใชกับตัวแปรเลขฐาน 16   ้
      การใช้ String Constant ควบคุมการแสดงผล

 String Constant นาหน้าด้วยเครื่ องหมาย “ \ “
 ใช้ร่วมกับเครื่ องหมาย % เพื่อควบคุมการแสดงผล
 ยกตัวอย่างเช่น
  \n หมายถึง การควบคุมให้ข้ ึนบรรทัดใหม่
  \t หมายถึง การควบคุมให้เลื่อนตามระยะ tab
 การใช้ String Constant ร่ วมกับรหัสรู ปแบบการพิมพ์ (%)
  สามารถกาหนดอะไรก่ อนหลังได้ตามต้องการ โดยไม่มีผลต่อการรั น
  โปรแกรม
               ความหมายของ String Constant ต่างๆ
เครื่ องหมาย                    ความหมาย
\a                                     ี      ่
                                กาหนดเสยงกระดิง

\b                              กาหนดให ้ Cursor ถอยหลังกลับไปที
                                                ้
                                ละตั ว พร ้อมทั ง ลบตั ว อั ก ษรที่ผ่ า นไป
                                ด ้วย Backspace
\f                              กาหนดให ้เว ้นระยะการแสดงผล 1 หน ้า

\n                                         ้
                                กาหนดให ้ขึนบรรทัดใหม่ (Newline)

\r                              กาหนดให ้ Cursor                  ี่
                                                      กลับไปอยู่ทต ้น
                                บรรทั ด เหมื อ นกั บ การปั ดแคร่ ข อง
                                    ่
                                เครืองพิมพ์
\t                              กาหนดให ้เว ้นระยะแนวนอน 8
                                ตัวอักษร
\v                                                     ้
                                กาหนดให ้เว ้นระยะแนวตัง 1 บรรทัด
                                 ั
                           ฟังก์ชน scanf()
 scanf() เป็ นฟังก์ชนพื้นฐานที่ใช้ควบคู่กบฟังก์ชน printf() ใช้
                                  ั                   ั      ั
  ส าหรั บ รั บ ข้อ มู ล ที่ อ่ า นจากแป้ นพิ ม พ์ ต ามรู ปแบบที่ ก าหนดด้ ว ย
  เครื่ องหมาย % เข้าไปเก็บไว้ในตัวแปร Argument
 เมื่อผูใช้กดปุ่ ม Enter โดยที่ตวแปรเหล่านี้จะเป็ น Pointer ที่ช้ ีไป
         ้                             ั
  ยังชนิดของข้อมูลที่สอดคล้องกับรู ปแบบที่กาหนดไว้
 เครื่ องหมาย & (Ambersand) จะใช้นาหน้าตัวแปรที่เตรี ยม
  ไว้สาหรับเก็บข้อมูลที่เป็ นตัวเลขและตัวอักษร
 รู ปแบบของฟังก์ชน รู ปแบบของการรับข้อมูล กากับด้วย %
                       ั
            scanf(“format string”,argument…);
                                        ตัวแปรที่รับค่าจากแป้ นพิมพ์เข้ามาเก็บไว้
                                      ั
          รู ปแบบการรับข้อมูลของฟังก์ชน scanf()

รู ปแบบการรับข้อมูล                            ความหมาย

%c                    ใช้ รั บ ข้อ มู ล ที่ เ ป็ นตัว อัก ษรตัว เดี ย ว (Charracter)
                      รวมถึงเครื่ องหมายต่างๆและช่องว่าง (Blank)
%d                    ใช้รับข้อมูลที่เป็ นเลขจานวนเต็ม (Integer)

%e                    ใช้รับข้อมูลที่เป็ นเลขทศนิยมยกกาลัง (Exponential)

%f                    ใช้รับข้อมูลที่เป็ นเลขทศนิยม เช่นเดียวกันกับ %e

%h                    ใช้รับข้อมูลที่เป็ นเลขจานวนเต็มแบบสั้น (Short int)
                                      ั
          รู ปแบบการรับข้อมูลของฟังก์ชน scanf()

รู ปแบบการรับข้อมูล                         ความหมาย

%i                    ใช้รับข้อมูลที่เป็ นเลขจานวนเต็ม (Integer)
%l                    ใช้รับข้อมูลที่เป็ นเลขแบบ Long
%o                    ใช้รับข้อมูลที่เป็ นเลขฐาน 8 (Octal Number)
%p                    ใช้รับข้อมูลจากตัวแปร Pointer
%s                    ใช้รับข้อมูลแบบข้อความ (String)
%x                    ใช้รับข้อมูลที่เป็ นเลขฐาน 16 (Hexadecimal)
%*                    กาหนดให้ขามค่านี้ไป (ไม่ตองพิจารณา)
                                  ้                ้
               การป้ อนข้อมูลทางแป้ นพิมพ์

 เมื่อป้ อนข้อมูลทางแป้ นพิมพ์ ข้อมูลที่จะป้ อนต้องสอดคล้องกับ
  Format String ของฟังก์ชน scanf()    ั
 ตัวอย่าง
  int x,y;
  scanf(“%d %d”,&x,&y);
 โปรแกรมจะรับเลขจานวนเต็ม 2 ค่านาไปเก็บไว้ในตัวแปร x และ y
             การป้ อนข้อมูลทางแป้ นพิมพ์

 ตัวอย่าง
  int x;
  char y;
  scanf(“%d%c”,&x,&y);          //800$

  int one,two;            •ไม่ตองเก็บเครื่ องหมาย “-”
                               ้
  scanf(“%d%*c%d”,&one,&two); //585-8541

  int x,y;
  char c;
  scanf(“%d%c%d”,&x,&c,&y);       //10 20
             การรับชุดตัวอักษรทางแป้ นพิมพ์

 เมื่อต้องการรับชุดตัวอักษร (String) สามารถทาได้ดงนี้
                                                  ั
 ตัวอย่าง
  char str[]; //ABCDEFGHIJKLMNOPQRST

  scanf(“%10s”,str);          //ABCDEFGHIJ
  scanf(“%20s”,str);          //ABCDEFGHIJKLMNOPQRST
  scanf(“%[ABC]”,str);        //ABC
  scanf(“%[A-K]”,str);   //ABCDEFGHIJK
  scanf(“%[^ABCD]”,str); //EFGHIJKLMNOPQRST
                         ตัวอย่างโปรแกรม
 จงเขียนโปรแกรมเพื่อคานวณอัตราดอกเบี้ยเบื้องต้น
   #include “stdio.h”
   main(){
       float balance,interest_rate;
       int period,year;
       printf(“Enter interest rate,principal and period:”);
       scanf(“%f %f %d”,&interest_rate,&balance,&period);
       printf(“Interest Rate : %5.2f%%\n\n”,interest_rate*100);
       printf(“Year Balance\n”);
       year=0;
       while(year<=period){
                 printf(“%4d B %7.2f\n”,year,balance);
                 balance=balance*interest_rate+balance;
                 year=year+1;
       }
   }
                                   ั
                             ฟังก์ชน getchar()

 เป็ นฟังก์ชนมาตราฐานที่อยูใน Library ของ Turbo C
             ั                   ่
 ใช้สาหรับอ่านข้อมูลแบบตัวอักษร (Character) จากการกด
  แป้ นพิมพ์ทีละตัวอักษร
           ้
 กรณี ที่ตองการอ่านข้อมูลที่มีความยาวมากกว่า 1 ตัวอักษร สามารถทาได้
  โดยเรี ย กใช้ฟั ง ก์ชัน นี้ หลายครั้ ง โดยอาจจะใช้ร่ ว มกับ คาสั่ง ประเภท
  Loop ก็ได้
 ฟังก์ชนนี้ไม่มี Argument เป็ นพารามิเตอร์
         ั
                               getchar();
อ่านข้อมูลครั้งละ 1 ตัวต้องกดแป้ น Enter เมื่อสิ้ นสุ ดและจะแสดงตัวอักษรบนจอภาพ
                              ั
       ตัวอย่างการใช้งานฟังก์ชน getchar()

#include “stdio.h”
main()
{
  char ch;
  ch=getchar();
  printf(“You typed : %c”,ch);
}
                                 ั
                           ฟังก์ชน getche()

 เป็ นฟังก์ชนที่ถูกระบุใน conio.h
              ั
 ใช้สาหรับอ่านข้อมูลแบบตัวอักษร โดยจะรับข้อมูลทันทีที่กดแป้ นพิมพ์
  โดยไม่ตองรอการกด Enter
            ้
 ทาการอ่านข้อมูลครั้งละ 1 ตัวอักษร เข้ามาเก็บในชื่อของตัวเองจึงไม่มี
  พารามิเตอร์ใดๆเป็ น Argument และข้อมูลที่ได้จากการอ่านจะ
  ปรากฎบนจอภาพด้วย
                           getche();

อ่านข้อมูลครั้งละ 1 ตัวโดยไม่ตองกดแป้ น Enter และจะแสดงตัวอักษรบนจอภาพ
                              ้
    ตัวอย่างโปรแกรมสาหรับแสดงรหัส ASCII

#include “stdio.h”
#include “conio.h”
main(){
  char ch;
  printf(“Enter a character :”);
  ch=getche();
  printf(“ASCII code is %d”,ch);
}
     ตัวอย่างโปรแกรม menu การป้ อน A,S,M หรื อ D เพื่อเลือกการทางาน

#include “stdio.h”                           printf(“Enter second number :”);
#include “conio.h”                           scanf(“%d”,&b);
main(){                                      if(ch == ‘A’) printf(“%d”,a+b);
   int a,b;                                  if(ch == ‘S’) printf(“%d”,a-b);
   char ch;                                  if(ch == ‘M’) printf(“%d”,a*b);
   printf(“Do you want to :\n”);             if(ch == ‘D’) printf(“%d”,a/b);
   printf(“Add, Substract, Multiply or   }
   Devide ?\n”);
   printf(“Enter first letter :”);
   ch=getche();
   printf(“\n”);
   printf(“Enter first number :”);
   scanf(“%d”,&a);
                                 ั
                           ฟังก์ชน getch()

 เป็ นฟั ง ก์ชัน ที่ อ ยู่ภ ายใต้ conio.h       เช่ น เดี ย วกับ ฟั ง ก์ชัน
  getche()
 ใช้สาหรับอ่านข้อมูลแบบตัวอักษรจากการกดแป้ นพิมพ์ทีละตัว
 เครื่ องจะรับข้อมูลทันทีที่กดแป้ นโดยไม่ตองรอกด Enter แต่จะไม่
                                           ้
  แสดงตัวอักษรที่ป้อนปรากฎให้เห็น

                              getch();
                               ั
                         ฟังก์ชน putchar()

 สังให้คอมพิวเตอร์แสดงผลบนจอภาพครั้งละหนึ่งตัวอักษร ฟังก์ชนนี้จะ
     ่                                                                  ั
  มี Argument ภายในวงเล็บ เป็ นตัวแปรชนิด Character
  ที่จะส่ งข้อมูลไปแสดงผล
 ส่ วนของ Argument อาจจะเป็ นฟังก์ชนซ้อนอยูเ่ ป็ นพารามิเตอร์
                                                   ั
  ก็ได้ แต่ค่าของฟั งก์ชนที่ซ้อนอยู่น้ ันจะต้องได้ผลลัพธ์เพียง 1 ตัวอักษร
                        ั
  เท่านั้น                                    ั
                             ตัวแปรหรื อฟังก์ชนที่เก็บค่าตัวอักษร 1 ตัว
                   putchar(argument);

        ั
  ฟังก์ชนที่แสดงผลออกทางจอภาพครั้งละ 1 ตัวอักษร
                              ั
       ตัวอย่างการใช้งานฟังก์ชน puchar()

#include “stdio.h”
main()
{
  char x;
  x=getchar();
                       putchar(getchar());
  putchar(x);
}
THE END

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:3
posted:8/29/2012
language:Thai
pages:24