Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 439 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
439
Dung lượng
14,2 MB
Nội dung
gfCÄN BAN NÂN G l AO Thư viện - ĐH Quy Nhơn GIẢO TRĨNH Kỹ t h u ậ t Lậ p t r ìn h c Căn & Nâng cao T R Ư ềN G ĐẠI H f C t u v N HƠ * THƯ VIỆN W P - Í4 W GIÁO TRÌNH KỸ THUẬT LẬP TRÌNH c Căn & Nâng cao Xuất theo hợp sử dụng hợp đồng Công ty cổ phần văn hóa Huy Hồng tác giả mYHOANG HU Biên mục xuất phẩm 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 nâng cao / Phạm Văn Ất (ch.b.), Nguyễn Hiếu Cường, Đỗ Văn Tuấn, Lê Trường Thông - H : Bách khoa Hà N ộ i; Cơng ty Văn hố Huy Hồng, 2020 - 437tr.; 24cm ISBN 9786049931208 Ngơn ngữ lập trình Ngồn ngữ C Giáo trình 005.1330711 -dc23 BKH0073p-CIP HEM 13- G I A O TRI NH GS PHẠM VÀN ẤT (chủ biên) LÊ TRƯỞNG THƠNG • - ThS NGUYỄN HIỂU CUÒNG - Ths ĐỖ VÀN TUẤN CĂN BẢN N Ả N G &CAO B :*.s a ỊMỊ cm a 1 nhàxuất bàn báchkhoahanội HUYHOANG ' Hướng dẫn tải file Bạn đọc chọn cách sau: Truy cập website Huy Hoàng địa huyhoangbook.vn, gõ tên sách vào mục “Nhập để tìm kiếm” tải file theo link đính kèm Gõ theo link sau: https://www.huyhoangbook.vn/products/giao-trinh-ky-thuat-lap-trinh-c-can-ban-nang-cao Dùng smartphone quét mã QR code: Kỹ thuật lập trình + LỜ I NOI ĐAU c + Ngơn ngữ lập trình c (CProgramming Language) đời vào năm đầu thập niên 70 m ột phịng thí nghiệm vẽ lĩnh vực máy tính tiếng vào bậc giới - Bell Lab* c đời với mục đích ban đầu rõ ràng, để viết hệ điểu hành UNIX Nhưng rồi, ưu điểm nó, c nhanh chóng vượt khỏi giới hạn phịng thí nghiệm lan rơng tồn giới Trên the giơi, nhieu nước, c chọn ngôn ngữ để dạy ngơn ngữ lập trình cài đặt thuật tốn Ở Việt Nam, trư ờng'đại học có đao tạo công nghệ thông tin, c chọn để dạy ngơn ngữ lập trình trước dạy ngơn ngữ khác, C++, c# hay Java, Thế nhưng, thực tế, C mơt ngơn ngữ lập trình mạnh, nhà tin học chuyên nghiệp cac lập trình viên, nhà khoa học sử dụng để lập trình hệ thống, lập trinh ứng dụng giải nhiều toán khoa học kỹ thuật Giáo trình Kỹ thuật lập trình c hình thành qua nhiều năm giảng dạy tác giả Ngôn ngữ lập trình c mơn học sở chương trình đào tạo kỹ sư, cử nhân tin học Ở đây, sinh viên trang bị kiến thức vể lập trình, kỹ thuật tổ chức liệu Để đáp ứng nhu cầu học ngơn ngữ lập trình c sinh viên nhu cầu tài liệu cho người nhiều ngành khoa học kỹ thuât cần nghiên cứu c để giải tốn mình, biên soan CU O P sach Nội dung sách gồm 15 chương 13 phụ lục * Bell Lab nơi quy tụ nhiêu nhà khoa học nghiên cứu tiếng, hàng đầu vế lĩnh vực máy tính như: Dennis Ritchie - tác giả c tác giả Unix Björne Stroustrup - tác giả c++, Ken Thompson - tác giả Unix {5 } Kỹ thuật ìập trinh c ị Chương mơ đẩu Giới thiệu môi trường viết mã nguồn khác với Turbo c 2.0 truyền thống, phù hợp với hệ điểu hành Windows dùng phổ biến nhẫt nay, Windows 7, Windows Chương Giới thiệu khái niệm bản, chương trình c đơn giản cách thực chúng máy Chương Trình bày kiểu liệu, cách biểu diễn giá trị liệu cách tổ chức liệu biến mảng, cách xử lý liệu đơn giản nhờ phép toán, biểu thức câu lệnh gán Chương Trình bày biểu thức phép tốn Chương Trình bày hàm vào liệu từ bàn phím, hình Chương Trình bày tốn tử quan trọng dùng để thể thuật tốn, tốn tử rẽ nhánh, tốn tử tạo lập vịng lặp Chương Trình bày cách tổ chức chương trình thành hàm, quy tắc xây dựng sử dụng hàm Các vấn để hay khó trỏ, trỏ hàm kỹ thuật đệ quy Chương Trình bày kiểu liệu quan trọng cấu trúc hợp Củng nói vẽ hàm cấu trúc, cấu trúc tự trỏ danh sách liên kết Chương Trình bày việc quản lý hình cách xây dựng cửa sổ Chương Trình bày hàm đồ họa để vẽ hình kỹ thuật tạo ảnh chuyển động Chương 10 Trình bày thao tác tệp như: tạo tệp, ghi liệu từ nhớ lên tệp, đọc liệu từ tệp vào nhớ Chương 11 Trình bày vể cách lưu trữ liệu tổ chức nhớ chương trình Chương 12 Trình bày thị tiền xử lý giúp việc biên soạn, biên dịch chương trình hiệu Chương 13 Trình bày số ví dụ hay hàm đưa thông tin trực tiếp vào nhớ Chương 14 Trình bày cách sử dụng hàm viết Assembler c Phụ lục trình bày quy tắc xuống dịng sử dụng kí tự trống viết chương trình Phụ lục dùng đểtra cứu hàm chuẩn thường dùng c Phụ lục trình bày bảng mã ASCII mã quét Phụ lục hướng dẫn cách cài đặt Turbo c 2.0 Phụ lục giới thiệu chung.về môi trường kết hợp c Phụ lục trình bày vế cách sử dụng hệ soạn thảo c dùng để biên soạn chương trình gốc {6 } Kỹ thuật lập trình c Phụ lục trình bày dùng menu Project để dịch chương trình viết nhiều tệp Phụ lục hướng dẫn cách dùng trình biên dịch TCC để dịch (từ mơi trường DOS) chương trình lớn viết nhiều tệp Phương pháp cho phép biên dịch chương trình lốn viết vài ngàn dịng lệnh Phụ lục hướng dẫn phương pháp gỡ rối chạy chưọng trình bước để dị tìm lỗi chương trình Phu luc 10 trình bày mơ hình nhớ c Cũng nói cách tạo tệp chương trình COM cách dịch theo mơ hình Tiny chế độ dòng lênh TCC biên dịch thường nhận tệp chương trình EXE Phu luc 11 trình bày tóm tắt hàm Turbo c theo thứ tự ABC Phu luc 12 trình bày cách xây dựng hàm với số đối bất định, hàm printf, scant c Công cụ chủ yếu dùng trỏ danh sách Phu lục 13 trình bày số chương trình m inh họa thuật toán đệ quy kiểu quay lui thuật toán quy hoạch động có tính chất kinh điển Chương trình tổ chức thành nhiều hàm Trong trình viết, chúng tơi cố gắng để giáo trình hồn chỉnh, song chac chắn khơng tránh khỏi thiếu sót, mong nhận góp ý cua độc giả để sách ngày hoàn thiện Các tác giả Ghi chú: Mã nguồn chương trình cn sách thức tải vê tù website Nhà sách Huy Hoàng tại: www.huyhoangbook.vn {7 } Kỹ thuật lập trình c J + CHƯƠNG MỞ ĐẦU + CODE::BLOCKS Chương giới môi trường viết mã nguồn khác với Turbo c 2.0 kinh điển, Coder.Blocks - có dung lượng nhỏ gọn, thân thiện viết mã, tích hợp trình biên dịch có giao diện bắt mắt, chạy tốt hệ điểu hành Windows 7, Windows §1 GIỚI THIỆU Turbo c 2.0 môi trường kinh điển để viết mã nguồn, biên dịch chạy chương trình lập trình ngơn ngữ c Nó có tính lịch sử tốt dạy học Các chương trình sách đểu thử nghiệm Turbo c 2.0 Tuy nhiên, hệ điểu hành Windows 7, Windows hãng Microsoft sử dụng rộng rãi Việc chạy Turbo c 2.0 với hình màu xanh hệ điều hành nhiều có tính cổ hủ Chính thế, chúng tơi chọn giới thiệu thêm mơi trường viết mã, tích hợp biên dịch chạy khác với Turbo c 2.0 truyền thống, Code::Blocks Các chương trình sách chạy Code:Blocks hồn tồn tốt, có vài khác biệt nhỏ không đáng kể Khi biên dịch chạy chương trình, có lỗi, dễ dàng phát sửa, ví dụ: Code-Blocks lệnh clrscrQ; khơng khả dụng, xóa ghi dịng lệnh này, mã nguổn chạy bình thường Code-Blocks có đặc điểm mã nguồn mở miễn phí Nó có giao diện đẹp thân thiện nhiều so với Turbo c 2.0 đủ nhỏ so với Visual Studio Microsoft §2 CÀI ĐẶT Phiên Code-Blocks sử dụng 13.12 Các phiên khác, việc cài đặt hoàn toàn tương tự {8 } Kỹ thuật lập trình c Code::Blocks The open source, cross-platform IDE 13.12 Sau chạy tệp cài đặt Các hộp thoại tiến trình cài đặt ra, để mặc định thơng số, chọn Next > I Agree > Next > Install > No > Next > Finish §3 SỬ DỤNG C BẢN Tạo tệp chương trình - Khởi động Code::Blocks - Vào File > New > Empty file Hoặc kích chuột trái vào biểu tượng tương ứng Hoặc sử dụng tổ hợp phím Ctrl + Shift + N - Viết mã nguồn chương trình - Biên dịch chạy chương trình: Vào Build > Build and run Hoặc kích chuột trái vào biểu tượng tương ứng công cụ Hoặc sử dụng phím F9 Xem hình mainx W toW oHd p T S E flB B E T File ịá ầ View Search Eroject guild Debug Fortran wxSrmth lo o k Tọọts* Pjugins Dog 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 cơng cụ Hoặc dùng phím tắt Ctrl + o - Chọn đến thư mục tệp cẩn mở chọn Open {9 } Kỹ thuật lập trình c /* QHD0NG2.C #include #include #include #include tyoedef int M T [100][100]; typedef char MT2[100] [100]; void doc_dl(char *ttep, char *a, char *b, int *m, int *n); void khoi_tao(MT c, int m, int n); void truy_hoi(char *a, char *b,MT c, MT d, MT2 e, int m, int n); void in_day_con_chung max (MT c, MT d, MT2 e, int m,int n) void doc_dl(char *ttep, char *a, char *b, int *m, int *n) { FILE *fp; char sa[100], sb[100]; int nn,mm,i; fp=fopen(ttepf"rt"); if(fp==NULL) { printf ("\nTep %s khong ton tai", ttep) ; getcho exit (0); } fgets(sa,100,fp); fgets(sb,100,fp); mm=strlen(sa); nn=strlen(sb); *m = mm; *n = nn; for (i= 1; i