Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Notes

Tin học cơ sở 2
Chương 01: Giới thiệu chung về Lập trình và Ngôn ngữ lập trình C

Biên soạn: Phạm Văn Sự

Bộ môn Xử lý tín hiệu và Truyền thông


Khoa Kỹ thuật Điện tử I
Học viện Công nghệ Bưu chính Viễn thông

ver.22a

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 1 / 21

Notes

Phần 01: Giới thiệu chung

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 2 / 21


Giới thiệu chung
Notes

Sự phát triển của máy tính, phần mềm và internet đã mang lại những thay
đổi to lớn trong cuộc sống, học tập và nghiên cứu của con người.
Ngôn ngữ lập trình là một ngôn ngữ nhân tạo bao gồm một tập các từ vựng
(từ khóa - keyword) và một tập các quy tắc (cú pháp - syntax) dùng để biên
soạn các lệnh cho máy tính thực hiện một nhiệm vụ mong muốn
▶ Ngôn ngữ máy (0 và 1), ngôn ngữ Assembly (mov, sub, ... ), ngôn ngữ bậc
cao (gần giống ngôn ngữ thông thường)
▶ Ngôn ngữ thông dịch (thông dịch và chạy trực tiếp từng câu lệnh), ngôn ngữ
biên dịch (biên dịch toàn bộ chương trình thành tệp chỉ thị ngôn ngữ máy
hoàn chỉnh)
▶ Ngôn ngữ thủ tục, ngôn ngữ khái báo
Ngôn ngữ lập trình C là một ngôn ngữ lập trình bậc cao có tính mềm dẻo
thích hợp cho việc phát triển các hệ thống, ứng dụng cần hiệu năng hoạt
động, thích ứng với các hệ điều hành khác nhau.
▶ Được sử dụng rộng rãi bởi các lập trình viên, các nhà phát triển, cộng đồng
nghiên cứu
▶ Là cơ sở của nhiều ngôn ngữ lập trình hiện đại khác

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 3 / 21

Notes

Phần 02: Thiết lập môi trường làm việc với Ngôn ngữ lập
trình C

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 4 / 21


Thiết lập môi trường làm việc với Ngôn ngữ lập trình C
Notes
Tiến trình thực thi và chạy một chương trình C

Thông thường, một chương trình C trải qua 6 bước để được thực thi:
Tạo chương trình: sử dụng trình soạn thảo thích hợp soạn thảo một chương
trình C
Thực hiện quá trình tiền xử lý
▶ Thực thi một số tao tác cần thiết (tìm và thay thế, thêm, ...) trước khi thực
hiện biên dịch

Biên dịch: dịch chương trình C sang mã máy (ngôn ngữ máy)
Liên kết (Link): thực hiện liên kết file đối tượng biên dịch với các phần mã
của những hàm (thư viện) còn thiếu để tạo thành mã thực thi đầy đủ
Nạp (Load): thực hiện tải (nạp) mã thực thi đầy đủ của chương trình vào bộ
nhớ
Chạy chương trình

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 5 / 21

Thiết lập môi trường làm việc với Ngôn ngữ lập trình C
Notes
Chọn, cài đặt và thiết lập môi trường phát triển

Chọn một trong các bộ công cụ sau, tải về và thực hiện cài đặt theo hướng dẫn
trên trang chủ
Tiny C Compiler: www.tinycc.org
Code::Blocks: http://www.codeblocks.org
Dev-C++: http://www.bloodshed.net/devcpp.html
Visual Studio Express Edition:
https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 6 / 21


Notes

Phần 03: Ví dụ một số chương trình C đơn giản

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 7 / 21

Ví dụ một số chương trình C đơn giản


Notes
Chương trình ví dụ số 1

1 // Chuong trinh C don gian


2 // Vi du so 01: In ra man hinh mot chuoi ky tu
3 # include < stdio .h >
4
5 // Ham main
6 int main ( void )
7 {
8 printf ( " Xin chao \ n " ) ;
9 return 0;
10 }

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 8 / 21


Ví dụ một số chương trình C đơn giản
Notes
Chương trình ví dụ số 1: Một số giải thích

Chú thích: không được biên dịch, chỉ để người đọc mã chương trình dễ hiểu
hơn về chương trình
▶ Chú thích dòng đơn bắt đầu bằng \\
▶ Chú thích nhiều dòng bắt đầu bằng \∗ và kết thúc bằng ∗\

