Em Yêu Tin Học Xử lý dữ liệu từ bàn phím

Đây là một bài viết nâng cao thích hợp cho các thầy cô nghiên cứu tuy nhiên một phần nhỏ trong này cũng rất thích hợp để các thầy cô hướng dẫn cho họ trò của mình, đầu tiên tôi hướng dẫn cách các chúng ta kiểm tra xem phím nào được nhấn và xử lý phím đó. Phím được nhấn có 2 trạng thái 1 là khi nhấn xuống 2 là khi buông ra. Ở ví dụ sau đây tôi dùng bốn phím mũi tên để điều khiển rùa đi trên sân chơi, nếu bấm mũi tên lên thì đi tới, mũi tên xuống đi lùi, mũi tên trái quay về bên trái, mũi tên phải quay về phía bên phải.

Bên cạnh đó khi nhấn giữ phím Space bar thì nhấc rùa(PU), bỏ nhấn Space thì hạ pen(PD), điều này có nghĩa là bạn có thể vừa nhấn Space bả vừa bấm 4 phím mũi tên.

Em Yêu Tin Học Code

TO KDown
    IF KEYBOARDVALUE = 38 [FD 1] ;Up
    IF KEYBOARDVALUE = 40 [BK 1] ;Down
    IF KEYBOARDVALUE = 37 [LT 1] ;Right
    IF KEYBOARDVALUE = 39 [RT 1] ;Left
    IF KEYBOARDVALUE = 32 [Pu] ; Space
;Show KEYBOARDVALUE ; Show giá trị phím ra cửa sổ lệnh, dùng để biết code ascii của phím
END

TO KUp
  IF KEYBOARDVALUE = 32 [PD]
END

To RuaDien
  CS PD
  SETFOCUS [MSWLogo Screen] ;Nếu bạn sử dụng FMSWLogo thì phải chỉnh lại tên cửa sổ của MSWLogo
  (KEYBOARDON [KDown] [KUp]) ;Bật kiểm tra bàn phím KEYBOARDOFF sẽ tắt đi
END

Rồi bây giờ giạn có thể ra cửa sổ lệnh và bấm RuaDien rùa điên ? và sử dụng 4 phím mũi tên cộng với Space bar để xem nó làm việc, các bạn có thể thêm các bẫy phím khác như khi bấm Home thì về 0 0  hay bấm 0, 1, 2 … thì đổi màu, +, – thì tăng giảm nét vẽ chẳng hạn.

Test thử thì thấy khi rùa điên bò ngang có vẻ không được thẳng cho lắm ?

Em Yêu Tin HọcNhập dữ liệu từ bàn phím

Khi muốn nhận một giá trị nào đó mà giá trị này được nhập vào từ bán phím thì bạn sử dụng RL viết đầy đủ là READLIST hoặc QUESTIONBOX, để thuận tiện cho người dùng thì trước khi hiện hộp thoại nhập giá trị bạn nên có một thông báo nhắc nhở, hướng dẫn người dùng nếu bạn dùng RL. Nếu bạn dùng QUESTIONBOX thì thông báo ngay trong hộp thoại, . Tuy nhiên khi làm theo cách này thì rất có thể dữ liệu đưa vào sẽ không đúng, ví dụ nhập vào 2 số a và b cách nhau một khảng cách, nhưng người dùng lại vô tình hoặc cố ý nhập aa 5 thì chương trình của bạn sẽ chạy không đúng.

Trong ví dụ dưới đây, chúng tôi viết một chương trình nhập vào 2 số a và b sau đó so sánh và in ra số lớn. Để cho người dùng biết họ pahir làm gì thì chương trình đưa ra một thông báo : MESSAGEBOX [THONG BAO] [Nhap so va bam Enter] bạn hoàn thiện nội dung để người dùng hiểu rõ hơn về việc mình phải làm.

To xx
    MESSAGEBOX [THONG BAO] [Nhap so va bam Enter]
    Make "a first ReadList
    Make "b first RL
    IfElse :a>:b [OUTPUT :a][OUTPUT :b]
End

Trong ví dụ bạn thấy OUTPUT :giá trị đây là cách mà chúng ta trả về một giá trị cho chương trình con ví dụ các bạn có thể thục hiện phép tính thông qua tên chương trình gõ tại cửa sổ lệnh Show xx + xx nó sẽ hiện ra 4 hộp thoại cho bạn nhập số vào, sau đó lấy ra 2 con số lớn và cộng lại với nhau.

Lưu ý các bạn có thể nhập a và b cùng một lúc cách nhau bởi khoảng cách, nhưng vào chương trình các bạn phải xử lý chuỗi vừa nhập để lấy ra giá trị của a và b.

Em Yêu Tin Học Cách khác dùng QUESTIONBOX

To zz
     Make "a first QUESTIONBOX [Thong Bao][Nhap so thu nhat]
     Make "b first QUESTIONBOX [Thong Bao][Nhap so thu hai]
     IfElse :a>:b [OUTPUT :a][OUTPUT :b] 
End

Do dữ liệu đưa vào thông qua hộp thoại của ReadList và QUESTIONBOX là mảng do đó bạn phải dùng First để lấy giá trị đầu tiên :). Tuy nhiên nếu gặp trường hợp cố tình nhập tầm bậy thì chương trình sẽ bị báo lỗi.

Em Yêu Tin Học Tổng kết:

Trong bài này có đề cập 3 kiến thức mới

  1. Kiểm tra bàn phím.
  2. Trả về một giá trị cho chương trình con (Hàm).
  3. Nhập dữ liệu từ bàn phím.

Theo mình nghĩ kiến thức phần 2, 3 các thầy cô có thể truyền tải cho học trò, còn phần 1 thì chỉ dành để tham khảo.