Lập trình căn bản - Phần 2: Giới thiệu về một ngôn ngữ lập trình - Ngôn ngữ lập trình C - Chương 3: Các câu lệnh đơn trong C

Học xong chương này,sinh viên sẽnắm rõ các vấn đềsau:

ƒ Câu lệnh là gì?

ƒ Cáchsửdụng câu lệnh gán giá trịcủa một biểu thức cho một biến.

ƒ Cáchsửdụng lệnh scanf đểnhập giá trịcho biến.

ƒ Cáchsửdụng lệnh printf đểxuất giá trịcủa biểu thức lên màn hình và cách định

dạng dữliệu.

pdf8 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 2097 | Lượt tải: 1download
Tóm tắt nội dung Lập trình căn bản - Phần 2: Giới thiệu về một ngôn ngữ lập trình - Ngôn ngữ lập trình C - Chương 3: Các câu lệnh đơn trong C, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 thức 
chuyển đổi kiểu một cách tường minh. Cú pháp của phép toán này như sau: 
 (Tên kiểu) 
 Chuyển đổi kiểu của thành kiểu mới . Chẳng 
hạn như: 
 float f; 
 f = (float) 10 / 4; /* f lúc này là 2.5*/ 
 Chú ý: 
- Khi một biểu thức được gán cho một biến thì giá trị của nó sẽ thay thế giá trị 
cũ mà biến đã lưu giữ trước đó. 
- Trong câu lệnh gán, dấu = là một toán tử; do đó nó có thể được sử dụng là một 
thành phần của biểu thức. Trong trường hợp này giá trị của biểu thức gán chính là giá 
trị của biến. 
Ví dụ: 
 int x, y; 
 y = x = 3; /* y lúc này cùng bằng 3*/ 
 - Ta có thể gán trị cho biến lúc biến được khai báo theo cách thức sau: 
 = ; 
 Ví dụ: int x = 10, y=x; 
Trang 37 
Lập trình căn bản 
II.2. Lệnh nhập giá trị từ bàn phím cho biến (hàm scanf) 
 Là hàm cho phép đọc dữ liệu từ bàn phím và gán cho các biến trong chương trình khi 
chương trình thực thi. Trong ngôn ngữ C, đó là hàm scanf nằm trong thư viện stdio.h. 
Cú pháp: 
scanf(“Chuỗi định dạng”, địa chỉ của các biến); 
Giải thích: 
 - Chuỗi định dạng: dùng để qui định kiểu dữ liệu, cách biểu diễn, độ rộng, số 
