0 Yêu cầu môn học: • Nắm vững ngôn ngữ lập trình C • Hòan thành các bài tập theo yêu cầu của giáo viên • Làm Bài tập lớn: Thực hiện thiết kế, xây dựng chương trình để giải quyết một bài toán cụ thể (làm việc theo nhóm, mỗi nhóm từ 3 đến 5 sinh viên). Viết báo cáo. Phương pháp đánh giá: • Điểm chuyên cần (đánh giá qua bài tập và quá trình dự lớp) • Kiểm tra thực hành trên máy • Bảo vệ bài tập lớn. K K Ỹ Ỹ THU THU Ậ Ậ T L T L Ậ Ậ P TRÌNH P TRÌNH 1 NỘI DUNG CỦA BẢN BÁO CÁO • Trình bày quá trình phát triển chương trình theo phương pháp tinh chỉnh dần. Kiểm tra thực hành trên máy: lập trình theo yêu cầu trong khoảng 20-30 phút. Đánh giá bài tập lớn: • Giáo viên chỉ định một sinh viên bất kỳ làm đại diện cho nhóm để demo chương trình, trình bày báo cáo và trả lời câu hỏi. Khởi đầu, điểm của tất cả các sinh viên trong nhóm đều bằng nhau và được chấm dựa trên chất lượng của chương trình và phần báo cáo của sinh viên đại diện nhóm. Điểm cuối cùng của mỗi sinh viên có thể bị giảm trừ, phụ thuộc vào phần thi vấn đáp. • Sinh viên cầ n nộp file báo cáo (dạng *.doc); file chương trình nguồn; file chương trình chạy vào buổi bảo vệ bài tập lớn. 2 KH KH Á Á I NI I NI Ệ Ệ M M M M Ở Ở Đ Đ Ầ Ầ U U Chương trình (program) • Tập các chỉ thị cho máy tính biết chính xác những gì cần thực hiện Lập trình (programming, coding): • quá trình từ Thiết kế, Viết, kiểm thử (testing), duyệt lỗi (debuging), duy trì mã nguồn (source code) của chương trình máy tính. Mã nguồn được viết bởi Ngôn ngữ lập trình. Ngôn ngữ lập trình (programming languages) • ngôn ngữ để đặc tả dãy các chỉ thị tới máy tính. • giao tiếp giữa con người và máy tính 3 KH KH Á Á I NI I NI Ệ Ệ M M M M Ở Ở Đ Đ Ầ Ầ U U Phân loại ngôn ngữ lập trình: • Ngôn ngữ máy (machine language) • Hợp ngữ (assembly language) • Ngôn ngữ cấp cao (high−level language) Chương trình dịch • Dịch từ ngôn ngữ cấp cao thành ngôn ngữ máy • Phân loại: trình biên dịch (compiler) và trình thông dịch (interpreter) 4 Kh Kh á á i ni i ni ệ ệ m m m m ở ở đ đ ầ ầ u u Trình biên dịch: chuyển một chương trình trong ngôn ngữ cấp cao (chương trình nguồn) sang ngôn ngữ may (chương trình đích) • Thời gian dịch (compile time) • Thời gian thực thi (run time): thời gian chương trình đích thực thi Chương trình nguồn Chương trình đích Kết quả Trình biên dịch Máy tính thực hiện Dữ liệu 5 Kh Kh á á i ni i ni ệ ệ m m m m ở ở đ đ ầ ầ u u Trình thông dịch: dịch từng câu lệnh và thi hành lệnh ngay. Máy tính thực hiện Chương trình nguồn Kết quả Trình thông dịch Dữ liệu 6 Thuật toán (Giải thuật − Algorithm): một dãy các bước, độc lập với ngôn ngữ lập trình, nhằm giải quyết một bài toán nhất định. Cấu trúc dữ liệu: là các lưu trữ dữ liệu trên máy tính sao cho việc sử dụng dữ liệu đó được hiệu quả. Đóchính làtổ chức các khái niệm toán học và logic về dữ liệu. Chương trình = Cấu trúc dữ liệu + Thuật toán 7 Bài 1. Viết chương trình tính tổng và in kết quả ra màn hình: S = 1 + 3 2 + 5 2 + ….+ n 2 , với n là một số nguyên lẻ, nhập vào từ bàn phím. Bài 2. Viết chương trình thực hiện các yêu cầu: 1. Nhập vào 2 vectơ x, y gồm n thành phần là các số thực (n nhập vào từ bàn phím). 2. Tính tích vô hướng 2 vec tơ và in kết quả ra màn hình B B À À I T I T Ậ Ậ P P ∑ = = n i ii yxXY 1 . 8 TÀI LIỆU THAM KHẢO Đỗ Xuân Lôi, Cấu trúc dữ liệu và giải thuật, NXB ĐHQGHN, 2008. Hồ Thuần, Hồ Cẩm Hà, Trần Thiên Thành, Cấu trúc dữ liệu, Phân tích thuật toán và phát triển phần mềm, NXBGD, 2008. Lê Hoài Bắc, Nguyễn Thanh Nghị, Kỹ năng lập trình, NXB Khoa học & Kỹ thuật, 2005. Phạm Văn Ất, Kỹ thuật lập trình C cơ sở và nâng cao, NXB KH&KT, 1999. . Yêu c u môn h c: • Nắm vững ngôn ngữ lập trình C • Hòan thành c c bài tập theo yêu c u c a giáo viên • Làm Bài tập lớn: Th c hiện thiết kế, xây dựng chương trình để giải quyết một bài toán c . loại ngôn ngữ lập trình: • Ngôn ngữ máy (machine language) • Hợp ngữ (assembly language) • Ngôn ngữ c p cao (high−level language) Chương trình dịch • Dịch từ ngôn ngữ c p cao thành ngôn ngữ. code) c a chương trình máy tính. Mã nguồn đư c viết bởi Ngôn ngữ lập trình. Ngôn ngữ lập trình (programming languages) • ngôn ngữ để đ c tả dãy c c chỉ thị tới máy tính. • giao tiếp giữa con