160 likes | 326 Views
Demo Nhập xuất dữ liệu. Nhóm : Huỳnh Minh Khải 100032 Lê Anh Khôi Nguyễn Anh Phương. Nội dung chính. Quy ước nhập biểu thức. Ký pháp ba Lan. Cách xử lý Chuỗi biểu thức. Quy ước nhập biểu thức. Nhập toàn bộ biểu thức. Nhập một phần biểu thức.
E N D
Demo Nhậpxuấtdữliệu • Nhóm: • Huỳnh Minh Khải 100032 • LêAnhKhôi • NguyễnAnhPhương
Nội dung chính • Quyướcnhậpbiểuthức • KýphápbaLan • CáchxửlýChuỗibiểuthức
Quyướcnhậpbiểuthức Nhậptoànbộbiểuthức Nhập một phần biểu thức
Hiểnthịtoànbộbiểuthứcdễdàngthêm, xoá, sửa • Phứctạptrongviệccàiđặtvàxửlíbiểuthức • Hiểnthịđơngiảntừngphéptínhđơn, khókhăntrongviệcchỉnhsửa • Đơngiảntrongviệclậptrình Đặcđiểm
Quản lý các button 2 cách Khaibáosự kiệnOnclick Listener cho toànActivitive Khaibáosự kiệnOnclick Listener cho từngnút
Demo code onclick listner cho main activitive
KýPhápbalan • Quyước: Biểuthứcgồm: • Các dấu mở ngoặc/đóng ngoặc • Bốntoán tử cộng, trừ, nhân và chia (+, -, *, /) • Các toán hạng đều chỉ là các con số nguyên từ 0 đến 9 • Không có bất kỳ khoảng trắng nào giữa các ký tự.
Vìsaophảidùngkíphápbalan? Máytínhrấtngu, nókhôngthểhiểuđượcmộtcáchtường minh quátrìnhtínhtoánđểđưaragiátrịbiểuthức Giảipháp Chuyểnchuỗitrungtố (infix) sang hậutố (postfix) 5 + ((1 + 2) * 4) + 3 5 1 2 + 4 * + 3 +
Các bước xử lý • Chuyểnchuỗitừtrungtố sang hậutố • Tíchtoánchuỗihậutố
Chuyểnchuỗitừtrungtố sang hậutố • Nếu gặp một toán hạng => chuỗi kết quả • Nếu gặp dấu ‘(‘ , => stack. • Nếu gặp một toán tử (gọi là O1) • Khi còn có một toán tử O2 ở đỉnh ngăn xếp và độ ưu tiên của O1nhỏ hơn hay bằng độ ưu tiên của O2 thì lấy O2ra khỏi ngăn xếp và ghi vào kết quả. • Push O1 vào ngăn xếp • Nếu gặp ‘)’ • Lấycác toán tử trong ngăn xếp ra và ghi vào kết quả cho đến khi lấy được dấu mở ngoặc ra khỏi ngăn xếp. • Khi đã duyệt hết biểu thức trung tố, lần lượt lấy tất cả toán hạng (nếu có) từ ngăn xếp ra và ghi vào chuỗi kết quả.
CáchxửlýChuỗibiểuthức Chuỗibiểuthức (Text trongTextView) Mảng char[] Phântáchbiểuthức vàđưavàomảng String[]
Cảm ơn các bạn đã lắng nghe!