chữ số thập phân... Một số định dạng khi nhập kiểu số nguyên, số thực, ký tự. 
Định dạng Ý nghĩa 
%[số ký số]d Nhập số nguyên có tối đa 
%[số ký số] f Nhập số thực có tối đa tính cả dấu chấm 
%c Nhập một ký tự 
Ví dụ: 
%d Nhập số nguyên 
%4d Nhập số nguyên tối đa 4 ký số, nếu nhập nhiều hơn 4 ký số thì chỉ nhận 
được 4 ký số đầu tiên 
%f Nhập số thực 
%6f Nhập số thực tối đa 6 ký số (tính luôn dấu chấm), nếu nhập nhiều hơn 6 
ký số thì chỉ nhận được 6 ký số đầu tiên (hoặc 5 ký số với dấu chấm) 
- Địa chỉ của các biến: là địa chỉ (&) của các biến mà chúng ta cần nhập giá trị 
cho nó. Được viết như sau: &. 
Ví dụ: 
scanf(“%d”,&bien1);/*Doc gia tri cho bien1 co kieu nguyen*/ 
scanf(“%f”,&bien2); /*Doc gia tri cho bien2 co kieu thưc*/ 
scanf(“%d%f”,&bien1,&bien2); 
/*Doc gia tri cho bien1 co kieu nguyen, bien2 co kieu thuc*/ 
scanf(“%d%f%c”,&bien1,&bien2,&bien3); 
/*bien3 co kieu char*/ 
Lưu ý: 
o Chuỗi định dạng phải đặt trong cặp dấu nháy kép (“”). 
o Các biến (địa chỉ biến) phải cách nhau bởi dấu phẩy (,). 
o Có bao nhiêu biến thì phải có bấy nhiêu định dạng. 
o Thứ tự của các định dạng phải phù hợp với thứ tự của các biến. 
o Để nhập giá trị kiểu char được chính xác, nên dùng hàm fflush(stdin) để loại bỏ 
các ký tự còn nằm trong vùng đệm bàn phím trước hàm scanf(). 
o Để nhập vào một chuỗi ký tự (không chứa khoảng trắng hay kết thúc bằng 
khoảng trắng), chúng ta phải khai báo kiểu mảng ký tự hay con trỏ ký tự, sử 
dụng định dạng %s và tên biến thay cho địa chỉ biến. 
o Để đọc vào một chuỗi ký tự có chứa khoảng trắng (kết thúc bằng phím Enter) 
thì phải dùng hàm gets(). 
Ví dụ: 
int biennguyen; 
float bienthuc; 
char bienchar; 
char chuoi1[20], *chuoi2; 
Trang 38 
Lập trình căn bản 
Nhập giá trị cho các biến: 
scanf(“%3d”,&biennguyen); 
Nếu ta nhập 1234455 thì giá trị của biennguyen là 3 ký số đầu tiên (123). Các 
ký số còn lại sẽ còn nằm lại trong vùng đệm. 
scanf(“%5f”,&bienthuc); 
Nếu ta nhập 123.446 thì giá trị của bienthuc là 123.4, các ký số còn lại sẽ còn 
nằm trong vùng đệm. 
scanf(“%2d%5f”,&biennguyen, &bienthuc); 
Nếu ta nhập liên tiếp 2 số cách nhau bởi khoảng trắng như sau: 1223 3.142325 
 - 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen. 
 - 2 ký số tiếp theo trước khoảng trắng (23) sẽ được đọc vào cho bienthuc. 
scanf(“%2d%5f%c”,&biennguyen, &bienthuc,&bienchar) 
Nếu ta nhập liên tiếp 2 số cách nhau bởi khoảng trắng như sau: 12345 
3.142325: 
 - 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen. 
 - 3 ký số tiếp theo trước khoảng trắng (345) sẽ được đọc vào cho bienthuc. 
 - Khoảng trắng sẽ được đọc cho bienchar. 
Nếu ta chỉ nhập 1 số gồm nhiều ký số như sau: 123456789: 
 - 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen. 
 - 5 ký số tiếp theo (34567) sẽ được đọc vào cho bienthuc. 
 - bienchar sẽ có giá trị là ký số tiếp theo ‘8’. 
scanf(“%s”,chuoi1); hoặc scanf(“%s”,chuoi2) 
Nếu ta nhập chuỗi như sau: Nguyen Van Linh ↵ thì giá trị của biến chuoi1 hay 
chuoi2 chỉ là Nguyen . 
scanf(“%s%s”,chuoi1, chuoi2); 
Nếu ta nhập chuỗi như sau: Duong Van Hieu ↵ thì giá trị của biến chuoi1 là 
Duong và giá trị của biến chuoi2 là Van. 
Vì sao như vậy? C sẽ đọc từ đầu đến khi gặp khoảng trắng và gán giá trị 
cho biến đầu tiên, phần còn lại sau khoảng trắng là giá trị của các biến tiếp theo. 
gets(chuoi1); 
Nếu nhập chuỗi : Nguyen Van Linh ↵ thì giá trị của biến chuoi1 là Nguyen Van 
Linh 
II.3. Lệnh xuất giá trị của biểu thức lên màn hình (hàm printf) 
 Hàm printf (nằm trong thư viện stdio.h) dùng để xuất giá trị của các biểu thức 
