วันเสาร์ที่ 30 กันยายน พ.ศ. 2560

ภาษาซีเบื้องต้น ตอนที่ 5 : คำสั่งการรับและแสดงผล ฟังก์ชั่นคณิตศาสตร์

printf คือคำสั่งการแสดงผล 

         สามารถเขียนได้ 3 รูปแบบที่เจอบ่อยๆ ดังนี้  

รูปแบบ
ฟังก์ชั่น printf
Output (ผลลัพท์)
1
printf(“Hello”);
Hello
printf(“Satreeislam\nYala”)
Satreeislam
Yala
2
printf(“%d”,20);
20
printf(“number : %d”,20);
number : 20
printf(“%s”,”School”);
School
3
int num1=2,num2=5;
float number=10.2;
char sex=’F’;

printf(“%d”,num1);
printf(“%d”,num2);
printf(“%d %d”,num1,num2);
printf(“%d %d”,num2,num1);
printf(“%d”,num1+num2);
printf(“%.2f”,number);
printf(“%c”,sex);





2
5
2 5
5 2
7
10.20
F

อธิบาย 
รูปแบบที่ 1 คือ มีข้อความอยู่ภายในเครื่องหมาย " "        
                          เช่น printf(“Hello”);    ผลลัพท์ (output) ที่ได้ คือ Hello 
                              printf(“Satreeislam\nYala”) ผลลัพท์ (output) ที่ได้ คือ Satreeislam 
                                                                                                                     Yala
                              จะเห็นว่ามี 2 บรรทัดเพราะว่ามีอักขระควบคุมการแสดงผลอยู่คือ   \n 
                               \n ใช้สำหรับให้ข้อความข้างหลังต่อจาก n ขึ้นบรรทัดใหม่
                              ซึ่ง \ ต่างๆมีมากกว่านี้อีก ดังรูป แต่ที่ใช้บ่อยๆคือ  \n  
                              
                                                                                                       อ้างอิง
                              
รูปแบบที่ 2 คือ เจอ % ต่างๆ (%d %s %c %f ) ในเครื่องหมาย " " 
      int ใช้กับ %d   char  ใช้กับ %c  %s  float  ใช้กับ  %f  %.2f  %.3f   double ใช้กับ %f  %lf
     เช่น printf(“%d”,20);  ให้เอา 20 ไปแทนที่ %d    output จะได้ 20 
            printf(“number : %d”,20); ให้เอา 20 ไปแทนที่ %d เหมือนเดิม แต่หากมีข้อความ  
             อะไรก็ให้แสดงข้อความนั้นด้วยเหมือนรูปแบบที่ 1 output จะได้ number : 20 
             printf(“%s”,”School”); เอาข้อความไปแทนที่ตรง %s output จะได้ School                       
                        
                           คำถาม ? หาก printf(“%d”,Cat);  หรือ printf(“%s”,20); จะเกิดอะไรขึ้น 
                                  โปรแกรม error หรือเกิดอะไรขึ้นกับผลลัพท์ ? ..  ลองคิดดู 


รูปแบบที่ 3 คือ มีการประกาศตัวแปร แล้ว printf เรียกใช้ %ต่างๆ ข้างหลังจะไม่มีค่าโดยตรงแต่เป็นตัวแปรแทน        วิธีการคือ ดูว่าตัวแปรนั้นเก็บค่าอะไรไว้แล้วมาแสดงตามปกติ 
 เช่น  printf(“%d”,num1); ให้ดูว่า ตัวแปร num1 มีค่าอะไรจากด้านบนที่ประกาศ 
        (int  num1=2) num1 เท่ากับ 2 เพราะฉะนั้นเอา 2 ไปแทนที่ %d output จะได้ 2
        printf(“%d %d”,num1,num2); การแสดงผลสามารถ แสดงทีเดียว 2 ค่าได้ โดยใช้ 
          %d %d 2 ครั้ง แต่ด้านหลังเมื่อมีการแสดงผล 2 ค่า ด้านหลังต้องมีตัวแปร2ตัว คั่น
          ด้วยเครื่องหมาย ,    output จะได้ 2 5 
        printf(“%d %d”,num2,num1); หากมีการสลับค่าแบบนี้ให้ดูดีๆ  output จะได้ 5 2
        printf(“%d”,num1+num2);   การแสดงผล สามารถเอาค่าของ2ตัวแปรมาบวก 
         กันได้ (ลบ คูณ หาร ทำได้หมด) output จะได้ 7
         printf(“%.2f”,number); ข้อนี้เป็นการแสดงตัวเลขทศนิยม ให้ดูตรงที่ ตัวเลขหน้าf 
         หากมีเลขใดก็หมายถึงทศนิยมตำแหน่งนั้น  output จะได้ 10.20
        printf(“%c”,sex); %c คือข้อความ(อักขระ)ตัวเดียว หาก %s คือ ข้อความมากกว่า 1  
        sex ค่าตัวแปลคือ F  output จะได้ F

scanf คือคำสั่งการรับข้อมูล
                เมื่อมีการประกาศตัวแปรใดๆ ตัวอย่างเช่น int number; (ประกาศตัวแปรชื่อว่า number เป็นชนิดตัวแปรแบบจำนวนเต็ม) หากไม่มีการกำหนดค่าตั้งแต่ต้นว่าตัวแปร number = เท่าไร  (เช่น int number=2;) ค่าตัวแปรนั้นๆจะยังไม่มีค่า ดังนั้นผู้ใช้โปรแกรมต้องกำหนดเอง โดยใช้ฟังก์ชั่น scanf  พื่อรับค่าเข้ามาในโปรแกรม

