Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (134.26 KB, 3 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>7) Khái quát hóa</b>
Xuất phát từ bài tốn: “Tìm ước chung lớn nhất của 2 số ”.
Var a, b: Integer;
Begin
Repeat
Writeln('Nhap vao 2 so:'); Readln(a,b);
If (a<=0) Or (b<=0) then Writeln(‚Nhap lai!’);
Until (a>0) And (b>0);
Write('UCLN(',a,',',b,') = ');
While a <> b do Begin
If a > b Then a := a - b
Else b := b - a;
End;
Write(a);
Readln
End.
Tiếp theo, Chúng ta yêu cầu học sinh: “Sử dụng chương trình con để tìm
<i>ước chung lớn nhất của ba số ”. Đến đây, để viết hàm tính ước chung lớn</i>
nhất của hai số, chúng ta nên hướng dẫn học sinh sử dụng thuật tốn Ơclit để
viết chương trình nhằm tăng tốc độ tính tốn.
Var a, b, c, tam: Integer;
Function UCLN(Var x, y: Integer): Integer;
Begin
While y<>0 do Begin
End;
UCLN := x;
End;
Begin
Writeln('Nhap ba so: '); Readln(a, b, c);
Write('UCLN(',a,',',b,',',c,') = ');
tam := UCLN(a, b);
Write(UCLN(tam, c));
Readln
End.
Sau khi thực hiện việc sử dụng chương trình con để tìm ước chung lớn
nhất của ba số thành cơng. Khái quát: chúng ta yêu cầu học sinh giải bài
toán:
“Viết chương trình tìm ước chung lớn nhất của n số ”.
Để thực hiện, ta có thể hướng dẫn học sinh dùng thủ tục tìm ước chung
lớn nhất của hai số. Sau đó, dùng một biến tạm là u để lưu giữ giá trị đầu
tiên của dãy số, tiếp theo ta lần lượt xác định ước chung lớn nhất của u với
Var A: Array[1..100] Of Integer;
a1, u, i, n: Integer;
Procedure UCLN(Var x, y: Integer);
Var tam, tg: Integer;
Begin
While y<>0 do Begin
tam := x mod y;
x := y;
End;
End;
Begin
Write('Ban can tinh UCLN cua bao nhieu so? Nhap: '); Readln(n);
For i := 1 to n do Begin
Write('So thu ',i,': '); Readln(A[i]);
End;
Write('UCLN(');
For i := 1 to n-1 do Write(a[i],',');
Write(a[n],') = ');
u := a[1];
For i:= 2 to n do
UCLN(u, a[i]);
Write(u); Writeln;