minhlap.allgoo.us
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.


When we control the event,we control your lives
 
Trang ChínhLatest imagesTìm kiế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
Cài đặt bài Phân Số? Icon_minitimeTue Aug 13, 2013 4:18 pm by minhlap

» authentischen Hermes Lindy Taschen
Cài đặt bài Phân Số? Icon_minitimeWed Jan 23, 2013 11:15 am by cangliang

» Hermes Bag
Cài đặt bài Phân Số? Icon_minitimeWed Jan 23, 2013 11:14 am by cangliang

» Hermes Evelyn pm
Cài đặt bài Phân Số? Icon_minitimeWed Jan 23, 2013 11:13 am by cangliang

» Hermes Kelly bag billig
Cài đặt bài Phân Số? Icon_minitimeMon Jan 21, 2013 8:57 am by cangliang

» Hermes Constance Bag
Cài đặt bài Phân Số? Icon_minitimeMon Jan 21, 2013 8:56 am by cangliang

» Discout Hermes Belt
Cài đặt bài Phân Số? Icon_minitimeMon Jan 21, 2013 8:55 am by cangliang

» Christian Louboutin Love Flats
Cài đặt bài Phân Số? Icon_minitimeTue Jan 15, 2013 12:25 pm by cangliang

» Christian Louboutin Love Flats
Cài đặt bài Phân Số? Icon_minitimeTue 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
May 2024
MonTueWedThuFriSatSun
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendarCalendar
Diễn Đàn
Affiliates
free forum


 

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

Go down 
2 posters
Tác giảThông điệp
symphonyenigmatic
Thành viên bậc 3
Thành viên bậc 3
symphonyenigmatic


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

Cài đặt bài Phân Số? Empty
Bài gửiTiêu đề: Cài đặt bài Phân Số?   Cài đặt bài Phân Số? Icon_minitimeThu 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
http://http:://thienthancntt.tk
anbinhtrong
Thành viên bậc 1
Thành viên bậc 1
anbinhtrong


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

Cài đặt bài Phân Số? Empty
Bài gửiTiêu đề: Re: Cài đặt bài Phân Số?   Cài đặt bài Phân Số? Icon_minitimeSun 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
http://ngoctho1001.blogspot.com/
symphonyenigmatic
Thành viên bậc 3
Thành viên bậc 3
symphonyenigmatic


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

Cài đặt bài Phân Số? Empty
Bài gửiTiêu đề: Re: Cài đặt bài Phân Số?   Cài đặt bài Phân Số? Icon_minitimeWed 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
http://http:://thienthancntt.tk
anbinhtrong
Thành viên bậc 1
Thành viên bậc 1
anbinhtrong


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

Cài đặt bài Phân Số? Empty
Bài gửiTiêu đề: Re: Cài đặt bài Phân Số?   Cài đặt bài Phân Số? Icon_minitimeSun 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
http://ngoctho1001.blogspot.com/
Sponsored content





Cài đặt bài Phân Số? Empty
Bài gửiTiêu đề: Re: Cài đặt bài Phân Số?   Cài đặt bài Phân Số? Icon_minitime

Về Đầu Trang Go down
 
Cài đặt bài Phân Số?
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Phần mềm đổi SID
» Cây n phân
» Quy trình phân tích UML
» Phân loại dữ liệu
» Tài liệu đảm bảo chất lượng phần mềm Mr Long

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