Tin học 10 Kết nối tri thức Bài 27. Tham số của hàm

Lý thuyết Tin 10 Kết nối tri thức Bài 27: tham số của hàm trong Python

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

Hoạt động 1. 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ả


- Dòng 1: Hàm f() đã được định nghĩa với ba tham số a, b, c. Hàm trả lại giá trị là a + b + c.
- Dòng 3: Hàm f() được gọi với ba giá trị cụ thể là 1, 2, 3. Các giá trị được
truyền qua tham số được gọi là đối số. Đối số tại dòng 3 là các số cụ thể.
- Dòng 6: Hàm f() được gọi với ba biến x, y, z, đã được gán giá trị (dòng
5). các biến được truyền qua tham số được gọi là đối số, kết quả trả lại là x +
y + z.
- Dòng 10: Hàm f() được gọi với ba biến a, b, c không xác định giá trị nên
lời gọi hàm f(a, b, c) báo lỗi do không xác định được giá trị của a, b, c.
* Phân biệt tham số và đối số:
- Tham số: là biến được ghi trong khai báo của hàm. Hàm có thể có hoặc
không có tham số.
-Đối số là giá trị được truyền vào 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ố lượng truyền vào bằng với số tham số trong khai báo của hàm.

?Củng cố hoạt động 1 SGK 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?
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?




Giải tin học 10 kết nối tri thức trang 132

ĐÁP ÁN: Hiện
1. Không thể có hai đối số.
2. Lời gọi hàm f(10, a) không có lỗi.

2. Cách sử dụng hàm

Hoạt động 2 Khi nào nên sử dụng chương trình con

Bài toán đưa ra là viết chương trình chính yêu cầu nhập vào 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 primt(n) kiểm tra n có là số nguyên tố

Em sẽ viết chương trình giải bài toán này như thế nào?

Ví dụ số nguyên tố tham số của hàm

- Sử dụng chương trình con giúp phân chia việc giải bài toán lớn thành các bài toán nhỏ và phát huy tinh thần làm việc nhóm.

- Chương trình chính có cấu trúc rõ ràng, dễ hiểu hơn, cần hiệu chỉnh, phát triển và nâng cấp cũng thuận tiện hơn.

?Câu hỏi và bài tập củng cố

1. Lợi ích của việc sử dụng chương trình con là gì?

2. Sử dụng hàm prime, em hãy viếtchươ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.

3. 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

Giải tin học 10 kết nối tri thức trang 133

ĐÁP ÁN: Hiện
Câu 1.
+Làm giảm số câu lệnh của chương trình.
+ Chương trình có cấu trúc sẽ dễ hiểu và tiết kiệm câu lệnh hơn.
+ Chương trình có cấu trúc sẽ dễ dàng hơn khi nâng cấp, mở rộng, chỉnh sửa.
Câu 2:
for k in range(m,n+1):
   if prime(k):
       primte(k)
Câu 3:
- 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ả 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.
- Rút gọn phân số, sử dụng thêm hàm con tìm ƯCLN của tử số và mẫu số.

THỰC HÀNH

Truyền giá trị cho đối số của hàm

* Nhiệm vụ 1: Thiết lập hàm f_sum(A, b) có chức năng tính tổng các số của danh sách A theo quy định như sau:
Nếu b = 0 thì tính tổng các số của danh sách A.
Nếu b khác 0 thì chỉ tính tổng các số dương của A

Hướng dẫn: Chương trình luôn kiểm tra giá trị của đối số b khi tính tổng các số của danh sách A.

def f_sum(A,b):
    S=0
    for x in A:
        if b==0:
            S= S+ x
        else:
            if x > 0:
                S=S + x
    return S
A=[5,-5,14,23,-32,-41,6,1,-8,9]
print(f_sum(A,0))
print(f_sum(A,1))

f_sum(A,0) trả lại -28

f_sum(A,1) trả lại 58

Nhiệm vụ 2: Thiết lập hàm f_dem (msg, sep) có chức năng đếm số các từ của một xâu msg với kí tự tách từ là sep.

def f_dem(msg,sep):
    xlist=msg.split(sep)
    return len(xlist)
print(f_dem("Mua thu lich su"," "))
print(f_dem("Mua thu lich su","-"))

f_dem("Mua thu lich su"," ") trả lại giá trị 4.

f_dem("Mua thu lich su","-") trả lại giá trị 1

Nhiệm vụ 3: Thiết lập hàm merge_str (s1, s2) với s1, s2 là hai xâu cần gộp.

def merge_str(s1,s2):
    S=""
    l1=len(s1)
    l2=len(s2)
    l=min(l1,l2)
    for i in range(l):
        S = S+ s1[i] + s2[i]
    if l1 < l2:
        for i in range(l,l2):
            S= S + s2[i]
    if l2 < l1:
        for i in range(l,l1):
            S= S + s1[i]
    return S
print(merge_str("1111","0000"))
print(merge_str("1111","00000000"))
print(merge_str("11111111","0000"))

print(merge_str("1111","0000")) kết quả trả về 10101010

print(merge_str("1111","00000000")) kết quả trả về 101010100000

