50 bài tập lập trình scratch – Phần 2 chuyển một số bài tập Pascal sang Scratch

Like Tweet Pin it Share Share Email

Trong phần 1 của dự án 50 bài tập lập trình scratch, mình đã chia sẻ cùng các bạn được 50 bài tập scratch, ta tiếp tục thực hiện tiếp dự án trong phần này, nhưng lần này mình sẽ cùng các bạn giải quyết những bài toán quen thuộc mà các bạn đã thực hiện bằng ngôn ngữ Pascal, mình sẽ chú trọng nhiều hơn về phần thuật toán để cùng các bạn chia sẻ cho dự án bồi dưỡng song song Pascal và Scratch, các bạn nhớ chia sẻ và đóng góp nhiệt tình vào nhé.

Bài 16: Phân tích một số ra thừa số nguyên tố trong Scratch

Yêu cầu:

  • Người dùng nhập vào một số nguyên
  • Chương trình xử lý và xuất ra kết quả số đó được phân tích ra thừa số nguyên tố.

Bạn nên xem lại Thuật toán kiểm tra số nguyên tố trong Scratch để có thể thực hiện tương tự trong Scratch

Bài 17: Kiểm tra số chính phương

Viết chương trình Scratch kiểm tra một số xem số đó có phải là số chính phương hay không?

Xem Hướng dẫn viết chương trình kiểm tra số chính phương trong Scratch và Pascal

Bài 18: Kiểm tra số hoàn hảo

Viết chương trình scratch để cô giáo kiểm tra xem một số có phải là số hoàn hảo hay không (Số hoàn hảo là một số tự nhiên mà tổng tất cả các ước tự nhiên thực sự của nó thì bằng chính nó.) VD: 6 là số hoàn hảo vì 6 = 1+2+3

Xem Hướng dẫn viết chương trình kiểm tra số hoàn hảo bằng Pascal và Scratch

Bài 19: Tìm ước chung lớn nhất

Viết chương trình scratch để một bạn học sinh yêu cầu người chơi nhập vào hai số a, b, bạn sẽ giúp tìm ƯCLN (a,b)

Mở rộng bài toán: “Tìm ước chung lớn nhất của 3 số”

Xem Hướng dẫn code tìm ƯCLN (a,b) bằng Pascal và Scratch

Bài 20: Tìm bội chung nhỏ nhất

Em hãy dùng scratch để viết chương trình sao cho khi chạy thầy giáo yêu cầu người chơi nhập vào hai số a, b, và thầy sẽ giúp em tìm BCNN (a,b)

Mở rộng bài toán: “Tìm bội chung nhỏ nhất của 3 số”

Xem Chương trình tìm BCNN bằng Pascal và Scratch

Bài 21: Tổng các chữ số

Viết chương trình Scratch để bạn nhỏ yêu cầu người chơi nhập vào một số nguyên dương n. Bạn nhỏ sẽ giúp người chơi tính tổng các chữ số của số nguyên đó.

Xem Hướng dẫn lập trình Scratch và Pascal để tính tổng các chữ số

Bài 22: Số Amstrong

Số tự nhiên n gọi là Amstrong nếu nó bằng tổng lập phương các chữ số của mình. Ví dụ 153 = 13 + 53 + 33. Em hãy viết chương trình Scratch kiểm tra xem một số tự nhiên n do cô giáo yêu cầu người chơi nhập vào có phải là số Amstrong hay không?

Xem Hướng dẫn viết chương trình kiểm tra số Amstrong trong Pascal và Scratch

Bài 23: Cặp số thân thiết

Hai số tự nhiên n và m khác nhau được gọi là thân thiết nếu số này bằng tổng các ước số thực sự của số kia và ngược lại.

Em hãy viết chương trình Scratch với yêu cầu sau:

  • Khi chạy xuất hiện một chú chim câu yêu cầu bạn nhập vào một số tự nhiên
  • Chương trình sẽ tìm ra số thân thiết với số tự nhiên bạn vừa nhập vào, nếu không có số nào thân thiết với số vừa nhập thì báo “không tìm được số nào thân thiết với …”

Xem Thuật toán tìm số thân thiết minh họa bằng Pascal và Scratch

Bài 24: Chuyển đổi số hệ thập phân – nhị phân

