Trang 1 trong tổng số 1

Bài tập: Quy đồng mẫu số, cộng, rút gọn phân số

Đã gửi: T6 24 Th2, 2023 14:04
bởi huynhbuutam
Viết chương trình nhập vào từ bàn phím 4 số tự nhiên là giá trị lần lượt của hai phân số. Thực hiện các yêu cầu sau:
- Kiểm tra tính hợp lệ của mẫu số;
- Quy đồng mẫu số hai phân số trên với mẫu chung là bội số chung nhỏ nhất của hai mẫu số.
- Tính tổng hai phân số trên.
Xuất ra màn hình phân số tổng ở dạng tối giản.

Chương trình ví dụ

Mã: Chọn tất cả

Moi ban nhap vao phan so thu nhat (tu/mau): 15 6
Moi ban nhap vao phan so thu hai (tu/mau): 62 40
Hai phan so da nhap: 15/6 62/40
Hai phan so sau khi quy dong: 300/120 186/120
Tong hai phan so: 486/120
Phan so duoc toi gian: 81/20

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

Mã nguồn:

Mã: Chọn tất cả

Uses Crt;
Var Tu, Mau, Tu1, Mau1, Tu2, Mau2, UCLN : LongInt;
	i, BCNN : LongInt;
Begin
	ClrScr;
	Repeat
		Write('Moi ban nhap vao phan so thu nhat (tu/mau): ');
		ReadLn(Tu1, Mau1);
	Until (Tu1 >= 0) And (Mau1 > 0);
	Repeat
		Write('Moi ban nhap vao phan so thu hai (tu/mau): ');
		ReadLn(Tu2, Mau2);
	Until (Tu2 >= 0) And (Mau2 > 0);
	WriteLn('Hai phan so da nhap: ', Tu1, '/', Mau1, ' ', Tu2, '/', Mau2);
	For i := Mau1 To Mau1*Mau2 Do
		If (i Mod Mau1 = 0) And (i Mod Mau2 = 0) Then Begin
			BCNN := i;
			Break;
		End;
	Tu1 := Tu1 * (BCNN Div Mau1);
	Mau1 := BCNN;
	Tu2 := Tu2 * (BCNN Div Mau2);
	Mau2 := BCNN;
	WriteLn('Hai phan so sau khi quy dong: ', Tu1, '/', Mau1, ' ', Tu2, '/', Mau2);
	Tu := Tu1 + Tu2;
	Mau := Mau1;
	WriteLn('Tong hai phan so: ', Tu, '/', Mau);
	For i := Tu DownTo 1 Do
		If (Tu Mod i = 0) And (Mau Mod i = 0) Then Begin
			UCLN := i;
			Break;
		End;
	Tu := Tu Div UCLN;
	Mau := Mau Div UCLN;
	Write('Phan so duoc toi gian: ', Tu, '/', Mau);
	ReadLn;
End.