Giải bài tập SGK: Bài 16: Ngôn ngữ lập trình bậc cao và python – Tin học 10

Mục lục [Ẩn]

Chọn đến phần học sinh cần nhanh chóng thông qua mục lục bằng cách click đến phần đó

Câu hỏi mở đầu trang 86

Câu hỏi mở đầu

Đề bài: Em hãy quan sát các đoạn chương trình được viết bằng các ngôn ngữ lập trình khác nhau trong Hình 16.1 và cho biết câu lệnh trong ngôn ngữ nào dễ hiểu nhất.

Lời giải:

Quan sát Hình 16.1, ta thấy có 3 đoạn chương trình viết bằng 3 ngôn ngữ khác nhau:

  • Ngôn ngữ máy: Gồm các dãy số 0 và 1 (mã nhị phân) → rất khó đọc, khó hiểu.
  • Hợp ngữ (Assembly): Dùng một số từ viết tắt tiếng Anh (LDA, STA, JMP,…) → khó nhớ, khó hiểu.
  • Ngôn ngữ Python: Các câu lệnh viết gần với ngôn ngữ tự nhiên (input, print, for,…) → dễ hiểu nhất.

→ Câu lệnh trong ngôn ngữ Python là dễ hiểu nhất.

1. Ngôn ngữ lập trình bậc cao

Hoạt động 1 trang 86

Đề bài:

1. Ngôn ngữ lập trình là gì? Có những loại ngôn ngữ lập trình nào?

Lời giải:

  • Ngôn ngữ lập trình là ngôn ngữ dùng để viết các chương trình cho máy tính thực hiện.
  • Có 3 loại ngôn ngữ lập trình chính:
    • Ngôn ngữ máy: Viết bằng mã nhị phân (dãy số 0 và 1).
    • Hợp ngữ (Assembly): Dùng các từ viết tắt tiếng Anh.
    • Ngôn ngữ lập trình bậc cao: Câu lệnh viết gần với ngôn ngữ tự nhiên.

2. Hãy kể tên một số ngôn ngữ lập trình bậc cao mà em biết.

Lời giải:

Một số ngôn ngữ lập trình bậc cao thông dụng: Java, C/C++, Python, Pascal, Visual Basic,…

Câu hỏi củng cố mục 1 trang 87

Đề bài: Theo em, viết chương trình bằng loại ngôn ngữ lập trình nào dễ nhất?

  • A. Ngôn ngữ máy.
  • B. Hợp ngữ.
  • C. Ngôn ngữ lập trình bậc cao.

Lời giải:

→ Đáp án đúng: C. Ngôn ngữ lập trình bậc cao.

Giải thích: Theo SGK trang 87, ngôn ngữ lập trình bậc cao có các câu lệnh được viết gần với ngôn ngữ tự nhiên, giúp cho việc đọc, hiểu chương trình dễ dàng hơn so với ngôn ngữ máy (mã nhị phân) và hợp ngữ (các từ viết tắt).

2. Môi trường lập trình Python

Hoạt động 2 trang 87

Đề bài:

1. Tìm hiểu cách viết và thực hiện các lệnh trong môi trường lập trình Python.

Lời giải:

  • Sau khi khởi động Python, màn hình làm việc sẽ xuất hiện dấu nhắc >>>.
  • Người dùng gõ lệnh Python sau dấu nhắc >>>, sau đó nhấn phím Enter để máy thực hiện lệnh.

2. Phân biệt chế độ gõ lệnh trực tiếp và chế độ soạn thảo chương trình của Python.

Lời giải:

Môi trường lập trình Python có 2 chế độ:

Chế độ Cách dùng Mục đích
Gõ lệnh trực tiếp Gõ từng lệnh sau dấu nhắc >>>, nhấn Enter để chạy. Dùng để tính toán và kiểm tra nhanh các lệnh.
Soạn thảo Mở cửa sổ soạn thảo bằng File/New File, viết nhiều dòng lệnh rồi lưu và chạy (Run). Dùng để viết các chương trình có nhiều dòng lệnh.

Câu hỏi củng cố mục 2 trang 88

Đề bài:

1. Dấu nhắc chính là con trỏ soạn thảo chương trình Python. Đúng hay sai?

Lời giải:

Sai.

Giải thích: Dấu nhắc >>> là nơi để gõ lệnh trực tiếp trong chế độ gõ lệnh, không phải là con trỏ soạn thảo chương trình. Con trỏ soạn thảo nằm trong cửa sổ soạn thảo (mở bằng File/New File).

