Khởi động
Giải câu hỏi khởi động trang 131
Quan sát các lệnh sau và cho biết sự khác nhau giữa các tham số (parameter) và đối số (argument).
Quan sát các lệnh
Tham số của hàm được định nghĩa khi khai báo hàm và được dùng như biến trong định nghĩa hàm.
Đối số là giá trị được truyền vào hàm khi gọi hàm.
Khi gọi hàm, các tham số (parameter) sẽ được truyền bằng giá trị thông qua đối số (argument) của hàm, số lượng giá trị được truyền vào hàm bằng với số tham số trong khai báo của hàm.
Hoạt động 1
Giải câu hỏi Hoạt động 1 trang 131
Quan sát ví dụ sau, tìm hiểu cách dữ liệu được truyền qua tham số vào hàm. Thảo luận để giải thích kết quả.
Quan sát các ví dụ
- Cách dữ liệu được truyền qua tham số vào hàm: Khi gọi hàm, các tham số được truyền bằng giá trị thông qua đối số của hàm, số lượng giá trị được truyền vào hàm bằng với số tham số trong khai báo của hàm.
- Giải thích:
Hàm f() đã được định nghĩa với ba tham số a, b, c. Hàm có trả lại giá trị là a + b + c
Hàm f được gọi với ba giá trị cụ thể là 1, 2, 3 và thu được kết quả 1 + 2+ 3 = 6
? mục 1
Trả lời câu hỏi mục 1 trang 132
1.Một hàm khi khai báo có một tham số, nhưng khi gọi hàm có thể có hai đối số được không?
Khi gọi hàm, số lượng giá trị được truyền vào hàm phải bằng với số tham số trong khai báo của hàm
Không được vì số lượng giá trị được truyền vào hàm phải bằng với số tham số trong khai báo của hàm.
2. Giả sử hàm f có hai tham số x, y khi khai báo, hàm sẽ trả lại giá trị x + 2y. Lời gọi hàm f(10,a) có lỗi hay không?
Lời gọi hàm bị lỗi nếu các tham số được truyền vào chưa có giá trị
Lời gọi hàm f(10,a) có lỗi nếu tham số a truyền vào chưa có giá trị
Hoạt động 2
Trả lời câu hỏi Hoạt động 2 trang 132
Bài toán đưa ra là viết chương trình chính yêu cầu nhập số tự nhiên n từ bàn phím và in ra các số nguyên tố nhỏ hơn hoặc bằng n ra màn hình. Trong phần thực hành của Bài 26 em đã biết hàm prime(n) kiểm tra số n có là số nguyên tố.
Em sẽ viết chương trình giải bài toán như thế nào?
Dựa vào bài thực hành kiểm tra số n có là số nguyên tố hay không dùng hàm prime(n)
Chương trình:
def prime(n):
c=0
k=1
while k<n:
if n%k==0:
c=c+1
k=k+1
if c==1:
return True
else:
return False
n=int(input("Nhập số tự nhiên n:”))
for k in range(1,n+1):
if prime(k)==True:
print(i, end=” ")
? mục 2
Hướng dẫn giải câu hỏi mục 2 trang 133
1. Sử dụng hàm prime, em hãy viết chương trình in ra các số nguyên tố trong khoảng từ m đến n với m, n là hai số tự nhiên và 1< m< n.
Advertisements (Quảng cáo)
Dựa vào kiến thức đã học về hàm prime
2. Em hãy nêu một công việc/bài toán nào đó mà có thể sử dụng hàm để giải.
Vận dụng sự hiểu biết của bản thân
- Bài toán đếm số năm nhuận trong khoảng thời gian nào đó
- Bài toán đếm và tính tổng, trung bình của các số thỏa mãn tính chất nào đó (ví dụ chia hết cho 5) trong dãy số cho trước
Luyện tập
Hướng dẫn giải câu hỏi Luyện tập trang 130
1. Thiết lập hàm power(a,b,c) với a, b, c là số nguyên. Hàm trả lại giá trị (a+b)c
Sử dụng hàm power để tính giá trị mũ
2. Viết chương trình thực hiện: Nhập hai số tự nhiên từ bàn phím, hai số cách nhau bởi dấu cách. Tính và in ra tổng của các số này.
Dựa vào kiến thức đã học để viết chương trình
def tinhTong(A):
t=0
for i in range(0, len(A)):
t=t+int(A[i])
return t
s=input("Nhập hai số tự nhiên cách nhau bởi dấu cách: ")
A=s.split(” ")
print(tinhTong(A))
Vận dụng
Giải câu hỏi Vận dụng trang 135
1. Viết chương trình thực hiện: Nhập hai số tự nhiên từ bàn phím, hai số cách nhau bởi dấu phẩy, in ra ước chung lớn nhất (ƯCLN) của hai số.
Vận dụng kiến thức đã học để viết chương trình
def UCLN(a,b):
r = a % b
while r != 0:
a = b
b = r
r = a % b
return b
s=input("Nhập hai số tự nhiên cách nhau bởi dấu phẩy: ")
s=s.replace(",”,” ")
A=s.split(” ")
a=int(A[0])
b=int(A[1])
print("ƯCLN của a và b là: ",UCLN(a,b))
2. Thiết lập hàm change() có hai tham số là xâu ho_ten và số c. Hàm sẽ trả lại xâu kí tự ho_ten là chữ in hoa nếu c = 0. Nếu tham số c khác 0 thì hàm trả lại xâu ho_ten là chữ in thường.
Gợi ý: Sử dụng các phương thức s.upper() và s.lower() để chuyển đổi các kí tự của xâu s sang chữ in hoa và in thường.
Sử dụng các phương thức s.upper() và s.lower() để chuyển đổi các kí tự của xâu s sang chữ in hoa và in thường.
s=input("Nhập họ tên: ")
c=int(input("Nhập số c: "))
def change(s,c):
if c==0:
return s.upper()
else:
return s.lower()
print("”.join(change(s,c))