Blog hướng dẫn các cách download kiến thức kinh nghiêm thủ thuật chia sẻ phần mềm tool soft miễn phí là gì. Blog.locbanbekhongtuongtac.com

Table of Content

Bài tập Pascal div mod

Like và share giúp mình phát triển website nhé.

Mod, div là hai phép toán cho số nguyên được ứng dụng rất nhiều trong lập trình, trong bài viết này mình sẽ cùng học tập chia sẻ cách sử dụng Mod, Div trong Pascal và scratch qua một ví dụ cụ thể như sau:

Bài toán: Viết chương trình nhập vào một số nguyên dương n (n< 2 tỉ). Xuất ra số các chữ số của số nguyên đó và tổng các chữ số của số nguyên đó.

Ví dụ: Nếu người dùng nhập vào số: 123456 thì kết quả xuất ra: Số các chữ số là: 6. Tổng các chữ số cảu số nguyên vừa nhập là: 21

Gợiý:Để giải quyết bài toán này ta cần tìm cáchđể tách ra các chữ số của số nguyên nhập vào sauđóđếm cộng dồnđể tính tổng các chữ số của sốđó, vậy vấnđề quan trong nhất là làm saođể tách lấyđược từng chữ số của số nguyênđó! ta hãy cũng tím hiểu

Giới thiệu hai phép toán Mod và Div

Mod: Là phép toán chia lấy phần dư.

Div: Là phép toán chia lấy phần nguyên.

Ví dụ: 13 div 5 = 2 và 13 mod 5 = 3 (vì 13 chia cho 5được 2 dư 3)

Ủa nó có liên quan gìđâuđến việc lấy ra các chữ số của một số nguyên nhỉ! Cóđấy các bạn, các bạn xem thử nhé: 123456 mod 10 = 6, lấyđược số 6 cuối cùng rồi, 123456 div 10 = 12345 bỏđi chữ số cuối cùng rồi, 12345 mod 10 = 5 lại lấyđược chữ số 5 ra rồi nhé, vậy là bạnđã hiểu cách dùng hai phép toán Mod, Divđể tách lấyđược các chữ số của một số nguyên chưa nào. Ta chỉ cần lập trìnhđểđếm và cộng dồn các chữ sốđó là OK phải không nào.

Ứng dụng mod, div trong Pascal cho bài toán trên

Ta hãy cùng code bài toán trên bằng Pascal theo cách sử dụng mod, div nhé.

Dữ liệu vào file: Dem _CS.inp Dữ liệu ra file: Dem_CS.out Chứa số n

VD: 12456

Dòng 1: ghi số các chữ số

Dòng 2: Ghi tổng các chữ số

5

18

Ý nghĩa của chương trình như sau:

Nếu n = 0 thì cho biếnđếm là 1 còn nếu khôngthì cho biếnđếm là 0.Đây là đoạn mãđể xử lý trường hợpđặc biệt n = 0, nếu trường hợp này xảy ra thì chương trình sẽ không thực hiện vòng lặp phía sau và kết luận ngay số có 1 chữ số và tổng các chữ số bằng 0. Tùy theo thuật toán mà thường xuất hiện các trường hợpđặc biệt, ta cần lập trìnhđể xử lý riêng các trường hợp này

Vòng lặp While: Có nhiệm vụ lặp lại việc

  • Tách từng chữ số của số nguyên ra (từ phải sang trái) Dùng phép toánmod
  • Sau khi táchđược bỏ bớt chữ sốđó Dùng phép toánDiv

Liệu trong Scratch có hai hàm Mod và Div không?

Mình tựđặt ra câu hỏi này ngay khi nghĩđến bài toán, chúng ta thử lục tìm trong Các phép toán của Scratch xem nào.

Thấy rồi hàm Modđây rồi:

Không thấy Div các bạnơi, làm saođây! Ta không thấy trong Scratch có phép toán Div nhưngđã là ngôn ngữ lập trình thì chắc chắn phải có cách xây dựng phép toán DIV mình suy nghĩ như vậy và cuối cùng tìm ra cách xây dựng phép toán này trong Scratch như sau:

Xây dựng Div trong Scratch

Tôi lần tìm thì phát hiện ra phép toán Làm tròn xuống và nghĩ ngay phép toán này có thể giúp xây dựng được phép toán Div giống như Pascal. OK như vậy là tađã cóđủ hai phép rồi nhé.

Việc còn lại các bạn chỉ cần lập trình Scratch bằng cách kéo thả theo thuật toán như trong Pascal mà thôi. Các bạn tự code nhé.

Không cần Mod và Div liệu có giải quyếtđược bài toán này?

Câu trả lời làđược nhé, mình cóý tưởng thế này trong Pascal ta hãy chuyển số nhập vào sang dạng chuỗi sauđó can thiệp vào từng phần tử của chuỗi vậy là OK rồi.

Còn trong Scratch thì cònđơn giản hơn nữa vì biến trong Scratch chung cả số và chuỗi vì vậy chẳng cần chuyển gì nữa cứ vậy mà tách từng chữ số ra màđếm và công dồn thôi.

Cách này có vẻđơn giản hơn rất nhiều tuy nhiên mình không khuyến khích các bạn làm bằng cách này mà hãy làm bằng cách sử dụng Div và Mod nó toán học hơn phải không các bạn.

Xin chào các bạn, hẹn gặp lại trong bài tiếp theo, Các bạn nhớ xem phần 3: 50 bài tập scratch nhé, có rất nhiều bài toán hayđó.

Video liên quan

Đăng nhận xét