Bài 18. Ví dụ về cách viết và sử dụng chương trình con
Chia sẻ bởi Lê Đức Thuận |
Ngày 10/05/2019 |
83
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:
chào mừng quý thầy cô và các em học sinh đến với tiết dạy
Giáo viên:Lê Đức Thuận
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: Function < tên hàm>():;
[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).
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON(tiết 2/2)
*
*
*
*
*
*
*
Tiết 45
BÀI 18
CÁCH VIẾT VÀ SỬ DỤNG HÀM
Kiến thức cũ:
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.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
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
CÁCH VIẾT VÀ SỬ DỤNG HÀM
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
- 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 rutgon_phanso;
uses crt;
var tuso,mauso,a:integer;
function UCLN(x,y:integer):intrger;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:= x;
end;
begin
clrscr;
write(`nhap tu so, mau so:`); readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maso:= maso div a;
end;
writeln(tuso:5,maso:5);
readln
end.
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;
Chương trình ví dụ:
program rutgon_phanso;
uses crt;
var tuso,mauso,a:integer;
function UCLN(x,y:integer):intrger;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:= x;
end;
begin
clrscr;
write(`nhap tu so, mau so:`); readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maso:= maso div a;
end;
writeln(tuso:5,maso:5);
readln
end.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
Lời gọi hàm ở đâu?
Lệnh A:=UCLN(tuso,mauso);
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.
Biến cục bộ-toàn cục
program rutgon_phanso;
uses crt;
var tuso,mauso,a:integer;
function UCLN(x,y:integer):intrger;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
begin
clrscr;
write(`nhap tu so, mau so:`); readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maUso:= maUso div a;
end;
writeln(tuso:5,maUso:5);
readln
end.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
Có những biến nào được sử dụng trong chương trình?
Biến: tuso, mauso, a, sodu
Các biến đó được khai báo ở chỗ nào trong chương trình?
+ Biến: tuso, mauso, a được khai báo trong chương trình chính
+ Biến: sodu được khai báo trong chương trình con.
-Biến tuso, mauso, a có tác dụng trong toàn bộ chương trình.
-Biến Sodu chỉ có tác dụng trong thân chương trình con đó.
-Biến toàn cục là biến được khai báo ở trong chương trình chính.
-Biến cục bộ là biến được khai báo ở chương trình con
CÁCH VIẾT VÀ SỬ DỤNG HÀM
So sánh sự giống và khác nhau giữa biến toàn cục- cục bô
Biến cục bộ-toàn cục
program rutgon_phanso;
uses crt;
var tuso,mauso,a:integer;
function UCLN(x,y:integer):intrger;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:= x;
end;
begin
clrscr;
write(`nhap tu so, mau so:`); readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maso:= maso div a;
end;
writeln(tuso:5,maso:5);
readln
end.
- Biến cục bộ: Chỉ có tác dụng trong chương trình con, được khai báo trong phần khai báo của chương trình con.
-Biến toàn bộ: có phạm vi ảnh hưởng trong toàn bộ chương trình, được khai báo trong phần khai báo của chương trình chính.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
BÀI TOÁN 2
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
CÁCH VIẾT VÀ SỬ DỤNG HÀM
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?
Sử 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ố
CÁCH VIẾT VÀ SỬ DỤNG HÀM
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
CÁCH VIẾT VÀ SỬ DỤNG HÀM
Chương trình:
VD3: 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.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
?????
Chương trình:
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.
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ì?
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?
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)
Chúc quý thầy cô và các em học sinh một ngày làm việc thành công
Giáo viên:Lê Đức Thuận
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: Function < tên hàm>(
[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).
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON(tiết 2/2)
*
*
*
*
*
*
*
Tiết 45
BÀI 18
CÁCH VIẾT VÀ SỬ DỤNG HÀM
Kiến thức cũ:
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.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
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
CÁCH VIẾT VÀ SỬ DỤNG HÀM
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
- 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 rutgon_phanso;
uses crt;
var tuso,mauso,a:integer;
function UCLN(x,y:integer):intrger;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:= x;
end;
begin
clrscr;
write(`nhap tu so, mau so:`); readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maso:= maso div a;
end;
writeln(tuso:5,maso:5);
readln
end.
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;
Chương trình ví dụ:
program rutgon_phanso;
uses crt;
var tuso,mauso,a:integer;
function UCLN(x,y:integer):intrger;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:= x;
end;
begin
clrscr;
write(`nhap tu so, mau so:`); readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maso:= maso div a;
end;
writeln(tuso:5,maso:5);
readln
end.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
Lời gọi hàm ở đâu?
Lệnh A:=UCLN(tuso,mauso);
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.
Biến cục bộ-toàn cục
program rutgon_phanso;
uses crt;
var tuso,mauso,a:integer;
function UCLN(x,y:integer):intrger;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
begin
clrscr;
write(`nhap tu so, mau so:`); readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maUso:= maUso div a;
end;
writeln(tuso:5,maUso:5);
readln
end.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
Có những biến nào được sử dụng trong chương trình?
Biến: tuso, mauso, a, sodu
Các biến đó được khai báo ở chỗ nào trong chương trình?
+ Biến: tuso, mauso, a được khai báo trong chương trình chính
+ Biến: sodu được khai báo trong chương trình con.
-Biến tuso, mauso, a có tác dụng trong toàn bộ chương trình.
-Biến Sodu chỉ có tác dụng trong thân chương trình con đó.
-Biến toàn cục là biến được khai báo ở trong chương trình chính.
-Biến cục bộ là biến được khai báo ở chương trình con
CÁCH VIẾT VÀ SỬ DỤNG HÀM
So sánh sự giống và khác nhau giữa biến toàn cục- cục bô
Biến cục bộ-toàn cục
program rutgon_phanso;
uses crt;
var tuso,mauso,a:integer;
function UCLN(x,y:integer):intrger;
var sodu:integer;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:= x;
end;
begin
clrscr;
write(`nhap tu so, mau so:`); readln(tuso,mauso);
a:=UCLN(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
maso:= maso div a;
end;
writeln(tuso:5,maso:5);
readln
end.
- Biến cục bộ: Chỉ có tác dụng trong chương trình con, được khai báo trong phần khai báo của chương trình con.
-Biến toàn bộ: có phạm vi ảnh hưởng trong toàn bộ chương trình, được khai báo trong phần khai báo của chương trình chính.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
BÀI TOÁN 2
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
CÁCH VIẾT VÀ SỬ DỤNG HÀM
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?
Sử 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ố
CÁCH VIẾT VÀ SỬ DỤNG HÀM
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
CÁCH VIẾT VÀ SỬ DỤNG HÀM
Chương trình:
VD3: 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.
CÁCH VIẾT VÀ SỬ DỤNG HÀM
?????
Chương trình:
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.
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ì?
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?
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)
Chúc quý thầy cô và các em học sinh một ngày làm việc thành công
* 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ẻ: Lê Đức Thuậ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)