Bài giảng thực hành chương trình dịch bài 1 phạm đăng hải

13 2 0
Bài giảng thực hành chương trình dịch bài 1   phạm đăng hải

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Tài liệu cùng người dùng

Tài liệu liên quan