Chỉ thị tiền xử lý: bắt đầu bằng #, được thực hiện trước khi chương trình
được biên dịch
Dòng trắng: chương trình có thể chứa một hoặc nhiều dòng trắng; không
được biên dịch; để chương trình dễ đọc
Hàm main: mọi chương trình C phải có một và duy nhất một hàm main;
điểm bắt đầu khi chương trình được thực thi
Khối lệnh (thân hàm): được đặt giữa dấu { và dấu }
▶ Bao gồm một hoặc nhiều dòng lệnh: một chỉ thị hoặc một lời gọi hàm,
▶ Mỗi câu lệnh luôn phải kết thúc bằng một dấu chấm phẩy (;)

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 9 / 21

Ví dụ một số chương trình C đơn giản


Notes
Chương trình ví dụ số 2
1 // Chuong trinh C don gian
2 // Vi du so 02: Doc vao hai so nguyen , tinh tong
3 # include < stdio .h >
4
5 // Ham main
6 int main ( void )
7 {
8 // Khai bao bien
9 int nSo1 , nSo2 ;
10 int nTong ;
11 // Thuc hien nhap cac so
12 printf ( " Nhap so thu nhat : " ) ; // Nhac nguoi su dung
13 scanf ( " % d " ,& nSo1 ) ; // Doc vao mot so nguyen
14 printf ( " Nhap so thu hai : " ) ; // Nhac nguoi su dung
15 scanf ( " % d " ,& nSo2 ) ; // Doc vao mot so nguyen
16 // Tinh tong
17 nTong = nSo1 + nSo2 ;
18 // Hien thi ket qua
19 printf ( " Tong cua % d va % d la % d \ n " , nSo1 , nSo2 , nTong ) ;
20 return 0;
21 }

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 10 / 21


Ví dụ một số chương trình C đơn giản
Notes
Chương trình ví dụ số 2: Một số giải thích

Cặp hàm printf và scanf cho phép tạo sự tương tác giữa người sử dụng và
chương trình

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 11 / 21

Ví dụ một số chương trình C đơn giản


Notes
Cấu trúc chung tổng quát của một chương trình C

Chương trình C tổng quát gồm 6 phần, trong đó một số phần không nhất thiết
phải có
Phần 1: Các khai báo chỉ thị
Phần 2: Các khai báo, định nghĩa dữ liệu mới
Phần 3: Các khai báo biến toàn cục sử dụng trong chương trình
Phần 4: Các khai báo nguyên mẫu các hàm con
Phần 5: Các mô tả (thực thi) chi tiết các hàm con
Phần 6: Hàm main
⇒ Trong chương trình ví dụ số 1 và 2, cấu trúc gồm: Phần 1 − Phần 6

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 12 / 21


Notes

Phần 04: Vào ra cơ bản trong C

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 13 / 21

Vào ra cơ bản trong C


Notes
Làm việc với printf(), printf_s(), scanf(), scanf_s()

printf("hằng-chuỗi-cùng-kí-tự-thoát");
▶ Ví dụ: printf("Xin chào \n");
printf("hằng-chuỗi-cùng-kí-tự-thoát-cùng-ký-tự-định-kiểu",
danh-sách-tham-số);
▶ Ví dụ: printf("Toi %d tuoi \n",20);
printf(chỉ-thị-thiết-bị-ra,"hằng-chuỗi-cùng-kí-tự-thoát-cùng-ký-tự-định-
kiểu",danh-sách-tham-số);

scanf("chuỗi-ký-tự-định-kiểu",danh-sách-tham-số);
▶ Ví dụ: scanf("%d", &nSo1);
scanf(chỉ-thị-thiết-bị-vào,"chuỗi-ký-tự-định-kiểu",danh-sách-tham-số);

Các phiên bản an toàn của printf và scanf tương ứng là printf_s và
scanf_s

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 14 / 21


Vào ra cơ bản trong C
Notes
Các ký tự điều khiển hiển thị

\a: Tạo tiếng bip


\b: Xóa một ký tự ngay trước con
trỏ (backspace) \v: Dấu tab dọc, dịch con trỏ đến
dòng tiếp theo sau dấu tab
\f: Trang mới, dịch con trỏ đến vị
trí đầu trang mới \\: Hiển thị dấu \
\n: Xuống dòng, con trỏ ở vị trí đầu \": Hiển thị dấu nháy kép (")
dòng mới \’: Hiển thị dấu nháy đơn (’)
\r: Dịch con trỏ về đầu dòng hiện \?: Hiển thị dấu hỏi (?)
tại \XY: Số XY dạng octal
\t: Dấu tab ngang, dịch con trỏ đến \xXY: Số XY dạng hexa
vị trí tiếp sau dấu tab trên cùng
một hàng

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 15 / 21

