• Khung trình chiếu

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

Các mã nguồn được viết bằng ngôn ngữ Pascal
Gửi hồi đáp
Ảnh đại diện người dùng
huynhbuutam
Nhà sáng lập
Nhà sáng lập
Các bài viết: 112
Đã gia nhập lúc: T3 31 Th8, 2021 22:04
Địa điểm: Trường THCS Châu Lăng
Tên thật: Huỳnh Bửu Tâm

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

Bài viết 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.
Gửi hồi đáp
  • Similar Topics
    Các hồi đáp
    Lượt xem
    Bài viết cuối