งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "บทที่ 4 การรับและแสดงผลข้อมูล"— ใบสำเนางานนำเสนอ:

1 บทที่ 4 การรับและแสดงผลข้อมูล

2 จุดประสงค์การเรียนรู้
1 มีทักษะเกี่ยวกับเรื่องการรับข้อมูล 1.1 อธิบายเกี่ยวกับหลักการทำงานการรับข้อมูล 1.2 บอกคำสั่งที่ใช้สำหรับรับข้อมูล 1.3 เขียนคำสั่งสำหรับรับข้อมูล 2 มีทักษะเกี่ยวกับเรื่องการแสดงผลข้อมูล 2.1 อธิบายหลักการทำงานการแสดงผลข้อมูล 2.2 บอกคำสั่งที่ใช้แสดงผลข้อมูล 2.3 เขียนคำสั่งแสดงผลข้อมูล

3 เนื้อหาสาระ หลักการทำงานการรับข้อมูล คำสั่งที่ใช้รับข้อมูล
การเขียนคำสั่งรับข้อมูล 1. การรับข้อมูล หลักการทำงานการแสดงผลข้อมูล คำสั่งที่ใช้แสดงผลข้อมูล การเขียนคำสั่งแสดงผลข้อมูล การแสดงผลข้อมูล

4 การรับและแสดงผลข้อมูล
คำสั่งในการรับและแสดงผลข้อมูล (I/O Function) คือ printf() scanf()

5 1. การรับข้อมูลจากแป้นพิมพ์
scanf ใช้รับข้อมูลจากแป้นพิมพ์ สามารถกำหนดรูปแบบการรับข้อมูลได้ stdio.h

6 1.1 หลักการทำงาน ของการรับข้อมูล

7 1.1 หลักการทำงาน ของการรับข้อมูล
300 ? ค่าข้อมูล a 10002 ชื่อตัวแปร name ตำแหน่ง 300 salary ตำแหน่ง ตัวแปร & การจองพื้นที่บนหน่วยความจำ

8 1.1 หลักการทำงาน ของการรับข้อมูล
เครื่องหมาย & ในภาษาซีการอ้างอิงไปยังตำแหน่งบนหน่วยความจำของตัวแปรใดๆ จะใช้เครื่อง & นำหน้าชื่อตัวแปรนั้นเสมอ เช่น name = ? &name = ? a 00000

9 ตำแหน่งในหน่วยความจำ
Try it ! printf(“%u %c, &name,name) ? ตำแหน่ง (address) ค่าในหน่วยความจำ ตัวแปร a name ? ? ? ? ? ? …… …... char name; ;// one byte allocation printf(“%c”,name); จะแสดงค่าอะไร? printf(“%u”,&name); จะแสดงค่าอะไร? a ตำแหน่งในหน่วยความจำ

10 1.2 คำสั่งที่ใช้ในการรับข้อมูล( scanf )
scanf(“format string”, address list …); เป็นส่วนที่ใช้ในการใส่รูปแบบของการรับข้อมูล เป็นตำแหน่งของตัวแปรที่ต้องการจะเก็บข้อมูล

11 1.3 การเขียนคำสั่งรับข้อมูล
Integers d เปลี่ยนข้อมูลที่รับเข้ามาให้เป็นชนิด int เช่น scanf(“%d”, &I); u “ unsigned int o “ int โดยข้อมูลต้องเป็นเลขฐาน 8 x “ int โดยข้อมูลต้องเป็นเลขฐาน 16 h หรือ l ใช้นำหน้า กลุ่มตัวอักษรที่ใช้เป็นรูปแบบของ integer เพื่อระบุว่าเป็น short หรือ long เช่น %ld คือ long int %lu คือ unsigned long Format String ที่ใช้กับ scanf

12 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
int number; scanf(“%d”,&number); ผลการทำงาน ผู้ใช้ป้อน 5 ดังนั้น number = 5