lên màn hình. 
Cú pháp: 
printf(“Chuỗi định dạng ”, Các biểu thức); 
Giải thích: 
- Chuỗi định dạng: dùng để qui định kiểu dữ liệu, cách biểu diễn, độ rộng, số 
chữ số thập phân... Một số định dạng khi đối với số nguyên, số thực, ký tự. 
Định dạng Ý nghĩa 
Trang 39 
Lập trình căn bản 
%d Xuất số nguyên 
%[.số chữ số thập phân] f Xuất số thực có theo quy tắc 
làm tròn số. 
%o Xuất số nguyên hệ bát phân 
%x Xuất số nguyên hệ thập lục phân 
%c Xuất một ký tự 
%s Xuất chuỗi ký tự 
%e hoặc %E hoặc %g 
hoặc %G 
Xuất số nguyên dạng khoa học (nhân 10 mũ x) 
Ví dụ 
%d In ra số nguyên 
%4d In số nguyên tối đa 4 ký số, nếu số cần in nhiều hơn 4 ký số thì in hết 
%f In số thực 
%6f In số thực tối đa 6 ký số (tính luôn dấu chấm), nếu số cần in nhiều hơn 6 ký 
số thì in hết 
%.3f In số thực có 3 số lẻ, nếu số cần in có nhiều hơn 3 số lẻ thì làm tròn. 
 - Các biểu thức: là các biểu thức mà chúng ta cần xuất giá trị của nó lên màn 
hình, mỗi biểu thức phân cách nhau bởi dấu phẩy (,). 
Ví dụ: 
include 
int main(){ 
int bien_nguyen=1234, i=65; 
float bien_thuc=123.456703; 
printf(“Gia tri nguyen cua bien nguyen =%d\n”,bien_nguyen); 
printf(“Gia tri thuc cua bien thuc =%f\n”,bien_thuc); 
printf(“Truoc khi lam tron=%f \n 
Sau khi lam tron=%.2f”,bien_thuc, bien_thuc); 
 return 0; 
} 
Kết quả in ra màn hình như sau: 
Nếu ta thêm vào dòng sau trong chương trình: 
printf(“\n Ky tu co ma ASCII %d la %c”,i,i); 
Kết quả ta nhận được thêm: 
printf(“ So nguyen la %d \n So thuc la %f”,i, (float)i ); 
printf(“\n So thuc la %f \n So nguyen la %d”,bien_thuc, 
(int)bien_thuc); 
printf(“\n Viet binh thuong =%f \n Viet kieu khoa 
hoc=%e”,bien_thuc, bien_thuc); 
Kết quả in ra màn hình: 
Trang 40 
Lập trình căn bản 
Lưu ý: Đối với các ký tự điều khiển, ta không thể sử dụng cách viết thông 
thường để hiển thị chúng. 
Ký tự điều khiển là các ký tự dùng để điều khiển các thao tác xuất, nhập 
dữ liệu. 
 Một số ký tự điều khiển được mô tả trong bảng: 
