Theo sách giáo khoa Hóa học 8,
công thức hóa học (CTHH) của hợp chất gồm kí hiệu hóa học của nguyên tố tạo ra
chất chất kèm theo chỉ số (chỉ số lượng nguyên tử). Công thức chung là:
AxByCz….; Trong đó: A, B, C là kí hiệu của nguyên tố; x, y, z là chỉ số, nếu chỉ
số bằng 1 thì không cần ghi. Chẳng hạn: H2O (H2O) là công thức hóa học
của nước, có hai nguyên tố và ba nguyên tử.
Yêu cầu: Nhập từ bàn phím một công thức hóa học của hợp chất. Biết
rằng nguyên tố chỉ có một kí tự được viết hoa nằm trong bảng chữ cái la tinh,
chỉ số không quá 99. Tính và xuất ra màn hình:
a) Số lượng nguyên tố có trong
công thức.
b) Tổng các số nguyên tử trong
công thức.
Ví dụ:
Nhập
từ bàn phím |
Xuất
ra màn hình |
Nhap CTHH = H2O |
a) So nguyen to = 2 b) So nguyen tu = 3 |
Nhap CTHH = C6H12O6 |
a) So nguyen to = 3 b) So nguyen tu = 24 |
CODE THAM KHẢO:
program CTHH;
uses crt;
var s,r: string;
c: char;
kq1, kq2, x, i, n: longint;
begin
clrscr;
write('Nhap CTHH = '); readln(s);
for c:= 'A' to 'Z' do
if pos(c,s) > 0 then kq1:=kq1+1;
i:=length(s);
repeat
if (s[i] in ['1'..'9']) and (s[i-1] in ['1'..'9']) then
begin
r:=s[i-1] + s[i];
val(r,x);
kq2:=kq2+x;
i:=i-3;
end
else if (s[i] in ['1'..'9']) and (s[i-1] in ['A'..'Z']) then
begin
r:=s[i];
val(r,x);
kq2:=kq2+x;
i:=i-2;
end
else
begin
kq2:=kq2+1;
i:=i-1;
end;
until i < 1;
writeln('a) So nguyen to = ', kq1);
writeln('b) So nguyen tu = ', kq2);
readln;
end.
Đăng nhận xét