13 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
int number; scanf(“%d”,&number); ผลการทำงาน ผู้ใช้ป้อน 5.00 ดังนั้น number = 5

14 1.3 การเขียนคำสั่งรับข้อมูล
Floating-point numbers f เปลี่ยนข้อมูลที่รับเข้ามาให้เป็นชนิด float lf “ long Lf “ long double e “ float ข้อมูลอยู่ในรูป exponential E “ float ข้อมูลอยู่ในรูป exponential Character and Character strings c เปลี่ยนข้อมูลที่รับเข้ามาให้เป็นชนิด character s “ character string Format String ที่ใช้กับ scanf

15 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
float grade; scanf(“%f”,&grade); ผลการทำงาน ผู้ใช้ป้อน 3.59 ดังนั้น grade =

16 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
long float grade; scanf(“%lf”,&grade); ผลการทำงาน ผู้ใช้ป้อน 3 ดังนั้น grade =

17 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
char name[10]; scanf(“%s”, name); ผลการทำงาน ผู้ใช้ป้อน PANICH ดังนั้น name = “PANICH”

18 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
ยกเว้น String ไม่ต้องใส่เครื่องหมาย & char name[10]; scanf(“%s”, name); ผลการทำงาน ผู้ใช้ป้อน PANICH ดังนั้น name = “PANICH”

19 1.3 การเขียนคำสั่งรับข้อมูล
scanf(“format string”, address list …); เป็นส่วนที่ใช้ในการใส่รูปแบบของการรับข้อมูล เป็นตำแหน่งของตัวแปรที่ต้องการจะเก็บข้อมูล Memory Address List

20 1.3 การเขียนคำสั่งรับข้อมูล
คือ รายการของตำแหน่งหน่วยความจำ (memory address) ที่จะนำข้อมูลที่ผู้ใช้ป้อนเข้าไปเก็บ ซึ่งก็คือตำแหน่ง (memory address) ของตัวแปรในหน่วยความจำ ตัวอย่างตัวแปร ตัวอย่างรายการตำแหน่งหน่วยความจำ 1. Cost &Cost 2. Affiliation &Affiliation ยกเว้น ตัวแปรแบบ Array ที่ไม่มีการอ้างอิงแบบ index ไม่ต้องมีเครื่องหมาย & นำหน้าตัวแปร Memory Address List

21 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
float grade; scanf(“%f”,&grade); ผลการทำงาน ผู้ใช้ป้อน 3.59 ดังนั้น grade =

22 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
long float grade; scanf(“%lf”,&grade); ผลการทำงาน ผู้ใช้ป้อน 3 ดังนั้น grade =

23 char name[10]; scanf(“%s”, name); ตัวอย่าง ผู้ใช้ป้อน PANICH
ยกเว้น String ที่ไม่อ้างอิงอินเด็ก ไม่ต้องใส่เครื่องหมาย & ผลการทำงาน ผู้ใช้ป้อน PANICH ดังนั้น name = “PANICH” หากเป็นตัวแปรแบบ Array ที่ไม่มีการอ้างแบบ index แล้ว complier จะมองเป็นตำแหน่งหน่วยความจำ

24 ถ้าอ้างอิงอินเด็ก ต้องใส่เครื่องหมาย &
ตัวแปร name ตัวอย่าง N 1 2 3 4 5 ถ้าอ้างอิงอินเด็ก ต้องใส่เครื่องหมาย & char name[10]; scanf(“%c”, &name[2]); ผลการทำงาน ผู้ใช้ป้อน N ดังนั้น name[2] = “N”

25 1.3 การเขียนคำสั่งรับข้อมูล
ตัวอย่าง char name[10]; Array แบบไม่มี index เช่น name; Array แบบมี index เช่น name[5]; main() { char position[10]; int radius; scanf(“%s”, position); scanf(“%c”, &position[1]); scanf(“%d”, &radius); } หากเป็นตัวแปรแบบ Array ที่ไม่มีการอ้างแบบ index แล้ว complier จะมองเป็นตำแหน่งหน่วยความจำ

