Bài 31: Thực Hành Viết Chương Trình Đơn Giản | Tin Học 10 | Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính - Lớp 10 - Kết Nối Tri Thức Với Cuộc Sống

Kết nối tri thức Tin học 10 Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính Bài 31: Thực Hành Viết Chương Trình Đơn Giản


Trang 149

MỤC TIÊU

SAU BÀI NÀY EM SẼ:

• Thực hành viết chương trình đơn giản bằng ngôn ngữ Python.

• Thực hành được các bước gỡ rối chương trình bằng công cụ debug – thiết lập điểm dừng và chạy theo từng lệnh.

Nhiệm vụ 1. Viết chương trình nhập từ bàn phím số tự nhiên n, kiểm tra n có phải là số nguyên tố hay không. Nếu n là hợp số thì in ra kết quả phân tích n thành tích các thừa số nguyên tố. Chú ý số 1 không là nguyên tố và cũng không là hợp số.

Hướng dẫn. Sử dụng biến danh sách NT để lưu các thừa số nguyên tố của n. Chương trình sẽ thiết lập danh sách NT chỉ khi n > 1. Kết quả của chương trình sẽ như sau:

– Nếu n = 1 thì danh sách NT sẽ rỗng.

– Nếu n > 1 thì danh sách NT không rỗng. Độ dài danh sách len(NT) sẽ bằng 1 khi và chỉ khi n là số nguyên tố.

Nếu len(NT) > 1 thì chương trình sẽ in ra khai triển n thành tích các thừa số nguyên tố, khai triển này sẽ có dạng: n = hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-0

× hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-1×...× hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-2.

phantichnt.py

hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-3

# Nhập số tự nhiên từ bàn phím và kiểm tra n có phải là số nguyên tố hay không.
# Nếu n = 1 thì thông báo n không phải là số nguyên tố.
# Nếu n là hợp số thì in ra phân tích n thành tích các thừa số nguyên tố.
n = int(input("Nhập số tự nhiên n: "))
m = n
k = 2
NT = [ ]
while m > 1:
while m%k != 0:
k = k + 1
NT.append(k)
m = m//k
count = len(NT)
if count == 0:
print(n,"không là số nguyên tố")
elif count == 1:
else:
print(n,"là số nguyên tố")
else:
print(n,"là hợp số")
print(n, "=", end = " ")
for i in range(count):
if i < count - 1:
print (NT[i], "x", end = " ")
else:
print (NT[i])

 

Trang 150

Chạy chương trình với công cụ gỡ lỗi của phần mềm lập trình. Thiết lập một điểm dừng tại dòng 20 của chương trình như sau:

hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-4

13 m = n
14 k = 2
15 NT = [ ]
16 while m > 1:
17 while m%k != 0:
18 k = k + 1
Điểm dừng của chương trình được đặt trước lệnh m = m/lk, sau khi k là ước số nguyên tố tiếp theo được phát hiện và đưa vào danh sách NT. Quá trình gỡ lỗi được tiến hành để kiểm tra sự thay đổi các biến n, m, k có đúng theo thuật toán hay không. 
19 NT.append(k)
20 m = m//k
21 count = len(NT)
Khi chạy, chương trình sẽ chạy và dừng lại trước điểm dừng (trên màn hình dòng dừng lại được đánh dấu). Nháy nút hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-5

để chạy tiếp chương trình.

14 k = 2
15 NT = [ ]
16 while m > 1:
17 while m%k != 0:
18 k = k + 1
19 NT.append(k)
20 m = m//k
21 count = len (NT)
22 if count == 0:
23 print(n,"không là số nguyên tố")
24- elif count == 1:
25 print(n,"là số nguyên tố")

hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-6

Mỗi lần chương trình dừng lại có thể quan sát các biến n, m, k để kiểm tra tỉnh đúng đắn của chương trình.

Thiết lập bảng theo dõi các giá trị trung gian k, m, n, NT sẽ như sau, giả sử giá trị nhập ban đầu của n = 100:

    k     m     n           NT                     Kết thúc
2 100 100 [2]  
2 50 100 [2,2]  
5 25 100 [2, 2, 5]  
5 5 100 [2, 2, 5, 5]  
        Thông báo: 100 = 2 × 2 × 5 × 5


