PDA

View Full Version : help me ( càng nhanh càng tốt )



kutam
20-12-2007, 21:43
ai có thể giải giúp mình mấy bài pascal này với nhanh nhé
Bài 1:tìm max của 4 số a,b,c,d ( lưu ý dùng càng ít lệnh If càng tốt)
Bài 2:lập trình từ bàn phím ba số nguyên m,n,k.Tính và đưa ra màn hình bình phương các số không âm và lập phương của các số âm.

ninjapro
20-12-2007, 22:00
bài 1:


if (a>b) then max1:=a else max1:=b;
if (c>d) then max2:=c else max2:=d;
if (max1>max2) then max:=max1 else max:=max2;


bài 2:
hông hiểu nhập n,m,k để làm gì nhỉ?

kutam
20-12-2007, 22:08
trước hết thanks về bài 1 , còn bài 2 nhập m,n,k từ bàn phím mà . m,n,k là các số mình tự chọn.

worldcup
20-12-2007, 22:18
Bài 2 > bế tắc trong gang tấc

kutam
20-12-2007, 22:20
ủa bài 2 là bài trong sgk 11 mà ai cũng tịt vậy chán quá, công nhân là thiên hà còn nhiều người ....ngu như mình :D

kutam
20-12-2007, 22:20
bài 1 có ai nghĩ ra cách dùng ít lệnh If hơn không

mr_invincible
20-12-2007, 22:48
If m>=0 then Writeln(m*m) else Writeln(m*m*m);
If n>=0 then Writeln(n*n) else Writeln(n*n*n);
If k>=0 then Writeln(k*k) else Writeln(k*k*k);

F12
21-12-2007, 00:40
function max(a, b : integer) : integer;
begin
max := a + b - abs(a - b);
end;

begin
read(a, b, c, d);
writeln( max( max(a,b), max(c,d) );
end;

Không dùng lệnh if nào, chắc là cách này ít nhất rồi, trừ phi... :)

grenadier1991
21-12-2007, 09:43
Có chắc ko đấy:
2 số là 10 và 3. Max là 10
10+3-abs(10-3)=10???????????
Tui nghĩ phải sửa lại một chút
max:=trunc((a+b+abs(a-b))/2);

F12
21-12-2007, 14:46
: D
Nhầm nhầm, tại mình có chạy thử đâu. : D
Thực ra là muốn tìm số lớn ta lấy tổng cộng hiệu rồi chia hai đó mà.

tranvanho
21-12-2007, 19:06
ủa bài 2 là bài trong sgk 11 mà ai cũng tịt vậy chán quá, công nhân là thiên hà còn nhiều người ....ngu như mình :D

không phải là ngu mà là mới chập chững bước đi trên con đường pascal

tranvanho
21-12-2007, 19:09
bài 1 và 2 đều rất cơ bản bạn tự suy nghĩ đi