26 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
#include <stdio.h> void main() { int x ; scanf("%d",&x); printf("%d %c", x, x); return ; } ผลการทำงาน 66 66 B 65 65 A

27 1.3 การเขียนคำสั่งรับข้อมูล
การกำหนด Format String 1. รับข้อมูลทุกชนิด 2. การเลือกรับเฉพาะข้อมูลที่ต้องการ 2.1 รับเฉพาะข้อมูลที่ระบุ : ให้อ่านเฉพาะ character ที่อยู่ในรายการที่กำหนด (ใน [ ] ) 2.2 ไม่รับข้อมูลที่ระบุ : อ่านทุก characters ยกเว้น character ที่อยู่ในรายการที่กำหนด (ใน [ ] )

28 1.3 การเขียนคำสั่งรับข้อมูล
Format รับข้อมูลที่ระบุรูปแบบ scanf(“%[รายการ characters]”,ตำแหน่งหน่วยความจำที่เก็บตัวแปร array) เช่น scanf(“%[a-z,A-Z]”, mystr); ถ้าผู้ใช้ป้อน AbzC2!aHby ในตัวแปร mystr จะมีข้อมูล AbzC จะแสดงเก็บเฉพาะส่วนที่อยู่ก่อนหน้าเลข 2 เท่านั้น

29 Try it ! Input : Department : Business Information System
scanf(“%[a-zA-Z]”,dep); Output : Department เพราะ input มีเว้นวรรค

30 Try it ! Input : Department : Business Information System
scanf(“%[0-9]”,dep); Output : ไม่มีข้อมูลที่ตรงกับเงื่อนไข เพราะ input เป็นตัวอักษรทั้งหมด ไม่มีตัวเลข

31 Try it ! Input : Department : Business Information System 56
scanf(“%[0-9a-z]”,dep); Output : ไม่มีข้อมูลที่ตรงกับเงื่อนไข เพราะ input ตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่

32 Try it ! Input : Department : Business Information System 56
scanf(“%[0-9a-zA-Z]”,dep); Output : Department

33 Try it ! Input : Department : Business Information System 56
scanf(“%[a-zA-Z]%[0-9]”,dep); Output : Department

34 1.3 การเขียนคำสั่งรับข้อมูล
Format การไม่รับข้อมูลที่ระบุ ใช้ในการกำหนดตัวอักษรที่ไม่ต้องการรับในข้อมูลแบบ character string เท่านั้น ใช้เครื่องหมาย ^ mystr); ถ้าผู้ใช้ป้อน ในตัวแปร mystr จะมีข้อมูล Abz?C2

35 Try it ! Input : Department : Business Information System 56
scanf(“%[^0-9]”,dep); Output : Department : Business Information System

36 Try it ! Input : Department : Business Information System 56
scanf(“%[^a-z]”,dep); Output : D

37 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
#include <stdio.h> void main() { char s1[80], s2[80] ; scanf("%[0-9]%[a-z,A-Z]", s1, s2); printf("%s %s", s1, s2); } ผลการทำงาน 1234RMUT 1234 RMUT RMUT1234 RMUT

38 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
#include <stdio.h> void main() { char s1[80], s2[80] ; scanf("%[^0-9]%[^a-zA-Z\n]", s1, s2); printf("%s %s", s1, s2); } ผลการทำงาน RMUT1234 RMUT 1234 1234RMUT 1234

39 1.3 การเขียนคำสั่งรับข้อมูล ตัวอย่าง
#include <stdio.h> void main() { float b,h,area ; printf("Input Base :> "); scanf("%f",&b); printf("Input Height :> "); scanf("%f",&h); area = 0.5*b*h ; printf("Area of triangle is %5.2f",area); } Input Base :> 12.0 Input Height :> 6.0 Area of triangle is 36.00 Input Base :> 3.2 Input Height :> 1.2 Area of triangle is 1.92

40 2.1 หลักการทำงานการแสดงผลข้อมูล

