1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn: Chương trình giải ma trận

24 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 1,97 MB
File đính kèm Source code viết bằng ngôn ngữ C.zip (876 KB)

Nội dung

Báo cáo bài tập lớn môn học Đồ án 1. Đại học Bách khoa Hà Nội - Hệ cử nhân công nghệ thông tin. Chương trình giải ma trận viết bằng ngôn ngữ C chạy trên dòng lệnh. Tài liệu bao gồm báo cáo chi tiết và source code đính kèm.

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── BÀI TẬP LỚN MƠN: PROJECT Đề tài: Chương trình giải ma trận Sinh viên thực hiện: MSSV Lớp: Giáo viên hướng dẫn: Hà Nội, tháng năm Project LỜI MỞ ĐẦU Đầu tiên, em xin chân thành cảm ơn thầy hướng dẫn em hoàn thành đề tài Đề tài xây dựng chương trình giải ma trận cho phép tính tốn hàm với ma trận +, -, *, /, tính min, max Ngồi chương trình cịn có khả tính định thức, nghịch đảo ma trận, giải hệ phương trình tuyến tính Chương trình cịn nhiều thiếu sót mong thầy sửa giúp em để chương trình hồn thiện Project MỤC LỤC LỜI MỞ ĐẦU MỤC LỤC Chương 1:KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN 1.1 Mơ tả u cầu tốn 1.2 Biểu đồ use case 1.3 Biểu đồ hoạt động 1.4 Biểu đồ lớp 1.5 Xây dựng lớp 1.6 Mã nguồn chương trình Chương 2: XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 19 Chương 3: KẾT LUẬN ………………………………………………………… 23 Project Chương 1:KHẢO SÁT, ĐẶC TẢ U CẦU BÀI TỐN 1.1 Mơ tả u cầu tốn • u cầu tốn: - Thiết kế giải toán theo phương pháp hướng đối tượng - Giao diện chương trình khơng bắt buộc (dịng lệnh đồ họa) - Tính định thức phép khử Gauss, - Tính định thức định nghĩa đệ quy - Tính ma trận nghịch đảo ma trận vng khả nghịch - Giải hệ phương trình tuyến tính theo phương pháp Crame - Gải hệ phương trình tuyến tính theo phân giải LU 1.2 Biểu đồ use case Project 1.3 Biểu đồ hoạt động Project 1.4 Biểu đồ lớp 1.5 Xây dựng lớp class MaTran { public: int rows; int cols; float **data; char name[10]; public: MaTran(void); ~MaTran(void); MaTran(int, char*); MaTran(int, int, char*); void nhap(); void xuat(); void giaiPhong(); void copyto(MaTran&); MaTran operator + (MaTran); MaTran operator - (MaTran); MaTran operator * (MaTran); MaTran operator / (MaTran); MaTran operator / (float); MaTran operator * (float); MaTran con(int, int); void min(); void max(); bool laVuong(); float detG(); float detQ(); MaTran chuyenVi(); MaTran nghichDao(); MaTran boCot(int, MaTran); }; Project class HePhuongTrinh{ public: MaTran A; MaTran b; MaTran x; MaTran L; MaTran U; public: HePhuongTrinh(void); ~HePhuongTrinh(void); void nhap(); void cramer(); void phanRaLU(); void giaiHeTGD(); void giaiHeTGT(); void giaiLU(); void xuat(); }; class BieuThuc{ public: int cuoi; char mang[20][10]; int len; char chuoibt[20]; MaTran ans; MaTran data[20]; public: BieuThuc(void); ~BieuThuc(void); void nhap(); MaTran getMaTran(char*); void phanTich(); void tinh(); }; Project 1.6 Mã nguồn chương trình //Lớp Ma Tran #include #include #include #include #include "MaTran.h" using namespace std; MaTran::MaTran(void){ this->data = NULL; strcpy(this->name , ""); } MaTran::MaTran(int n, char name[10]) { this->rows = n; this->cols = n; this->data = new float* [n]; for(int i=0; idata[i] = new float[n]; strcpy(this->name , name); } MaTran::MaTran(int rows, int cols, char name[10]) { this->rows = rows; this->cols = cols; this->data = new float* [rows]; for(int i=0; idata[i] = new float[cols]; strcpy(this->name , name); } MaTran::~MaTran(void){ } void MaTran::nhap() { for(int i=0; irows; i++) { for(int j=0; jcols; j++) { coutrows-1, this->cols-1, "Con"); int a=0, b=0; } for(int i=0; irows; i++) { for(int j=0; jcols; j++) { y.data[a][b] = this->data[i][j]; b += (j==n?0:1); } a += (i==m?0:1); b=0; if(a==m && m==this->rows-1) return y; } return y; void MaTran::max(){ float max = this->data[0][0]; for (int i=0; irows; i++) for(int j=0; jcols; j++) if(maxdata[i][j]) max=this->data[i][j]; coutrows, "Nghich dao"); for(int i=0; irows; i++) for(int j=0; jrows; j++) B.data[i][j] = pow(-1.0, i+j) * this->con(i, j).detG() / det; return B.chuyenVi(); } else { coutcuoi = 1; this->len = 0; } BieuThuc::~BieuThuc(void){} void BieuThuc::nhap() { char s[20]; 12 Project } fflush(stdin); gets(s); strcpy(this->chuoibt, s); MaTran BieuThuc::getMaTran(char* name) { for(int i=0; icuoi; i++) if(strcmp(this->data[i].name, name)==0) return this->data[i]; coutmang[n], tmp); for(int k = 0; kchuoibt[i])){ j=0; while(islower(this->chuoibt[i])){ tmp[j] = this->chuoibt[i]; ++i; ++j; } n++; strcpy(this->mang[n], tmp); for(int k = 0; kchuoibt[i]=='+' || this->chuoibt[i]=='-' || this->chuoibt[i]=='*' || this->chuoibt[i] == '/'){ tmp[0] = this->chuoibt[i]; n++; strcpy(this->mang[n], tmp); for(int k = 0; klen=n+1; void BieuThuc::tinh() { if(strcmp(this->chuoibt, "")==0) coutmang[0][0])) { 13 Project if(strcmp(this->mang[0], "help")==0) { cout

Ngày đăng: 13/06/2023, 19:35

w