Sử dụng List (danh sách) trong Scratch – Phần 6
Hãy thử tưởng tượng, sau khi các em đã có danh sách các món ăn tại một cửa hàng, thông thường các em sẽ có một suy nghĩ là tìm món ăn nào có giá cao nhất và món ăn có giá thấp nhất. Bài toàn tìm giá trị lớn nhất hoặc giá trị nhỏ nhất trong tập các phần tử hay trong nội dung bài học đó chính là dùng danh sách để lưu trữ tập các phần tử đó. Bài toán này là một dạng bài được sử dụng nhiều trong thực tế. Kiến thức ngày một nâng cao hơn rồi, các em đừng quên xem lại những kiến thức đã học để củng cố hơn trước khi học bài mới nhé (Phần 1, Phần 2, Phần 3, Phần 4 và Phần 5).
Dạng bài
Tìm phần tử lớn nhất trong List.
Đề bài
Em hãy nhập vào một dãy số trong Scratch. Hiển thị giá trị của phần tử lớn nhất trong dãy.
Phân tích bài toán
Đầu vào (Input)
- Đề bài yêu cầu nhập dữ liệu cho biến danh sách và cho biết phần tử có giá trị lớn nhất.
- Ví dụ giả sử dãy số là: 6, 10, 1, 7, 4.
Đầu ra (Output)
- Hiển thị một giá trị là phần tử có giá trị lớn nhất.
Các bước thực hiện
Vấn đề then chốt và cót lõi của vấn đề ở trong bài toán này là ta phải xây dựng được hướng giải quyết đơn giản nhất.
- Ví dụ 1: Cho 2 biến a và b lưu trữ 2 giá trị số khác nhau. Tìm số lớn nhất trong 2 biến này.
- Ta thực hiện so sánh để tìm số lớn hơn. Chẳng hạn, nếu a > b thì a là số lớn nhất, và ngược lại.
- Ví dụ 2: Tìm số lớn nhất trong 3 biến a, b, c lưu trữ các giá trị số khác nhau. Ta cũng thực hiện phép so sánh để tìm số lớn nhất, tuy nhiên số lượng phép so sánh nhiều hơn.
- Nếu a > b và a > c thì a là số lớn nhất.
- Nếu b > a và a > c thì b là số lớn nhất.
- Nếu c > a và c > b thì c là số lớn nhất.
- …
Giải thuật để tìm số có giá trị lớn nhất trong dãy số: Giả sử, số đầu tiên là số lớn nhất, ta thực hiện so sánh lần lượt số đầu tiên này với số thứ hai. Nếu số đầu tiên nhỏ hơn số thứ hai thì ta đặt số thứ hai là số lớn nhất, ta thu được số lớn nhất trong hai số đầu. Tiếp tục so sánh số lớn nhất trong hai số đầu đó với số thứ ba … Quá trình cứ diễn ra như vậy cho đến khi xét duyệt hết các phần tử trong danh sách thì ta thu được số lớn nhất trong dãy số.
- Bước 1: Khai báo biến max và gán giá trị của phần tử đầu tiên cho biến này. Đây chính là ta đang giả sử số đầu tiên là số lớn nhất.
- Bước 2: Công việc tìm số lớn nhất được bắt đầu từ số thứ 2 cho đến hết dãy.
Nếu max > a[i] thì max được gán bởi a[i]. Trong đó a[i] là giá trị phần tử của dãy a tại vị trí thứ i.