41 2.1 คำสั่งสำหรับการแสดงผลข้อมูล
printf(ข้อความ หรือ control หรือ format, variable list) ส่วนที่ใส่ข้อความที่จะแสดงผล และส่วนควบคุมลักษณะการแสดงผล รวมทั้งบอกตำแหน่งที่ตัวแปรจะแสดงผล ตัวแปรที่ต้องการแสดงผล ถ้าเป็นข้อความไม่จำเป็นต้องมีส่วนนี้

42 2.2 การเขียนคำสั่งแสดงผลข้อมูล
#include <stdio.h> void main() { printf("Welcome to RMUTI "); printf("Department of Information System"); } ผลการทำงาน Welcome to RMUTI Department of Information System

43 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
Backslash n ขึ้นบรรทัดใหม่ #include <stdio.h> void main() { printf("Welcome to RMUTI\n"); printf("Department of Information System"); } ผลการทำงาน Welcome to RMUTI Department of Information System

44 2.2 การเขียนคำสั่งแสดงผลข้อมูล การใช้ Control ด้วย backslash (\)
จากตัวอย่างที่แล้วจะเห็นได้ว่าหากต้องการให้แสดงผลข้ามบรรทัดจะต้องเพิ่ม \n ลงไป เรียกว่า backslash นอกจากนี้ยังมีตัวอื่นๆ เช่น \n ขึ้นบรรทัดใหม่ \t เว้นระยะ 1 tab \xhh ใส่ตัวอักษร hh เมื่อ hh เป็นเลขฐานสิบหก เช่น 41 = 'A', 42 = 'B' \a ส่งเสียงปิ้บ \\ แสดง \ \" แสดง " อักขระควบคุม การแสดงผล

45 2.2 การเขียนคำสั่งแสดงผลข้อมูล รหัสควบคุมลักษณะ (Format Code)
พิมพ์จำนวนเต็มฐานสิบ %u พิมพ์เลขไม่มีเครื่องหมาย %f พิมพ์เลขทศนิยม %e พิมพ์ในรูปจำนวนจริงยกกำลัง %c พิมพ์ตัวอักษรตัวเดียว %s พิมพ์ชุดตัวอักษร (String) %% พิมพ์เครื่องหมาย % %o พิมพ์เลขฐานแปด %x พิมพ์เลขฐานสิบหก

46 2.2 การเขียนคำสั่งแสดงผลข้อมูล การแสดงผลโดยใช้ Format Code
รูปแบบคำสั่ง printf(“format code”, variable list) int number = 50; printf(“%d”,number); Format Code

47 2.2 การเขียนคำสั่งแสดงผลข้อมูล การแสดงผลโดยใช้ Format Code
รูปแบบคำสั่ง printf(“ข้อความ format code”, variable list) int number = 50; printf(“my number is %d”,number); my number is 50 Format Code String

48 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
รูปแบบคำสั่ง printf(“ข้อความ Control Format Code”, variable list) my salary = thB float salary,tax = 0.05; salary = – (50000 * 0.05); printf(“COMPANY \n my salary = %f thB”,salary); String Format Code Control String

49 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
รูปแบบคำสั่ง printf(“ข้อความ Control Format Code”, var1,var2) tax = my salary = thB float salary,tax = 0.05; salary = – (50000 * 0.05); printf(“tax = %f my salary = %f thB”,tax,salary);

50 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
รูปแบบคำสั่ง printf(“ข้อความ Control Format Code”, value,var1) tax = my salary = thB float salary,tax = 0.05; salary = – (50000 * 0.05); printf(“tax = %f my salary = %f thB”,0.05,salary);

51 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
รูปแบบคำสั่ง printf(“ข้อความ Control Format Code”, String,var1) PATCHARA salary = thB float salary,tax = 0.05; salary = – (50000 * 0.05); printf(“%s salary = %f thB”, “ PATCHARA”,salary);

