Файл: вычислить массу молекулы вещества, заданного химической формулой - Free Pascal
Формулировка задачи:
h2o.out
H2O18
C3H5NO3NO3NO3227
Помогите пожалуйста! Вот, что есть у меняProgram copy_primer; Var f1,f2:text; i,sum, H,N,C,O,E,z: integer; S: string; Begin Assign(f1, 'h2o.in'); Reset(f1); Assign(f2, 'h2o.out'); Rewrite(f2); While not eof(f1) do Begin Readln(f1,s); For i:=1 to Length(s) do if (s[i]='H') then H:=1; if (s[i]='N') then N:=14; if (s[i]='C') then C:=12; if (s[i]='O') then O:=16; Writeln(f2,sum); End; Close(f1); Close(f2); End.
Решение задачи: «Файл: вычислить массу молекулы вещества, заданного химической формулой»
var s: String; i, m, e, n: Integer; begin Assign(input,'h2o.in'); Assign(output,'h2o.out'); Reset(input); Rewrite(output); ReadLn(s); s:=s+' '; m:=0; e:=0; n:=0; for i:=1 to Length(s) do if s[i] in ['H','C','N','O',' '] then begin if n=0 then n:=1; m:=m+e*n; n:=0; case s[i] of 'H': e:=1; 'C': e:=12; 'N': e:=14; 'O': e:=16; else e:=0; end; end else if s[i] in ['0'..'9'] then n:=n*10+Ord(s[i])-Ord('0'); WriteLn(m); end.
Объяснение кода листинга программы
В данном коде на языке Free Pascal выполняется задача по вычислению массы молекулы вещества, заданного химической формулой. При этом предполагается, что ввод данных осуществляется из файла с именем h2o.in
, а вывод результатов производится в файл с именем h2o.out
.
Код считывает строку из файла в переменную s
. Затем происходит обработка этой строки. Если символ является одним из ['H','C','N','O'], то в зависимости от этого значения увеличивается переменная m
. При этом, если символ является первым символом в строке (т.е. n
равно 0), то n
устанавливается равным 1.
Далее, в зависимости от значения символа, переменной e
присваивается значение 1, 12, 14 или 16. Если символ не является ни одним из указанных, то e
устанавливается равным 0.
Если символ является числом от 0 до 9, то значение переменной n
умножается на 10 и увеличивается на значение символа минус значение символа '0' (т.е. от 0 до 9).
В конце программа выводит значение переменной m
в файл h2o.out
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д