Ôn luyện Tin học Lớp 8 - Bài: Xử lý số
Bạn đang xem tài liệu "Ôn luyện Tin học Lớp 8 - Bài: Xử lý số", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- on_luyen_tin_hoc_lop_8_bai_xu_ly_so.pdf
Nội dung text: Ôn luyện Tin học Lớp 8 - Bài: Xử lý số
- XỬ LÝ SỐ Chúng ta đã làm quen với biến nhớ và các lệnh trả lại giá trị (hay còn gọi là hàm số) trong Scratch. 1. Biến nhớ và hàm số: * Định nghĩa biến nhớ: Biến nhớ là 1 vùng trong bộ nhớ, được đặt tên bằng một dãy chữ và số, dùng để lưu trữ các giá trị (số, chữ hoặc logic). Biến nhớ có thể do hệ thống tạo sẵn hoặc do người dùng tự tạo ra để giúp giải quyết các bài toán lập trình. * Qui định đặt tên biến nhớ: Scratch không đặt các điều kiện chặt cho cách đặt tên biến nhớ. Tên biến nhớ phân biệt chữ hoa, chữ thường và có thể chứa dấu cách. Tuy nhiên với các ngôn ngữ lập trình bậc cao thì tên biến nhớ thường được qui định khá chặt chẽ. Các em cần nhớ 1 số qui tắc chung này để áp dụng cho các ngôn ngữ lập trình bậc cao trong tương lai. Tên biến nhớ phải là dãy chữ hoặc số, không có dấu cách, không nên chứa các ký tự đặc biệt như : ; , \ / + - [ ] { } ( ). Nên đặt tên biến nhớ là 1 cụm từ có ý nghĩa để dễ nhớ. Không nên đặt tên biến nhớ với quá nhiều chữ hoa. Ví dụ tên biến nhớ như sau là hợp lệ: x1, abc, solution, time_out, click_count, con_meo, chim_bay, thoi_gian, . Các tên biến nhớ như sau thì không nên và không hợp lệ: 12+23, sinx, ANHSang, C://thu_muc, . Chú ý: các biến nhớ dùng chung cần có tên khác nhau từng đôi một trong chương trình. Biến nhớ riêng nhân vật có thể đặt tên trùng nhau. * Định nghĩa hàm số: Hàm số do người dùng hoặc hệ thống tạo ra, được đặt tên bằng một dãy chữ và số, dùng để tính toán một giá trị nào đó, được lưu trữ trong bộ nhớ và được sử dụng tương tự như các biến nhớ trong các câu lệnh. 2. Các thao tác làm việc với biến nhớ Đối với biến nhớ, 2 lệnh quan trọng nhất là lênh gán giá trị và lệnh thay đổi giá trị của biến nhớ. Các lệnh này được thực hiện trong Scratch như sau, so sánh với cách viết trong 1 số ngôn ngữ lập trình bậc cao khác. Lệnh Scratch Pascal C, Java Gán giá trị cho biến nhớ m:=10; m = 10; Thay đổi giá trị của biến nhớ + 1 m:=m+1; m++; Thay đổi giá trị của biến nhớ - 1 m:=m-1; m ;
- Ví dụ: Đoạn chương trình sau mô tả bài toán vẽ liên tục các hình đa giác đều với số cạnh tăng dần từ 4 đến 18. 3. Kiểu dữ liệu trong Scratch: Khi 1 biến nhớ được khởi tạo trong Scratch, chúng ta không cần khai báo biểu dữ liệu cho biến nhới này. Trong quá trình làm việc, tùy thuộc vào dữ liệu nhập, biến nhới tự động nhận biết 1 trong 3 kiểu dữ liệu sau: Số (Number). Bao gồm số nguyên và thập phân. Logic (Boolean). Kiểu dữ liệu chỉ có 2 giá trị Đúng (true) và Sai (false). Xâu (String). Kiểu dữ liệu là dãy các chữ, kí tự. Ví dụ nếu biến nhớ được khởi tạo thì có thể gán cho n các giá trị sau: Câu lệnh Ý nghĩa Gán giá trị số cho n Gán xâu ký tự cho n Gán giá trị logic cho n Em hãy thực hiện các lệnh sau và điền kết quả vào cột phải trong bảng dưới đây, từ đó có nhận xét gì về các kiểu dữ liệu và cách thể hiện chúng trong Scratch.
- Biếu thức, lệnh Kết quả 4. Các phép tính đơn giản với số trong Scratch Nhóm lệnh Operators (màu xanh lá cây) bao gồm các lệnh, phép tính làm việc với dữ liệu số, logic và xâu ký tự. Trong bài học này chúng ta làm quen với các phép tính đơn giản với số. Phép tính cộng, trừ nhân, chia số thập phân phép cộng 2 số phép trừ 2 số phép nhân 2 số phép chia 2 số, kết quả thập phân. Làm tròn số làm tròn số của 1 số, lấy số nguyên gần nhất số này làm tròn (lên) của 1 số, lấy số nguyên gần nhất trên số này. làm tròn (dưới) của 1 số, lấy số nguyên gần nhất dưới số này. Các phép toán lấy số dư của 2 số nguyên lấy thương nguyên của 2 số nguyên lấy lũy thừa của 2 số thập phân na lấy lũy thừa của 2 số nguyên na Phép lấy căn thức trị tuyệt đối lấy giá trị tuyệt đối của 1 số. lấy căn bậc 2 của 1 số dương a . (a1/2) lấy căn bậc n của 1 số a (a1/n)
- Ví dụ: 1/2 + 3/4 m2 + n2 - mn | x | + | x + 2| - | x - 1| x2 - x + 1 (a + b)2 5. Kiểu dữ liệu logic: Em đã được làm quen với lệnh điều khiển có điều kiện if then. Biểu thức sau if là 1 điều kiện logic. Khi thực hiện, lệnh sẽ kiểm tra điều kiện này, nếu đúng (true) thì sẽ thực hiện đoạn lệnh sau từ khóa then, nếu sai (false) thì bỏ qua lệnh này. = biểu thức logic Đoạn chương trình sẽ thực hiện nếu này đúng (true). Tương tự chúng ta có 1 lệnh tổng quát hơn: lệnh điều khiển đầy đủ có điều kiện if then else. Biểu thức sau if là 1 điều kiện logic. Khi thực hiện, lệnh sẽ kiểm tra điều kiện này, nếu đúng (true) sẽ thực hiện đoạn lệnh sau từ khóa then, nếu sai (false) sẽ thực hiện đoạn lệnh sau từ khóa else. = biểu thức logic Đoạn chương trình sẽ thực hiện nếu này đúng (true). Đoạn chương trình sẽ thực hiện nếu này sai (false). Các toán tử, phép tính với biểu thức và biến nhớ logic trong Scratch bao gồm. Phép toán logic Kết quả Toán tử logic and (và): Trả lại true (đúng) khi và chỉ khi cả 2 biểu thức thành phần đều true (đúng). Toán tử logic or (hoặc): Trả lại true (đúng) nếu 1 trong 2 biểu thức thành phần là true (đúng), các trường hợp khác sẽ trả lại false (sai)
- Phép toán logic Kết quả Toán tử not (phủ định / không): Trả lại true (đúng) nếu biểu thức là false (sai) và ngược lại, trả lại false nếu biểu thức là true (đúng). Bảng cụ thể các phép tính logic and, or, not như sau. Toán từ and (và) Toán từ or (hoặc) A B A and B A B A or B true true true true true true true false false true false true false true false false true true false false false false false false Toán tử not (không) A not A true false true true 6. Biểu diễn biểu thức logic: Em hãy biểu diễn các điều kiện logic sau trong môi trường Scratch. a > 10 và a = 100 0 20 Chú ý đến các ô nhập trực tiếp dữ liệu trên các dòng lênh. Có 2 loại ô chữ nhật và ô tròn. Ô vuông, chữ nhật Ô dữ liệu vuông, chữ nhật có thể nhập số, chữ hoặc biểu thức logic. Ô tròn Ô dữ liệu tròn chỉ có thể nhập số hoặc biểu thức logic, không nhập được chữ.
- 7. Các lệnh điều khiển có sử dụng biểu thức logic Chúng ta cùng xem lại tất cả các câu lệnh điều khiển (trong nhóm lệnh Điều khiển) có sử dụng các biểu thức logic, điều kiện. Câu lệnh Ý nghĩa Kiểm tra trong ô của lệnh, nếu đúng thì thực hiện nhóm lệnh trong khung lệnh. Nếu sai thì bỏ qua lệnh này. Kiểm tra trong ô của lệnh, nếu đúng thì thực hiện nhóm lệnh đầu tiên trong khung lệnh, nếu sai thì thực hiện nhóm lệnh thứ hai trong khung lệnh. Tạm dừng chương trình và kiểm tra . Nếu đúng thì tiếp tục chạy lệnh tiếp theo sau lệnh này. Kiểm tra trong ô của lệnh, nếu sai thì thực hiện nhóm lệnh trong khung lệnh, sau đó lại kiểm tra , quá trình này lặp lại cho đến khi là đúng thì chuyển sang lệnh tiếp theo sau lệnh này. Chú ý: Lệnh repeat until trong Scratch có ý nghĩa tương tự như các lệnh while do trong các ngôn ngữ lập trình bậc cao khác như C++, Java, . Sau đây là 1 vài ví dụ minh họa cho các lệnh điều khiển sử dụng biểu thức logic trên. a. Đoạn chương trình ngắn dùng để đếm thời gian. Việc đếm thời gian này rất có ý nghĩa và được ứng dụng nhiều trong các phần mềm trò chơi. Thay vì cần 1 biến nhớ dạng countdown để đếm ngược thời gian, chúng ta sẽ dùng biến timer để đếm thời gian, dùng lệnh wait until để điều khiển công việc này. Đặt biến timer = 0 Chờ đúng 20 giây Thông báo kết thúc cuộc chơi b. Chương trình yêu cầu người dùng liên tục thực hiện việc nhập tên từ bàn phím, quá trình này chỉ dừng khi người dùng bấm phím Enter (không nhập tên). Gán giá trị ban đầu cho Name bất kì khác rỗng. Ô này để rỗng không nhập bất cứ giá trị nào.
- TRUYỀN THÔNG 1. Lập trình theo sự kiện hay theo thông điệp truyền thông Bên cạnh kỹ thuật thông điệp, chúng ta cũng có thể thiết kế quan hệ giữa các nhân vật thông qua sự kiện. Ví dụ các sự kiện sau hỗ trợ trong Scratch. Sự kiện Lệnh hỗ trợ Gõ một phím Nháy chuột lên một nhân vật Nháy chuột lên nền sân khấu Thay đổi nền sân khấu Thay đổi giá trị của một biến nhớ Chú ý: tất cả các cách trên đều có thể dùng như một thủ thuật lập trình khi cần kết nối các sự kiện và nhân vật. Tuy nhiên cách hiệu quả nhất vẫn là sử dụng thông điệp truyền thông qua lệnh broadcast. 2. Vai trò truyền thông của thông điệp Trong hoạt động trên em đã thấy rõ vai trò của thông điệp quan trọng như thế nào trong việc điều khiển kết nối giữa các nhân vật trên sân khấu và giải quyết các bài toán nói chung trong môi trường Scratch. Thông điệp có tính năng truyền thông tin tuyệt đối chính xác. Thông điệp được truyền qua các Message có tên chính xác, khi nhân vật nhận thông điệp này sẽ xử lý thông qua lệnh when I receive , do vậy sẽ tuyệt đối chính xác. Truyền thông điệp rất nhanh chóng, gần như tức thời. Thông điệp được gửi bằng lệnh broadcast gần như tức thời, không có hiệu ứng chậm chễ về thời gian. Việc lập trình sử dụng thông điệp truyền thông rất sáng sủa, rõ ràng và đơn giản. Em hãy thử kiểm tra bằng cách thực hiện chương trình trong mục 3 bằng 2 cách. Cách 1 sử dụng thông điệp, cách 2 sử dụng biến nhớ để điều khiển.
- 3. Câu hỏi: Dựa vào kiến thức đã được học trong bài “Hội thoại” và nội dung nêu ở trên. Em hãy trả lời các câu hỏi sau: 1. Một nhân vật có thể tạo đồng thời nhiều nhiều thông điệp và gửi đồng thời tất cả các thông điệp đó được hay không? 2. Một nhân vật có thể nhận và xử lý đồng thời 2 thông điệp từ 2 địa chỉ khác nhau được hay không? Cho ví dụ. 3. Hai hoặc nhiều nhân vật có thể gửi cùng 1 thông điệp được hay không? Cho ví dụ.