print(merge_str("11111111","0000")) kết quả trả về 101010101111

LUYỆN TẬP

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

ĐÁP ÁN: Hiện
def power(a,b,c):
    return (a+b)**c
print(power(5,10,2))
print(power(6,7,3))

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

Cách 1:

ĐÁP ÁN: Hiện
def Nhap2so():
    xau=input("Nhập hai số tự nhiên cách nhau bởi dấu cách: ")
    A=xau.split()
    return int(A[0]), int(A[1])
m,n= Nhap2so()
print(m+n)

Cách 2:

ĐÁP ÁN: Hiện
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

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ố.

ĐÁP ÁN: Hiện
def ucln(m,n):
    while m!=n:
        if m<n:
            n=n-m
        else:
            m=m-n
    return m
m,n=eval(input("Nhập số tự nhiên m,n = "))
print("ƯCLN của hai số trên là: ",ucln(m,n))

Nhập số tự nhiên m,n = 4,12 kết quả là 4. Khi dùng hàm eval nhập thì cách nhau dấu phẩy

m,n=map(int,input("Nhập số tự nhiên m,n = ").split()) -> nếu dùng map thì các số khi nhập cách nhau bằng khoảng trắng

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.

Phương pháp giả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.

ĐÁP ÁN: Hiện
def change(ho_ten,c):
    if c==0:
        ho_ten=ho_ten.upper()
    else:
        ho_ten=ho_ten.lower()
    return ho_ten
ho_ten=input("Nhập họ tên: ")
print("0 họ tên INHOA,khác 0 họ tên là chữ thường")
c=int(input("Nhập số c: "))
print("".join(change(ho_ten,c)))

3. Chỉ số sức khỏe BMI của con người được định nghĩa theo công thức sau: BMI=m/h2 , trong đó m là khối lượng cơ thể tính bằng kg, h là chiều cao tính theo mét. Viết hàm tính chỉ số BMI theo tham số m, h. Sau đó, in ra màn hình chỉ số sức khỏe BMI và thông báo “Bạn gầy” hoặc “Bạn bình thường” hoặc “Bạn bị béo phì”. Biết chỉ số sức khỏe BMI có ý nghĩa như sau:
Nếu BMI <18 thì phân loại là gầy.
Nếu BMI từ 18 đến 25 thì phân loại là bình thường.
Nếu BMI >25 thì phân loại là béo phì.

Gợi ý trả lời câu 3

ĐÁP ÁN: Hiện
def BMI(m,h):
        return m/h**2
mass=float(input("Nhập cân nặng cảa bạn: "))
h=float(input("Nhập chiều cao của bạn : "))
print("Chi so BMI cua ban: ",BMI(mass,h))
if BMI(mass,h)<18:
        print("Ban gầy")
elif BMI(mass,h)<25:
        print("Bạn bình thường")
else:
        print("Bạn bị béo phì")
CÙNG CHUYÊN MỤC:

Chủ đề 1: Máy tính và xã hội tri thức
Lý thuyết: Bài 1-Thông tin và dữ liệu
Lý thuyết: Bài 2-Vai trò của thiết bị thông minh và tin học đối với xã hội
Chủ đề 2: Mạng máy tính và Internet
Lý thuyết: Bài 8-Mạng máy tính trong cuộc sống hiện đại
Lý thuyết: Bài 9-An toàn trên không gian mạng
Chủ đề 3: Đạo đức, pháp luật và văn hóa trong môi trường số
Lý thuyết: Bài 11-Ứng dụng trên môi trường số. Nghĩa vụ tôn trọng bản quyền
Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính
Lý thuyết: Bài 16-Ngôn ngữ lập trình bậc cao và Python
Lý thuyết: Bài 17-Biến và lệnh gán
Lý thuyết: Bài 18-Các lệnh vào ra đơn giản
Lý thuyết: Bài 19-Câu lệnh điều kiện if
Lý thuyết: Bài 20-Câu lệnh lặp for
Lý thuyết: Bài 21-Câu lệnh lặp while
Lý thuyết: Bài 22-Kiểu dữ liệu danh sách
Lý thuyết: Bài 23-Một số lệnh làm việc với dữ liệu danh sách
Lý thuyết: Bài 24-Xâu kí tự
Lý thuyết: Bài 25-Một số lệnh làm việc với xâu kí tự
Lý thuyết: Bài 26-Hàm trong Python
Lý thuyết: Bài 27-Tham số của hàm
Lý thuyết: Bài 28-Phạm vi của biến
Lý thuyết: Bài 29-Nhận biết lỗi chương trình
Lý thuyết: Bài 30-Kiểm thử và gỡ lỗi chương trình
Lý thuyết: Bài 31-Thực hành viết chương trình đơn giản
Lý thuyết: Bài 32-Ôn tập lập trình Python
Chủ đề 6: Hướng nghiệp với Tin học
Lý thuyết: Bài 33-Nghề thiết kế đồ hoạ máy tính
Lý thuyết: Bài 34-Nghề phát triển phần mềm

Next Post Previous Post
No Comment
Add Comment
comment url