2. Việc thực hiện câu lệnh ở chế độ gõ lệnh trực tiếp và chế độ soạn thảo có điểm gì giống nhau, khác nhau?

Lời giải:

Chế độ gõ lệnh trực tiếp Chế độ soạn thảo
Giống nhau Đều thực hiện được các câu lệnh Python và cho ra kết quả.
Khác nhau từng lệnh sau dấu nhắc >>> rồi nhấn Enter, lệnh thực hiện ngay. Viết nhiều dòng lệnh trong cửa sổ soạn thảo, lưu lại thành tệp .py rồi chọn Run để chạy cả chương trình.

3. Một số lệnh Python đầu tiên

Câu hỏi củng cố mục 3 trang 89

Đề bài:

1. Kết quả của mỗi lệnh sau là gì? Kết quả đó có kiểu dữ liệu nào?

>>> 5/2
>>> 12 + 1.5
>>> "Bạn là học sinh lớp 10"
>>> 10 + 7/2

Lời giải:

Lệnh Kết quả Kiểu dữ liệu
>>> 5/2 2.5 Số thực
>>> 12 + 1.5 13.5 Số thực
>>> "Bạn là học sinh lớp 10" 'Bạn là học sinh lớp 10' Xâu kí tự
>>> 10 + 7/2 13.5 Số thực

Giải thích cách tính câu d:

$$10 + \dfrac{7}{2} = 10 + 3.5 = 13.5$$

Trong Python, phép chia / luôn cho kết quả là số thực, nên 10 + 7/2 cũng là số thực.

2. Lệnh sau sẽ in ra kết quả gì?

>>> print("13 + 10*3/2 - 3*2 = ", 13 + 10*3/2 - 3*2)

Lời giải:

Tính giá trị biểu thức $13 + 10 \times 3 / 2 – 3 \times 2$:

$$13 + \dfrac{10 \times 3}{2} – 3 \times 2 = 13 + 15 – 6 = 22$$

Vì có phép chia / nên kết quả là số thực $22.0$.

Kết quả in ra màn hình:

13 + 10*3/2 - 3*2 =  22.0

Thực hành trang 89

Hướng dẫn thực hành

Nhiệm vụ: Sử dụng chế độ soạn thảo chương trình của Python để tạo, nhập và chạy chương trình đầu tiên có tên Bai1.py như sau:

# Chương trình đầu tiên
print("Xin chào!")

Hướng dẫn các bước:

  • Bước 1: Nháy đúp chuột vào biểu tượng Python (IDLE) trên màn hình để khởi động.
  • Bước 2: Trong cửa sổ Python vừa mở, chọn File / New File để mở cửa sổ soạn thảo chương trình.
  • Bước 3: Nhập nội dung chương trình:
    # Chương trình đầu tiên
    print("Xin chào!")
    

    Chú ý: Kí hiệu # là vị trí bắt đầu dòng chú thích lệnh của Python. Dòng chú thích chỉ để người đọc hiểu, máy sẽ bỏ qua khi chạy.

  • Bước 4: Chọn File / Save hoặc nhấn tổ hợp phím Ctrl + S để lưu tệp với tên Bai1.py.
  • Bước 5: Chọn Run / Run Module hoặc nhấn phím F5 để thực hiện chương trình.
  • Kết quả in ra trên cửa sổ Shell:
    Xin chào!
    
  • Bước 6: Để kết thúc một phiên làm việc, nháy nút ❌ ở góc trên bên phải màn hình hoặc gõ lệnh quit() hoặc exit() rồi nhấn Enter:
    >>> quit()
    

Luyện tập

Luyện tập 1 trang 90

Đề bài: Hãy viết lệnh để tính giá trị các biểu thức sau trong chế độ gõ lệnh trực tiếp của Python:

a) $10 + 13$ b) $20 – 7$ c) $3 \times 10 – 16$ d) $12/5 + 13/6$

Lời giải:

Trong Python, kí hiệu phép nhân là dấu *, phép chia là dấu /.

>>> 10 + 13
23
>>> 20 - 7
13
>>> 3 * 10 - 16
14
>>> 12/5 + 13/6
4.566666666666666

Cách tính câu d:

$$\dfrac{12}{5} + \dfrac{13}{6} = 2.4 + 2.1666… \approx 4.5667$$

Luyện tập 2 trang 90

