GIÁO TRÌNH BÀI TẬP KỸ THUẬT LẬP TRÌNH NGÔN NGỮ C
Lời mở đầu LỜI MỞ ĐẦU Khi bắt đầu làm quen với ngơn ngữ lập trình – Cụ thể ngơn ngữ C – Sinh Viên thường gặp khó khăn việc chuyển vấn đề lý thuyết sang cài đặt cụ thể máy Sách “Giáo Trình Bài Tập Kỹ Thuật Lập Trình” nhằm cung cấp cho Học Sinh - Sinh Viên Trường CĐ Công Nghệ Thông Tin Tp Hồ Chí Minh hệ thống tập, kỹ thực hành nâng cao ngơn ngữ lập trình C Cuốn sách xem tài liệu hướng dẫn bước cho Học Sinh - Sinh Viên Trường việc học áp dụng kiến thức lý thuyết lớp cách thành thạo sâu rộng Giáo trình chia thành 10 chương theo nội dung kiến thức, kèm theo Các đề thi mẫu phụ lục hướng dẫn viết chương trình, chuẩn đốn lỗi sửa lỗi Mỗi chương gồm phần: Phần lý thuyết: tóm tắt ngắn gọn với đầy đủ ví dụ minh hoạ kèm theo Phần tập: với nhiều tập chia làm hai mức độ luyện tập nâng cao, tập có đánh dấu * tập khó dành cho sinh viên luyện tập thêm Phần kết luận: Tóm tắt nội dung thao tác mà sinh viên cần nắm hay lưu ý chương Trong q trình biên soạn, chúng tơi cố gắng trích lọc kiến thức bản, lỗi hay gặp người lập trình Bên cạnh chúng tơi bổ sung thêm số tập nâng cao để rèn luyện thêm kỹ lập trình Tuy nhiên, chủ đích giáo trình phục vụ cho mơn học nên chắn khơng thể tránh khỏi thiếu sót, thế, mong nhận góp ý q báu thầy cô, đồng nghiệp bạn Học Sinh – Sinh Viên để giáo trình ngày hoàn thiện Chân thành cảm ơn Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang Lịch trình thực hành LỊCH TRÌNH THỰC HÀNH ¡ Tổng thời gian: 90 tiết STT NỘI DUNG SỐ TIẾT Chương 1: Lưu đồ thuật toán 03 Chương 2: Cấu trúc điều khiển 06 Chương 3: Hàm 12 Chương 4: Mảng chiều 24 Chương 5: Chuỗi ký tự 06 Chương 6: Mảng hai chiều 12 Chương 7: Kiểu liệu có cấu trúc 12 Chương 8: Tập tin 06 Chương 9: Đệ qui 06 10 Chương 10: Hướng dẫn lập trình phương pháp Project 03 Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang Lưu đồ thuật tốn CHƯƠNG LƯU ĐỒ THUẬT TOÁN (FLOWCHART) Các ký hiệu biểu diễn lưu đồ thuật toán, cách biểu diễn cấu trúc điều khiển rẽ nhánh, cấu trúc lặp kỹ thuật liên quan đến lưu đồ thuật toán I TÓM TẮT LÝ THUYẾT I.1 Khái niệm Lưu đồ thuật tốn cơng cụ dùng để biểu diễn thuật tốn, việc mô tả nhập (input), liệu xuất (output) luồng xữ lý thơng qua ký hiệu hình học I.2 Phương pháp duyệt • Duyệt từ xuống • Duyệt từ trái sang phải I.3 Các ký hiệu STT KÝ HIỆU DIỄN GIẢI Bắt đầu chương trình Kết thúc chương trình Luồng xử lý Điều khiển lựa chọn Nhập Xuất Xử lý, tính tốn gán Trả giá trị (return) Điểm nối liên kết (Sử dụng lưu đồ vượt trang) Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang Lưu đồ thuật tốn I.4 Các cấu trúc điều khiển a Cấu trúc Tuần tự thực thi tiến trình Mỗi lệnh thực thi theo chuỗi từ xuống, xong lệnh chuyển xuống lệnh Ví dụ: Nhập vào số nguyên a, b, c xuất hình với giá trị số tăng lên BẮT ĐẦU a, b, c a=a+1 b=b+1 c=c+1 a, b, c KẾT THÚC Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang Lưu đồ thuật tốn b Cấu trúc lựa chọn Điểm định cho phép chọn hai trường hợp • if Chỉ xét trường hợp Biểu thức điều kiện Đúng Ví dụ: Nhập vào số nguyên n Kiểm tra n > tăng n lên đơn vị Xuất kết BAÉT ĐẦU n n>0 Đúng n = n+1 n KẾT THÚC Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang Lưu đồ thuật tốn • if…else Xét trường hợp trường hợp sai Sai Biểu thức điều kiện Đúng Ví dụ: Nhập vào số nguyên n Kiểm tra n chẵn xuất hình “n chẵn”, ngược lại xuất “n lẻ” c Cấu trúc lặp Thực liên tục lệnh hay tập lệnh với số lần lặp dựa vào điều kiện Lặp kết thúc điều kiện thỏa Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang Lưu đồ thuật tốn • for / while (Kiểm tra điều kiện trước lặp) Điều kiện lặp Đúng Sai Ví dụ: Nhập vào số ngun n Xuất hình từ đến n BẮT ĐẦU n i=1 i n Đúng i Sai i=i+1 KẾT THÚC Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang Lưu đồ thuật tốn • … while (Thực lặp trước kiểm tra điều kiện) Ví dụ: Nhập vào số nguyên dương n Nếu nhập sai yêu cầu nhập lại d Các ví dụ Ví dụ 1: Giải biện luận phương trình: ax+b=0 Giáo trình Bài Tập Kỹ Thuật Lập Trình Trang Lưu đồ thuật tốn BẮT ĐẦU a, b, c Sai a=0 Đúng Sai Nghiệm x=-b/a b Vô Số Nghiệm Đúng Vô Nghiệm KẾT THÚC Ví dụ 2: Tính tổng: S = + + + L + n , với n>0 Ví dụ 3: Tính tổng: S (n) = 2n + + + + + 2n + Giáo trình Bài Tập Kỹ Thuật Lập Trình , với n>0 Trang Lưu đồ thuật tốn BẮT ĐẦU n i=0 S=0 t=1 m=2 i 0 BẮT ĐẦU n i=1 S=0 dau = i 0) printf(“Duong”); } Sửa thành: void main() { int a; scanf(“%d”,&a); if(a>0) printf(“Duong”); } Sai : void main() Trang 140 Hướng dẫn viết chương trình mơi trường Borland C++ 3.1 Misplaced else For statement missing ; Chấm phẩy sau phát biểu if khối lệnh thực phát biểu if chưa đặt cặp dấu ngoặc {} Thiếu thành phần cú pháp vòng lập for quên dùng dấu chấm phẩy (;) để ngăn cách thành phần , … (Phải có đủ dấu chấm phẩy) Thiếu dấu phẩy phân cách phần định dạng danh sách Function call biến hàm printf scanf missing ) Giáo trình Bài Tập Kỹ Thuật Lập Trình thiếu dấu { { sửa tương ứng int a; scanf(“%d”,&a); if(a>0) printf(“Duong”); } } Sửa thành: void main() { int a; scanf(“%d”,&a); if(a>0) printf(“Duong”); } Sai : if (a%2); printf(“a le”); else if(a>10) printf(“a chan”); printf(“, > 10”); else printf(“a < 10”); Sửa thành: if (a%2) printf(“a le”); else if(a>10) { printf(“a chan ”); printf(“, > 10”); } else printf(“a < 10”); Kiển tra cho Sai : cú pháp: for(int i=0, i