Vì vậy mà trước khi thực hiện lệnh gán x := y để máy nhận... giá trị của b ta phải gửi giá trị cũ của x vào biến tg.[r]
(1)4) Khái quát hóa
Xuất phát từ 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 sap xep la:'); Write(a:6:0, b:6:0, c:6:0);
Readln End
(2)giá trị b ta phải gửi giá trị cũ x vào biến tg Tại lệnh thứ ba lại giống lệnh thứ nhất? x, y, z, tg địa lưu trữ giá trị Những giá trị bị thay đổi qua lệnh gán Địa biến khơng đổi, nội dung biến thay đổi thực lệnh gán
Tiếp theo, nêu câu hỏi: Khái quát, phải xếp n số theo thứ tự tăng dần ta phải làm nào? Ta có chương trình sau: 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 := to n - For j := i + to n
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 := to n Begin
Write('So thu ',i,': '); Readln(a[i]); End;
Sapxep;
Writeln('Day so sau sap xep la:'); For i := to n Write(a[i]:6:0); Readln
(3)