private int charpos = 0; //vi tri cua ki tu ki tiep duoc doc tu mang chuoi ki tuprivate StringBuilder numberSB = new StringBuilder; private StringBuilder nameSB = new StringBuilder; publ
Trang 1THÀNH VIÊN TRONG NHÓM
Trang 2Ý TƯỞNG
2
Có nhiều chương trình máy tính được thiết kế nhằm phục vụ cho công việc tính toán.
Từ đó nhóm đưa ra một vấn đề là: thiết kế một chương
trình máy tính mà khác với các thế hệ đi trước.
Nhóm đã sử dụng các phương thức để thực thi nhiều công việc khác nhau.
Trang 33
Trang 4GIAO DIỆN CHƯƠNG KHI CHẠY
4
Trang 5private int charpos = 0; //vi tri cua ki tu ki tiep duoc doc tu mang chuoi ki tu
private StringBuilder numberSB = new StringBuilder(); private StringBuilder nameSB = new StringBuilder();
public Dictionary<string, double> SymbolTable = new
Dictionary<string, double>();//using
System.Collections.Generic;
5
Trang 6KHAI BÁO CÁC HÀM BIẾN ĐƯỢC SỬ DỤNG:
public enum token_value
Trang 7KHAI BÁO CÁC PHƯƠNG THỨC XỬ LÝ
public token_value curr_tok; //gia tri hien tai dc tim
Trang 8PHƯƠNG THỨC DIỀU KHIỂN
public Scanner()
{
ReservedWords.Add("END", token_value.END);
//ket thuc ung dung
ReservedWords.Add("LIST", token_value.LIST);//Xem danh sach cac gia tri hang
ReservedWords.Add("?", token_value.HELP); //Hien thi thong tin tro giup
ReservedWords.Add("SQRT", token_value.SQRT); //Ham lay can}
8
Trang 9HÀM NỐI CHUỖI KÝ TỰ NHẬP VÀO
public string InputLine
Trang 11HÀM LẤY MỘT KÝ TỰ TRONG MẢNG
private char GetChar()
Trang 12HÀM TRẢ VỀ GIÁ TRỊ ĐỨNG TRƯỚC
public void PutBackChar()
{
charpos ;
}
Hàm gán giá trị ban đầu:
public void InitScan()
Trang 13HÀM THÔNG BÁO LỖI
public void Error(string message)
Trang 14HÀM TÍNH GIAI THỪA:
public int giaithua(int n)
Trang 15Chức năng của lớp Scanner trả về giá trị current token
Và thiết lập những biến name_string và number_value khi thích hợp.
15
Trang 22if (ReservedWords.TryGetValue(name_string.ToUpper(), out curr_tok)) return curr_tok;
Trang 23class Parser : Scanner
{
/// <summary>
/// Parser class, ke thua tu lop Scanner
/// Gia su moi phuong thuc (tru bo khoi tao) duoc goi /// Co nghia la curr_token giu token ke tiep duoc phan tich
23
Trang 24BỘ KHỞI TẠO MẶC ĐỊNH DỊNH NGHĨA 2 HẠNG TOÁN:
Trang 25Hàm xử lý tính toán:
public double prim()
Trang 30CÁC HÀM CỘNG, TRỪ, NHÂN, CHIA, MŨ,GIAI THỪA
public double term()
{
double left = prim();
for (; ; ) //"for lap lien tuc va tranh loi “khong phai moi phep toan deu tra ve gia tri"
Trang 34PHƯƠNG THỨC HIỂN THỊ̣ GIÚP ĐỠ
static void DisplayHelp()
Console.WriteLine("Lenh dung de tro giup: ?");
Console.WriteLine("Lenh de liet ke gia tri hang : list hoac nhap e,pi");
Console.WriteLine("Lenh ket thuc chuong trinh : end");
Console.WriteLine("Can bac hai: sqrt(x)");
Console.WriteLine("==============================
==========================================
34
Trang 38TÀI LIỆU SỬ DỤNG
BÀI GIẢNG CỦA THẦY :ĐẶNG KIÊN CƯỜNG
TIẾP NHẬN Ý KIẾN CỦA CÁC ANH CHỊ ĐI TRƯỚC
CÙNG MỘT SỐ TÀI LIỆU TÌM KIẾM ĐƯỢC
38
Trang 3939