# Trung tâm xử lý sự cố > Hỏi-Đáp về Lập trình >  Giúp E bài Phân số, hỗn số.

## giacnguvang

*lập trình java nhá các pro.
đề này e tự chép ra = tay, mong các pro giúp e với [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img]. bí quá rồi [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img].
hỗn số kế thừa từ phanso (honso extends phanso)*

*1. định nghĩa lớp phân số gồm các thuộc tính và hành vi sau:
- tử số và mẫu số.
+ hàm dựng.
+ hàm tostring() trả về chuỗi biểu diễn theo định dạng (tuso/mauso)
+ hàm rutgon() rút gọn phân số thành phân số tối giản.
+ hàm cong(phanso ps), tru(phanso ps), nhan(phanso ps), chia(phanso ps) để thực hiện các các phép toán +,-,*,/ 2 phân số với nhau
+ hàm sosanh(object tam) để so sánh 2 phân số vs nhau.*

*2. địnhnghĩa lớp hỗn số là lớp con của phân số có thêm các thuộc tính và hành vi sau:*
*- phần nguyên:
+ hàm dựng.
+ hàm tostring() trả về chuỗi biểu diễn theo định dạng (phần nguyên, tuso/mauso)
+ hàm cong(honso hs), tru(honso hs), nhan(honso hs), chia(honso hs) để thực hiện các các phép toán +,-,*,/ 2 phân số với nhau
+ hàm sosanh(object tam) là hàm override lớp phanso để so sánh 2 hỗn số vs nhau.
+ hàm main:
* khai báo và khởi tạo 2 đối tượng a,b của lớp phanso.
* thực hiện các phép tính với a,b.
* khai báo và khởi tạo 1 mảng ( hoặc vector) honso có giá trị ngẫu nhiên, inra màn hình
* thực hiện các phép tính vs mảng hỗn số đó. ( đc thực hiện tùy ý, miễn sao đúng cú pháp và hợp lý)*

cái này bài phanso e vừa hoàn thành nhưng thiếu hàm sosanh(object tam) các pro giúp e vs [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img](. cả bài hỗn số nữa.
ai có thành ý e nhất định sẽ bao chầu cf...





> import java.util.*;
> class phanso 
> {
> private double tuso,mauso;
> public phanso(){};
> public phanso(double tuso, double mauso)
> {
> this.tuso=tuso;
> this.mauso=mauso; 
> ...

----------


## dathoaonline

xin giúp đỡ bạn bài 1 :
- hàm rút gọn của bạn không ổn rồi, nếu để vòng while như thế thì khi return lúc nào cũng là 1/1 hết [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img] . nên tạo biến tạm, temptu = this.tuso; tempmau = this.mauso; . sau đó dùng chúng cho hàm while(temptu != tempmau) {...} để tìm uscln, sau đó mới return
- hàm so sánh cũng đơn giản thôi :
/* function sosanhphanso :
* return : 1 - nếu this > tam
* 2 - nếu this < tam
* 3 - nếu this = tam
*/
public int sosanhphanso(phanso tam)
{
if(this.tuso*tam.mauso > this.mauso*tam.tuso) return 1;
else if(this.tuso*tam.mauso < this.mauso*tam.tuso) return 2;
else return 3;
}
- để cho bài toán được khả thi hơn, bạn nên xét điều kiện mẫu số khác 0 (thêm trong hàm dựng hoặc bạn có thể dùng exception trong java). khi xong thì mình nên test lại coi thuật toán mình làm có tối ưu ko ?
- còn bài 2 thì cũng dễ mà, dùng thêm phép toán / hay % như trong c đó, java thi mình không rõ lém [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img] 
chúc bạn học tốt nha !
p/s : rãnh thì vào sg uống cafe với mình hen ^^!

----------


## buicuong139

thank bạn nhiều lắm. [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img] mình mới học java nên yếu lắm ^^!.
sg thì k đc rồi [img]data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaaabaqmaaaa  l21bkaaaaa1bmvexh5pjm+ykvaaaaaxrstlmaqobyzgaaaapjr  efucndjyaaaaaiaaeihvdmaaaaasuvork5cyii=[/img].

----------

