บทที่ 1 แนะนำภาษาซี (Introduction to C Pro

Download Report

Transcript บทที่ 1 แนะนำภาษาซี (Introduction to C Pro

การเขียนโปรแกรมด้ วยคาสั่ งเบือ้ งต้ น
1
การรั บข้ อมูล
คาสั่ง
scanf ( “รูปแบบ” , อาร์ กิวเมนต์ 1, อากิวเมนต์ 2,..) ;
เป็ นฟั งก์ ชันใช้ รับข้ อมูลมาเก็บในตัวแปร
ตัวแปรทุกตัวต้ องมีเครื่องหมาย & นาหน้ ายกเว้ นตัวแปรชุด
การรับข้ อมูลต้ องกาหนด รูปแบบ (Format code) ของข้ อมูล
ให้ สอดคล้ องกับชนิดของข้ อมูลที่รับเข้ า
2
 รหัสรูปแบบ (formal code)
%d
%ld
%c
%s
%f
แสดงค่าจานวนเต็มชนิด integer
แสดงค่าจานวนเต็มชนิด long
แสดงค่าที่เป็ นตัวอักขระ
แสดงค่าที่เป็ นสายอักขระ (string)
แสดงค่าที่เป็ นตัวเลขมีจดุ ทศนิยม
3
รูปแบบ (Format code)ของการแสดงผล
รู ปแบบ
d, i
ld
u
O
x, X
c
s
f
lf
คาอธิบายการใช้ งาน
ข้ อมูลจานวนเต็มและแปลงข้ อมูลเป็ น int
ข้ อมูลจานวนเต็มและแปลงข้ อมูลเป็ น long
ข้ อมูลเป็ นจานวนเต็มบวกและแปลงข้ อมูลเป็ น unsigned
ข้ อมูลเป็ นเต็มบวกเลขฐาน 8 และแปลงข้ อมูลเป็ น unsigned
ข้ อมูลเป็ นเต็มบวกเลขฐาน 16 และแปลข้ อมูลเป็ น unsigned
ข้ อมูลเป็ นอักขระ 1 ตัว
ข้ อมูลเป็ นสตริง
ข้ อมูลทศนิยมและแปลงข้ อมูลเป็ น float
ข้ อมูลทศนิยมและแปลงข้ อมูลเป็ น double
4
การจัดรู ปแบบการรับข้ อมูล
ต้องมีเครื่ องหมาย % และ Format code อยูใ่ น
“ ” เช่น
“ % d %s ” ให้กบั ตัวแปรที่ใช้เก็บข้อมูล
การจัดเครื่ องหมายและรู ปแบบต้องสอดคล้องกัน
การจัดเครื่ องหมายและรู ปแบบเรี ยงลาดับกัน
5
เช่ น
รั บข้ อมูลเดือนและปี เป็ นจานวนเต็ม
ใช้ คาสั่ง
int month, year;
scanf (“%d %d”, &month, &year);
6
ตัวอย่ างการรับข้ อมูล
scanf (“%d/%d/%d”, &day, &month, &year);
ข้ อมูลที่จะป้อนเข้ าสู่ระบบ
20/7/2001
เราสามารถกาหนดขนาดของข้ อมูลได้ เช่ น
scanf(“%2d%2d%4d”, &day, &month, &year);
ข้ อมูลที่จะป้อนเข้ าสู่ระบบคือ
20072001
7
ฟังก์ชนั มาตรฐานใช้แสดงผลทางจอภาพ
printf
printf (สายอักขระ) ;
printf (“รู ปแบบ”,อากิวเมนต์ 1,อากิวเมนต์ 2,.. ) ;
หรือ
Controlต้ องอยู่ใน “ ” ซึ่งเป็ นข้ อความ/รูปแบบ(Format
code) หน้ าทีข่ องฟังก์ชันคือ ส่ งข้ อความหรือส่ งตัวแปรมาพิมพ์ค่า
โดยส่ งผ่ านทางอากิวเมนต์ และต้ องสอดคล้องกับรูปแบบทีก่ าหนด
8
ตัวอย่ าง
printf
รูปแบบ printf (สายอักขระ);
printf (“รู ปแบบ”,อากิวเมนต์ 1,อากิวเมนต์ 2,.. ) ;
เช่น printf ("One = 1 two = 2") ;
printf ("One = %d two = %d", 1, 2) ;
9
 รหัสรูปแบบ (formal code)
%d
แสดงค่าจานวนเต็มชนิด integer
%ld
แสดงค่าจานวนเต็มชนิด long
%c
แสดงค่าที่เป็ นตัวอักขระ
%s
แสดงค่าที่เป็ นสายอักขระ (string)
%f
แสดงค่าที่เป็ นตัวเลขมีจดุ ทศนิยม
ตัวอย่าง
printf(“One = %d Two = %d”, 1,2);
ผลลัพธ์ทางจอภาพ
One = 1
Two = 2
10
รูปแบบ (Format code)ของการแสดงผล
รู ปแบบ
d, i
ld
u
O
x, X
c
s
f
lf
คาอธิบายการใช้ งาน
ข้ อมูลจานวนเต็มและแปลงข้ อมูลเป็ น int
ข้ อมูลจานวนเต็มและแปลงข้ อมูลเป็ น long
ข้ อมูลเป็ นจานวนเต็มบวกและแปลงข้ อมูลเป็ น unsigned
ข้ อมูลเป็ นเต็มบวกเลขฐาน 8 และแปลงข้ อมูลเป็ น unsigned
ข้ อมูลเป็ นเต็มบวกเลขฐาน 16 และแปลข้ อมูลเป็ น unsigned
ข้ อมูลเป็ นอักขระ 1 ตัว
ข้ อมูลเป็ นสตริง
ข้ อมูลทศนิยมและแปลงข้ อมูลเป็ น float
ข้ อมูลทศนิยมและแปลงข้ อมูลเป็ น double
11
เช่ น
char name[ ] = “Mickey”;
int age = 20;
printf(“%s is %d years old.”, name, age);
ผลลัพธ์ ท่ ไี ด้ คือ
Mickey is 20 years old.
12
ตัวอย่ างพิมพ์ ข้อความใด ๆ ออกทางจอภาพ
printf(“Good morning.”);
ผลลัพธ์ ท่ ไี ด้ คือ
Good morning.
13
ตัวอย่ าง การแทนที่ตัวแปรที่เกิดจากการคานวณ
int x, y;
x = 7;
y = 2;
printf(“The sum of %d and %d is %d\n”, x, y, x+y);
ผลลัพธ์ ท่ ไี ด้ คือ
The sum of 7 and 2 is 9
_
14
ฟั งก์ ชัน printf( ) ใช้ ในการแสดงผลออกทางจอภาพ
เราสามารถ จัดผลลัพธ์ ให้ แสดงในรู ปแบบ ที่ต้องการได้
เช่ น
printf(“The sum of %5d and %5d is %5d\n”, a, b, a+b);
ผลลัพธ์ ของการทางานคือ
The sum of 7 and
_
2 is
9
15
การใช้ เครื่องหมายจัดรู ปแบบการแสดงผล
เครื่ องหมายลบ ใช้พิมพ์ขอ้ มูลชิดขอบซ้ายของฟิ ลด์ ถ้าไม่
ระบุ จะชิดขอบขวา
สตริ งตัวเลข ระบุความกว้างของฟิ ลด์
จุดทศนิยม กาหนดความกว้างของทศนิยม หรื อจานวน
อักขระที่ตอ้ งการนาไปแสดง
เครื่ องหมายดังกล่าวข้างต้นต้องอยูร่ ะหว่าง % และ
Format code
16
ตัวอย่ าง
float x=43.34, y=2.231;
printf(“Minus %f with %f, answer is %f”, x, y, x-y);
ผลลัพธ์ ของการทางานคือ
Minus 43.340000 with 2.231000, answer is 41.109000
แต่ หากกาหนด
printf(“Minus %4.2f with %4.2f, answer is %4.2f”);
ผลลัพธ์ ของการทางานคือ
Minus 43.34 with 2.23, answer is 41.11_
17
การจัดรู ปแบบเมื่อใช้ สัญลักษณ์ – ประกอบในรู ปแบบทา
ให้ เกิดการบังคับให้ การแสดงผลชิดทางด้ านซ้ ายมือ
ตัวอย่ าง แสดงตัวอย่ างการจัดรูปแบบของการ
แสดงผล
#include <stdio.h>
#include <conio.h>
void main( ) {
clrscr( );
18
printf("\n[%s]", "Computer");
printf("\n[%2s]", "Computer");
printf("\n[%.3s]", "Computer");
printf("\n[%10s]", "Computer");
printf("\n[%-10s]", "Computer");
printf("\n[%-10.3s]", "Computer");
printf("\n");
[Computer]
[Computer]
[Com]
[ Computer]
[Computer ]
[Com
]
19
printf("\n[%d]", 100);
printf("\n[%.2d]", 100);
printf("\n[%10d]", 100);
printf("\n[%-10d]", 100);
printf("\n[%-10.2d]", 100);
printf("\n[%f]", 32.5762);
printf("\n[%.2f]", 32.5762);
printf("\n[%10.2f]", 32.5762);
printf("\n[%-10.2f]", 32.5762);
[100]
[100]
[
100]
[100
]
[100
]
[32.576200]
[32.58]
[
32.58]
[32.58
]
20
ตัวอย่ าง การรับข้ อมูลเพื่อนามาแสดงผล
#include <stdio.h>
void main( ) {
char name[100];
printf("What is your name ?\n");
scanf("%s", &name);
printf("Very glad to know you, ");
printf("%s.",name);
}
ผลลัพธ์ ของการทางาน
What is your name ?
Willy
Very glad to know you, Willy.
21
ฟังก์ชั่น getch()
 ฟังก์ชั่น getch() เป็ นฟังก์ชนั่ หยุดรับอักษรทางคียบ์ อร์ ด 1 ตัว และไม่
แสดงผลทางจอภาพ
#include <conio.h>
void main( ) {
clrscr( );
printf (“Good morning “);
getch();
}
22
แบบฝึ กหัด
 เขียนโปรแกรมรับชื่อ – นามสกุล เพศ วันเกิด ที่อยู(่ จังหวัด) จากนั้น
แสดงในแนวนอน
 หาพื้นที่สามเหลี่ยม โดยใช้สูตร
พ.ท. สามเหลี่ยม = ½ * ฐาน * สูง
 เขียนโปรแกรมรับตัวเลขมา 5 ค่าแล้วบอกค่าเฉลี่ย เพื่อแสดงผลทาง
จอภาพ
23