Bài 18. Ví dụ về cách viết và sử dụng chương trình con
Chia sẻ bởi Bạch Nguyễn |
Ngày 10/05/2019 |
63
Chia sẻ tài liệu: Bài 18. Ví dụ về cách viết và sử dụng chương trình con thuộc Tin học 11
Nội dung tài liệu:
Cách viết và sử dụng thủ tục
KIẾN THỨC CŨ
Nêu cấu trúc của thủ tục, khái niệm tham biến, tham trị?
KIỂM TRA BÀI CŨ
Cấu trúc:
procedure < ten thu tuc>();
[phần khai báo]
Begin
[Dãy các lệnh]
End;
Tham số giá trị
Trong lời gọi thủ tục, các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các giá trị cụ thể được gọi là các tham số giá trị( tham trị).
Tham số biến Trong lời gọi thủ tục, các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra được gọi là các tham số biến(tham biến).
Cho CT
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON(tiết 2/2)
*
*
*
*
*
*
*
Tiết 43
Bài 18
Kiến thức cũ:
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Hãy kể tên một số hàm chuẩn?
Trả lời: Hàm ABS(), SQRT(), ROUND(), LENGTH(), SIN, COS...
Cách sử dụng chúng?
Sử dung:
- Viết tên hàm cần gọi và các tham số.
- Lời gọi hàm được viết trong biểu thức
như một toán hạng, thậm chí là tham số của một hàm khác.
Tham s? bi?n
Là tham số hình thức
Khai báo
VAR:
Trong l?nh g?i th? t?c: Các tham s? th?c s? phải là biến.
Giá trị có thể bị thay đổi khi thực hiện xong CTC.
Tham s? gía tr?
Tham s? hình th?c
Khai báo:
:
Giá trị không thay đổi khi thực hiện xong CTC.
Trong l?nh g?i th? t?c: Các tham số thực sự là giá trị cụ thể, biến, biểu thức
Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Cách viết và sử dụng ham`
a. Cấu trúc ham`
b. Ví dụ về ham`
c. Tham biến- tham trị
VD
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
2.1. Giới thiệu cấu trúc chung và vị trí của hàm trong CT
Cấu trúc của hàm:
Function < tên hàm>():;
[phần khai báo]
Begin
[Dãy các lệnh]
:;
End;
Cấu trúc của thủ tục:
Procedure < tên_thủ_tục>();
[phần khai báo]
Begin
[Dãy các lệnh]
End;
So sánh sự giống và khác nhau của hàm và thủ tục.
- Giống: Có cấu trúc tương tự, có các tham số (có thể không có).
- Khác:
+ Bắt đầu của hàm là từ Function.
+ Tên hàm phải quy định kiểu dữ liệu trả về.
+ Trong thân hàm phải có lệnh gán giá trị cho tên hàm::=;
+ Hàm trả lại giá trị thông qua tên hàm.
Là kiểu dữ liệu của giá trị mà hàm trả lại
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
2.2. Bài toán ví dụ 1:Viết chương trình rút gọn phân số (có sử dụng hàm) với tử số và mẫu số được nhập từ bàn phím.
Ý tưởng giải quyết bài toán
-Rút gọn phân số a/b
-Chương trình sử dụng một hàm để tính UCLN của tử số và mẫu số.
Sử dụng UCLN để rút gọn phân số.
Ý tưởng của thuật toán là UCLN của 2 số a,b cũng là UCLN của 2 số b và a mod b, vậy ta sẽ đổi a là b, b là a mod b cho đến khi b bằng 0. Khi đó UCLN là a.
- Hàm UCLN nhận vào 2 số nguyên a,b và trả lại kết quả là UCLN của 2 số đó.
Chương trình ví dụ
Chương trình ví dụ:
program rutgonphanso;
var tuso,mauso,tg:integer;
function UCLN(x,y:integer):integer;
begin
while y<>x do
if x>y then x:=x-y else
y:=y-x;
UCLN:=x;
end;
BEGIN
Write(`Nhap tu va mau : `);
readln(tu,mau);
tg:=UCLN(tu,mau);
tu:=tu/a;
mau:=mau/a;
writeln(`PS RG:`,tu,`/`,mau);
readln;
END;
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Trong chương trình có khai báo mấy hàm?
Một hàm UCLN(x,y:integer).
Hàm UCLN(x,y) dùng để làm gì?
tìm ước số chung lớn nhất của hai số X, Y.
Phải có lệnh gán giá trị cho hàm: UCLN:=x;
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Lời gọi hàm ở đâu?
Lệnh tg:=UCLN(tu,mau);
Có gì khác với thủ tục trong lời gọi hàm.
- Đối với thủ tục lời gọi chỉ là là một lời gọi thủ tục còn lời gọi hàm phải được đặt trong một lệnh hoặc trong một lời gọi chương trình con khác.
Trong lời gọi hàm tham số hình thức x,y được thay bởi 2 tham số thực sự tương ứng tuso,mauso.
Chương trình ví dụ:
program rutgonphanso;
var tuso,mauso,tg:integer;
function UCLN(x,y:integer):integer;
begin
while y<>x do
if x>y then x:=x-y else
y:=y-x;
UCLN:=x;
end;
BEGIN
Write(`Nhap tu va mau : `);
readln(tu,mau);
tg:=UCLN(tu,mau);
tu:=tu/a;
mau:=mau/a;
writeln(`PS RG:`,tu,`/`,mau);
readln;
END;
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Có những biến là biến toàn cục, cục bộ trong chương trình?
Biến toàn cục: tu, mau
Cục bộ: Ko có
Biến toàn cục- cục bộ:
program rutgonphanso;
var tuso,mauso,tg:integer;
function UCLN(x,y:integer):integer;
begin
while y<>x do
if x>y then x:=x-y else
y:=y-x;
UCLN:=x;
end;
BEGIN
Write(`Nhap tu va mau : `);
readln(tu,mau);
tg:=UCLN(tu,mau);
tu:=tu/a;
mau:=mau/a;
writeln(`PS RG:`,tu,`/`,mau);
readln;
END;
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
BÀI TOÁN 2
2.3 BÀI TOÁN 2:
Viết chương trình sử dụng chương trình con tìm giá trị nhỏ nhất của 3 số nhập từ bàn phím
Ý TƯỞNG BÀI TOÁN
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
2.3 BÀI TOÁN 2:
Viết chương trình sử dụng chương trình con tìm giá trị nhỏ nhất của 3 số nhập từ bàn phím
Hãy nêu ý tưởng bài toán?
Xây dựng hàm min để tìm giá trị nhỏ của 2 số
Sau sử dụng hàm min để tìm giá trị nhỏ của 3 số
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
2.3 BÀI TOÁN 2:
Viết chương trình sử dụng chương trình con tìm giá trị nhỏ nhất của 3 số nhập từ bàn phím
Vậy hàm min cần bao nhiêu tham số?
Sử dụng 2 tham số a,b
CHƯƠNG TRÌNH GiẢI BÀI TOÁN
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Chương trình:
2.4 VÍ DỤ 3:
Sử dụng Hàm hãy viết CT tìm giá trì lớn nhất của 3 số nguyên bất kỳ được nhập từ bàn phím.
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
?????
Chương trình:
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
program max3so;
uses crt;
var a,b,c: integer;
function max (a,b :integer): integer;
Begin
If a> b then max:= a
else max:=b;
End;
Begin
write(‘ Nhap lan luot 3 so tu nhien a , b , c :’);
Readln(a,b,c);
writeln(‘so lon nhat trong 3 so la: ’, max(max(a,b),c));
Readln
End.
Nội dung
Chương trình con
Khái niệm chương trình con (CTC)
Lợi ích việc sử dụng chương trình con
Phân loại CTC, cấu trúc chung của CTC.
Cấu trúc CTC thủ tục (procedure), cách sử dụng, cách xây dựng
Cấu trúc CTC hàm (function), cách sử dụng, cách xây dựng.
Thư viện CTC:
Phân biệt được:
- Hàm và thủ tục
- Tham số hình thức( TS HT) với TS thực sự,
- Biến toàn cục, biến cục bộ
- Tham biến và tham trị
KIẾN THỨC ĐÃ HỌC
CTC là gì? Phân loại? Lợi ích? Tham số hình thức, tham số thực, tham trị là gì, tham số biến?
Thế nào là biến toàn cục, biến cục bộ?
Cấu trúc của thủ tục
Cấu trúc của Hàm
Với những bài toán thế nào thì sử dụng Hàm hoặc thủ tục?
khi cần lưu kết quả của ctc nhiều hơn 1 giá trị thì dùng thủ tục
Bài tập về nhà
Bài tập1: Sử dụng hàm hãy viết CT tính tổng chữ số của một số nguyên
+ Ý tưởng là ta chia số đó cho 10 lấy dư (mod) thì được chữ số hàng đơn vị, và lấy số đó div 10 thì sẽ được phần còn lại. Do đó sẽ chia liên tục cho đến khi không chia được nữa (số đó bằng 0), mỗi lần chia thì được một chữ số và ta cộng dồn chữ số đó vào tổng.
Hàm tính tổng chữ số nhận vào 1 số nguyên n và trả lại kết quả là tổng các chữ số của nó:
BÀI TẬP 2: Viết 1 thủ tục tìm phần tử nhỏ nhất, của một mảng (cần chỉ ra cả vị trí của phần tử).
HƯỚNG DẪN
Giả sử phần tử min cần tìm là phần tử k. Ban đầu ta cho k=1. Sau đó cho i chạy từ 2 đến n, nếu a[k] > a[i] thì rõ ràng a[i] bé hơn, ta gán k bằng i. Sau khi duyệt toàn bộ dãy thì k sẽ là chỉ số của phần tử min.
- Đọc trước nội dung bài thực hành 7 : Sách giáo khoa (105)
KIẾN THỨC CŨ
Nêu cấu trúc của thủ tục, khái niệm tham biến, tham trị?
KIỂM TRA BÀI CŨ
Cấu trúc:
procedure < ten thu tuc>(
[phần khai báo]
Begin
[Dãy các lệnh]
End;
Tham số giá trị
Trong lời gọi thủ tục, các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các giá trị cụ thể được gọi là các tham số giá trị( tham trị).
Tham số biến Trong lời gọi thủ tục, các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra được gọi là các tham số biến(tham biến).
Cho CT
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON(tiết 2/2)
*
*
*
*
*
*
*
Tiết 43
Bài 18
Kiến thức cũ:
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Hãy kể tên một số hàm chuẩn?
Trả lời: Hàm ABS(), SQRT(), ROUND(), LENGTH(), SIN, COS...
Cách sử dụng chúng?
Sử dung:
- Viết tên hàm cần gọi và các tham số.
- Lời gọi hàm được viết trong biểu thức
như một toán hạng, thậm chí là tham số của một hàm khác.
Tham s? bi?n
Là tham số hình thức
Khai báo
VAR
Trong l?nh g?i th? t?c: Các tham s? th?c s? phải là biến.
Giá trị có thể bị thay đổi khi thực hiện xong CTC.
Tham s? gía tr?
Tham s? hình th?c
Khai báo:
Giá trị không thay đổi khi thực hiện xong CTC.
Trong l?nh g?i th? t?c: Các tham số thực sự là giá trị cụ thể, biến, biểu thức
Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Cách viết và sử dụng ham`
a. Cấu trúc ham`
b. Ví dụ về ham`
c. Tham biến- tham trị
VD
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
2.1. Giới thiệu cấu trúc chung và vị trí của hàm trong CT
Cấu trúc của hàm:
Function < tên hàm>(
[phần khai báo]
Begin
[Dãy các lệnh]
End;
Cấu trúc của thủ tục:
Procedure < tên_thủ_tục>(
[phần khai báo]
Begin
[Dãy các lệnh]
End;
So sánh sự giống và khác nhau của hàm và thủ tục.
- Giống: Có cấu trúc tương tự, có các tham số (có thể không có).
- Khác:
+ Bắt đầu của hàm là từ Function.
+ Tên hàm phải quy định kiểu dữ liệu trả về.
+ Trong thân hàm phải có lệnh gán giá trị cho tên hàm:
+ Hàm trả lại giá trị thông qua tên hàm.
Là kiểu dữ liệu của giá trị mà hàm trả lại
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
2.2. Bài toán ví dụ 1:Viết chương trình rút gọn phân số (có sử dụng hàm) với tử số và mẫu số được nhập từ bàn phím.
Ý tưởng giải quyết bài toán
-Rút gọn phân số a/b
-Chương trình sử dụng một hàm để tính UCLN của tử số và mẫu số.
Sử dụng UCLN để rút gọn phân số.
Ý tưởng của thuật toán là UCLN của 2 số a,b cũng là UCLN của 2 số b và a mod b, vậy ta sẽ đổi a là b, b là a mod b cho đến khi b bằng 0. Khi đó UCLN là a.
- Hàm UCLN nhận vào 2 số nguyên a,b và trả lại kết quả là UCLN của 2 số đó.
Chương trình ví dụ
Chương trình ví dụ:
program rutgonphanso;
var tuso,mauso,tg:integer;
function UCLN(x,y:integer):integer;
begin
while y<>x do
if x>y then x:=x-y else
y:=y-x;
UCLN:=x;
end;
BEGIN
Write(`Nhap tu va mau : `);
readln(tu,mau);
tg:=UCLN(tu,mau);
tu:=tu/a;
mau:=mau/a;
writeln(`PS RG:`,tu,`/`,mau);
readln;
END;
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Trong chương trình có khai báo mấy hàm?
Một hàm UCLN(x,y:integer).
Hàm UCLN(x,y) dùng để làm gì?
tìm ước số chung lớn nhất của hai số X, Y.
Phải có lệnh gán giá trị cho hàm: UCLN:=x;
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Lời gọi hàm ở đâu?
Lệnh tg:=UCLN(tu,mau);
Có gì khác với thủ tục trong lời gọi hàm.
- Đối với thủ tục lời gọi chỉ là là một lời gọi thủ tục còn lời gọi hàm phải được đặt trong một lệnh hoặc trong một lời gọi chương trình con khác.
Trong lời gọi hàm tham số hình thức x,y được thay bởi 2 tham số thực sự tương ứng tuso,mauso.
Chương trình ví dụ:
program rutgonphanso;
var tuso,mauso,tg:integer;
function UCLN(x,y:integer):integer;
begin
while y<>x do
if x>y then x:=x-y else
y:=y-x;
UCLN:=x;
end;
BEGIN
Write(`Nhap tu va mau : `);
readln(tu,mau);
tg:=UCLN(tu,mau);
tu:=tu/a;
mau:=mau/a;
writeln(`PS RG:`,tu,`/`,mau);
readln;
END;
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Có những biến là biến toàn cục, cục bộ trong chương trình?
Biến toàn cục: tu, mau
Cục bộ: Ko có
Biến toàn cục- cục bộ:
program rutgonphanso;
var tuso,mauso,tg:integer;
function UCLN(x,y:integer):integer;
begin
while y<>x do
if x>y then x:=x-y else
y:=y-x;
UCLN:=x;
end;
BEGIN
Write(`Nhap tu va mau : `);
readln(tu,mau);
tg:=UCLN(tu,mau);
tu:=tu/a;
mau:=mau/a;
writeln(`PS RG:`,tu,`/`,mau);
readln;
END;
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
BÀI TOÁN 2
2.3 BÀI TOÁN 2:
Viết chương trình sử dụng chương trình con tìm giá trị nhỏ nhất của 3 số nhập từ bàn phím
Ý TƯỞNG BÀI TOÁN
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
2.3 BÀI TOÁN 2:
Viết chương trình sử dụng chương trình con tìm giá trị nhỏ nhất của 3 số nhập từ bàn phím
Hãy nêu ý tưởng bài toán?
Xây dựng hàm min để tìm giá trị nhỏ của 2 số
Sau sử dụng hàm min để tìm giá trị nhỏ của 3 số
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
2.3 BÀI TOÁN 2:
Viết chương trình sử dụng chương trình con tìm giá trị nhỏ nhất của 3 số nhập từ bàn phím
Vậy hàm min cần bao nhiêu tham số?
Sử dụng 2 tham số a,b
CHƯƠNG TRÌNH GiẢI BÀI TOÁN
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
Chương trình:
2.4 VÍ DỤ 3:
Sử dụng Hàm hãy viết CT tìm giá trì lớn nhất của 3 số nguyên bất kỳ được nhập từ bàn phím.
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
?????
Chương trình:
2. CÁCH VIẾT VÀ SỬ DỤNG HÀM
program max3so;
uses crt;
var a,b,c: integer;
function max (a,b :integer): integer;
Begin
If a> b then max:= a
else max:=b;
End;
Begin
write(‘ Nhap lan luot 3 so tu nhien a , b , c :’);
Readln(a,b,c);
writeln(‘so lon nhat trong 3 so la: ’, max(max(a,b),c));
Readln
End.
Nội dung
Chương trình con
Khái niệm chương trình con (CTC)
Lợi ích việc sử dụng chương trình con
Phân loại CTC, cấu trúc chung của CTC.
Cấu trúc CTC thủ tục (procedure), cách sử dụng, cách xây dựng
Cấu trúc CTC hàm (function), cách sử dụng, cách xây dựng.
Thư viện CTC:
Phân biệt được:
- Hàm và thủ tục
- Tham số hình thức( TS HT) với TS thực sự,
- Biến toàn cục, biến cục bộ
- Tham biến và tham trị
KIẾN THỨC ĐÃ HỌC
CTC là gì? Phân loại? Lợi ích? Tham số hình thức, tham số thực, tham trị là gì, tham số biến?
Thế nào là biến toàn cục, biến cục bộ?
Cấu trúc của thủ tục
Cấu trúc của Hàm
Với những bài toán thế nào thì sử dụng Hàm hoặc thủ tục?
khi cần lưu kết quả của ctc nhiều hơn 1 giá trị thì dùng thủ tục
Bài tập về nhà
Bài tập1: Sử dụng hàm hãy viết CT tính tổng chữ số của một số nguyên
+ Ý tưởng là ta chia số đó cho 10 lấy dư (mod) thì được chữ số hàng đơn vị, và lấy số đó div 10 thì sẽ được phần còn lại. Do đó sẽ chia liên tục cho đến khi không chia được nữa (số đó bằng 0), mỗi lần chia thì được một chữ số và ta cộng dồn chữ số đó vào tổng.
Hàm tính tổng chữ số nhận vào 1 số nguyên n và trả lại kết quả là tổng các chữ số của nó:
BÀI TẬP 2: Viết 1 thủ tục tìm phần tử nhỏ nhất, của một mảng (cần chỉ ra cả vị trí của phần tử).
HƯỚNG DẪN
Giả sử phần tử min cần tìm là phần tử k. Ban đầu ta cho k=1. Sau đó cho i chạy từ 2 đến n, nếu a[k] > a[i] thì rõ ràng a[i] bé hơn, ta gán k bằng i. Sau khi duyệt toàn bộ dãy thì k sẽ là chỉ số của phần tử min.
- Đọc trước nội dung bài thực hành 7 : Sách giáo khoa (105)
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Bạch Nguyễn
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)