Giáo trình Lập trình C căn bản Trang 5
Tai lieu tham khao
13.4.2 Các phím thao tác trên khối 120
13.4.3 Các thao tác xóa 120
13.4.4 Các thao tác copy, di chuy
ển 120
13.4.5 Các thao tác khác 120
13.5 Ghi m
ột khối ra đĩa 121
13.6 Chèn n
ội dung file từ đĩa vào vị trí con trỏ 121
13.7 Tìm ki
ếm văn bản trong nội dung soạn thảo 121
13.8 Tìm và thay th
ế văn bản trong nội dung soạn thảo 121
13.9 S
ửa lỗi cú pháp 122
13.10 Ch
ạy từng bước 122
13.11 S
ử dụng Help (Giúp đỡ) 122
BÀI 14 :
CÁC HỆ ĐẾM 124
14.1 Khái niệm 124
14.2 Quy t
ắc 124
14.3 Chuy
ển đổi giữa các hệ 125
14.3.1 Chuy
ển đổi giữa hệ 2 và hệ 10 125
14.3.2 Chuy
ển đổi giữa hệ 8 và hệ 10 126
14.3.3 Chuy
ển đổi giữa hệ 16 và hệ 10 126
14.3.4 Chuy
ển đổi giữa hệ 2 và hệ 16 127
BÀI 15 :
BIỂU THỨC VÀ PHÉP TOÁN 128
15.1 Biểu thức 128
15.2 Phép toán 128
15.2.1 Phép toán s
ố học 128
15.2.2 Phép quan h
ệ 128
15.2.3 Phép toán lu
ận lý 129
15.2.4 Phép toán trên bit (bitwise) 129
15.2.5 Các phép toán khác 130
15.2.6
Độ ưu tiên của các phép toán 130
15.3 Bài t
ập 130
BÀI 16 :
MỘT SỐ HÀM CHUẨN THƯỜNG DÙNG 132
16.1 Các hàm chuyển đổi dữ liệu 132
16.1.1 atof 132
16.1.2 atoi 132
16.1.3 itoa 132
16.1.4 tolower 132
Giáo trình Lập trình C căn bản Trang 6
Tai lieu tham khao
16.1.5 toupper 132
16.2 Các hàm x
ử lý chuỗi ký tự 133
16.2.1 strcat 133
16.2.2 strcpy 133
16.2.3 strcmp 133
16.2.4 strcmpi 133
16.2.5 strlwr 133
16.2.6 strupr 133
16.2.7 strlen 134
16.3 Các hàm toán h
ọc 134
16.3.1 abs 134
16.3.2 labs 134
16.3.3 rand 134
16.3.4 random 134
16.3.5 pow 134
16.3.6 sqrt 134
16.4 Các hàm x
ử lý file 135
16.4.1 rewind 135
16.4.2 ftell 135
16.4.3 fseek 135
Giáo trình Lập trình C căn bản Trang 7
Tai lieu tham khao
Bài 1 :
NGÔN NGỮ LẬP TRÌNH & PHƯƠNG PHÁP LẬP TRÌNH
1.1 Mục tiêu
Sau khi hoàn tất bài này học viên sẽ hiểu và vận dụng các kiến thức kĩ năng cơ bản sau:
- Ý nghĩa, các bước lập trình.
-
Xác định dữ liệu vào, ra.
- Phân
tích các bài toán đơn giản.
- Khái niệm so sánh, lặp.
- Thể hiện bài toán bằng lưu đồ.
1.2 Lý thuyết
1.2.1 Ngôn ngữ lập trình (Programming Language)
Phần này chúng ta sẽ tìm hiểu một số khái niệm căn bản về thuật toán, chương trình, ngôn
ng
ữ lập trình. Thuật ngữ "thuật giải" và "thuật toán" dĩ nhiên có sự khác nhau song trong nhiều
trường hợp chúng có c
ùng nghĩa.
1.2.1.1 Thuật giải (Algorithm)
Là một dãy các thao tác xác định trên một đối tượng, sao cho sau khi thực hiện một số
hữu hạn các bước thì đạt được mục tiêu. Theo R.A.Kowalski thì bản chất của thuật giải:
Thuật giải = Logic + Điều khiển
* Logic: Đây là phần khá quan trọng, nó trả lời câu hỏi "Thuật giải làm gì, giải quyết vấn
đề g
ì?", những yếu tố trong bài toán có quan hệ với nhau như thế nào v.v… Ở đây bao gồm
những kiến thức chuyên môn mà bạn phải biết để có thể tiến hành giải bài toán.
Ví dụ 1: Để giải một bài toán tính diện tích hình cầu, mà bạn không còn nhớ công thức
tính hình cầu thì bạn không thể viết chương trình cho máy để giải bài toán này được.
* Điều khiển: Thành phần này trả lời câu hỏi: giải thuật phải làm như thế nào?. Chính là
cách th
ức tiến hành áp dụng thành phần logic để giải quyết vấn đề.
1.2.1.2 Chương trình (Program)
Là một tập hợp các mô tả, các phát biểu, nằm trong một hệ thống qui ước về ý nghĩa và
th
ứ tự thực hiện, nhằm điều khiển máy tính làm việc. Theo Niklaus Wirth thì:
Chương trình = Thuật toán + Cấu trúc dữ liệu
Các thuật toán và chương trình đều có cấu trúc dựa trên 3 cấu trúc điều khiển cơ bản:
*
Tuần tự (Sequential): Các bước thực hiện tuần tự một cách chính xác từ trên xuống,
mỗi bước chỉ thực hiện đúng một lần.
* Chọn lọc (Selection): Chọn 1 trong 2 hay nhiều thao tác để thực hiện.
* Lặp lại (Repetition): Một hay nhiều bước được thực hiện lặp lại một số lần.
Muốn trở thành lập trình viên chuyên nghiệp bạn hãy làm đúng trình tự để có thói quen tốt
và thuận lợi sau này trên nhiều mặt của một người làm máy tính. Bạn hãy làm theo các bước sau:
Tìm, xây dựng thuật giải (trên giấy) viết chương trình trên máy
dịch chương trình chạy và thử chương trình
Giáo trình Lập trình C căn bản Trang 8
Tai lieu tham khao
1.2.1.3 Ngôn ngữ lập trình (Programming language)
Ngôn ngữ lập trình là hệ thống các ký hiệu tuân theo các qui ước về ngữ pháp và ngữ
nghĩa, dùng để xây dựng thành các chương trình cho máy tính.
M
ột chương trình được viết bằng một ngôn ngữ lập trình cụ thể (ví dụ Pascal, C…) gọi là
chương trình nguồn, chương trình dịch làm nhiệm vụ dịch chương trình nguồn thành chương
trình thực thi được trên máy tính.
1.2.2 Các bước lập trình
Bước 1: Phân tích vấn đề và xác định các đặc điểm. (xác định I-P-O)
Bước 2: Lập ra giải pháp. (đưa ra thuật giải)
Bước 3: Cài đặt. (viết chương tr
ình)
Bước 4: Chạy thử chương trình. (dịch chương trình)
Bước 5: Kiểm chứng và hoàn thiện chương trình. (thử nghiệm bằng nhiều số liệu và đánh giá)
1.2.3 Kỹ thuật lập trình
1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nh
ập-xử lý-xuất)
Quy trình xử lý cơ bản của máy tính gồm I-P-O.
Ví dụ 2: Xác định Input, Process, Output của việc làm 1 ly nước chanh nóng
Input : ly, đường, chanh, nước nóng, muỗng.
Process : - cho hỗn hợp đường, chanh, nước nóng vào ly.
- dùng mu
ỗng khuấy đều.
Output : ly chanh nóng đã sẵn sàng để dùng.
Ví dụ 3: Xác định Input, Process, Output của chương trình tính tiền lương công nhân
tháng 10/2002 biết rằng lương = lương căn bản * ngày công
Input : lương căn bản, ngày công
Process : nhân lương căn bản với ngày công
Output : lương
Ví dụ 4: Xác định Input, Process, Output của chương trình giải phương trình bậc nhất
ax + b = 0
Input : hệ số a, b
Process : chia – b cho a
Output : nghiệm x
Ví dụ 5: Xác định Input, Process, Output của chương trình tìm số lớn nhất của 2 số a và b.
Input : a, b
Process : Nếu a > b thì Output = a lớn nhất
Ngược lại
Output = b lớn nhất
Bài tập
Xác định Input, Process, Output của các chương trình sau:
1. Đổi từ tiền VND sang tiền USD.
2. Tính điểm trung b
ình của học sinh gồm các môn Toán, Lý, Hóa.
3. Giải phương trình bậc 2: ax
2
+ bx + c = 0
4. Đổi từ độ sang radian và đổi từ radian sang độ
(công thức / = a/180, với : radian, a: độ)
5. Kiểm tra 2 số a, b giống nhau hay khác nhau.
Process
OutputInput
Giáo trình Lập trình C căn bản Trang 9
Tai lieu tham khao
1.2.3.2 Sử dụng lưu đồ (Flowchart)
Để dễ hơn về quy trình xử lý, các nhà lập trình đưa ra dạng lưu đồ để minh họa từng
bước quá tr
ình xử lý một vấn đề (bài toán).
Hình d
ạng (symbol) Hành động (Activity)
Dữ liệu vào (Input)
Xử lý (Process)
Dữ liệu ra (Output)
Quyết định (Decision), sử dụng điều kiện
Luồng xử lý (Flow lines)
Gọi CT con, hàm… (Procedure, Function…)
Bắt đầu, kết thúc (Begin, End)
Điểm ghép nối (Connector)
Ví dụ 6: Chuẩn bị cà phê Ví dụ 7: Mô tả ví dụ 3 Ví dụ 8: Mô tả ví dụ 4
Bắt đầu
Kết thúc
Cà phê, nước sôi
Hòa cà phê vào nước sôi
Bỏ đường vào
Khuấy đều hỗn hợp
Cà phê đã sẵn sàng
Bắt đầu
Kết thúc
LCB, ngày công
Nhân LCB với ngày công
Kết quả lương
Bắt đầu
Kết thúc
Giá trị a, b
Chia –b cho a
Nghiệm x
Giáo trình Lập trình C căn bản Trang 10
Tai lieu tham khao
Ví dụ 9: Cộng 2 số Ví dụ 10: so sánh 2 số
Ví dụ 11: Kiểm tra tính hợp lệ của điểm
Ví dụ 12: Xếp lon vào thùng
Ví dụ 13: Kiểm tra loại số
Ví dụ 14: Kiểm tra tính hợp lệ của điểm
Bắt đầu
Kết thúc
a, b
c = a + b
c
Bắt đầu
Kết thúc
Số a, Số b
Số a bằng Số b
Số a có bằng
Số b không?
Số a không bằng Số b
Có
Không
Bắt đầu
Kết thúc
Điểm
Điểm hợp lệ
Điểm >=0 và
Điểm <=10 ?
Điểm không hợp lệ
Có
Không
Bắt đầu
Kết thúc
Số
Số dương
Số > 0 ?
Có
Số < 0 ?
Số âm
Có
Số không
Không
Không
Bắt đầu
Kết thúc
Thùng = 24 Lon?
Chưa
Thùng = 0 Lon
1 Lon
Thêm 1 Lon vào thùng
Bằng
Bắt đầu
Kết thúc
Sai
Điểm
Đúng
Điểm >=0 và
Điểm <=10 ?
Giáo trình Lập trình C căn bản Trang 11
Tai lieu tham khao
Bài tập
Vẽ lưu đồ cho các chương trình sau:
1. Đổi từ tiền VND sang tiền USD.
2. Tính điểm trung b
ình của học sinh gồm các môn Toán, Lý, Hóa.
3. Giải phương trình bậc 2: ax
2
+ bx + c = 0
4. Đổi từ độ sang radian và đổi từ radian sang độ
(công thức / = a/180, với : radian, a: độ)
5. Kiểm tra 2 số a, b giống nhau hay khác nhau.
Giáo trình Lập trình C căn bản Trang 12
Tai lieu tham khao
Bài 2 :
LÀM QUEN LẬP TRÌNH C QUA CÁC VÍ DỤ ĐƠN GIẢN
2.1 Mục tiêu
Sau khi hoàn tất bài này học viên sẽ hiểu và vận dụng các kiến thức kĩ năng cơ bản sau:
- Ngôn ngữ C.
- Một số thao tác cơ bản của trình soạn thảo C.
- Cách lập trình trên C.
- Ti
ếp cận một số lệnh đơn giản thông qua các ví dụ.
- Nắm bắt được một số kỹ năng đơn giản.
2.2 Nội dung
2.2.1 Khởi động và thoát BorlandC
2.2.1.1 Kh
ởi động
Nhập lệnh tại dấu nhắc DOS: gõ BC (Enter) (nếu đường dẫn đã được cài đặt bằng lệnh
path trong đó có chứa đường dẫn đến thư mục chứa tập tin BC.EXE). Nếu đường dẫn chưa được
cài đặt ta tìm xem thư mục BORLANDC nằm ở ổ đĩa nào. Sau đó ta gõ lệnh sau:
<ổ đĩa>:\BORLANDC\BIN\BC (Enter)
Nếu bạn muốn vừa khởi động BC vừa soạn thảo chương trình với một tập tin có tên do
chúng ta
đặt, thì gõ lệnh: BC [đường dẫn]<tên file cần soạn thảo>, nếu tên file cần soạn thảo đã
có thì
được nạp lên, nếu chưa có sẽ được tạo mới.
Khởi động tại Windows: Bạn vào menu Start, chọn Run, bạn gõ vào hộp Open 1 trong
các dòng lệnh như nhập tại DOS. Hoặc bạn vào Window Explorer, chọn ổ đĩa chứa thư mục
BORLANDC, vào thư mục BORLANDC, vào thư mục BIN, khởi động tập tin BC.EXE.
Ví dụ: Bạn gõ D:\BORLANDC\BIN\BC E:\BAITAP_BC\VIDU1.CPP
Câu l
ệnh trên có nghĩa khởi động BC và nạp tập tin VIDU1.CPP chứa trong thư mục
BAITAP_BC trong ổ đĩa E. Nếu tập tin này không có sẽ được tạo mới.
Màn hình sau khi khởi động thành công
File Edit Search Run Compile Debug Project Option Window Help
NONAME00.CPP
Thanh Menu
H
ộp đóng Tên tập tin Số của cửa sổ
Hộp nới rộng cửa sổ
Đây là vùng soạn thảo chương trình
Tập tin chưa lưu Thanh trượt dọc
Tọa độ hàng:cột Thanh trượt ngang
Thanh chức năng
F1 Help F2 Save F3 Open Alt - F9 Compile F9 Make F10 Menu
[]
[]
1
1:1
*
Giáo trình Lập trình C căn bản Trang 13
Tai lieu tham khao
2.2.1.2 Thoát
Ấn phím F10 (kích hoạt Menu), chọn menu File, chọn Quit;
Hoặc ấn tổ hợp phím Alt – X.
2.2.2 Các ví dụ đơn giản
2.2.2.1 Ví dụ 1
Dòng File Edit Search Run Compile Debug Project Option Window Help
1
2
3
4
5
6
7
/* Chuong trinh in ra cau bai hoc C dau tien */
#include <stdio.h>
void main(void)
{
printf("Bai hoc C dau tien.");
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kết quả in ra màn hình
Bai hoc C dau tien. _
Dòng thứ 1: bắt đầu bằng /* và kết thúc bằng */ cho biết hàng này là hàng diễn giải (chú
thích). Khi dịch và chạy chương trình, dòng này không được dịch và cũng không thi hành lệnh gì cả.
Mục đích của việc ghi chú này giúp chương trình rõ ràng hơn. Sau này bạn đọc lại chương trình biết
chương tr
ình làm gì.
Dòng thứ 2: chứa phát biểu tiền xử lý #include <stdio.h>. Vì trong chương trình này ta
s
ử dụng hàm thư viện của C là printf, do đó bạn cần phải có khai báo của hàm thư viện này để
báo cho trình biên dịch C biết. Nếu không khai báo chương trình sẽ báo lỗi.
Dòng thứ 3: hàng trắng viết ra với ý đồ làm cho bảng chương trình thoáng, dễ đọc.
Dòng thứ 4: void main(void) là thành phần chính của mọi chương trình C (bạn có thể viết
main() hoặc void main() hoặc main(void)). Tuy nhiên, bạn nên viết theo dạng void main(void) để
chương tr
ình rõ ràng hơn. Mọi chương trình C đều bắt đầu thi hành từ hàm main. Cặp dấu ngoặc ()
cho biết đây là khối hàm (function). Hàm void main(void) có từ khóa void đầu tiên cho biết hàm
này không tr
ả về giá trị, từ khóa void trong ngoặc đơn cho biết hàm này không nhận vào đối số.
Dòng thứ 5 và 7: cặp dấu ngoặc móc {} giới hạn thân của hàm. Thân hàm bắt đầu bằng
dấu { và kết thúc bằng dấu }.
Dòng thứ 6: printf("Bai hoc C dau tien.");, chỉ thị cho máy in ra chuỗi ký tự nằm trong
nháy kép (""). Hàng này được gọi l
à một câu lệnh, kết thúc một câu lệnh trong C phải là dấu
chấm phẩy (;).
Chú ý:
Các từ include, stdio.h, void, main, printf phải viết bằng chữ thường.
Chuỗi trong nháy kép cần in ra "Bạn có thể viết chữ HOA, thường tùy, ý".
Kết thúc câu lệnh phải có dấu chấm phẩy.
Kết thúc tên hàm không có dấu chấm phẩy hoặc bất cứ dấu gì.
Ghi chú phải đặt trong cặp /* …. */.
Thân hàm phải được bao bởi cặp { }.
Các câu lệnh trong thân hàm phải viết thụt vào.
Giáo trình Lập trình C căn bản Trang 14
Tai lieu tham khao
Bạn nhập đoạn chương trình trên vào máy. Dịch, chạy và quan sát kết quả.
Ctrl – F9: Dịch và chạy chương trình. Alt – F5: Xem màn hình kết quả.
Sau khi bạn nhập xong đoạn chương trình vào máy. Bạn Ấn và giữ phím Ctrl, gõ F9 để
dịch và chạy chương trình. Khi đó bạn thấy chương trình chớp rất nhanh và không thấy kết quả gì
c
ả. Bạn Ấn và giữ phím Alt, gõ F5 để xem kết quả, khi xem xong, bạn ấn phím bất kỳ để quay về
màn hình soạn thảo chương trình.
Bây giờ bạn sửa lại dòng thứ 6 bằng câu lệnh printf("Bai hoc C dau tien.\n");, sau đó
dịch và chạy lại chương trình, quan sát kết quả.
Kết quả in ra màn hình
Bai hoc C dau tien.
_
Ở dòng bạn vừa sửa có thêm \n, \n là ký hiệu xuống dòng sử dụng trong lệnh printf. Sau đây
là một số ký hiệu khác.
+ Các kí tự điều khiển:
\n : Nh
ảy xuống dòng kế tiếp canh về cột đầu tiên.
\t : Canh c
ột tab ngang.
\r : Nhảy về đầu hàng, không xuống hàng.
\a : Ti
ếng kêu bip.
+
Các kí tự đặc biệt:
\\ : In ra d
ấu \
\" : In ra d
ấu "
\' : In ra dấu '
Bây giờ bạn sửa lại dòng thứ 6 bằng câu lệnh printf("\tBai hoc C dau tien.\a\n");, sau
đó dịch và chạy lại chương trình, quan sát kết quả.
Kết quả in ra màn hình
Bai hoc C dau tien.
_
Khi chạy chương trình bạn nghe tiếng bip phát ra từ loa.
Mỗi khi chạy chương trình bạn thấy rất bất tiện trong việc xem kết quả phải ấn tổ hợp
phím Alt – F5. Để khắc phục tình trạng này bạn sửa lại chương trình như sau:
Dòng File Edit Search Run Compile Debug Project Option Window Help
1
2
3
4
5
6
7
8
9
/* Chuong trinh in ra cau bai hoc C dau tien */
#include <stdio.h>
#include <conio.h>
void main(void)
{
printf("\t\tBai hoc C \rdau tien.\n");
getch();
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Không có nhận xét nào:
Đăng nhận xét