Giải Tin học 10 – Bài 27. Tham số của hàm – KNTT

1. Tham số và đối số của hàm

Câu 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?

Câu 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?

Hướng dẫn giải:

Câu 1: Không, vì số lượng đối số phải bằng với tham số trong khai báo của hàm (lưu ý số lượng đối số có thể ít hơn nếu hàm có tham số không bắt buộc nhưng không thể nhiều hơn).

Câu 2: Lời gọi hàm f(10,a) có thể có lỗi hoặc không có lỗi tùy thuộc vào đối số a có giá trị như thế nào.
– Nếu a chưa có giá trị hoặc a có giá trị không thuộc kiểu số nguyên/ số thực -> Lỗi
– Nếu a có giá trị thuộc kiểu số nguyên/ số thực -> Không có lỗi

2. Cách sử dụng chương trình con

Câu 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.

Câu 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.

Hướng dẫn giải:

Câu 1: Chương trình

def prime(n):
    if n < 2:
        return False
    k = 2
    while k < n:
        if n%k == 0:
            return False
        k = k + 1
    return True

m, n = map(int,input("Nhập 2 số m, n: ").split())
print("Danh sách các số nguyên tố từ",m,"đến",n,"là:")
for i in range(m,n+1):
    if prime(i): print(i,end=" ")

Câu 2: Ví dụ về bài toán sử dụng hàm
Viết chương trình tính tổng sau: S = 1! + 2! + … + n!, với n là số nguyên dương nhập vào từ bàn phím.

Luyện tập

Câu 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

Câu 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.
Yêu cầu sử dụng hàm khi viết chương trình.

Hướng dẫn giải:

Câu 1: Chương trình

def power(a,b,c):
    return (a+b)**c
a, b, c = map(int,input("Mời nhập a, b, c: ").split())
print("Giá trị cần tính là",power(a,b,c))

Câu 2: Chương trình

#Khai báo hàm
def Tong2():
    m, n = map(int,input("Mời nhập 2 số: ").split())
    print("Tổng của",m,"và",n,"là",m+n)
#Lời gọi hàm
Tong2()

Vận dụng

Câu 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ố.
Yêu cầu sử dụng hàm khi viết chương trình.

Câu 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.

Hướng dẫn giải:

Câu 1: Chương trình

Cách 1: Dạng tự xây dựng hàm tìm ước chung lớn nhất

#Hàm tìm ước chung lớn nhất
def UCLN(m,n):
    while m != n:
        if m > n:
            m -= n
        else:
            n -= m
    return m
#Chương trình chính
a, b = map(int,input("Mời nhập a, b: ").split(","))
print("Ước chung lớn nhất của",a,"và",b,"là",UCLN(a,b))

Cách 2: Dạng sử dụng hàm có sẵn trong Python

a, b = map(int,input("Mời nhập a, b: ").split(","))
print("Ước chung lớn nhất của",a,"và",b,"là",math.gcd(a,b))

Câu 2: Chương trình

def change(ho_ten,c):
    if c==0:
        return ho_ten.upper()
    else:
        return ho_ten.lower()
#Chương trình chính
s = input("Mời nhập họ tên: ")
c = int(input("Mời nhập c: "))
print(change(s,c))

Xem thêm Bài 28. Phạm vi của biến

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *