Khởi động
Khởi động trang 131 Tin học 10: Quan sát các lệnh sau và cho biết sự khác nhau
giữa tham số (parameter) và đối số (argument).
Trả lời:
Tham số là được định nhĩa khi khai báo hàm, đối số là giá trị truyền vào khi gọi
hàm
1. Tham số và đối số của hàm
Hoạt động
Hoạt động 1 trang 131 Tin học 10: Phân biệt tham số và đối số
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ả.
Trả lời:
- Đổi số là giá trị được truyền vào 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) 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.
Câu hỏi
Câu hỏi 1 trang 132 Tin học 10: 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?
Trả lời:
Khơng thể vì số lượng giá trị được truyền vào hàm phải bằng với tham số khi khai
báo hàm.
Câu hỏi 2 trang 132 Tin học 10: 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?
Trả lời:
Lời hàm f(10,a) có lỗi vì tham số a chưa có giá trị.
2. Cách sử dụng chương trình con
Hoạt động
Hoạt động 2 trang 132 Tin học 10: Khi nào nên sử dụng chương trình con?
Bài tốn đưa ra là viết chương trình chính u cầu nhập số tự nhiên n từ bàn phím
và in 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 tốn này như thế nào?
Trả lời:
Chương trình hồn chỉnh có thể viết nhau sau:
def prime(n):
c=0
k=1
while k
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 i in range(1,n+1):
if prime(i)==True:
print(i, end=" ")
Hình 1. Chương trình bài tốn
Câu hỏi
Câu hỏi 1 trang 133 Tin học 10: 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
Trả lời:
def prime(n):
if n<2:
return Fasle
C=0
K=2
while k
if n%k ==0:
return Fasle
k=k+1
return True
#chương trình chính
n=int(input(“nhập vào số tự nhiên n:”))
m=int(input(“nhập vào số tự nhiên m:”))
for k in range(n,m):
if prime(k):
print(k,end= “ ”)
Câu hỏi 2 trang 133 Tin học 10: Em hãy nêu một cơng việc/bài tốn nào đó mà
có thể sử dụng hàm để giải.
Trả lời:
Bài tốn tính độ dài xâu kí tự, tính các phép tốn học….
Luyện tập
Luyện tập 1 trang 135 Tin học 10: 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.
Trả lời:
def power(a,b,c):
t=1
for i in range(c): t=t*(a+b)
return t
Luyện tập 2 trang 135 Tin học 10: 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. Tính tổng và in ra tổng của các
số này.
Yêu cầu sử dụng hàm khi viết chương trình.
Trả lời:
def tong(s):
a=s.split()
t=0
for i in a:
x=int(i)
t=t+x
return t
n=input("Nhập n:")
s=input("Nhập vào "+n+" số nguyên cách nhau bởi dấu cách:")
t=tong(s)
print(t)
Vận dụng
Vận dụng 1 trang 135 Tin học 10: 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ố.
Trả lời:
def UCLN(a,b):
while a!=b:
if a>b:a=a-b
else:b=b-a
return a
def Nhapso():
s=input("Nhập 2 số nguyên cách nhau bằng dấu phẩy:")
a=s.split(',')
x=int(a[0])
y=int(a[1])
return x,y
a,b=Nhapso()
print("UCLN là:",UCLN(a,b))
Vận dụng 2 trang 135 Tin học 10: 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.
Trả lời:
def change(ho_ten,c):
if c==0:s=ho_ten.upper()
else: s=ho_ten.lower()
return s
print(change('ABC',1))