Ký tự 
điều 
khiển 
Giá trị 
thập lục 
phân 
Ký tự được hiển 
thị 
Ý nghĩa 
\a 0x07 BEL Phát ra tiếng chuông 
\b 0x08 BS Di chuyển con trỏ sang trái 1 ký tự 
và xóa ký tự bên trái (backspace) 
\f 0x0C FF Sang trang 
\n 0x0A LF Xuống dòng 
\r 0x0D CR Trở về đầu dòng 
\t 0x09 HT Tab theo cột (giống gõ phím Tab) 
\\ 0x5C \ Dấu \ 
\’ 0x2C ‘ Dấu nháy đơn (‘) 
\” 0x22 “ Dấu nháy kép (“) 
\? 0x3F ? Đấu chấm hỏi (?) 
\ddd ddd Ký tự có mã ACSII trong hệ bát phân là số ddd 
\xHHH oxHHH Ký tự có mã ACSII trong hệ thập lục phân là HHH 
Ví dụ: 
#include 
#include 
int main () 
{ clrscr(); 
 printf("\n Tieng Beep \a"); 
 printf("\n Doi con tro sang trai 1 ky tu\b"); 
 printf("\n Dau Tab \tva dau backslash \\"); 
 printf("\n Dau nhay don \' va dau nhay kep \""); 
 printf("\n Dau cham hoi \?"); 
 printf("\n Ky tu co ma bat phan 101 la \101"); 
 printf("\n Ky tu co ma thap luc phan 41 la \x041"); 
 printf("\n Dong hien tai, xin go enter"); 
 getch(); 
 printf("\rVe dau dong"); 
 getch(); 
 return 0; 
} 
Trang 41 
Lập trình căn bản 
Kết quả trước khi gõ phím Enter: 
Kết quả sau khi gõ phím Enter: 
III. BÀI TẬP 
III.1. Mục đích yêu cầu 
Làm quen và nắm vững các lệnh đơn giản (printf, scanf), các kiểu dữ liệu chuẩn 
(int, long, char, float...), các phép toán và các hàm chuẩn của ngôn ngữ lập trình C. 
Thực hiện viết các chương trình hoàn chỉnh sử dụng các lệnh đơn giản và các kiểu dữ 
liệu chuẩn đó. 
III.2. Nội dung 
1. Viết chương trình in lên màn hình một thiệp mời dự sinh nhật có dạng: 
 ******************************************* 
 THIEP MOI 
Thân mời bạn : Nguyễn Mạnh Hùng 
Tới dự lễ sinh nhật của mình 
Vào lúc 19h ngày 12/10/2005 
Tại 05/42 Trần Phú - Cần Thơ 
Rất mong được đón tiếp ! 
 Hồ Thu Hương 
 ******************************************* 
2. Viết chương trình nhập vào bán kính r của một hình tròn. Tính chu vi và diện tích 
của hình tròn theo công thức : 
Chu vi CV = 2*Pi*r 
Diện tích S = Pi*r*r 
In các kết quả lên màn hình 
3. Viết chương trình nhập vào độ dài 3 cạnh a, b, c của một tam giác. Tính chu vi và 
diện tích của tam giác theo công thức: 
Chu vi CV = a+b+c 
Trang 42 
Lập trình căn bản 
 Diện tích S = sqrt(p*(p-a)*(p-b)*(p-c)) 
Trong đó: p=CV/2 
In các kết quả lên màn hình 
4. Viết chương trình tính logax với a, x là các số thực nhập vào từ bàn phím, và x>0, 
a>0, a != 1.( dùng logax=lnx/lna) 
5. Viết chương trình nhập vào tọa độ của hai điểm (x1, y1) và (x2, y2) 
a) Tính hệ số góc của đường thẳng đi qua hai điểm đó theo công thức: 
 Hệ số góc = (y2 - y1) /(x2 - x1) 
b) Tính khoảng cách giữa hai điểm theo công thức: 
Khoảng cách = ( ) ( )212212 xxyy −+− 
6. Viết chương trình nhập vào một ký tự: 
a) In ra mã Ascii của ký tự đó. 
b) In ra ký tự kế tiếp của nó. 
7. Viết chương trình nhập vào các giá trị điện trở R1, R2, R3 của một mạch điện : 
Tính tổng trở theo công thức: 
321
1111
RRRR
++= 
8. Viết chương trình nhập vào điểm ba môn Toán, Lý, Hóa của một học sinh. In ra 
điểm trung bình của học sinh đó với hai số lẻ thập phân. 
9. Viết chương trình nhập vào ngày, tháng, năm. In ra ngày tháng năm theo dạng 
dd/mm/yy. (dd: ngày, mm: tháng, yy : năm. Ví dụ: 20/11/99 ) 
10. Viết chương trình đảo ngược một số nguyên dương có đúng 3 chữ số. 
Trang 43 

File đính kèm:

  • pdfPhan2Chuong3.pdf