{Nacteni periodicke soustavy prvku ze souboru}
procedure CtiPsp;
var i: integer;
st2: string[2];
ch1,ch2: char;
s: text;
begin
assign(s,'Mndljv.txt'); reset(s);
repeat
readln(s,st2)
until(st2='##');
for i:=1 to mpc do begin
repeat
read(s,ch1)
until(ch1<>' ');
with Psp[i] do begin
readln(s,ch2,m);
znacka:=ch1+ch2;
writeln(znacka,m)
end
end;
end;
{Vytvori molekulu methanu}
procedure Methan(var M: Molekula);
var i: integer;
begin
with M do begin
nazev:='Methan';
na:=5;
{Uhlik}
with atm[1] do begin
N:=6;
vaz[1]:=2;
vaz[2]:=3; vaz[3]:=4; vaz[4]:=5; vaz[5]:=0;
R[1]:=0.0;
R[2]:=0.0; R[3]:=0.0;
end;
{Vodiky}
for i:=2 to 5 do
with atm[i]
do begin
N:=1;
vaz[1]:=1; vaz[2]:=0;
R[1]:=0.0; R[2]:=0.0; R[3]:=0.0;
end;
atm[2].R[1]:=1.0; atm[2].R[3]:=1.0;
atm[3].R[1]:=-1.0; atm[3].R[3]:=1.0;
atm[4].R[2]:=1.0; atm[4].R[3]:=-1.0;
atm[5].R[2]:=-1.0; atm[5].R[3]:=-1.0;
end;
end;
{Vytvori molekulu CO2}
procedure CO2(var M: Molekula);
var i: integer;
begin
with M do begin
nazev:='Oxid uhlicity';
na:=3;
{Uhlik}
with atm[1] do begin
N:=6;
vaz[1]:=2;
vaz[2]:=3; vaz[3]:=0;
R[1]:=1.0;
R[2]:=1.0; R[3]:=1.0;
end;
{Kyslik1}
with atm[2] do begin
N:=8;
vaz[1]:=1;
vaz[2]:=0;
R[1]:=2.0;
R[2]:=2.0; R[3]:=2.0;
end;
{Kyslik2}
with atm[3] do begin
N:=8;
vaz[1]:=1;
vaz[2]:=0;
R[1]:=0.0;
R[2]:=0.0; R[3]:=0.0;
end;
end;
end;
{Vypocet teziste molekuly}
Procedure Teziste(M:Molekula; var t:Vektor;
var hm: real);
var s: Vektor;
i: integer;
mass: real;
begin
s[1]:=0.0; s[2]:=0; s[3]:=0;
hm:=0.0;
with M do for i:=1 to na do begin
mass:=Psp[atm[i].N].m;
s[1]:=s[1]+mass*atm[i].R[1];
s[2]:=s[2]+mass*atm[i].R[2];
s[3]:=s[3]+mass*atm[i].R[3];
hm:=hm+mass;
end;
t[1]:=s[1]/hm;
t[2]:=s[2]/hm;
t[3]:=s[3]/hm;
end;
begin
CtiPsp;
{Methan}
Methan(mol);
Writeln('MOLEKULA: ',mol.nazev);
Teziste(mol,x,mm);
Writeln(' Teziste=',x[1]:10:3,x[2]:10:3,x[3]:10:3);
{CO2}
CO2(mol);
Writeln('MOLEKULA: ',mol.nazev);
Teziste(mol,x,mm);
Writeln(' Teziste=',x[1]:10:3,x[2]:10:3,x[3]:10:3);
{}
writeln('======== stiskni klavesu Enter
========');
readln;
end.