52 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
โปรแกรม #include <stdio.h> void main() { int a = 12 printf("%d %5.2f %s", a, 20.3, "Example"); } ผลการทำงาน Example %d %5.2f %s คือ รหัสควบคุมลักษณะ

53 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
#include <stdio.h> void main() { int num = 32; printf(num); } ในภาษา C มีข้อกำหนดไว้ว่าการแสดงค่าของตัวแปร หรือ นิพจน์ จะต้องมีการใส่รหัสควบคุมลักษณะ (Format Code) เพื่อให้ตัวแปลภาษา C นำค่าของตัวแปรหรือนิพจน์มาแสดงค่าได้อย่างถูกต้อง

54 2.2 การเขียนคำสั่งแสดงผลข้อมูล รหัสควบคุมลักษณะ (Format Code)
พิมพ์จำนวนเต็มฐานสิบ %u พิมพ์เลขไม่มีเครื่องหมาย %f พิมพ์เลขทศนิยม %e พิมพ์ในรูปจำนวนจริงยกกำลัง %c พิมพ์ตัวอักษรตัวเดียว %s พิมพ์ชุดตัวอักษร (String) %% พิมพ์เครื่องหมาย % %o พิมพ์เลขฐานแปด %x พิมพ์เลขฐานสิบหก

55 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
#include <stdio.h> void main() { int x ; x=65 ; printf("%d %c %u %o %x", x, x, -1, x, x); return ; } ผลการทำงาน 65 A 65535 คือเลข -1 ของตัวแปรแบบ int

56 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง การจัดหน้าจอด้วยรหัสควบคุมลักษณะ
ในกรณีที่ต้องการจัดการหน้าจอแสดงผลสามารถใช้ตัวเลขร่วมกันกับรหัสควบคุมได้ เช่น %5d หมายถึง แสดงตัวเลขจำนวนเต็ม 5 หลักอย่างต่ำ %5.2f หมายถึง แสดงตัวเลขจำนวนจำนวน 5 หลักอย่างต่ำ และทศนิยม 2 ตำแหน่ง ค่า %d %5d 12 ___12 123 __123 1234 _1234 12345 ค่า %f %5.2f 1.2 _1.20 1.234 _1.23 12.345 12.35 123.46

57 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
จากส่วนของโปรแกรม yards = 8; feet = yards * 3; printf(“%d yards is”, yards); printf(“%d feet \n”, feet); ผลการทำงาน คือ ? 8 yards is24 feet 8 yards is24 feet

58 2.2 การเขียนคำสั่งแสดงผลข้อมูล ตัวอย่าง
จากส่วนของโปรแกรม yards = 8; feet = yards * 3; printf(“%d yards is \n”, yards); printf(“%d feet”, feet); ผลการทำงาน คือ ? 8 yards is 24 feet 8 yards is 24 feet

59 Try it ! #include<stdio.h> void main(){ float num=10;
printf("%f",num); } ผลการทำงาน

60 Try it ! #include<stdio.h> void main(){ float num=10;
printf("%.3f",num); } ผลการทำงาน 10.000

61 Try it ! #include<stdio.h> void main(){ float num=10;
printf("%7.3f",num); } ผลการทำงาน _10.000

62 Try it ! #include<stdio.h> void main(){ char dep[5]="BIS";
printf("University: %s \n Department: %s","KKC.RMUTI",dep); } ผลการทำงาน University: KKC.RMUTI Department BIS

63 Try it ! #include<stdio.h> void main(){ char dep[5]="BIS";
int money; money = 258; printf("Department: %s money: %5d",dep,money); } ผลการทำงาน Department BIS money _ _ 258

64 Try it ! #include<stdio.h> void main(){ char dep[5]="BIS";
int money; money = 258; printf("Department: %s money: %5d",dep,money); } ผลการทำงาน Department BIS money _ _ 258


ดาวน์โหลด ppt บทที่ 4 การรับและแสดงผลข้อมูล

งานนำเสนอที่คล้ายกัน


Ads by Google