Nhiệm vụ 2. Viết chương trình nhập từ bàn phím ba số thực a, b, c và tìm nghiệm của phương trình bậc hai: hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-7 + bx + c = 0.

Chương trình cần xét đầy đủ các trường hợp xảy ra.

Hướng dẫn.

Với bộ dữ liệu a, b, c đã nhập (là các số thực), chúng ta cần xét đầy đủ các trường hợp sau:

Trang 151

– Nếu a = b = c = 0 phương trình có vô số nghiệm.

– Nếu a = b = 0; c # 0, phương trình vô nghiệm.

– Nếu a = 0; b # 0 phương trình là bậc nhất và có nghiệm duy nhất.

– Nếu a # 0, giải phương trình bậc hai. Nghiệm sẽ phụ thuộc vào giá trị delta = hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-8 – 4ac. Phương trình vô nghiệm, có một nghiệm kép hoặc hai nghiệm phân biệt phụ thuộc vào giá trị delta là nhỏ hơn 0, bằng 0 hay lớn hơn 0.

Chương trình được thiết kế thông qua các hàm sau:

– NhapDL(): hàm nhập ba số a, b, c từ bàn phím.

– GiaiPT1(b, c): hàm giải phương trình bậc nhất: bx + c = 0.

– GiaiPT2(a, b, c): hàm giải phương trình bậc hai: hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-9 + bx + c = 0.

Trong bài thực hành chúng ta sử dụng cấu trúc mở rộng của lệnh rẽ nhánh if ... else trong Python khi các lệnh này lồng nhau. Khi đó các lệnh rẽ nhánh lồng nhau trong mô hình bên trái sẽ được viết gọn hơn như mô hình bên phải.