Em hãy viết một chương trình scratch chuyển một số thập phân sang hệ nhị phân.

VD: 71 -> 1000111

Sau đó viết một chương trình khác cho phép chuyển đổi ngược lại từ số trong hệ nhị phân sang số trong hệ thập phân.

Xem chuyển từ số thập phân sang nhị phânchuyển ngược lại

Bài 25: Tìm max, min

Em hãy viết chương trình để bạn rùa yêu cầu người chơi nhập vào một dãy số, dãy số sẽ kết thúc khi người chơi nhấn phím enter ngay lúc hỏi mà chưa nhập gì cả.

Chương trình sẽ tìm ra số lớn nhất (nhỏ nhất) của dãy số vừa nhập.

Xem chương trình tìm Max (Min) viết bằng Pascal và Scratch

Bài 26: Đếm số thỏa điều kiện

Em hãy viết chương trình để bạn Thỏ nhắc người chơi nhập vào n số nguyên, kết thúc khi nhấn enter ngay lúc hỏi mà chưa nhập gì cả. bạn Thỏ sẽ giúp ta đếm xem có bao nhiêu số nguyên dương, bao nhiêu số nguyên âm trong dãy số vừa nhập đó.

Mở rộng bài toán: bằng cách thay cách hỏi (đếm xem có bao nhiêu số nguyên tố, chính phương, …)

Xem chương trình đếm số thỏa điều kiện bằng pascal và Scratch

Bài 27: Tỉa dãy số

Viết chương trình scratch để bạn cún nhắc người chơi nhập vào một dãy n số nguyên, kết thúc khi người chơi nhấn enter ngay lúc hỏi mà chưa nhập gì cả. Cún sẽ giúp người chơi loại bỏ các phần tử trùng lặp, mỗi phần tử chỉ giữ lại một phần tử đại diện và thứ tự các phần tử không thay đổi.

Mở rộng bài toán: Có thể hỏi như sau: Tỉa bỏ hết các số nguyên tố (Chính phương, …) trong dãy

Bài 28: Trò chơi xổ số

Trường em đang chuẩn bị tổ chức một buổi ngoại khóa và muốn trong buổi ngoại khóa đó sẽ bán vé xổ số để các bạn vui chơi trúng thưởng và lấy một phần tiền thu được từ bán vé để gây quỹ khuyến học. Em hãy giúp các thầy cô viết một phần mềm bằng Scratch thực hiện việc quay số ngẫu nhiên để cho ra các giải thưởng (Có 4 giải như sau: giải đặc biệt, nhất, nhì, ba)

Bài 29: Cắt dãy số

Viết chương trình Scratch để bạn mèo nhắc ngườ chơi nhập vào dãy n số nguyên. Bạn mẻo sẽ giúp ta cắt dãy số thành 2 phần sao cho chênh lệch (giữa tổng các phần tử của hai phần) là nhỏ nhất

Bài 30: Tìm dãy con thỏa điều kiện

Viết chương trình Scratch để bạn Bướm nhắc người chơi nhập vào dãy n số nguyên. Bạn Bướm sẽ giúp tìm dãy con tăng liên tiếp dài nhất trong dãy số đó (Dãy con tăng liên tiếp là dãy chỉ gồm các phần tử liên tiếp tăng dần)

Các bạn thấy 15 bài tập Scratch này có quen không, thực ra nó chính là những bài trong giáo trình bồi dưỡng HSG Pascal của mình, như vậy theo mình khi các bạn học hay bồi dưỡng Scratch thì hãy lấy ngay những bài tập Pascal đã làm để thực hành trên scratch, tất nhiên những bài này mang nặng tính thuật toán tuy nhiên khi giải quyết được những bài toán này trên Scratch rồi thì khả năng viết lệnh của bạn trên Scratch sẽ rất tốt. Sau đó bạn tiếp tục thực hiện những bài toán hướng đến đối tượng, lúc này mình đảm bảo bạn sẽ tự tin hơn rất nhiều.

Vậy là mình đã đưa ra 30 bài toán lập trình Scratch rồi nhé.

Xin chào và hẹn gặp lại các bạn trong phần 3: 50 bài tập scratch cho học sinh các cấp.

File Word 50 bài tập Scratch – Tập 2

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *