Lúc này giáo viên có thể khẳng định sự phân biệt giữa tham biến và tham trị, các giá trị của tham biến được lưu giữ khi ra ngoài chương trình con, còn giá trị của tham trị chỉ lưu giữ kh[r]
Trang 13) Chính xác hóa một khái niệm
Có những khái niệm mà học sinh đã biết ở từng bài riêng lẻ chưa thể đưa ra ngay những nhận xét, những kết luận chính xác liên quan tới khái niệm đó; tới một thời điểm nào đó có đủ điều kiện thì chúng ta có thể gợi lại vấn đề và giúp học sinh chính xác hóa khái niệm đó Chẳng hạn, ta cần chính xác hóa khái niệm sử dụng tham biến của chương trình con Sau khi học cách sử dụng tham trị, chúng ta có thể yêu cầu học sinh làm bài tập sau:
“Viết một thủ tục nhập vào số đo bán kính của 3 đường tròn Sau đó tính chu vi và diện tích của mỗi đường tròn đó”.
Var r1, r2, r3: Real;
Procedure Nhap( r: Real; k:Byte);
Begin
Repeat
Write('Nhap ban kinh cua duong tron thu ',k,': ');
Readln(r);
If r <= 0 Then Writeln('Nhap lai!');
Until r > 0;
End;
Begin
Nhap(r1, 1);
Nhap(r2, 2);
Nhap(r3, 3);
Writeln('Duong tron 1 Chu vi bang:',2 * pi * r1:6:1,' Dien tich bang: ',pi *
sqr(r1):6:1);
Writeln('Duong tron 2 Chu vi bang:',2 * pi * r2:6:1,' Dien tich bang:',pi * sqr(r2):6:1);
Writeln('Duong tron 3 Chu vi bang:',2 * pi * r3:6:1,' Dien tich bang:',pi * sqr(r3):6:1);
Trang 2Readln
End
Chúng ta có thể yêu cầu học sinh thực thi chương trình trên và chạy thử Học sinh sẽ phát hiện ra là kết quả chu vi và diện tích của cả ba đường tròn đều bằng 0 Vấn đề đặt ra là: Chương trình sai ở chỗ nào? Lúc này giáo viên có thể khẳng định sự phân biệt giữa tham biến và tham trị, các giá trị của tham biến được lưu giữ khi ra ngoài chương trình con, còn giá trị của tham trị chỉ lưu giữ khi thực hiện chương trình con, nếu ra khỏi chương trình con nó sẽ không còn lưu giữ giá trị đó Điều này sẽ giúp cho chúng ta chính xác hóa khái niệm tham biến và tham trị cho học sinh
Chương trình trên cần sửa lại như sau:
Var r1, r2, r3: Real;
Procedure Nhap(Var r: Real; k:Byte);
Begin
Repeat
Write('Nhap ban kinh cua duong tron thu ',k,': ');
Readln(r);
If r <= 0 Then Writeln('Nhap lai!');
Until r > 0;
End;
Begin
Nhap(r1, 1);
Nhap(r2, 2);
Nhap(r3, 3);
Writeln('Duong tron 1 Chu vi bang:',2 * pi * r1:6:1,' Dien tich bang: ',pi *
sqr(r1):6:1);
Writeln('Duong tron 2 Chu vi bang:',2 * pi * r2:6:1,' Dien tich bang:',pi * sqr(r2):6:1);
Trang 3Writeln('Duong tron 3 Chu vi bang:',2 * pi * r3:6:1,' Dien tich bang:',pi * sqr(r3):6:1);
Readln
End