Lớp Sư phạm Cử nhân tin học khóa 1
Chào mừng bạn trở lại diễn đàn.

Bài thực hành 1: Phân số đơn thể

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Bài thực hành 1: Phân số đơn thể

Bài gửi by Admin on 14/7/2008, 7:57 pm

Các bạn tham khảo bài phân số đơn thể dưới đây, bổ sung thêm một số hàm mới theo yêu cầu của thầy.
Nhớ điều chỉnh sao cho "không giống ai" nhé. Ít nhất là trong câu lệnh 'cout<< ...'
Mình sẽ tiếp tục post bài phân số sử dụng class, các toán tử + -* /.
Bạn nào có ý tưởng nào hay hơn thì post cho các bạn trong lớp học hỏi.

Main.cpp
Code:

http://Main.cpp
#include "XuLyPhanSo.h"
#include <iostream>
using namespace std;

int main()
{
  PhanSo a, b, a1, b1,tong, hieu, tich, thuong;
      cout <<"  CAC PHEP TINH PHAN SO";
  cout <<"\n  ---------------------";

  cout << "\n-Phan so thu nhat\n";
  nhapPhanSo(a);
 
  cout << "\n-Phan so thu hai\n";
  nhapPhanSo(b);

  a1 =NghichDao(a);
  cout <<"\n+Nghich dao phan so ";
  xuatPhanSo(a);
  cout <<" la ";
  xuatPhanSo(a1);
  toigian(a1);
  xuatPhanSo(a1);

  b1= NghichDao(b);
  cout <<"\n\n+Nghich dao phan so ";
  xuatPhanSo(b);
  cout <<" la ";
  xuatPhanSo(b1);
  toigian(b1);
  xuatPhanSo(b1);

  tong = cong(a, b);
  cout <<"\n\n+ Tong 2 phan so  : ";
  xuatPhanSo(tong);
   toigian(tong);
   xuatPhanSo(tong);

  hieu = tru(a, b);
  cout <<"\n\n+ Hieu 2 phan so  : ";
  xuatPhanSo(hieu);
  toigian(hieu);
  xuatPhanSo(hieu);

  tich = nhan(a, b);
  cout <<"\n\n+ Tich 2 phan so  : ";
  xuatPhanSo(tich);
  toigian(tich);
  xuatPhanSo(tich);

  thuong = chia(a, b);
  cout <<"\n\n+ Thuong 2 phan so: ";
  xuatPhanSo(thuong);
  toigian(thuong);
  xuatPhanSo(thuong);
cout<<"\n";
  system("PAUSE");
return 0;
}

XuLyPhanSo.h
Code:

http://XuLyPhanSo.h
#ifndef XULYPHANSO_H
#define XULYPHANSO_H 1

// dinh nghia kieu cau truc
struct PhanSo{
  int tu, mau;
};

// khai bao cac ham
void nhapPhanSo(PhanSo& ps);
void xuatPhanSo(PhanSo ps);
PhanSo cong(PhanSo ps1, PhanSo ps2);
PhanSo tru(PhanSo ps1, PhanSo ps2);
PhanSo nhan(PhanSo ps1, PhanSo ps2);
PhanSo chia(PhanSo ps1, PhanSo ps2);
PhanSo NghichDao(PhanSo ps);
int ucln(int a, int b);
void toigian(PhanSo &P);
#endif

XuLyPhanSo.cpp
Code:

http://XuLyPhanSo.cpp
#include "XuLyPhanSo.h"
#include <iostream>
#include <cmath>
using namespace std;

void nhapPhanSo(PhanSo& ps)
{
  cout << "\t+Nhap vao tu so : ";
  cin >> ps.tu;
  cout << "\t+Nhap vao mau so: ";
  cin >> ps.mau;
}

void xuatPhanSo(PhanSo ps)
{
  cout << ps.tu << "/" << ps.mau;
}

PhanSo cong(PhanSo ps1, PhanSo ps2)
{
  PhanSo t;

  t.tu = ps1.tu*ps2.mau + ps1.mau*ps2.tu;
  t.mau = ps1.mau*ps2.mau;

  return t;
}

PhanSo tru(PhanSo ps1, PhanSo ps2)
{
  PhanSo t;

  t.tu = ps1.tu*ps2.mau - ps1.mau*ps2.tu;
  t.mau = ps1.mau*ps2.mau;

  return t;
}
PhanSo nhan(PhanSo ps1, PhanSo ps2)
{
  PhanSo t;

  t.tu = ps1.tu*ps2.tu;
  t.mau = ps1.mau*ps2.mau;

  return t;
}
PhanSo chia(PhanSo ps1, PhanSo ps2)
{
  PhanSo t;

  t.tu = ps1.tu*ps2.mau;
  t.mau = ps1.mau*ps2.tu;

  return t;
}

int ucln(int a, int b)  // uoc so chung lon nhat cua 2 so
      {
  a = abs(a);
  b = abs(b);

  if (a == 0)
      return b;
  if (b == 0)
      return a;

  while (a != b)
  {
      if (a > b) a -= b;
      else b -= a;
  }
  return a;
}

void toigian(PhanSo &P)
{
  int x=ucln(P.tu, P.mau);
       
            P.tu/=x;
            P.mau/=x;
        if((P.tu<0&&P.mau<0)||(P.tu>0&&P.mau<0))
        {
            P.tu=-P.tu;
            P.mau=-P.mau;
        }
     
        cout <<", rut gon: ";
}
PhanSo NghichDao(PhanSo ps)
{
    PhanSo kq;
    kq.tu=ps.mau;
    kq.mau=ps.tu;
    return kq;
}
avatar
Admin
Admin

Tổng số bài gửi : 148
Registration date : 17/12/2007

Xem lý lịch thành viên http://cnthk1.tk

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết