When we control the event,we control your lives
 
IndexTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập
Tìm kiếm
 
 

Display results as :
 
Rechercher Advanced Search
Latest topics
» Tô màu theo vùng quét
Tue Aug 13, 2013 4:18 pm by minhlap

» authentischen Hermes Lindy Taschen
Wed Jan 23, 2013 11:15 am by cangliang

» Hermes Bag
Wed Jan 23, 2013 11:14 am by cangliang

» Hermes Evelyn pm
Wed Jan 23, 2013 11:13 am by cangliang

» Hermes Kelly bag billig
Mon Jan 21, 2013 8:57 am by cangliang

» Hermes Constance Bag
Mon Jan 21, 2013 8:56 am by cangliang

» Discout Hermes Belt
Mon Jan 21, 2013 8:55 am by cangliang

» Christian Louboutin Love Flats
Tue Jan 15, 2013 12:25 pm by cangliang

» Christian Louboutin Love Flats
Tue Jan 15, 2013 12:25 pm by cangliang

Navigation
 Portal
 Diễn Đàn
 Thành viên
 Lý lịch
 Trợ giúp
 Tìm kiếm
December 2016
MonTueWedThuFriSatSun
   1234
567891011
12131415161718
19202122232425
262728293031 
CalendarCalendar
Diễn Đàn
Affiliates
free forum


Share | 
 

 Cài đặt bài Phân Số?

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
symphonyenigmatic
Thành viên bậc 3
Thành viên bậc 3


Tổng số bài gửi : 61
Points : 104
Reputation : 6
Join date : 26/07/2009
Age : 28
Đến từ : http:://thienthancntt.tk

Bài gửiTiêu đề: Cài đặt bài Phân Số?   Thu Oct 15, 2009 7:46 am

Có bạn nào cài được thuật rút gọn trong bài Phân Số không?
Mình dùng thuật toán cũ hồi năm ngoái (nhưng có chỉnh sửa đôi chút, vì dùng OOP mà). Nhưng mà vẫn chưa compile được. Mình không biết nó sai gì nữa. Bạn nào làm rồi Show lên mình xem với nha. Tại hôm nay k mang trong usp, nên không đưa lên đây dc...
Về Đầu Trang Go down
Xem lý lịch thành viên http://http:://thienthancntt.tk
anbinhtrong
Thành viên bậc 1
Thành viên bậc 1


Tổng số bài gửi : 13
Points : 17
Reputation : 1
Join date : 29/08/2009
Age : 27
Đến từ : BT

Bài gửiTiêu đề: Re: Cài đặt bài Phân Số?   Sun Oct 18, 2009 6:11 am

Nguyên tắc vẫn tìm ước số chung cho 2 mẫu số, rồi cộng hoặc trừ tử. Sau đó tìm ước số chung của tử và mẫu.
Bạn thử viết lại rồi mọi người cùng nhau sửa. Smile
Về Đầu Trang Go down
Xem lý lịch thành viên http://ngoctho1001.blogspot.com/
symphonyenigmatic
Thành viên bậc 3
Thành viên bậc 3


Tổng số bài gửi : 61
Points : 104
Reputation : 6
Join date : 26/07/2009
Age : 28
Đến từ : http:://thienthancntt.tk

Bài gửiTiêu đề: Re: Cài đặt bài Phân Số?   Wed Oct 21, 2009 9:59 pm

uh.
File PhanSo.h

// PhanSo.h
// ES

#ifndef PhanSo_H
#define PhanSo_H
class PhanSo
{
int tu,mau;
int Uscln(int a, int b);
public:
PhanSo(int t=0,int mau=1);
void Nhap ();
void Xuat ();
PhanSo RutGon ();
PhanSo Cong (PhanSo p);
PhanSo Tru (PhanSo p);
PhanSo Nhan (PhanSo p);
};
#endif
----------------------------------------------
// PhanSo.cpp
// ES

#include "PhanSo.h"
#include "iostream"

using namespace std;

PhanSo::PhanSo (int t, int m)
{
tu=t;
mau=m;
}

void PhanSo::Nhap()
{
cout<<"\nNhap Tu So: "; cin>>tu;
cout<<"Nhap Mau so: "; cin>>mau;
}

void PhanSo::Xuat ()
{
cout<}

int PhanSo::Uscln (int a, int b)
{
while (a!=0 && b!=0)
{
if(a>b)
a -= b;
else
b -= a;
}
if(a==0)
return b;
else
return a;
}

PhanSo PhanSo::RutGon ()
{
int uc=Uscln (tu,mau);
return (tu/uc, mau/uc);
}


/*
PhanSo PhanSo::RutGon()
{
int uc;
if(mau!=0)
{
{
uc=Uscln(tu,mau);
tu=tu/uc;
mau=mau/uc;
}
if(mau<0)
{
tu=-tu;
mau=-mau;
}
else
mau=1;
cout< }
else
cout<<"Mau phai khac 0";
return (tu,mau);
}
*/

