30/09/2018, 19:56
Xin bai tap ve c++
mọi người ơi ai có bài tập cơ bản về c++ k cho mình xin id càng nhiều càng tốt
mình đang tập luyện để viết c++
xin cám ơn mọi người nhiều
Bài liên quan
mọi người ơi ai có bài tập cơ bản về c++ k cho mình xin id càng nhiều càng tốt
mình đang tập luyện để viết c++
xin cám ơn mọi người nhiều
Mình nghĩ muốn tập luyện thì bạn không nên làm theo hình thức bài tập. Sao bạn không thử viết 1 cái app xem, tuy nhỏ nhưng bạn sẽ học được rất nhiều đấy
Mình cũng đã viết 1 cái app lúc học Java và bây giờ thì thực sự rất cảm ơn cái Project đó
thử viết 1 chương trình cân bằng phản ứng hóa học xem. Ít ra cũng ngốn 2-3 ngày đó Yêu cầu là phương trình đã cân bằng phải là số nguyên (ko phải số thập phân).
vd:
input
H2O + CO2 = H2CO3
K2Cr2O7 + H2SO3 + HCl = KCl + Cr2(SO4)3 + H2O
K4Fe(CN)6 + KMnO4 + H2SO4 = KHSO4 + Fe2(SO4)3 + MnSO4 + HNO3 + CO2 + H2O
C5H12 + O2 = CO2 + H2O
Zn + HCl = ZnCl2 + H2
Ca(OH)2 + H3PO4 = Ca3(PO4)2 + H2O
FeCl3 + NH4OH = Fe(OH)3 + NH4Cl
K4[Fe(SCN)6] + K2Cr2O7 + H2SO4 = Fe2(SO4)3 + Cr2(SO4)3 + CO2 + H2O + K2SO4 + KNO3
output:
H2O + CO2 = H2CO3
K2Cr2O7 + 3H2SO3 + 2HCl = 2KCl + Cr2(SO4)3 + 4H2O
10K4Fe(CN)6 + 122KMnO4 + 299H2SO4 = 162KHSO4 + 5Fe2(SO4)3 + 122MnSO4 + 60HNO3 + 60CO2 + 188H2O
C5H12 + 8O2 = 5CO2 + 6H2O
Zn + 2HCl = ZnCl2 + H2
3Ca(OH)2 + 2H3PO4 = Ca3(PO4)2 + 6H2O
FeCl3 + 3NH4OH = Fe(OH)3 + 3NH4Cl
6K4[Fe(SCN)6] + 97K2Cr2O7 + 355H2SO4 = 3Fe2(SO4)3 + 97Cr2(SO4)3 + 36CO2 + 355H2O + 91K2SO4 + 36KNO3
cho e xin thuật toán can bằng đi a
phải giải 1 ma trận
ví dụ
Zn + HCl = ZnCl2 + H2
sẽ có 4 ẩn:
aZn + bHCl = cZnCl2 + dH2
cân bằng Zn ta có phương trình:
a = c
cân bằng H:
b = 2d
cân bằng Cl:
b = 2c
3 phương trình, 4 ẩn, phải gán 1 giá trị cho 1 ẩn. Ở đây cứ cho là b = 1. Suy ra d = 1/2, c = 1/2, a = 1/2. Sau đó phải biến mấy giá trị thập phân thành số nguyên, ở đây nhân 2 hết lên: a=1, b=2, c=1, d=1.
giải tay thì lẹ vậy, nhưng để máy giải thì phải tạo 1 phương trình ma trận AX = B, ở đây A là ma trận 3x3, X là ma trận 3x1 chứa [a, b, c]T, B sẽ là giá trị tương ứng của d.
a = c
b = 2d
b = 2c
viết lại là
1a + 0b - 1c = 0d
0a + 1b + 0c = 2d
0a + 1b - 2c = 0d
ma trận A là
1 0 -1
0 1 0
0 1 -2
ma trận B là
0
2
0
rồi cho máy giải thôi kết quả có thể là số thập phân, phải tìm cách chuyển nó về số nguyên (đừng dùng float/double mà viết 1 class PhanSo riêng). Giải xong sẽ có các giá trị a, b, c, ko có giá trị của d, ở đây d=1 (vì khi tạo ma trận B ta lấy 0 2 0 mà bỏ qua d, tức là mặc định giá trị d=1).
để giải ma trận thì ở đây ma trận nhỏ, xài LU factorization cho chính xác, hoặc xài bất cứ thư viện nào cho phép tính toán ma trận chứa PhanSo.
trên /r/dailyprogrammer cũng có challenge tương tự nè: https://www.reddit.com/r/dailyprogrammer/comments/3oz82g/20151016_challenge_236_hard_balancing_chemical/
độ khó có 3 mức là beginner - intermediate - hard. Bài này mod nó gắn mác “hard” là vì ngốn thời gian thôi. Chứ biết cách giải rồi thì cũng ko khó như mấy hard problems khác đâu
vô /r/dailyprogrammer có vài trăm challenge từ dễ tới khó, tha hồ mà vọc Mấy cái hard thì đọc thôi chứ làm thì bó tay
Với sức mạnh của máy tính việc khéo léo trong vét cạn là giải pháp hoàn thoàn có thể
còn bài nào dễ hơn nữa không hả mấy bác