printf คือคำสั่งการแสดงผล 
สามารถเขียนได้ 3 รูปแบบที่เจอบ่อยๆ ดังนี้
สามารถเขียนได้ 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
                              
อ้างอิง
เช่น 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(“%d”,Cat); หรือ printf(“%s”,20); จะเกิดอะไรขึ้น
โปรแกรม error หรือเกิดอะไรขึ้นกับผลลัพท์ ? .. ลองคิดดู
รูปแบบที่ 3 คือ มีการประกาศตัวแปร แล้ว printf เรียกใช้ %ต่างๆ ข้างหลังจะไม่มีค่าโดยตรงแต่เป็นตัวแปรแทน วิธีการคือ ดูว่าตัวแปรนั้นเก็บค่าอะไรไว้แล้วมาแสดงตามปกติ
เช่น printf(“%d”,num1); ให้ดูว่า ตัวแปร num1 มีค่าอะไรจากด้านบนที่ประกาศ
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(“%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
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();
}
แต่หากต้องการทำมากกว่านั้น เช่น หาค่ารากที่สอง ยกกำลัง หาค่า 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 คำสั่งนี้ เราสามารถเขียนโปรแกรมอะไรก็ได้มีมีการรับค่าแล้วมาคำนวณ
..........................................................................................................................................................
แบบฝึกหัด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 | 

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