// Tham so p la phan so duoc truyen vao
PhanSo PhanSo::Cong(PhanSo p)
{
PhanSo kq;
if (mau==p.mau)
{
kq.tu=tu+p.tu;
kq.mau=mau;
}
else
{
kq.tu=tu*p.mau+mau*p.tu;
kq.mau=mau*p.mau;
}
return kq;
}

PhanSo PhanSo::Tru(PhanSo p)
{
PhanSo kq;
if (mau==p.mau)
{
kq.tu=tu-p.tu;
kq.mau=mau;
}
else
{
kq.tu=tu*p.mau - mau*p.tu;
kq.mau=tu*p.mau;
}
return kq;
}

PhanSo PhanSo::Nhan(PhanSo p)
{
return (tu*p.mau, mau*p.mau);
}
-------------------------------------------
// 20091013_PhanSo.cpp
// ES

#include "PhanSo.h"
#include "iostream"

using namespace std;

void main()
{
PhanSo a,b,c;
cout<<"Chuong trinh Tinh toan Phan So: \n";

a.Nhap(); a.Xuat();
b.Nhap(); b.Xuat();

cout<<"\n a + b = ";
c=a.Cong(b); c.Xuat();

cout<<"\n a - b = ";
c=a.Tru(b); c.Xuat();

cout<<"\n a * b = ";
c=a.Nhan(b); c.Xuat();
}
Về Đầu Trang Go down
Xem lý lịch thành viên http://http:://thienthancntt.tk
anbinhtrong
Thành viên bậc 1
Thành viên bậc 1


Tổng số bài gửi : 13
Points : 17
Reputation : 1
Join date : 29/08/2009
Age : 27
Đến từ : BT

Bài gửiTiêu đề: Re: Cài đặt bài Phân Số?   Sun Oct 25, 2009 11:57 pm

Phần rút gọn của bạn sai ở chỗ là thuật toán tìm USCLN không áp dụng cho số âm. Đơn giản nhất là bạn cứ áp dụng thuật toán chia Euclide cho lẹ. ( Mình không biết bài toán trừ Euclide làm cho số âm được hay không?).
Mình nhận thấy đơn giản nhất là khi nhập vào là Rút gọn, cộng hay trừ rồi rút gọn ở cuối hàm.
Bài toán trừ chỗ này bị sai:
Code:
kq.mau=tu*p.mau;
Bài toán nhân
Code:
return (tu*p.mau, mau*p.mau)
Mình thử sửa lại như sau: có dùng thêm hàm BSCNN
file Phanso.cpp
Code:

//----------------------------------------------
// PhanSo.cpp
// ES

#include "PhanSo.h"
#include "iostream"

using namespace std;

PhanSo::PhanSo (int t, int m)
{
   tu=t;
   mau=m;
}

void PhanSo::Nhap()
{
   cout<<"\nNhap Tu So: "; cin>>tu;
   cout<<"Nhap Mau so: "; cin>>mau;
   if(mau<0)
   {
      mau=mau*(-1);
      tu=tu*(-1);
   }
   this->RutGon();
}

void PhanSo::Xuat ()
{   
   cout<<tu<<" / "<<mau;
}

int PhanSo::Uscln (int a, int b)
{
   int tg;
   if(a<0)
      a*=-1;
   tg=a%b;
   while(tg!=0)
   {
      a=b;;
      b=tg;
      tg=a%b;
   }
   return b;
}
int PhanSo::Bscnn (int a, int b)
{
   int tg;
   tg=Uscln(a,b);
   a=a/tg;
   return a*b;
}
void PhanSo::RutGon ()
{
   int uc=Uscln (tu,mau);
   tu/=uc;
   mau/=uc;
}

// Tham so p la phan so duoc truyen vao
PhanSo PhanSo::Cong(PhanSo p)
{
   PhanSo kq;
   int bsc;
   bsc=Bscnn(mau,p.mau);
   kq.tu=tu*bsc/mau+p.tu*bsc/p.mau;
   kq.mau=bsc;
   kq.RutGon();
   return kq;
}

PhanSo PhanSo::Tru(PhanSo p)
{
   PhanSo kq;
   if (mau==p.mau)
   {
      kq.tu=tu-p.tu;
      kq.mau=mau;
   }
   else
   {
      kq.tu=tu*p.mau - mau*p.tu;
      kq.mau=mau*p.mau;
   }
   kq.RutGon();
   return kq;
}

PhanSo PhanSo::Nhan(PhanSo p)
{
   PhanSo tg;
   tg.tu=tu*p.tu;
   tg.mau=mau*p.mau;
   tg.RutGon();
   return tg;
}
Về Đầu Trang Go down
Xem lý lịch thành viên http://ngoctho1001.blogspot.com/
Sponsored content




Bài gửiTiêu đề: Re: Cài đặt bài Phân Số?   Today at 1:21 am

Về Đầu Trang Go down
 
Cài đặt bài Phân Số?
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
minhlap.allgoo.us :: Lập trình :: Lập Trình Hướng Đối Tượng,Đồ Họa OpenGL C, C++-
Chuyển đến