Vào ra cơ bản trong C


Notes
Ví dụ minh họa 1

Trong hàm main, những câu lệnh sau có kết quả hiển thị thế nào?
9 printf ( " Xin chao \ a \ n " ) ;

11 printf ( " Xin cha \ bo \ n " ) ;

13 printf ( " Xin chao \ tat ca cac ban \ r " ) ;


14 printf ( " Toi " ) ;

15 printf ( " Ha \ tdang \ ta \ bn \ tcom \ n " ) ;

Hãy sử dụng printf để in ra các chuỗi sau:


3 Son noi " Bo Son di vang "
4 Ha hoi " Son co di hoc khong ? "
5 Lap trinh ’C ’ khong kho
6 Chi thi duong dan thu muc trong C \\

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 16 / 21


Vào ra cơ bản trong C
Notes
Ví dụ minh họa 2

Chạy thử các câu lệnh sau:


12 int nSo1 , nSo2 ;
13 scanf ( " % d " ,& nSo1 ) ; // Doc vao mot so nguyen

14 int nSo1 , nSo2 , nTong ;


15 scanf ( " % d % d " ,& nSo1 , & nSo2 ) ;

12 int nNgay , nThang , nNam ;


13 printf ( " Nhap vao ngay thang nam ( dd - tt - nnnn ) : " ) ;
14 scanf ( " %d -% d -% d " ,& nNgay , & nThang , & nNam ) ;

12 int nNgay , nThang , nNam ;


13 printf ( " Nhap vao ngay thang nam : " ) ;
14 scanf ( " % d %* c % d %* c % d " ,& nNgay , & nThang , & nNam ) ;

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 17 / 21

Notes

Phần 05: Thuật toán và Cách biểu diễn thuật toán

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 18 / 21


Thuật toán và Cách biểu diễn thuật toán
Notes
Thuật toán

Thuật toán
Thuật toán (algorithm, còn được dịch là thuật giải hoặc giải thuật) là một dãy
hữu hạn các bước (thủ tục) có trình tự xác định mô tả một cách cụ thể các phép
toán hoặc hành động cần thực hiện để giải quyết một vấn đề, một bài toán.

Một thuật toán có 6 đặc trưng:


▶ Dữ liệu đầu vào (input)
▶ Dữ liệu đầu ra (output)
▶ Tính xác định: Mỗi bước của thuật toán được mô tả chính xác, chỉ có một
cách hiểu duy nhất và đủ đơn giản để có thể thực hiện được
▶ Tính dừng: Một thuật toán phải dừng sau một số hữu hạn bước thực hiện
▶ Tính hiệu quả: Các phép toán (thủ tục thực hiện) trong các bước phải đơn
giản để việc thực hiện, tính toán đạt được tính hiệu quả
▶ Tính tổng quát: Thuật toán phải có tính tổng quát, có thể áp dụng cho một
lớp hoặc nhiều lớp đối tượng

Thuật toán có thể được biểu diễn bằng: ngôn ngữ thông thường, ngôn ngữ
giả thuật (pseudocode - mã giả), lưu đồ thuật toán, ...
Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 19 / 21

Thuật toán và Cách biểu diễn thuật toán


Notes
Lưu đồ thuật toán

Các thành phần cơ bản

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 20 / 21


Thuật toán và Cách biểu diễn thuật toán
Notes
Lưu đồ thuật toán: Ví dụ

Vẽ lưu đồ thuật toán của một chương trình sẽ được triển khai trên vi điều khiển
AVR. Chương trình thực hiện việc đọc nhiệt độ từ cảm biến LM35, nếu nhiệt độ
lớn hơn 32 độ thì phát ra thông báo "Trên nhiệt độ đóng băng", ngược lại thông
báo "Dưới nhiệt độ đóng băng"

Biên soạn: Phạm Văn Sự (PTIT) Tin học cơ sở 2 ver.22a 21 / 21

Notes

You might also like