GIÁO TRÌNH KỸ THUẬT LẬP TRÌNH C Căn bản & Nâng cao GIÁO TRÌNH KỸ THUẬT LẬP TRÌNH C Căn bản & Nâng cao Xuất bản theo hợp đồng sử dụng hợp đồng giữa Công ty cổ phần văn hóa Huy Hoàng và tác giả. HUYHOANG Biên mục trên xuất bản phẩm của Thư viện Quốc gia Việt Nam Phạm Văn Ất | Giáo trình kỹ thuật lập trình C: Căn bản và nâng cao / Phạm Văn Ất (ch.), Nguyễn Hiếu Cường, Đỗ Văn Tuấn, Lê Trường Thông. : Bách khoa Hà Nội ; Công ty Văn hoá Huy Hoàng, 2021. Ngôn ngữ lập trình 2.
Giáo trình 005.1330711 - dc23 BKH0073p-CIP © GS. PHAM VAN AT (chi bién ThS. NGUYEN HIEU CƯỜNG © › LÊ TRƯỜNG THONG « 2 ThS. DO VANTUAN < ESE fsa cigia mega ia EEIHiIS EE3RlA“ ERM ties ie HUYHOANG SP, NHÀ XUẤT BẢN BÀCH KHOA HÀ Nội Hướng dẫn tải file Bạn đọc có thể chọn một trong các cách sau: 1.
Truy cập website Huy Hoàng tại địa chỉ huyhoangbook.vn, gõ tên sách vào mục “Nhập để tìm kiếm” và tải file theo link đính kèm. Gõ đúng theo link sau: https://www.vn/products/- giao-trinh-ky-thuat-lap-trinh-c-can-ban-nang-cao 3. Dùng smartphone quét mã QR code: Up aoael Kỹ thuật lập trình C Ngôn ngữ lập trình C (C Programming Language) ra đời vào những năm đầu của thập niên 70 trong một phòng thí nghiệm về lĩnh vực máy tính nổi tiếng vào bậc nhất thế giới - Bell Lab*. C ra đời với mục đích ban đầu rất rõ ràng, là để viết hệ điều hành ƯNIX.
Nhưng rồi, vì những ưu điểm của nó, C đã nhanh chóng vượt raa khỏi giới hạn của phòng, thí nghiệm và lan rộng ra toàn thế giới. Trên thế giới, tại nhiều nước, C được chọn là ngôn ngữ để dạy về một ngôn ngữ lập trình và cài đặt thuật toán. Ở Việt Nam, tại các trường đại học có đào tạo công nghệ thông tin, C được chọn để dạy ngôn ngữ lập trình trước khi dạy các ngôn ngữ khác, như C++, C# hay Java,. Thế nhưng, thực tế, C là một ngôn ngữ lập trình mạnh, nó được các nhà tin học chuyên nghiệp cũng như các lập trình viên, các nhà khoa học sử dụng để lập trình hệ thống, lập trình ứng dụng và giải quyết nhiều bài toán khoa học và kỹ thuật.
- Giáo trình Kỹ thuật lập trình C này được hình thành qua nhiều năm giảng dạy của các tác giả. Ngôn ngữ lập trình C là một môn học cơ sở trong chương trình đào tạo kỹ sư, cử nhân tin học. Ở đây, các sinh viên được trang bị những kiến thức cơ bản nhất về lập trình, các kỹ thuật tổ chức dữ liệu. Để đáp ứng nhu cầu học ngôn ngữ lập trình C của sinh viên cũng như nhu cầu về tài liệu cho mọi người trong nhiều ngành khoa học và kỹ thuật cần nghiên cứu C để giải quyết các bài toán của mình, chúng tôi biên soạn cuốn sách này.
Nội dung cuốn sách gồm 15 chương và 13 phụ lục. * Bell Lab la noi quy tu nhiéu nha khoa học và nghiên củu nổi tiếng, hàng đầu về lính vực máy tính như: Dennis Ritchie - tác giả của và đông tác giả Unix, Bjarne Stroustrup - tac gid C++, Ken Thompson- dong tac gid Unix. {5} Kỹ thuật lập trình C Chương mở đấu. Giới thiệu một môi trường viết mã nguồn khác với Turbo C 2.0 truyền thống, phù hợp hơn với các hệ điều hành Windows đang được dùng phổ biến nhất hiện nay, như Windows 7, Windows 8.
Giới thiệu các khái niệm cơ bản, các chương trình C đơn giản và cách thực hiện chúng trên máy. Trình bày các kiểu dữ liệu, cách biểu diễn các giá trị dữ liệu và cách tổ chức dữ liệu trong biến và mảng, cách xử lý dữ liệu đơn giản nhờ các phép toán, biểu thức và câu lệnh gán. Trình bày về biểu thức và các phép toán. Trình bày các hàm vào ra dữ liệu từ bàn phím, màn hình.
Trình bày về các toán tử rất quan trọng dùng để thể hiện các thuật toán, đó là các toán tử rẽ nhánh, toán tử tạo lập vòng lặp. Trình bày cách tổ chức chương trình thành các hàm, các quy tắc xây dựng và sử dụng hàm. Các vấn để hay và khó ở đây là con trỏ, con trỏ hàm và kỹ thuật đệ quy. Trình bày về một kiểu đữ liệu quan trọng là cấu trúc và hợp.
Cũng sẽ nói về các hàm trên cấu trúc, cấu trúc tự trỏ và danh sách liên kết. Trình bày về việc quản lý màn hình và cách xây dựng cửa sổ. Trình bày các hàm đồ họa để vẽ các hình cơ bản và kỹ thuật tạo _ ảnh chuyển động. Trình bày các thao tác trên tệp như: tạo mới một tệp, ghi đữ liệu từ bộ nhớ lên tệp, đọc dữ liệu từ tệp vào bộ nhớ.
Trình bày về cách lưu trữ dữ liệu và tổ chức bộ nhớ của chương trình. Trình bày các chỉ thị tiền xử lý giúp việc biên soạn, biên dịch chương trình hiệu quả hơn. Trình bày một số ví dụ hay như các hàm đưa thông tin trực tiếp vào bộ nhớ. Trình bày cách sử dụng các hàm viết bằng Assembler trong C.
Phụ lục 1 trình bày quy tắc xuống dòng và sử dụng các kí tự trống khi viết chương trình. Phụ lục 2 có thể dùng để tra cứu các hàm chuẩn thường dùng của C. Phụ lục 3 trình bày các bảng mã ASCH và mã quét. Phụ lục 4 hướng dẫn cách cài đặt Turbo C 2.
Phụ lục 5 giới thiệu chung về môi trường kết hợp của C. Phụ lục 6 trình bày về cách sử dụng hệ soạn thao C ding dé bién soan chương trình gốc. {6} ị Kỹ thuật lập trình C Phụ lục 7 trình bày các dùng menu Project để dịch chương trình viết trên nhiều tệp. Phụ lục 8 hướng dẫn cách dùng trình biên dịch TCC để dịch (từ môi trường DO®S) các chương trình lớn viết trên nhiều tệp.
Phương pháp này cho phép biên dịch các chương trình rất lớn viết trên vài ngàn dòng lệnh. Phụ lục 9 hướng dẫn phương pháp gỡ rối và chạy chương trình từng bước để dò tìm lỗi chương trình. Phụ lục 10 trình bày 6 mô hình bộ nhớ của C. Cũng sẽ nói cách tạo tệp chương trình đuôi COM bằng cách dịch theo mô hình Tïny trong chế độ dòng lệnh TCC, khi biên dịch thường nhận được các tệp chương trình đuôi EXE.
Phụ lục 11 trình bày tóm tắt các hàm của Turbo C theo thứ tự ABC. Phụ lục 12 trình bày cách xây dựng các hàm với số đối bất định, như các ham printf, scanf cla C. Công cụ chủ yếu được dùng là con trỏ và danh sách. Phụ lục 13 trình bày một số chương trình minh họa thuật toán đệ quy kiểu quay lui và thuật toán quy hoạch động có tính chất kinh điển.
Chương trình được tổ chức thành nhiều hàm. Trong quá trình viết, chúng tôi đã cố gắng để giáo trình được hoàn chỉnh, song chắc chắn không tránh khỏi thiếu sót, vì vậy rất mong! nhận được sự góp ý của độc giả để cuốn sách ngày một hoàn thiện hơn. Các tác giả Ghi chú: Mã nguốn các chương trình trong cuốn sách này chỉ có thể chính thức Äược tải về từ website của Nhà sách Huy Hoàng tại: www.vn {7} Kỹ thuật lập trình C_| CODE::BLOCKS Chương này sẽ giới một môi trường viết tmã nguồn khác với Turbo C 2.0 kinh điển, đó là Code::Blocks - nó có dung lượng nhỏ gọn. thân thiện trong viết md, tích hợp trình biên dịch và có giao diện bắt mắt, chạy tốt trên hệ điều hành Windows 7, Windows 8.
GIỚI THIỆU Turbo C 2.0 là môi trường kinh điển để viết mã nguồn, biên dịch và chạy các chương trình đối với lập trình ngôn ngữ C. Nó có tính lịch sử và rất tốt đối với dạy và học. Các chương trình trong cuốn sách này đều được thử nghiệm trên Turbo C 2. | Tuy nhiên, hiện nay hệ điểu hành Windows 7, Windows 8 của hãng Microsoft được sử dụng rộng rãi.
Việc chạy Turbo C 2.0 với màn hình màu xanh trên hệ điểu hành này ít nhiều có tính cổ hủ. Chính vì thế, chúng tôi chọn và giới thiệu thêm một môi trường viết mã, tích hợp biên dịch và chạy khác với Turbo C 2.0 truyền thống, đó là Code::Blocks. Các chương trình trong cuốn sách này chạy trên Code:Blocks hoàn toàn tốt, chỉ có một vài khác biệt nhỏ không đáng kể. Khi biên dịch và chạy chương trình, nếu có lỗi, chúng ta dễ dàng phát hiện và sửa, ví dụ: trong Code::Blocks lệnh clrscr(); không khả dụng, chúng ta xóa hoặc ghi chú dòng lệnh này, thì mã nguồn sẽ chạy bình thường.
Code::Blocks có đặc điểm là mã nguồn mở và miễn phí. Nó có giao diện đẹp và thân thiện hơn nhiều so với Turbo C 2.0 và nó cũng đủ nhỏ nếu so với Visual Studio của Microsoft. CAI DAT Phiên bản Code::Blocks chúng tôi sử dụng ở đây là bản 13. Các phiên bản khác, việc cài đặt hoàn toàn tương tự.
18} | Kỹ thuật lập trình C Code::Blocks The open source, cross-platform IDE 13.12 Sau khi chạy tệp cài đặt. Các hộp thoại của tiến trình cài đặt hiện ra, để mặc định các thông số, lần lượt chọn Next > I Agree > Next > Install > No > Next > Finish. SU DUNG CO BAN 1. Tạo mới một tệp chương trình - Khởi động Code::Blocks.
- Vào File > New > Empty file. Hoac kích chuột trái vào các biểu tượng tương ứng. Hoặc sử dụng tổ hợp phim Cérl + Shift + N. - Viết mã nguồn của chương trình.
- Biên địch và chạy chương trình: Vào Build > Builả and run. Hoặc kích chuột trái vào biểu tượng tương ứng trên thanh công cụ. Hoặc sử dụng phím F9. Xem hình dưới đây.
BE maincitdloweid]-CGdaBiodz1ã “File Edit -View : Search ` Build D: |. wSmith Tools -Tools+ Plugins ro fie % | 8 New file Tao tép mới “ i , ==eee | | main.c x! Projects | | Sym? aa = Dịch và chạy =”T£ 7 rojects #include <stdio.h> FH : Wortspace &)ts-" #includs <stdlib.h> : : Ww Nd ‘ HelloWorld BAH 2 Sources -. 1}a maine int main () a4 Oe print£("Hello world!\n"); return 0; Viết mã “| Lo 2. Mở một tệp chương trình có sẵn.~ Khởi động Code::Blocks.
- Vào File > Open. Hoặc kích chuột trái vào biểu tượng. Open trên thanh công cụ. Hoac ding phim tat Ctrl + O.
- Chọn đến thư mục và tệp cần mở và chon Open. {9} Kỹ thuật lập trình C ` CÁC KHÁI NIỆM CƠ BẢN Trong chương này sẽ giới thiệu những thành phan co ban cha ngôn rigfũ lập trình C (cũng như của bất kỳ ngôn ngũ lập trình nào khác) đó là: tập ký tự, từ khóa và tên.