Code cân bằng phương trình hoá học bằng C++

[Mã code 30808]
  1 Đánh giá    Viết đánh giá
 215      2404      5
Phí tải: Miễn phí
Danh mục
Thể loại
Nhóm code
Ngày đăng
12-4-2022
Loại file
Code
Dung lượng
2 KB

Source code chương trình cân bằng phương trình hoá học bằng C++, ma trận tuyến tính.


MÔ TẢ CHI TIẾT

Xây dựng thuật toán cân bằng phương trình hóa học bằng ma trận tuyến tính

Trước hết ta cần biết PTHH và cân bằng phương trình hóa học (PTHH) là gì.

PTHH là một phương trình gồm có hai vế nối với nhau bởi dấu mũi tên từ trái sang phải, vế trái biểu diễn các chất tham gia phản ứng, vế phải biểu diễn các chất thu được sau phản ứng, tất cả các chất đều được viết bằng công thức hoá học của chúng và có những hệ số phù hợp đặt trước công thức hoá học đó để bảo đảm đúng định luật bảo toàn khối lượng, việc tìm ra các hệ số đó chính là quá trình cân bằng PTHH.

Ví dụ cho phương trình sau và yêu cầu cân bằng nó:

H2 + O2 = H2O (Mình sẽ dùng dấu '=' để thay cho ký tự '→')

Sau khi cân bằng PTHH hoàn chỉnh sẽ là:

2H2 + O2 = 2H2O

Vậy làm thế nào để cần bằng được như thế, có nhiều cách để cân bằng PTHH, một trong số cách đó là dùng đến ma trận tuyến tính (MTTT), tại sai PTHH lại liên quan đến MTTT.

Ý tưởng chính của bài này là sẽ đặt N biến là N hệ số trước N chất trước và sau phản ứng, từ M nguyên tố có trong phương trình ta đưa ra được M phương trình, từ đó ta có hệ phương trình (HPT) bậc nhất N ẩn, M phương trình:

Ví dụ như với phương trình H2 + O2 = H2O

Ta sẽ đặt biến x, y, z lần lượt là hệ số trước H2, O2, H2O

Lúc này phương trình sau khi cân bằng sẽ có dạng:

xH2 + yO2 = zH2O

Với nguyên tố H ta có phương trình: 2x - 2z = 0

Với nguyên tố O ta có phương trình: 2y - z = 0

Sẽ có một số phương trình vô nghĩa, ví dụ như hệ phương trình:

a + b - c = 0

a + 2b = 0

2a + 3b - c = 0

Ta thấy phương trình 3 là phương trình vô nghĩa vì nó có thể được tạo ra từ phương trình 1 và 2, ta cần loại tất cả những phương trình vô nghĩa.

Đầu tiên ta đưa HPT đó và MTTT, tiếp đó bằng cách áp dụng phương pháp tìm hạng của ma trận mà ta loại bỏ được những phương trình vô nghĩa, hạng phương trình đó chắc chắn sẽ là N - 1.

Cuối cùng ta sẽ có hệ phương trình N ẩn với N - 1 phương trình, áp dụng giải HPT bằng MTTT ta sẽ có được vô số nghiệm theo một biến t nào đó, bước cuối là chọn giá trị của biến t sao cho các hệ số là các số nguyên dương và ước chung lớn nhất của chúng là 1.

Với một số bạn chưa học qua đại số tuyến tính thì có thể thấy hơi khó hiểu, mình sẽ để source code của bài này ở dưới phần comment để các bạn tham khảo nha.

 


XEM THÊM ==> Hướng dẫn cài đặt chi tiết

 

Nguồn: Sharecode.vn



HƯỚNG DẪN CÀI ĐẶT

Tải về mà mở file *.cpp.

Nhớ là cách nhập phương trình phải đúng nha:

  • Mỗi nguyên tố phải viết hoa chữ đầu tiên, còn lại viết thường
  • Ví dụ: H2 + O2 = H2O, Cu + Cl2 = CuCl3
 
 
LINK DOWNLOAD

PTHH.rar [2 KB]

File đã kiểm duyệt
     Báo vi phạm bản quyền
Pass giải nén (Nếu có):
sharecode.vn
DOWNLOAD
(Miễn phí)
Bạn có code hay
ĐĂNG BÁN NGAY

BÌNH LUẬN


Bảo Trả lời Thích  009:07 - 24/4/2022
hay

ĐÁNH GIÁ


ĐIỂM TRUNG BÌNH

5
1 Đánh giá
Code rất tốt (1)
Code tốt (0)
Code rất hay (0)
Code hay (0)
Bình thường (0)
Thành viên
Nội dung đánh giá
23:42 - 12/4/2022
Code rất tốt
Code rất tốt và phù hợp để phát triển

 HỖ TRỢ TRỰC TUYẾN