Giải SBT Tin 10 KNTT Bài 31. Thực hành: Viết chương trình đơn giản có đáp án
53 người thi tuần này 4.6 610 lượt thi 10 câu hỏi
🔥 Đề thi HOT:
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 26 có đáp án
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 27 có đáp án
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 28 có đáp án
Trắc nghiệm Tin học 10 Kết nối tri thức Bài 29 có đáp án
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 24 có đáp án
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 23 có đáp án
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 22 có đáp án
15 câu Trắc nghiệm Tin học 10 Cánh diều Mạng máy tính với cuộc sống có đáp án
Nội dung liên quan:
Danh sách câu hỏi:
Lời giải
Chương trình có thể viết như sau:
a = float(input("Nhập số thực dương a:"))
while a <= 0:
print("Nhập sai, số a phải lớn hơn 0. Hãy nhập lại.")
a = float(input("Nhập số thực dương a:"))
Lời giải
Các em tự viết lại chương trình trên:
Kết quả chạy chương trình có thể như sau:
Nhận xét: tại mỗi vòng lặp, các giá trị A[k] cũng đã được di chuyển để được chèn vào một vị trí trong dãy con A[0], A[1], ..., A[k-1], tuy nhiên vị trí A[0] không bị thay đổi. Từ đó chúng ta tìm ra lỗi của chương trình tại vị trí lệnh while:
while j > 0 and A[j] > A[j+1]:
Cần sửa lại như sau:
while j >= 0 and A[j] > A[j+1]:
Chương trình đã tìm ra lỗi nhờ công cụ kiểm thử printine. Chương trình chính thức sau khi sửa như sau.
sap_xep.py
dayA = [5,1,8,4,2] # Dãy gốc cần sắp xếp
def sap_xep(A):
n = len(A)
for k in range (1,n):
j = k – 1
while j >= 0 and A[j] > A[j+1]:
A[j], A[j+1] = A[j+1], A[j]
j = j – 1
A = dayA. copy()
sap_xep (A)
print("Dãy đích:", A)
Lời giải
Hướng dẫn:
Từ yêu cầu của đề bài chúng ta sẽ thiết lập thủ tục chính printBCC() có chức năng in bảng cửu chương. Thủ tục này sẽ có hai phần độc lập, phần đầu in 5 khối thuộc hàng thứ nhất là bảng cửu chương của các số 1, 2, 3, 4, 5. Phần sau của thủ tục sẽ in 5 khối thuộc hàng thứ hai là bảng cửu chương của các số 6, 7, 8, 9, 10.
Để thể hiện chính xác và cân đối trên màn hình chúng ta thiết lập thêm hai hàm:
- Hàm st(num) để tạo xâu kí tự thể hiện số num. Nếu num là số có 1 chữ số thì st(num) sẽ chèn 1 dấu cách phía trước num.
- Hàm space(k) thể hiện k dấu cách trên màn hình.
Nhập, chạy thử và kiểm tra kết quả chương trình sau:
def st(n):
if n < 10:
return" "+str(n)
else:
return str(n)
def space(k):
return" "*k
def printBCC():
for h in range (10):
i = h+1
for j in range (1,6):
print(st(j) + " x " + st(i) + " = " + st(i*j) + space(2), end = " ")
print()
print()
for h in range(10):
i = h+1
for j in range (6,11):
print(st(j) + " x " + st(i) + " = " + st(i*j) + space(2), end = " ")
print()
# Chương trình chính
printBCC()
* Chương trình nhập lên phần mềm lập trình Python:
* Kết quả chạy thử chương trình:
Lời giải
Để kiểm tra tại một chỉ số i, 3 phần tử liên tiếp nhau bằng 1, 2, 3 có nhiều cách kiểm tra khác nhau, ví dụ:
Cách 1. Sử dụng biểu thức lôgic.
A[i] == 1 and A[i] == 2 and A[i] == 3
Cách 2. Sử dụng so sánh có chứa vùng chỉ số.
A[i:i+3] == [1,2,3]
Chương trình có thể viết như sau:
A = [0,4,0,1,2,3,8,9,0,1,2,3,17,-16,0,1,2]
p = [1,2,3]
pkq = -1
i = 0
while i < len(A) - 3 and pkq == -1:
if A[i: i+3] == p:
pkq = i
else:
i = i + 1
if pkq >= 0 :
print("Tìm thấy mẫu",p,"tại vị trí", pkq)
else:
print("Không tìm thấy mẫu",p)
Lời giải
Hướng dẫn:
Chúng ta đã biết giữa các kí tự cũng có thể được so sánh. Hai kí tự ch1 và ch2 được so sánh với nhau thông qua vị trí của các kí tự này trong bảng mã ASCII hoặc Unicode. Quan hệ so sánh tự nhiên giữa các kí tự chữ cái và số như sau:
"0" < "1" < ... < "9".
"A" < "B" < ... < "Z" < "a" < "b" <...< "Z".
Để giải bài tập này chúng ta cần tạo các biến nhớ dùng để lưu các xâu kí tự trung gian là s_tr (xâu dùng để lưu tạm các kí tự là số), s_ph (xâu dùng để lưu tạm các kí tự là chữ cái) và s_gi (xâu dùng để lưu các kí tự không là chữ số cũng không là chữ cái). Thuật toán của chương trình như sau: duyệt một lần tất cả các kí tự của xâu gốc S, sau đó đưa các kí tự này vào các xâu trung gian s_tr, s_ph, s_gi. Xâu kết quả sẽ là s_tr + s_gi + s_ph. Mở phần mềm soạn thảo và nhập chương trình sau:
S = input("Nhập xâu kí tự bất kì: ")
s_tr = s_ph = s_gi = " "
for ch in S:
if "0" <= ch <="9":
s_tr = s_tr + ch
else:
if "a" <= ch <= "z" or "A" <= ch <= "Z":
s_ph = s_ph + ch
else:
s_gi = s_gi + ch
Skq = s_tr + s_gi + s_ph
print("Xâu kết quả:", Skq)
* Chương trình chạy thử:
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
122 Đánh giá
50%
40%
0%
0%
0%