Bài giảng Ngôn ngữ lập trình C và C+ - Bài 1: Giới thiệu - Đỗ Đăng Khoa

Ngôn ngữ lập trình

- Ngôn ngữ được thiết kế và chuẩn hóa (từ khóa và cú pháp)

để truyền các chỉ thị cho máy tính.

- Dùng để tạo ra các chương trình điều khiển máy tính hoặc

mô tả các thuật toán

pdf 53 trang yennguyen 2940
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngôn ngữ lập trình C và C+ - Bài 1: Giới thiệu - Đỗ Đăng Khoa", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Ngôn ngữ lập trình C và C+ - Bài 1: Giới thiệu - Đỗ Đăng Khoa

Bài giảng Ngôn ngữ lập trình C và C+ - Bài 1: Giới thiệu - Đỗ Đăng Khoa
4/20/2015
1
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Ngôn ngữ lập trình C và C++
Bài 1: Giới thiệu
TS. Đỗ Đăng Khoa
Bộ môn Cơ học Ứng dụng
Viện Cơ Khí
4/20/2015
2
Ngôn ngữ lập trình
- Ngôn ngữ được thiết kế và chuẩn hóa (từ khóa và cú pháp) 
để truyền các chỉ thị cho máy tính.
- Dùng để tạo ra các chương trình điều khiển máy tính hoặc
mô tả các thuật toán
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
4/20/2015
3
Ngôn ngữ lập trình (tiếp)
Ngôn ngữ máy Hợp ngữ Ngôn ngữ cấp cao
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
4/20/2015
4
Ngôn ngữ lập trình (tiếp)
• Ngôn ngữ máy
Máy có thể trực tiếp hiểu và thực hiện, chỉ gồm những con số (0,1) nạp
trực tiếp vào bộ nhớ để chạy, phụ thuộc vào từng dòng máy
• Hợp ngữ
Các mã lệnh và con số thay bằng tên viết tắt (tiếng Anh), cần bộ dịch
(assemblers), phụ thuộc vào dòng máy, nhiều lệnh cho một việc đơn giản
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
• Ngôn ngữ bậc cao
Gần với ngôn ngữ tự nhiên, cần bộ biên dịch, không phụ thuộc dòng
máy, lệnh đơn giản làm được nhiều việc
• Ngôn ngữ trí tuệ nhân tạo và mạng nơron
Gần gũi với ngôn ngữ con người. Ví dụ câu lệnh
FIND ALL RECORDS WHERE NAME IS “NAM”
4/20/2015
5
Phân loại
• Trực tiếp (Immediate)
Máy tính tay
• Thông dịch (Interprete)
Quá trình dịch và thực thi xảy ra đồng thời, dịch đến đâu
thi hành lệnh đến đấy (ngôn ngữ Lisp trong AutoCAD).
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
• Biên dịch (Compile)
Gần với ngôn ngữ tự nhiên. Muốn thực thi được thì phải
được chuyển sang ngôn ngữ máy (biên dịch)
4/20/2015
6
Các phương pháp lập trình
• Lập trình không cấu trúc (tuần tự)
Chương trình chỉ gồm hàm chính và dữ liệu
Đặc điểm: mã nguồn bị trùng lặp nhiều  khó bảo trì và nâng
cấp
Main function
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
+
Data
4/20/2015
7
Các phương pháp lập trình
• Lập trình cấu trúc
Chương trình được cấu trúc bao gồm hàm chính và các
hàm con. 
- Hàm con có thể được gọi thực hiện nhiều lần (tránh lặp mã
nguồn).
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Việc trao đổi dữ liệu giữa các hàm nhờ các tham số.
Function 1 Function 2 Function 3
Main function
Data
4/20/2015
8
Các phương pháp lập trình
• Lập trình module
Các hàm được đóng gói trong các thư viện độc lập -
module (dll, libf) 
- Sử dụng được trong nhiều chương trình khác nhau.
- Ẩn và đóng gói dữ liệu, cũng như triển khai bên trong.
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Module 1
Data
Function 1
Function 2
Module 2
Data
Function 3
Module 3
Data
Function 4
Main function
Data
4/20/2015
9
Các phương pháp lập trình
• Lập trình hướng đối tượng
- Dữ liệu được trừu tượng hóa và triển khai thành lớp.
- Sử dụng lớp để tạo ra các đối tượng.
- Các đối tượng sử dụng thông điệp để trao đổi với nhau.
message
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Object 2
Data
Object 3
Data
Object 4
Data
Object 1
Data
Main function
Data
4/20/2015
10
Các phương pháp lập trình
• Lập trình hướng dịch vụ
- Dịch vụ được cung cấp cho các
ứng dụng khác qua giao thức
truyền thông, chủ yếu là qua
mạng.
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Quy tắc hướng dịch vụ là độc lập
với bất cứ nhà cung cấp, sản
phẩm hay công nghệ.
4/20/2015
11
Chương trình
Chương trình là một chuỗi các chỉ thị (lệnh) - được viết bằng
ngôn ngữ lập trình (mã nguồn) - để thực hiện một việc cụ thể
bằng máy tính.
• Các bước viết một chương trình
- Bước 1: Soạn thảo mã nguồn
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Bước 2: Tiền xử lý mã nguồn theo các chỉ thị tiền xử lý
(#include, #define)
- Bước 3: Biên dịch mã nguồn  mã đối tượng (.obj) [mã máy]
- Bước 4: Liên kết mã đối tượng với các mã hoặc thư viện đối
tượng khác (.lib)  mã thực thi (.exe), module (dll, libf).
- Bước 5: Nạp mã thực thi vào bộ nhớ
4/20/2015
12
Chương trình
- Bước 6: Chạy mã thực thi cùng với các dữ liệu đầu vào để
thu được các đầu ra (kết quả) mong muốn.
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
4/20/2015
13
Ngôn ngữ lập trình C/C++
• Ngôn ngữ lập trình C
- Tác giả Dennis Ritchie, tại Bell Labs, giữa 1970
- Thiết kế để lập trình hệ thống (một phần HĐH hay tiện ích
hỗ trợ HĐH - interpreters, compilers, editors, etc)
- UNIX là chương trình lớn đầu tiên
• Ngôn ngữ lập trình C++
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Mở rộng cho C (hỗ trợ các cú pháp C) nhằm tăng cường
tính an toàn
- Cung cấp nhiều lựa chọn
- Đơn giản hóa lập trình ở mức cao hơn
- Cung cấp cách tiếp cận tốt hơn đối với các chương trình
quy mô lớn
4/20/2015
14
Ngôn ngữ lập trình C/C++
C C++
Không phải ngôn ngữ hướng đối
tượng.
Là một ngôn ngữ hướng đối tượng
(gồm 4 khái niệm về hướng đối tượng)
Chỉ hỗ trợ các struct. Hỗ trợ các lớp (class) và đối tượng
(object).
Không có biến tham chiếu, chỉ hỗ
trợ con trỏ.
Hỗ trợ cả biến tham chiếu và con trỏ.
Sử dụng các hàm scanf và printf
để nhập xuất.
Sử dụng các hàm cin>> và cout<< để
nhập xuất.
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Không thể khai báo hàm trong
các struct.
Có thể khai báo hàm trong các struct.
Không hỗ trợ các hàm inline, 
thay vào đó có thể sử dụng khai
báo #define
Hỗ trợ các hàm inline.
Sử dụng phương pháp tiếp cận
từ trên xuống (top-down).
Sử dụng phương pháp tiếp cận từ dưới
lên (bottom-up).
Là ngôn ngữ lập trình hướng
chức năng (function oriented).
Là ngôn ngữ lập trình hướng đối tượng
(Object oriented).
4/20/2015
15
Các từ khóa chính trong C++
C++ Keywords 
Keywords common to the 
C and C++ programming 
languages 
auto break case char const 
continue default do double else 
enum extern float for goto 
if int long register return 
short signed sizeof static struct 
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
switch typedef union unsigned void 
volatile while 
C++ only keywords 
asm bool catch class const_cast 
delete dynamic_cast explicit false friend 
inline mutable namespace new operator 
private protected public reinterpret_cast 
static_cast template this throw true 
try typeid typename using virtual 
wchar_t 
4/20/2015
16
Các công cụ soạn thảo
• Sử dụng các công cụ có môi trường tích hợp cho
phép soạn thảo, biên dịch và liên kết để tạo ra mã
thực thi.
 Turbo C ++ 3.0
 Visual C++ (dạng Win32 Console) có trong tất cả các 
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
phiên bản Visual Studio 6.0, Visual Studio mới hơn 
(2002, 2003, 2005, 2008, 2010, 2012) gồm miễn phí 
(Express Edition) và có bản quyền (Professional Edition).
 C-Free
 Dev-C++
 Borland C++
4/20/2015
17
Cấu trúc một chương trình C/C++
i. Chú thích
ii. Chỉ thị tiền xử lý
iii. Hàm
iv. Thân hàm
v. Câu lệnh return
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Chương trình bắt buộc phải có một hàm chính – hàm được gọi
ngay khi chương trình thực thi.
- Hàm main dưới cho phép truyền dữ liệu bằng tham số dòng lệnh
C C++
main()
main(int argc, char** argv)
int main()
int main(int argc, char** argv)
4/20/2015
18
Cấu trúc một chương trình
/* This is my first C program
It prints a line of text */
#include 
Chú thích
Chỉ thị tiền xử lý
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
main()
{
printf("Hello world\n");
return 0; 
}
Hàm
Thân hàm
Lệnh return
Hình 1
4/20/2015
19
Cấu trúc một chương trình
// This is my first C++ program
// It prints a line of text 
#include 
Chú thích
Chỉ thị tiền xử lý
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
int main()
{
std::cout << "Hello world\n";
return 0; 
}
Hàm
Thân hàm
Lệnh return
Hình 2
4/20/2015
20
Chú thích trong C/C++
• Mục đích
- Làm chương trình dễ đọc và dễ hiểu hơn
• Cú pháp chèn chú thích
- Văn bản bắt đầu với /* và kết thúc với */. Văn bản có thể
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
chứa nhiều dòng
- Văn bản bắt đầu với //, thường dùng cho một dòng (C++)
• Chú ý
- Mọi chú thích đều bị trình biên dịch bỏ qua
- Có thể được chèn bất kỳ chỗ nào trong chương trình
4/20/2015
21
Chỉ thị tiền xử lý
Chỉ thị sẽ được xử lý trước khi chương trình được biên
dịch
• #include: Bao hàm tệp có chứa các nguyên mẫu hàm có
sẵn hoặc tự định nghĩa sẽ được dùng trong chương trình
• Cú pháp
- #include filename: tệp chứa nguyên mẫu hàm
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
#include 
#include 
•#define: Định nghĩa hằng số, macro (một khối lệnh) 
• Cú pháp
- #define ten_hang gia_tri_hang
4/20/2015
22
Một số thư viện hay dùng trong C/C++
#include // vào ra chuẩn trong C++
#include // vào ra chuẩn trong C
#include // các hàm toán học
#include // contains random funct
#include // các hàm về thời gian
#include .// các hàm về ñịnh dạng
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Các hàm: printf(), scanf(), putchar(), getchar() nằm trong thư viện
Các hàm cout, cin, cin.get(), cin.getline() nằm trong thư viện
,
Các hàm clrscr(), getch() nằm trong thư viện 
Các hàm định dạng như endl, setw(), nằm trong thư viện 
4/20/2015
23
Hàm Chính - Main()
main() và int main()
- Dấu ngoặc () sau main xác định main là một khối chương
trình  gọi là hàm
- Các ví dụ đã cho chỉ có một hàm duy nhất
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Chương trình C/C++ thường bắt đầu thực thi từ hàm main.
• Chú ý
- int: kiểu giá trị trả về từ hàm bằng lệnh return.
- Không có kiểu trả về  mặc định là kiểu int
4/20/2015
24
Thân hàm
- Dấu ngoặc móc trái, {, bắt đầu thân hàm
- Dấu ngoặc móc phải tương ứng, }, kết thúc thân hàm
• Nội dung trong thân hàm
 Chứa các lệnh
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Khai báo biến
- Nhập xuất dữ liệu
- Tính toán biểu thức
 Mọi lệnh kết thúc với dấu chấm phẩy, ;.
4/20/2015
25
Thân hàm
Trong hai ví dụ, thân hàm gồm 2 câu lệnh.
 Câu lệnh 1: Gọi hàm printf và std::cout<< để in ra màn hình
dòng chữ - Hello world.
- printf: dùng để in nội dung ra màn hình. 
- std::cout<<: dùng đối tượng dòng xuất chuẩn cout và
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
toán tử xuất << để in nội dung ra màn hình. std là tên
của không gian tên chứa đối tượng và toán tử xuất.
- Trong ví dụ, nội dung là một xâu ký tự (các ký tự nằm
giữa hai dấu “”).
- Ký tự \n chỉ thị xuống dòng mới cho nội dung in tiếp theo
- Trong C++, thay \n bằng lệnh endl.
4/20/2015
26
Câu lệnh return
return 0;
- Lệnh return được dùng cuối hàm main, giá trị 0 chỉ ra rằng
chương trình đã kết thúc thành công.
- Có thể được gọi bất cứ đâu trong thân hàm để kết thúc
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
chương trình và trả về giá trị khác 0 nhằm đưa ra một mã
lỗi nào đó.
4/20/2015
27
In bảng nhiệt độ F  C với C = (5/9)*(F-32)
/* In bảng Fahrenheit-Celsius
cho fahr = 0, 20, ..., 300 */
#include 
main()
{
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
float fahr, celsius;
int lower, upper, step;
lower = 0; /* Cận dưới của bảng nhiệt độ */
upper = 300; /* cận trên */
step = 20; /* bước tăng */
4/20/2015
28
In bảng nhiệt độ F  C với C = (5/9)*(F-32)
fahr = lower;
while (fahr <= upper)
{
celsius = (5.0/9.0)* (fahr-32);
printf("%4.0f\t%6.1f\n", fahr, celsius);
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
fahr = fahr + step;
}
return 0;
}
4/20/2015
29
In bảng nhiệt độ F  C với C = (5/9)*(F-32)
Kết quả:
0 -17.8
20 -6.7
40 4.4
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
60 15.6
80 26.7
w.
w.
280 137.8
300 148.9
4/20/2015
30
In bảng nhiệt độ F  C với C = (5/9)*(F-32)
/* In bảng Fahrenheit-Celsius
cho fahr = 0, 20, ..., 300 */
#include 
main()
{
Chú thích
Chỉ thị tiền xử lý
Kiểu dữ liệu
Tên biến
Số
thực
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
float fahr, celsius;
int lower, upper, step;
lower = 0; /* Cận dưới của bảng nhiệt độ */
upper = 300; /* cận trên */
step = 20; /* bước tăng */
Khai báo biến để
lưu giá trị cố định
hoặc thay đổi
Gán giá trị cho
các biến
Số
nguyên
4/20/2015
31
In bảng nhiệt độ F  C với C = (5/9)*(F-32)
fahr = lower;
while (fahr <= upper)
{
celsius = (5.0/9.0)* (fahr-32);
printf("%4.0f\t%6.1f\n", fahr, celsius);
fahr = fahr + step;
Gán giá trị cận dưới bảng cho biến fahr
Các biểu thức
và phép toán
như trong toán
Phép chia, /, phân biệt
cho số nguyên và thực:
- 5/9  0
- 5.0/9 != 0
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
}
return 0;
}
Chu trình lặp lại các câu
lệnh trong {f} khi thỏa mãn
điều kiện fahr <= upper
học truyền thống
- Tính C theo F
- In F và C ra màn hình
- Tăng F theo bước tăng
4/20/2015
32
Xuất / Nhập trong C- Câu lệnh printf
Câu lệnh: printf("%4.0f\t%6.1f\n", fahr, celsius);
- Nội dung trong lệnh printf, ngoài xâu ký tự còn có thêm các
biến được in giá trị ra màn hình
- Để in một biến: xâu ký tự mô tả và tên biến
- Xâu ký tự, bắt đầu bằng dấu phần trăm, %.
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Kết thúc tương ứng bởi ký tự chuyển dạng: %f  số
thực (mặc định chính xác 6 số sau dấu thập phân)
printf(“%f”, fahr);
- %mf  m là bề rộng tối thiểu để in biến
- %.nf  n là số các số sau dấu thập phân
- %m.nf: %4.0f, %6.1f
4/20/2015
33
Mã định dạng
Định dạng printf() scanf()
Ký tự đơn (single character) %c %c
Chuỗi (string) %s %s
Số nguyên có dấu (signed decimal integer) %d %d
Kiểu float - dạng dấu chấm thập phân (decimal notation) %f %f hoặc 
%e
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Kiểu float - dạng dấu chấm thập phân %lf %lf
Kiểu float - dạng lũy thừa (exponential notation) %e %f or %e
Kiểu float ( %f hay %e , khi ngắn hơn) %g
Số nguyên không dấu (unsigned decimal integer) %u %u
Số nguyên hệ 16 không dấu - sử dụng “ABCDEF” 
(unsigned hexadecimal integer)
%x %x
Số nguyên hệ 8 không dấu (unsigned octal integer) %o %o
4/20/2015
34
Mã định dạng (tiếp)
Mã định
dạng
Các qui ước in
%d Các con số trong số nguyên
%f
Phần thập phân sẽ in 6 chữ số. Nếu phần thập phân ít hơn 6
chữ số  thêm các chữ số 0 vào từ bên phải, ngược lại 
làm tròn số từ bên phải.
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Ví dụ: 1.23  1.230000
0.1234567  0.123457
%e
In ra số có kiểu float hoặc double, ở dạng khoa học: một
con số phần nguyên, những số còn lại chuyển sang phần
thập phân
Ví dụ: 12345  1.234500e+04
0.12345  1.234500e-1
4/20/2015
35
Mã định dạng (tiếp)
STT Lệnh Chuỗi điều 
khiển
Nội dung chuỗi 
điều khiển
Danh sách 
đối số
Giải thích 
danh sách 
đối số
Hiển thị 
trên màn 
hình
1. printf(“%d”,300); %d Chỉ chứa lệnh định 
dạng
300 Hằng 300
2. printf(“%d”,10+5); %d Chỉ chứa lệnh định 
dạng
10 + 5 Biểu thức 15
3. printf(“Good Morning Mr. Lee.”); Good Morning 
Mr. Lee.
Chỉ chứa các ký tự 
văn bản
Rỗng Rỗng Good 
Morning 
Mr. Lee.
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
4. int count = 100;
printf(“%d”,count);
%d Chỉ chứa lệnh định 
dạng
count Biến 100
5. printf(“\nhello”); \nhello Chứa ký tự không 
được in và các ký tự 
văn bản
Rỗng Rỗng hello on a 
new line
6. #define str “Good Apple “
..
printf(“%s”,str);
%s Chỉ chứa lệnh định 
dạng
str Hằng ký 
hiệu
Good 
Apple
7. int count,stud_num;
count=0;
stud_num=100;
printf(“%d %d\n”,count, stud_num);
%d %d Chứa lệnh định
dạng và ký tự
không được in
count, 
stud_num
Hai biến 0 , 100
4/20/2015
36
Các ký tự đặc biệt
\\ In ra ký tự \
\ “ In ra ký tự “
%% In ra ký tự %
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
4/20/2015
37
Ví dụ cho hàm printf()
Chương trình hiển thị số nguyên, thập phân, ký tự và chuỗi
#include 
void main()
{
int a = 10;
float b = 24.67892345;
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
char ch = ‘A’;
printf(“Integer data = %d”, a);
printf(“Float Data = %f”,b);
printf(“Character = %c”,ch);
printf(“This prints the string”);
printf(“%s”,”This also prints a string”);
}
4/20/2015
38
Bổ từ trong hàm printf( )
1. Bổ từ ‘-‘ 
Phần tử dữ liệu sẽ được canh lề trái, phần tử sẽ được in bắt
đầu từ vị trí bên trái trong cùng của trường.
2. Bổ từ xác định độ rộng trường ( ví dụ: %10d )
Áp dụng được cho cả: int, float, double, char
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
3. Độ chính xác (ví dụ: %4.2f )
Áp dụng cho: float, double char
Nếu dùng với kiểu float hay double, chuỗi con số xác định
số lượng lớn nhất các con số được in bên phải dấu chấm thập
phân.
4/20/2015
39
Bổ từ trong hàm printf( )
4. Bổ từ ‘0’ 
Mặc định thì khoảng trống sẽ được thêm vào một trường. 
Nếu người dùng muốn thêm số 0 vào trường thì bổ từ ‘0’ 
được dùng
5. Bổ từ ‘l’ 
Bổ từ này có thể được dùng hiển thị các đối số nguyên kiểu
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
int hay double. Mã định dạng tương ứng là %ld
4/20/2015
40
Bổ từ trong hàm printf( )
6. Bổ từ ‘h’
Bổ từ này được sử dụng để hiển thị dạng short int. Mã định
dạng tương ứng như là %hd
7. Bổ từ ‘*’ 
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Nếu người dùng không muốn xác định độ rộng trường
nhưng muốn chương trình xác định điều đó, bổ từ này được
sử dụng
4/20/2015
41
Ví dụ về các bổ từ
#include 
int main(){
printf ("Characters: %c %c \n", 'a', 65);
printf ("Decimals: %d %ld\n", 1977, 650000L);
printf ("Preceding with blanks: %10d \n", 1977);
printf ("Preceding with zeros: %010d \n", 1977);
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
printf ("Some different radices: %d %x %o %#x %#o \n", 100, 
100, 100, 100, 100);
printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
printf ("Width trick: %*d \n", 5, 10);
printf ("%s \n", "A string");
return 0;}
4/20/2015
42
Xuất nhập trong C- Câu lệnh scanf( )
Được sử dụng để nhập dữ liệu
Dạng tổng quát của hàm scanf() 
scanf(“control string”, argument list); 
 Những định dạng dùng trong hàm printf() cũng được sử
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
dụng với cùng cú pháp trong hàm scanf()
4/20/2015
43
Sự khác nhau về danh sách đối số giữa printf( ) và
scanf( )
 printf() sử dụng các tên biến, hằng, hằng biểu tượng và các
biểu thức
 scanf() sử dụng các con trỏ hay địa chỉ tới biến
Danh sách đối số trong scanf() phải theo qui tắc :
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Đọc giá trị vào một biến có kiểu dữ liệu cơ sở, sử dụng ký
hiệu & trước tên biến
Đọc giá trị vào một biến có kiểu dữ liệu dẫn xuất, không sử
dụng & trước tên biến
4/20/2015
44
Ví dụ với hàm scanf( )
#include 
void main(){
int a;
float d;
char ch, name[40];
printf(“Please enter the data\n”);
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
scanf(“%d %f %c %s”,&a,&d,&ch,name);
printf(“\n The values accepted are:
%d,%f,%c,%s”,a, d,ch,name);
}
4/20/2015
45
Vùng đệm Nhập/Xuất
Được sử dụng để đọc và viết các ký tự ASCII
Một vùng đệm (buffer) là một không gian lưu trữ tạm thời
trong bộ nhớ hoặc trên thẻ điều khiển thiết bị
Bộ đệm Nhập/Xuất có thể chia làm :
- Console I/O
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Buffered File I/O
4/20/2015
46
Console I/O
Các hàm Console I/O chuyển các thao tác đến thiết bị xuất
nhập chuẩn của hệ thống
Trong ‘C’ các hàm console I/O đơn giản nhất là:
getchar( ) - đọc một và chỉ một ký tự từ bàn phím
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
putchar( ) - xuất một ký tự lên màn hình
4/20/2015
47
getchar( )
Dùng đọc dữ liệu nhập, một ký tự từ bàn phím
Các ký tự đặt trong vùng đệm đến khi người dùng gõ phím
enter
Hàm getchar( ) không có đối số, nhưng vẫn phải có cặp dấu
ngoặc ( )
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
4/20/2015
48
Ví dụ hàm getchar()
/*Program to demonstrate the use of getchar()*/
#include 
void main()
{
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
char letter;
printf(“\nPlease enter any character:“);
letter = getchar();
printf(“\nThe character entered by you 
is %c“, letter);
}
4/20/2015
49
putchar( )
Hàm xuất ký tự trong ‘C’
Có một đối số
Đối số của một hàm putchar( ) có thể là :
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
- Một hằng ký tự đơn
- Một mã định dạng
- Một biến ký tự
4/20/2015
50
Các tùy chọn và chức năng của putchar( ) 
Đối số Hàm Chức năng
Biến ký tư putchar(c) Hiển thị nội dung của
biến ký tư c
Hằng ký tư putchar(‘A’) Hiển thị ký tự A
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
Hằng sô putchar(‘5’) Hiển thị số 5
Mã định
dạng
putchar(‘\t’) Tạo tab
Mã định
dạng
putchar(‘\n’) Xuống dòng
4/20/2015
51
putchar( )
/* This program demonstrates the use of 
constants and escape sequences in 
putchar()*/
#include 
void main(){
putchar(‘H’); putchar(‘\n’);
putchar(‘\t’);
putchar(‘E’); putchar(‘\n’);
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
putchar(‘\t’); putchar(‘\t’);
putchar(‘L’); putchar(‘\n’);
putchar(‘\t’); putchar(‘\t’); putchar(‘\t’);
putchar(‘L’); putchar(‘\n’);
putchar(‘\t’); putchar(‘\t’); putchar(‘\t’);
putchar(‘\t’);
putchar(‘O’);
}
4/20/2015
52
Vào/ ra trong C++
Vào dữ liệu từ bàn phím - cin
#include
int main()
{
int bien1, bien2,bien3;
cin >> bien1 ;
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
cin >> bien2 ;
cin >> bien3 ;
/* hoặc:
cin >> bien1 >> bien2 >> bien3 ;
*/
}
4/20/2015
53
Vào/ ra trong C++
In dữ liệu ra màn hình- cout
#include
int main()
{
int bien1, bien2,bien3;
cout<<“In du lieu ra man hinh \n”;
TRƯỜNG ĐẠI HỌC 
BÁCH KHOA HÀ NỘI
cout<< bien1 ;
cout<< bien2 ;
cout<<bien3 ;
/* hoặc:
cout <<bien1 << bien2 <<bien3 ;
*/
}

File đính kèm:

  • pdfbai_giang_ngon_ngu_lap_trinh_c_va_c_bai_1_gioi_thieu_do_dang.pdf