Đề bài: Các lệnh sau có lỗi không? Vì sao?

>>> 3 + * 5
>>> "Bạn là học sinh, bạn tên là "Nguyễn Việt Anh""

Lời giải:

Cả 2 lệnh đều bị lỗi.

  • Lệnh 1: >>> 3 + * 5Lỗi cú pháp. Vì giữa hai phép toán +* không có toán hạng (số). Python không hiểu được biểu thức này.
  • Lệnh 2: >>> "Bạn là học sinh, bạn tên là "Nguyễn Việt Anh""Lỗi cú pháp. Vì xâu kí tự dùng cặp dấu nháy kép "..." nhưng bên trong xâu lại có thêm dấu nháy kép. Python sẽ hiểu nhầm chỗ kết thúc của xâu.

    Cách sửa: Dùng dấu nháy đơn bên trong, ví dụ:

    >>> "Bạn là học sinh, bạn tên là 'Nguyễn Việt Anh'"
    

Luyện tập 3 trang 90

Đề bài: Viết các lệnh in ra màn hình thông tin như sau:

a) $1 \times 3 \times 5 \times 7 = 105.$

b) Bạn Hoa năm nay 16 tuổi.

Lời giải:

Câu a: Dùng lệnh print() với 2 phần: phần xâu kí tự và phần biểu thức.

>>> print("1 x 3 x 5 x 7 =", 1*3*5*7)
1 x 3 x 5 x 7 = 105

Câu b: In ra một xâu kí tự đơn giản.

>>> print("Bạn Hoa năm nay 16 tuổi.")
Bạn Hoa năm nay 16 tuổi.

Vận dụng

Vận dụng 1 trang 90

Đề bài: Ngoài cách viết xâu kí tự giữa cặp dấu nháy đơn hoặc nháy kép còn có thể viết giữa cặp ba dấu nháy kép. Nếu một xâu được viết giữa cặp ba dấu nháy kép thì chúng ta có thể dùng phím Enter để xuống dòng ở giữa xâu. Hãy thực hiện lệnh sau và quan sát kết quả:

>>> print("""Không có việc gì khó
Chi sợ lòng không bền
Đào núi và lấp biển
Quyết chí ắt làm nên""")

Lời giải:

Khi thực hiện lệnh trên, kết quả in ra màn hình:

Không có việc gì khó
Chi sợ lòng không bền
Đào núi và lấp biển
Quyết chí ắt làm nên

Nhận xét: Khi dùng cặp ba dấu nháy kép """...""", xâu kí tự được giữ nguyên định dạng xuống dòng giống như khi gõ. Mỗi lần nhấn Enter sẽ tạo một dòng mới trong kết quả in ra.

Vận dụng 2 trang 90

Đề bài: Viết chương trình Python in ra màn hình bảng nhân trong phạm vi 10.

Lời giải:

Em dùng chế độ soạn thảo (File / New File) để viết chương trình sau:

# Chương trình in bảng nhân trong phạm vi 10
print("1 x 1 =", 1*1)
print("1 x 2 =", 1*2)
print("1 x 3 =", 1*3)
print("1 x 4 =", 1*4)
print("1 x 5 =", 1*5)
print("1 x 6 =", 1*6)
print("1 x 7 =", 1*7)
print("1 x 8 =", 1*8)
print("1 x 9 =", 1*9)
print("1 x 10 =", 1*10)

print("2 x 1 =", 2*1)
print("2 x 2 =", 2*2)
# ... tương tự cho các bảng nhân 2, 3, ..., 10
print("10 x 9 =", 10*9)
print("10 x 10 =", 10*10)

Lưu ý: Vì hiện tại các em mới học lệnh print(), nên có thể viết từng dòng lệnh như trên. Bảng nhân đầy đủ sẽ gồm 100 dòng lệnh print() (từ $1 \times 1$ đến $10 \times 10$).

→ Sau khi viết xong, nhấn Ctrl + S để lưu tệp, sau đó nhấn F5 để chạy chương trình và xem kết quả.

Thầy Phạm Thành Danh

Thầy Phạm Thành Danh

(Người kiểm duyệt, ra đề)

Chức vụ: Trưởng ban biên soạn môn Tin Học THPT

Trình độ: Cử nhân Sư phạm Tin học, Chứng chỉ hạng II, Chứng chỉ Tin học, Ngoại ngữ B1

Kinh nghiệm: 8+ năm kinh nghiệm tại Trường THPT Thuận Hóa