ฟังก์ชั่น scanf
Input
Output
int  number;
printf(“Enter number: ”)
scanf(“%d”,&number);



10

Enter number:
Enter number: 10
อธิบาย 
 int  number;                         //ประกาศตัวแปรชื่อว่า number เป็นชนิดจำนวนเต็ม
printf(“Enter number: ”)      // แสดงข้อความว่า Enter number :
scanf(“%d”,&number);       // รับค่าจำนวนเต็มเพราะเป็น %d มาเก็บไว้ในตัวแปร number จากด้านบน
                                             //คือใส่เลข10 ตัวแปร number จึงมีค่าเป็น 10 

ทำไมต้องมี printf ก่อน scanf เสมอ ?
เพราะผู้ใช้ที่ไม่ได้เขียนโปรแกรมไม่รู้ เมื่อรันโปรแกรมจะมี _ กระพริบๆ โปรแกรมนี้ให้ทำอะไรต่อ
printf จึงจำเป็นต้องใช้เพื่อแสดงข้อความในโปรแกรมให้ผู้ใช้ทำอะไร (ใส่ตัวเลขหรือข้อความหรืออย่างอื่น) 

ฟังก์ชั่นคณิตศาสตร์

           เนื่องจากว่า การบวกลบคูณหาร.ในภาษาซี  ใช้แค่ประกาศ #include<stdio.h> ก็เพียงพอแล้ว
 แต่หากต้องการทำมากกว่านั้น เช่น หาค่ารากที่สอง ยกกำลัง หาค่า sin con tan หาค่า log ต่างๆ อื่นๆที่เกี่ยวข้องกับการคำนวณ จำเป็นต้อง #include<math.h>

ตัวอย่าง เช่น 2 ยกกำลัง 5 เท่ากับเท่าไร 
 ใน math.h จะต้องเรียกใช้คำสั่งที่มีชื่อว่า  pow   อ้างอิง

#include <stdio.h>
#include <math.h>
#include <conio.h>
main ()
{
   printf("2 ^ 5 = %.2f", pow(2, 5));
   getch();

}

ผลลัพท์จะได้ (output) 32.00

..........................................................................................................................................................
         หลังจากจบ2 คำสั่งนี้ เราสามารถเขียนโปรแกรมอะไรก็ได้มีมีการรับค่าแล้วมาคำนวณ 
..........................................................................................................................................................
แบบฝึกหัด1 ให้เขียนโปรแกรมจำนวนสองจำนวนบวกกัน โดยจำนวนสองจำนวนรับค่าจากผู้ใช้
แบบฝึกหัด2 ให้เขียนโปรแกรมหาพื้นที่วงกลม รัศมีให้รับค่าจากผู้ใช้ และแสดงพื้นที่อยู่ในรูปทศนิยมสองตำแหน่ง








เฉลย 
แบบฝึกหัด1 
แนวคิด   รับค่าจากผู้ใช้ 2 จำนวน แสดงว่าต้องมีการเก็บค่าซึ่งต้องประกาศตัวแปรอย่างน้อย 2 ตัวแปร
               รับค่าจากผู้ใช้ แสดงว่าต้องมีการใช้ฟังก์ชั่น scanf

โปรแกรม
อธิบาย
#include<stdio.h>   
เรียกใช้ไฟล์ stdio.h
#include<conio.h>
เรียกใช้ไฟล์ conio.h
main()
ฟังก์ชั่น main
{
เริ่มฟังก์ชั่น main
     int  number1, number2;
ประกาศตัวแปร number1 number2 ชนิดจำนวนเต็ม
     printf(“Enter  number1:  ”);
แสดงข้อความ  Enter  number1: 
     scanf(“%d”,&number1);
รับค่าจากผู้ใช้ เก็บในตัวแปร number1
     printf(“Enter  number2: ”);
แสดงข้อความ  Enter  number2:
     scanf(“%d”,&number2);
รับค่าจากผู้ใช้ เก็บในตัวแปร number2
printf(“Sum = %d”,number1+number2);
แสดงข้อความ  Sum = และแสดงค่า number1+number2
     getch();
ให้ผู้ใช้กดปุ่มใดๆเพื่อออกจากโปรแกรม
}
จบฟังก์ชั่น main

แนวคิด
  
แบบฝึกหัด2
                สูตรพื้นที่วงกลม =
               รับค่ารัศมีจากผู้ใช้ แสดงว่าต้องมีการเก็บค่าซึ่งต้องประกาศตัวแปรอย่างน้อย 1 ตัวแปร
               รับค่าจากผู้ใช้แสดงว่าต้องมีการใช้ฟังก์ชั่น scanf

               แสดงในรูปทศนิยมสองตำแหน่ง %.2f

โปรแกรม
อธิบาย
#include<stdio.h>   
เรียกใช้ไฟล์ stdio.h
#include<conio.h>
เรียกใช้ไฟล์ conio.h
main()
ฟังก์ชั่น main
{
เริ่มฟังก์ชั่น main
     float  R;
ประกาศตัวแปร R ชนิดจำนวนทศนิยม
     printf(“Enter  R of Circle:  ”);
แสดงข้อความ  Enter  R of Circle: 
     scanf(“%f”,&R);
รับค่าจากผู้ใช้ เก็บในตัวแปร R
     printf(“Area Circle = %.2f ”,3.14*R*R);
แสดงข้อความ  Area Circle R= และแสดงค่ารัศมี R และคำนวณพื้นที่วงกลมจาก 3.14*R*R

     getch();
ให้ผู้ใช้กดปุ่มใดๆเพื่อออกจากโปรแกรม
}
จบฟังก์ชั่น main


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

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