Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 148 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
148
Dung lượng
2,28 MB
Nội dung
30.11.2016 TRƢỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN VIỆN CÔNG NGHỆ THÔNG TIN KINH TẾ BÀI GIẢNG CƠ SỞ LẬP TRÌNH THÔNG TIN GIẢNG VIÊN Nhóm GV: ThS Nguyễn Quỳnh Mai ThS Cao Thị Thu Hương ThS Trần Thị Mỹ Diệp TS Phạm Minh Hoàn Địa chỉ: BM Công nghệ thông tin - C100, ĐH Kinh tế Quốc dân, 207 Đường Giải Phóng, Hai Bà Trưng, Hà Nội Website: http://cntt.neu.edu.vn Số điện thoại: (84-4) 36 280280 / 6689 Email: bmcntt@neu.edu.vn ; mainq@neu.edu.vn 30.11.2016 KẾ HOẠCH GIẢNG DẠY Phân bố thời gian giảng dạy STT Nội dung Trong Tổng số tiết Lý thuyết Bài tập, thực hành, kiểm tra Chƣơng Chƣơng Chƣơng Chƣơng Chƣơng Chƣơng 3 8 3 1 Chƣơng Chƣơng Chƣơng 4 45 30 15 Cộng Ghi Học phòng máy tính KẾ HOẠCH GIẢNG DẠY Thời điểm kiểm tra kỳ: Sau tuần học thứ 10 Thời gian làm kiểm tra: 60 phút, lập trình máy tính Phạm vi, nội dung kiểm tra: Các kiến thức học 30.11.2016 PHƢƠNG PHÁP ĐÁNH GIÁ HỌC PHẦN Đánh giá giảng viên: 10% số điểm Hình thức: tham dự học, làm tập nhà hàng tuần tham gia thảo luận lớp Kiểm tra kỳ: 20% số điểm Hình thức: kiểm tra, lập trình máy tính Thi kết thúc học phần: 70% số điểm Hình thức: lập trình máy tính Điều kiện dự thi: Sinh viên phải có mặt lớp tối thiểu 80% số tiết học CHƢƠNG NHỮNG KHÁI NIỆM CƠ BẢN CỦA LẬP TRÌNH 30.11.2016 MỤC TIÊU Mô tả đƣợc quy trình xây dựng toán MTĐT; So sánh đƣợc khác câu lệnh, chƣơng trình phần mềm; Biết đƣợc lịch sử đời, trình hình thành phát triển ngôn ngữ C, C++; Liệt kê đƣợc kỹ thuật lập trình bản; Giải thích đƣợc khái niệm, tính chất cách biểu diễn thuật toán; Phân biệt đƣợc khái niệm: liệu, cấu trúc liệu, chƣơng trình; NỘI DUNG 1.1 Quy trình giải toán MTĐT 1.2 Chƣơng trình lập chƣơng trình 1.3 Lịch sử đời phát triển C C++ 1.4 Các kỹ thuật lập trình 1.5 Thuật toán 1.6 Cấu trúc liệu 30.11.2016 1.1 Quy trình giải toán MTĐT Xác định toán Mô hình hoá toán Tìm phƣơng pháp giải Chuẩn hoá liệu Viết thuật giải cho toán Viết chƣơng trình cho toán Thử nghiệm chƣơng trình Chạy với liệu thật Phân tích, đánh giá, sử dụng kết viết hƣớng dẫn sử dụng 1.2 Chƣơng trình lập chƣơng trình 10 Chương trình: dãy lệnh mà MTĐT hiểu đƣợc cần thực theo thứ tự xác định để giải toán Lập chương trình: (gọi tắt lập trình) trình viết chƣơng trình công cụ lập trình (ngôn ngữ lập trình) Ngƣời viết chƣơng trình đƣợc gọi lập trình viên (programmer) 30.11.2016 1.2 Chƣơng trình lập chƣơng trình 11 Phần mềm Chƣơng trình Câu lệnh Chƣơng trình Câu lệnh Câu lệnh 1.2 Chƣơng trình lập chƣơng trình 12 Sự phát triển công cụ lập trình Lập trình ngôn ngữ máy Lập trình hợp ngữ (Assembler) Lập trình ngôn ngữ lập trình 30.11.2016 1.3 Lịch sử đời phát triển C C++ 13 Ngôn ngữ C đƣợc thiết kế Dennis Ritchie phòng thí nghiệm Bell vào đầu năm 1970 Sự phát triển C dựa ngôn ngữ có: ALGOL; CPL; BCPL, B (Ken Thompson, 1970) C ngôn ngữ lập trình đƣợc sử dụng phổ biến để lập trình hệ thống với Assembler phát triển ứng dụng Những năm 1980, ngôn ngữ C có phiên C++ Nó thực tất chức C, đƣợc bổ sung nhiều khái niệm khả 1.3 Lịch sử đời phát triển C C++ 14 Lý sử dụng ngôn ngữ C: C ngôn ngữ mạnh mềm dẻo C ngôn ngữ có từ khóa C ngôn ngữ có cấu trúc Module C ngôn ngữ đƣợc nhà tin học chuyên nghiệp dùng phổ biến, việc viết phần mềm hệ thống (hệ điều hành, chƣơng trình dịch, sở liệu, bảng tính,…) 30.11.2016 1.4 Các kỹ thuật lập trình 15 Lập trình có cấu trúc Chƣơng trình giải toán đƣợc chia thành phần nhỏ hơn, độc lập với nhau, gọi khối chƣơng trình Mỗi khối chƣơng trình có chức riêng Mỗi khối có lối vào đầu khối lối cuối khối Khi máy tính thực xong khối chuyển đến khối khác kết thúc chƣơng trình Lập trình cấu trúc đƣợc gọi lập trình thủ tục, lập trình truyền thống 1.4 Các kỹ thuật lập trình 16 Lập trình hướng đối tượng Lập trình hƣớng đối tƣợng (Object Oriented Programming): phƣơng pháp lập trình cho phép xây dựng chƣơng trình từ đối tƣợng Ƣu lập trình hƣớng đối tƣợng là: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Tính trừu tƣợng (Abstraction) Khái niệm trọng tâm lập trình hƣớng đối tƣợng lớp (Class) đối tượng (Object) 30.11.2016 1.5 Thuật toán 17 1.5.1 Khái niệm thuật toán 1.5.2 Các tính chất thuật toán 1.5.3 Các cách biểu diễn thuật toán 1.5.1 Khái niệm thuật toán 18 Thuật toán (giải thuật): trình gồm dãy hữu hạn thao tác thực đƣợc xếp theo trình tự định dùng để giải toán 30.11.2016 1.5.2 Các tính chất thuật toán 19 Tính kết thúc (tính dừng) Tính đắn Tính phổ dụng Tính xác định đầu vào – đầu Tính hiệu 1.5.3 Các cách biểu diễn thuật toán 20 Sử dụng ngôn ngữ tự nhiên Mã giả Lƣu đồ 10 30.11.2016 NỘI DUNG 267 9.1 Các khái niệm 9.2 Các thao tác tệp tin 9.3 Một số hàm vào tệp tin 9.1 Các khái niệm 268 9.1.1 Khái niệm tệp 9.1.2 Cấu trúc phân loại tệp 9.1.3 Con trỏ tệp 134 30.11.2016 9.1.1 Khái niệm tệp 269 Tệp liệu (File) tập hợp liệu có liên quan với Tệp đƣợc lƣu trữ thiết bị nhớ (đĩa mềm, đĩa cứng, CD-ROM…) với tên để phân biệt với Tệp phƣơng tiện dùng để cất giữ liệu lâu dài 9.1.2 Cấu trúc phân loại tệp 270 Dựa vào chất liệu, tệp đƣợc chia thành loại: Tệp văn (text file): tệp mà phần tử kí tự nhƣ chữ cái, chữ số, dấu câu, dấu cách số kí tự điều khiển Tệp nhị phân (binary file): tệp mà phần tử số nhị phân Chú ý: Nếu thông tin đƣợc mã hóa kí tự tệp nhị phân trở thành tệp văn Vì tệp văn trƣờng hợp riêng tệp nhị phân 135 30.11.2016 9.1.2 Cấu trúc phân loại tệp 271 Cấu trúc tệp Tên tệp Con trỏ vị trí làm việc tệp OS Phần tử kí hiệu kết thúc tệp Phần tử liệu EOF Phần tử liệu cuối 9.1.3 Con trỏ tệp 272 Các phần tử tệp tạo thành dãy thời điểm ta truy cập đƣợc vào phần tử tệp Con trỏ tệp: biến đệm để truy cập vào phần tử tệp, đánh dấu vị trí truy cập vào tệp thời điểm xác định Khi mở tệp trỏ tệp trỏ vào vị trí tệp Sau thao tác đọc ghi tệp, trỏ tệp tự động dịch chuyển phía cuối tệp 136 30.11.2016 9.2 Các thao tác tệp 273 9.2.1 Các bƣớc làm việc với tệp 9.2.2 Khai báo tệp 9.2.3 Mở tệp 9.2.4 Đọc tệp 9.2.5 Ghi liệu lên tệp 9.2.6 Đóng tệp 9.2.1 Các bƣớc làm việc với tệp 274 Khai báo trỏ tệp với từ khóa FILE Mở tệp để đọc/ghi Đọc/ghi liệu từ tệp Đóng tệp 137 30.11.2016 9.2.2 Khai báo tệp 275 Trong C, để truy nhập tệp phải thông qua trỏ tệp Cú pháp: FILE *tên_con_trỏ_tệp; Ví dụ FILE *f; 9.2.3 Mở tệp 276 Cú pháp: = fopen(“tên_tệp”, “mode”); biến_tệp: trỏ kiểu FILE khai báo tên_tệp: tên tệp cần đọc/ghi liệu mode: chế độ mở tệp Kí hiệu Loại tệp “b” Tệp nhị phân “t” Tệp văn Kí hiệu Chế độ mở tệp “r” Mở tệp có để đọc, không đƣợc ghi Nếu tệp không tồn tại, hàm fopen() trả lại trạng thái lỗi “w” Mở tệp để ghi Nếu tệp tồn nội dung bị xóa hết “a” Mở tệp để ghi thêm liệu vào cuối tệp Nếu tệp chƣa tồn tại, đƣợc tạo “r+” Mở tệp để vừa đọc vừa ghi Nếu tệp chƣa tồn báo lỗi “w+” Mở tệp để vừa đọc vừa ghi Nếu tệp tồn tại, nội dung bị xóa hết “a+” Mở tệp để ghi thêm liệu vào cuối tệp Tệp đƣợc tạo chƣa tồn 138 30.11.2016 9.2.3 Mở tệp – Ví dụ 277 Mở tệp mydata.txt để ghi liệu #include main() { FILE *f; f = fopen("mydata.txt","w"); } Mở tệp C:\ mydata.dat để đọc liệu #include main() { FILE *f1; f1= fopen("c:\mydata.dat","r"); } 9.2.4 Đọc tệp 278 Các hàm đọc tệp: Hàm fgetc(); Đọc kí tự file fgetc(stdin) tƣơng đƣơng getchar(); Hàm fgets(); Đọc dòng file fgets(stdin) tƣơng đƣơng gets(); Hàm fscanf(,s); Đọc liệu từ file 139 30.11.2016 9.2.4 Đọc tệp - Hàm getc() 279 Cú pháp: int getc (FILE* trỏ tệp); Hàm getc() đọc từ tệp kí tự, chuyển đổi kí tự sang dạng số nguyên Sau lấy giá trị số nguyên thu đƣợc làm giá trị trả hàm Giá trị trả về: thành công hàm getc() trả kí tự đọc đƣợc sau chuyển sang dạng int Ngƣợc lại hàm trả giá trị EOF 9.2.4 Đọc tệp – Hàm fgets() 280 Cú pháp: char * fgets (char* xâu_kí_tự, int n, FILE* con_trỏ_tệp); Chức năng: Đọc từ tệp văn tƣơng ứng với con_trỏ_tệp dãy liệu Việc đọc dừng đọc đủ (n-1) ký tự gặp ký tự xuống dòng Giá trị trả về: đọc thành công hàm fgets() trả xâu kí tự trỏ xâu_kí_tự, có lỗi trả trỏ NULL 140 30.11.2016 9.2.4 Đọc tệp – Hàm fscanf() 281 Cú pháp: int fscanf(FILE* con_trỏ_tệp, xâu_định_dạng, [danh_sách_địa_chỉ]); Chức năng: Đọc từ tệp văn tƣơng ứng với con_trỏ_tệp dãy liệu Định dạng DL đọc theo khuôn dạng xâu_định_dạng Lƣu giá trị đọc đƣợc vào danh_sách_địa_chỉ 9.2.4 Đọc tệp –Ví dụ 282 Giả sử tồn tệp : docfile.text Chƣơng trình sau sẽ: Đọc liệu từ file “doctep.text Ghi liệu tệp vừa đọc hình #include #include void docfile(int a[],int &n) { FILE *f; f=fopen("docfile.text","rt"); fscanf(f,"%d",&n); for(int i=1;i