20.1
Hãy viết câu lệnh range cho kết quả là các dãy số sau:
a) 0, 1, 2, 3,..., 11.
b)-2, -1, 0, 1, 2, ..., 8.
c) 5, 6, 7,..., 20.
Phương pháp giải:
Lệnh tạo vùng giá trị range() có các dạng sau:
+ range(stop) trả lại vùng có giá trị từ 0 đến stop -1
+ range(start, stop) trả lại vùng có giá trị từ start đến stop -1
Lời giải chi tiết:
a) range(12).
b) range(-2,9).
c) range(5, 21).
20.2
Kết quả thực hiện câu lệnh for dưới đây là gì?
Phương pháp giải:
Lệnh range(n) trả lại vùng giá trị gồm n số từ 0 đến n-1
Lệnh for là lệnh lặp với số lần biết trước.
Lời giải chi tiết:
Dãy 0, 1, 4, 9, . 81 (bình phương các số 0, 1, 2...9)
20.3
Cho đoạn chương trình sau:
a) Kết quả thực hiện các câu lệnh trên là gì?
b) Nếu thay câu lệnh for i in range( 1,11) bằng câu lệnh for i in range(11) thì kết quả thu được có thay đổi không? Vì sao?
Phương pháp giải:
Lệnh tạo vùng giá trị range() có các dạng sau:
+ range(stop) trả lại vùng có giá trị từ 0 đến stop -1
+ range(start, stop) trả lại vùng có giá trị từ start đến stop -1
Lệnh for là lệnh lặp với số lần biết trước.
Lời giải chi tiết:
a) Giá trị trong sum là tổng các bình phương của 1, 2, 3,..., 10 (= 385).
b) Kết quả không thay đổi. Vì giá trị i khi đó sẽ bắt đầu từ 0, tổng các bình phương của các số 0, 1, 2, ..., 10 vẫn chính là tổng các bình phương của các số 1, 2,..., 10.
20.4
Viết chương trình nhập vào từ bàn phím số tự nhiên n và tính tổng S=1+1/2+1/3+ + 1/n
Phương pháp giải:
for là lệnh lặp với số lần biết trước. Số lần lặp thường được xác định bởi vùng giá trị của lệnh range()
Lời giải chi tiết:
- Chương trình có thể viết như sau
20.5
Viết chương trình nhập vào từ bàn phím số tự nhiên n và tính tổng
S=1 x 2+2 x 3+3 x 4+ ... + (n-1) x n
Phương pháp giải:
for là lệnh lặp với số lần biết trước. Số lần lặp thường được xác định bởi vùng giá trị của lệnh range()
Lời giải chi tiết:
20.6
Viết chương trình tính tổng các số tự nhiên chẵn và tổng các số tự nhiên lẻ không vượt quá n (n là một số tự nhiên được nhập từ bàn phím)
Phương pháp giải:
Vận dụng kiến thức đã học để viết chương trình
Lời giải chi tiết:
20.7
Viết chương trình nhập số tự nhiên n từ bàn phím rồi tính tổng và tích các ước số thực sự của n (số k là ước số thực sự của n nếu n%k = 0, k < n)
Phương pháp giải:
Có thể thấy rằng các ước số thật sự của n không vượt quá giá trị n//2
Lời giải chi tiết:
20.8
Điểm tổng kết trung bình năm học được tính theo công thức có dạng:
(diem1 x heso1 + diem2 x heso2 + ... + diemk x hesok)/(heso1+heso2 + ... + hesok).
Viết chương trình tính điểm trung bình của em, trong đó số môn học k, điểm số từng môn và hệ số tương ứng được nhập vào từ bàn phím.
Câu hỏi mở rộng: Có thể thay câu lệnh:
diem = float(input("Điểm môn thứ "+str(i)+ ": "))
bằng câu lệnh:
diem = float(input("Điểm môn thứ ", i,":"))
được không?
Phương pháp giải:
Vận dụng kiến thức đã học để viết chương trình
Lời giải chi tiết:
Câu hỏi mở rộng. Không thể thay thế được
20.9
Viết chương trình giải bài toán dân gian:
"Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu (36) con
Một trăm (100) chân chẵn
Hỏi có mấy gà mấy chó?".
Phương pháp giải:
Vận dụng kiến thức đã học để viết chương trình
Lời giải chi tiết:
Nếu kí hiệu k là số con gà thì số con chó sẽ là 36 – k và tổng số chân sẽ là so_chan = k x 2 + (36 − k) × 4. Rõ ràng k <= 36. Như vậy ta chỉ việc cho k nhận các giá trị lần lượt từ 0 tới 36 và kiểm tra nếu so_chan = 100 thì k và 36 – k chính là số gà và số chó cần tìm.
20.10
Lập trình giải bài toán dân gian TRĂM TRÂU TRĂM CỎ.
"Trâu đứng ăn năm
Trâu nằm ăn ba
Lụ khụ trâu già
Ba con một bộ
Trăm con ăn cỏ
Trăm bó no nê
Hỏi có bao nhiêu trâu đứng, trâu nằm, trâu già?"
Phương pháp giải:
Bài toán có thể phát biểu lại như sau. Có một trăm con trâu ăn hết một trăm bó cỏ. Mỗi con trâu đứng ăn được 5 bó. Mỗi con trâu nằm ăn được 3 bó. Ba con trâu già ăn cùng nhau hết 1 bó. Hỏi có bao nhiêu con trâu đứng, bao nhiêu con trâu năm và bao nhiêu con trâu già?
Lời giải chi tiết:
Mỗi trâu đứng ăn 5 bó cỏ nên tối đa số trâu đứng chỉ có thể là 100/5 tức là 20 con
Mỗi trâu nằm ăn 3 bó cỏ nên số trâu nằm nhỏ hơn hoặc bằng 100/3 tức là 33 con.
Số trâu già = 100 − số trâu đứng - số trâu nằm.
20.11
Dựa vào lời giải của Câu 20.9, em hãy viết chương trình giải bài toán gà và chó tổng quát với tổng số gà và chó là m và tổng số chân là n được nhập vào từ bàn phím. Lưu ý: Trong trường hợp tổng quát, không phải với bất kì cặp số m và n nào bài toán cũng có lời giải. Ví dụ nếu m = 2, n = 10 bài toán vô nghiệm.
Phương pháp giải:
Xem lại lời giải Câu 20.9
Lời giải chi tiết:
Nếu kí hiệu k là số gà thì số chó sẽ là m – k. Lời giải của bài toán chính là giá trị k thoả mãn điều kiện k × 2 + (m − k) × 4 = n. Trong chương trình, ta sẽ sử dụng biến co_nghiem để ghi nhận việc xác định được lời giải. Giá trị ban đầu của co_nghiem được gán bằng False, khi tìm ra nghiệm thì giá trị của nó được đổi thành True.
20.12
Em hãy viết chương trình giải bài toán có m trâu, n bó cỏ, mỗi trâu đứng ăn k1 bó cỏ, trâu nằm ăn k2 bó cỏ, k3 trâu già ăn 1 bó cỏ.
Phương pháp giải:
Tương tự Câu 20.10, cần sử dụng một biến để ghi nhận tình huống tìm ra nghiệm.
Lời giải chi tiết: