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

Sap xep ba so a b c theo thu tu tang dan

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 (87.6 KB, 3 trang )

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

<b>4) Khái quát hóa</b>


Xuất phát từ bài toán: “Sắp xếp ba số a, b, c theo thứ tự tăng dần”.
Var a,b,c: Real;


Procedure Sapxep(Var x, y, z: Real);
Var tg: Real;


Begin


If x > y Then Begin
tg := x; x := y; y := tg;
End;


If y > z Then Begin


tg := y; y := z; z := tg;
End;


If x > y Then Begin
tg := x; x := y; y := tg;
End;


End;
Begin


Writeln('Nhap vao ba so: ');


Write('So thu nhat: '); Readln(a);
Write('So thu hai : '); Readln(b);
Write('So thu ba : '); Readln(c);


Sapxep(a, b, c);


Writeln('Ba so sau khi sap xep la:');
Write(a:6:0, b:6:0, c:6:0);


Readln
End.


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

giá trị của b ta phải gửi giá trị cũ của x vào biến tg. Tại sao lệnh thứ ba lại
giống lệnh thứ nhất? đó là vì x, y, z, tg là các địa chỉ lưu trữ những giá trị.
Những giá trị này bị thay đổi qua những lệnh gán. Địa chỉ của biến thì khơng
đổi, nhưng nội dung của biến thì đã thay đổi khi thực hiện lệnh gán.


Tiếp theo, chúng ta có thể nêu câu hỏi: Khái quát, nếu phải sắp xếp n
<i>số theo thứ tự tăng dần ta phải làm thế nào? Ta có chương trình như sau:</i>
Var a: Array[1..100] Of Real;


i,j,n: Integer;


Procedure Doicho(Var x,y:Real);
Var tg:Real;


Begin


Tg := x; x := y; y := tg;
End;


Procedure Sapxep;
Begin



For i := 1 to n - 1 do
For j := i + 1 to n do


If a[i] > a[j] Then Doicho(a[i], a[j]);
End;


Begin


Write('Nhap so phan tu cua day so: '); Readln(n);
For i := 1 to n do Begin


Write('So thu ',i,': '); Readln(a[i]);
End;


Sapxep;


Writeln('Day so sau khi sap xep la:');
For i := 1 to n do Write(a[i]:6:0);
Readln


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

<!--links-->

×