Thứ Hai, 30 tháng 4, 2012

[Pascal vui] Tìm số lớn và nhỏ nhất trong 3 số

Đề bài: Nhập vào 3 số a, b, c. Hãy tìm số lớn nhất và số bé nhất trong 3 số đó. 
Đây là 1 bài toán rất dễ nhưng sẽ trở nên khá khó nếu kèm theo điều kiện không được dùng kiểu mảng, chỉ được dùng tối đa 3 câu lệnh điều kiện hoặc nếu không dúng if - then càng tốt. Bạn có thể thực hiện được bài toán này không?

Dùng if - then:

Var a,b,c : integer;
Begin
Write('Nhap vao 3 so : ');Readln(a,b,c);
If a>b then
Begin
a := a + b;
b := a - b;
a := a - b;
End;
If b>c then
Begin
b := b + c;
c := b - c;
b := b - c;
End;
If a>b then
Begin
a := a + b;
b := a - b;
a := a - b;
End;
Writeln('Min = ',a);
Writeln('Max = ',c);
Readln;
End. 

Không dùng if then (chỉ readln, writeln):

Var a,b,c : Integer;
Begin
Write('Nhap vao 3 so: ');Readln(a,b,c);
Writeln('Min = ',((a+b-abs(a-b))/2+c-abs((a+b-abs(a-b))/2-c))/2:0:0);
Writeln('Max = ',((a+b+abs(a-b))/2+c+abs((a+b+abs(a-b))/2-c))/2:0:0);
Readln;
End. 

Không có nhận xét nào:

Đăng nhận xét

Bài đăng phổ biến