Trang 1 trong tổng số 1

Bài tập: Tìm quả táo nặng/nhẹ nhất trong 13 quả sau 3 lần cân

Đã gửi: T6 24 Th2, 2023 13:41
bởi huynhbuutam
Mẹ đi chợ về mua cho Nga 13 quả táo giống hệt nhau về kích thước và hình dạng. Tuy nhiên người bán hàng nói rằng trong số các quả táo trên có đúng một quả có khối lượng khác so với 12 quả còn lại. Dùng một chiếc cân bàn hai bên và với ba lần cân em hãy giúp Nga tìm ra quả táo đó.
Viết chương trình mô phỏng việc tổ chức cân 13 quả táo bằng ba lần cân theo yêu cầu nêu trên. Thông báo ra màn hình khối lượng của quả táo cần tìm và chỉ rõ rằng quá táo tìm được có khối lượng nặng hơn hay nhẹ hơn so với 12 quả còn lại. Dữ liệu về quả táo có khối lượng khác do người sử dụng chương trình nắm giữ.
Lưu ý:
1. Trọng lượng của các quả táo là một số nguyên dương được nhập từ bàn phím.
2. Cân bàn hai bên là cân có hai bàn cân chia đều hai bên với khối lượng ban đầu (chưa cân) bằng nhau. Trong khi cân, nếu cân thăng bằng thì khối lượng hai bên bằng nhau; nếu cân lệch thì bàn cân bên nào thấp hơn sẽ có khối lượng lớn hơn.

(Đề thi chọn Học sinh giỏi Tin học cấp THCS tỉnh An Giang năm 2016 - Câu 3)

Mã nguồn:

Mã: Chọn tất cả

Uses Crt;
Var M : Array[1..13] Of Integer;
	i, A, B, C, D : Integer;
Begin
	ClrScr;
	Write('Nhap khoi luong 13 qua tao: ');
	For i := 1 To 13 Do Read(M[i]);
	ReadLn;
	A := M[1] + M[2] + M[3] + M[4];
	B := M[5] + M[6] + M[7] + M[8];
	C := M[9] + M[10] + M[11] + M[1];
	D := M[3] + M[4] + M[5] + M[6];
	{ Lan 1 }
	If A = B Then Begin
		{ Lan 2 }
		If C = D Then Begin
			{ Lan 3 }
			If M[12] = M[1] Then WriteLn('Qua 13 khac nhat! ', M[13]);
			If M[12] > M[1] Then WriteLn('Qua 12 nang! ', M[12]);
			If M[12] < M[1] Then WriteLn('Qua 12 nhe! ', M[12]);
		End;
		If C > D Then Begin
			If M[9] = M[10] Then WriteLn('Qua 11 nang! ', M[11]);
			If M[9] > M[10] Then WriteLn('Qua 9 nang! ', M[9]);
			If M[9] < M[10] Then WriteLn('Qua 10 nang! ', M[10]);
		End;
		If C < D Then Begin
			If M[9] = M[10] Then WriteLn('Qua 11 nhe! ', M[11]);
			If M[9] > M[10] Then WriteLn('Qua 10 nhe! ', M[10]);
			If M[9] < M[10] Then WriteLn('Qua 9 nhe! ', M[9]);
		End;
	End;
	If A > B Then Begin
		If C = D Then Begin
			If M[7] = M[8] Then WriteLn('Qua 2 nang! ', M[2]);
			If M[7] > M[8] Then WriteLn('Qua 8 nhe! ', M[8]);
			If M[7] < M[8] Then WriteLn('Qua 7 nhe! ', M[7]);
		End;
		If C > D Then Begin
			If M[5] = M[6] Then WriteLn('Qua 1 nang! ', M[1]);
			If M[5] > M[6] Then WriteLn('Qua 6 nhe! ', M[6]);
			If M[5] < M[6] Then WriteLn('Qua 5 nhe! ', M[5]);
		End;
		If C < D Then Begin
			If M[3] = M[1] Then WriteLn('Qua 4 nang! ', M[4]);
			If M[3] > M[1] Then WriteLn('Qua 3 nang! ', M[3]);
		End;
	End;
	If A < B Then Begin
		If C = D Then Begin
			If M[7] = M[8] Then WriteLn('Qua 2 nhe! ', M[2]);
			If M[7] > M[8] Then WriteLn('Qua 7 nang! ', M[7]);
			If M[7] < M[8] Then WriteLn('Qua 8 nang! ', M[8]);
		End;
		If C > D Then Begin
			If M[3] = M[1] Then WriteLn('Qua 4 nhe! ', M[4]);
			If M[3] < M[1] Then WriteLn('Qua 3 nhe! ', M[3]);
		End;
		If C < D Then Begin
			If M[5] = M[6] Then WriteLn('Qua 1 nhe! ', M[1]);
			If M[5] > M[6] Then WriteLn('Qua 5 nang! ', M[5]);
			If M[5] < M[6] Then WriteLn('Qua 6 nang! ', M[6]);
		End;
	End;
	Readln;
End.