Thông tin tài liệu
Thực hành CHƯƠNG TRÌNH DỊCH Bài 1: Lập bảng mục Phạm Đăng Hải haipd@soict.hust.edu.vn Đề • Đọc tệp văn bản, lập bảng mục (index table) cho tệp văn • Bảng dẫn liệt kê tất từ xuất văn theo quy cách – Mỗi từ liệt kê lần với số lần xuất văn dịng xuất từ – Các từ phải xếp theo thứ tự từ điển * Mơ tả chi tiết • Tệp văn – Đoạn văn tiếng Anh, định dạng ASCII • Tệp mẫu “vanban.txt” • Từ dãy chữ phân biệt – Khoảng trống/ Dấu phân cách • Các ký tự chữ (a z, A Z) • Không phân biệt chữ hoa, chữ thường – Khi đưa vào bảng mục phải chuyển tất ký tự thành chữ thường * Mô tả chi tiết • Khơng đưa vào bảng mục – Những từ khơng có ý nghĩa để tra • Ví dụ: for, the, an,… • Những từ lưu tệp: “stopw.txt”, từ dòng – Những danh từ riêng • Đó từ có chữ đầu chữ hoa không đứng sau dấu chấm câu – Ví dụ: “Will you visit Hanoi someday?” * Tình bày kết Trình bày kết theo dịng: – Đầu tiên từ, sau phần dãy số – Số số lần xuất từ, – Các số dòng mà từ xuất •Ví dụ answer 7,8,12,15 ant 2,4,6 baby 7,9,21 cruel 2,4,5 * Thiết kế khung cho chương trình • Đọc từ • Kiểm tra từ có nghĩa • Lưu từ vào danh sách xếp • Xác định thơng tin cho từ có nghĩa – Số lần xuất hiện, số dịng * Đọc từ • Đọc ký tự gặp ký tự kết thúc từ – Ký tự kết thúc từ:? • Chữ số, dấu cách, dấu chấm câu, dấu xuống dịng • Khơng phải chữ a zA Z – Hàm int isalpha(char c); • Kỹ thuật: – Xác định ký tự từ? – Ghép ký tự thành từ? • Hàm ghép xâu char * strcat(char * d, const char *s )? – Chuyển ký tự chữ thường? • Hàm int tolower(char c) * Kiểm tra từ có nghĩa •Loại bỏ từ danh sách “stopw”, •Loại bỏ từ danh từ riêng •Kỹ thuật: – Kiểm tra từ có danh sách • Hàm so sánh xâu – Hàm int strcmp(const char * s1, const char * s2) – Kiểm tra từ có phải danh từ riêng • Vấn đề: Nếu danh từ riêng đứng đầu câu? * Chèn từ vào danh sách • Nếu từ chưa có danh sách → thêm từ vào danh sách • Nếu từ có danh sách → Tăng số lần xuất → Thêm số dịng (nếu chưa có) • Kỹ thuật: – Sắp xếp danh sách theo thứ tự từ điển? • Hàm so sánh xâu – Xác định số dịng? • Ký tự xuống dòng: /n /r – Khác biệt linux window? → sử dụng ‘\n’ * Biến chương trình • Danh sách từ cho bảng mục → Sử dụng mảng • Sắp xếp kiểu thêm dần • Vấn đề: kích thước mảng !? • Dach sách từ khơng có nghĩa tra cứu: → Sử dụng mảng • Dãy số dịng → Sử dụng xâu ký tự Ví dụ “2, 5, 6, 7, 12” * 10 Biến chương trình Danh sách liên kết Trỏ Cuối Trỏ Đầu Mục Từ Số lần xuất hiên Dách sách dịng * 11 Kiến thức lập trình cần ý • Thao tác với tệp: – Mở, đóng tệp, – Đọc ký tự (int fgetc(FILE * flot) ) • Thao tác với xâu ký tự: – So sánh xâu ký tự, – Thêm ký tự vào xâu, • Thao tác trỏ – Xin, giải phóng vùng nhớ • Hàm malloc(int size), free(void *) – Chèn phần tử vào danh sách * 12 Quy cách nộp • Nộp qua email: haipd@soict.hust.edu.vn • Hạn nộp bài: 23h59m59s, Thứ sáu: 26/2/2021 • Quy cách nộp – Một file nén Ten_HoDem.zip • File mã nguồn *.c *.h • File readme.txt (nếu cần) • Các file input • File ảnh kết • Bộ dịch: DEV C++ 5.11 • Sao chép !? * 13
Ngày đăng: 15/11/2023, 13:32
Xem thêm: