Tải bản đầy đủ (.docx) (3 trang)

Tim uoc chung lon nhat cua 2 so

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;


Var tam: Integer;


Begin


While y<>0 do Begin


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

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


từng giá trị của dãy từ vị trí thứ hai. Cuối cùng, ước chung lớn nhất của dãy
chính là giá trị u.


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;


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

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;


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×