if (điều kiện 1):
<nhóm lệnh 1>
else:
if (điều kiện 2:
<nhóm lệnh 2>
else:
<nhóm lệnh 3)
if (điều kiện 1):
<nhóm lệnh 1>
elif (điều kiện 2>: <nhóm lệnh 2>
else:
<nhóm lệnh 3>



Chú ý: Cấu trúc if ... elif .... else có thể lồng nhau nhiều lần. Chương trình đầy đủ như sau:

giaipt.py

hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-10

Trang 152

hinh-anh-bai-31-thuc-hanh-viet-chuong-trinh-don-gian-12368-11

# Nhập từ bàn phím ba số thực a, b, c và tìm nghiệm của phương trình
# ax2 + bx + c = 0.
def sqrt(x):
return x**0.5

def NhapDL( ):
s = input("Nhập ba số a, b, c cách nhau bởi dấu cách: ")
snum= s.split( )
return float (snum[0]), float(snum[1]), float (snum [2])
def GiaiPT1(b, c):
if b != 0:
print("Phương trình có một nghiệm duy nhất:",round(-c/b,1))
elif c == 0:
print("Phương trình có vô số nghiệm")
else:
print("Phương trình vô nghiệm")
def GiaiPT2(a,b,c):
if a == 0:
GiaiPT1(b, c)
else:
delta = b*b - 4*a*c
if delta > 0:
x1 = (-b+ sqrt(delta))/(2*a)
x2 = (-b - sqrt(delta))/(2*a)
print("Phương trình có hai nghiệm khác biệt")
print("x1 =",round (x1,1), "x2 =",round(x2,1))
elif delta == 0:
x = (-b / (2*a))
else:
print("Phương trình có nghiệm kép")
print("x1,2 = ", round(x,1))
print("Phương trình vô nghiệm")
# Chương trình chính
a,b,c = NhapDL( )
GiaiPT2(a,b,c)

 

LUYỆN TẬP

1. Viết chương trình yêu cầu nhập số thực dương a. Chương trình cần kiểm tra dữ liệu nhập như sau: Nếu số đã nhập nhỏ hơn hoặc bằng 0 thì thông báo: "Nhập sai, số a phải lớn hơn 0. Hãy nhập lại". Chương trình chỉ dừng sau khi người dùng nhập đúng.

2. Viết chương trình in bảng cửu chương ra màn hình như sau: 

– Hàng thứ nhất in ra bảng nhân 1, 2, 3, 4, 5.

– Hàng thứ hai in ra bảng nhân 6, 7, 8, 9, 10. | G

VẬN DỤNG

1. Viết chương trình nhập hai số tự nhiên Y1, Y2 là số năm, Y2 > Y1. Tính xem trong khoảng thời gian từ năm 11 đến năm Y2 có bao nhiêu năm nhuận. Áp dụng tính xem trong thế kỉ XXI có bao nhiêu năm nhuận.

2. Gọi UCLN(a, b) là hàm ƯCLN của hai số tự nhiên a, b. Dễ thấy ta có ƯCLN(a, b) = UCLN(b, a%b) nếu b > 0 và ƯCLN(a, 0) = a. Từ đó hãy viết chương trình nhập hai số a, b và tỉnh UCLN của a và b.

Tin tức mới


Đánh giá

Bài 31: Thực Hành Viết Chương Trình Đơn Giản | Tin Học 10 | Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính - Lớp 10 - Kết Nối Tri Thức Với Cuộc Sống

Tổng số sao của bài viết là: 5 trong 1 đánh giá
Xếp hạng: 5 / 5 sao

Bình Luận

Để Lại Bình Luận Của Bạn

Tin Học 10

  1. Chủ đề 1: Máy tính và xã hội tri thức
  2. Chủ đề 2: Mạng máy tính và Internet
  3. Chủ đề 3: Đạo đức, pháp luật và văn hoá trong môi trường số
  4. Chủ đề 4: Ứng dụng tin học
  5. Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính

Tin tức mới

Môn Học Lớp 10 - Kết Nối Tri Thức Với Cuộc Sống

Ngữ văn 10 - Tập 1

Giáo dục thể chất cầu lông

Giáo dục thể chất bóng đá

Hoạt Động Trải Nghiệm, Hướng Nghiệp 10

Công Nghệ 10

Địa Lí 10

Toán 10 - Tập 1

Toán 10 - Tập 2

Lịch Sử 10

Mĩ thuật_Thiết kế thời trang 10

Mĩ thuật_Thiết kế mĩ thuật sân khấu, điện ảnh 10

Mĩ thuật_Thiết kế công nghiệp 10

Mĩ thuật_Thiết kế đồ hoạ 10

Mĩ thuật_Thiết kế mĩ thuật đa phương tiện 10

Mĩ thuật_Lí luận và lịch sử mĩ thuật 10

Mĩ thuật _Điêu khắc 10

Mĩ thuật_Đồ hoạ (tranh in) 10

Mĩ thuật_Hội hoạ 10

Mĩ thuật_Kiến trúc 10

Tin Học 10

Giải bài tập Sinh học 10

Giải bài tập Hóa học 10

Giải bài tập Vật lý 10

Bộ Sách Lớp 10

Giáo Dục Việt Nam

Bộ Sách Giáo Khoa của Nhà Xuất Bản Giáo Dục Việt Nam

Tài liệu học tập

Đây là tài liệu tham khảo hỗ trợ trong quá trình học tập

Global Success & Bộ Giáo Dục - Đào Tạo

Bộ sách Global Success & Bộ Giáo Dục - Đào Tạo là sự kết hợp giữa ngôn ngữ Tiếng Anh theo lối giảng dạy truyền thống và cập nhật những phương thức quốc tế

Cánh Diều

Bộ sách giáo khoa của Nhà xuất bản Cánh Diều

Kết Nối Tri Thức Với Cuộc Sống

Sách giáo khoa của nhà xuất bản Kết Nối Tri Thức Với Cuộc Sống

Sách Kết Nối Tri Thức Với Cuộc Sống

Lớp 1

Sách giáo khoa dành cho lớp 1

Lớp 6

Sách giáo khoa dành cho lớp 6

Lớp 5

Sách giáo khoa dành cho lớp 5

Lớp 4

Sách giáo khoa dành cho lớp 4

Lớp 2

Sách giáo khoa dành cho lớp 2

Lớp 3

Sách giáo khoa dành cho lớp 3

Lớp 7

Sách giáo khoa dành cho lớp 7

Lớp 8

Sách giáo khoa dành cho lớp 8

Lớp 9

Sách giáo khoa dành cho lớp 9

Lớp 10

Sách giáo khoa dành cho lớp 10

Lớp 11

Sách giáo khoa dành cho lớp 11

Lớp 12

Sách giáo khoa dành cho lớp 12

Liên Kết Chia Sẻ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.