ΠΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π³ΠΈΠ΄ΡΠΎΠΊΡΠΈΠ΄Π° Ρ ΡΠΎΠΌΠ° (III) ΠΈ ΡΠ΅Π»ΠΎΡΠΈ NaOH
ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊ ΡΡ Π΅ΠΌΠ΅. Probirka (xc-10, yc-50, a1, m2/200.0, clBlue); M1-ΠΌΠ°ΡΡΠ° Π‘r (OH) 3 (Π² Π³ΡΠ°ΠΌΠΌΠ°Ρ ). ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ. __fastcall TForm1: TForm1 (TComponent* Owner). TPointrotate (TPoint p1, TPoint p2, float a). Canvas→FillRect (TRect (0,0, width, height)); ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ. V2. x = V1. x*cos (a) — V1. y*sin (a)+ p2. x; TPoint p6 (x-w/2, y+(int) (h*(1-level))); TPoint p5 (x+w/2, y+(int… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π³ΠΈΠ΄ΡΠΎΠΊΡΠΈΠ΄Π° Ρ ΡΠΎΠΌΠ° (III) ΠΈ ΡΠ΅Π»ΠΎΡΠΈ NaOH (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π³ΠΈΠ΄ΡΠΎΠΊΡΠΈΠ΄Π° Ρ ΡΠΎΠΌΠ° (III) ΠΈ ΡΠ΅Π»ΠΎΡΠΈ NaOH
ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ
Β· Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ.
Β· Π‘ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ.
Β· ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ΅ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²).
Β· ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΡΡΠ΅ΡΡ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Β· Π‘ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠΊΡ
1. ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ
ΠΠΈΠ΄ΡΠΎΠΊΡΠΈΠ΄ Cr (OH) 3 — ΡΠΈΠΏΠΈΡΠ½ΡΠΉ Π°ΠΌΡΠΎΠ»ΠΈΡ, ΡΠ°ΡΡΠ²ΠΎΡΡΠ΅ΡΡΡ Π² ΡΠ΅Π»ΠΎΡΠ°Ρ Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³ΠΈΠ΄ΡΠΎΠΊΡΠΎΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΎΠ² Cr (OH) 4 (-).
ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ:
NaOH + Cr (OH) 3=Na [Cr (OH) 4]
ΠΠΎΡΡΡΠΈΡΠ΅Π½ΡΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ (ΡΠ°Π²Π½Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅).
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠΎΡΠΌΡΠ»ΠΎΠΉ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° (ΠΌΠΎΠ»Ρ) Π²Π΅ΡΠ΅ΡΡΠ²Π° ΠΈΠ· ΠΊΡΡΡΠ° Ρ ΠΈΠΌΠΈΠΈ:
n=m/M,
Π³Π΄Π΅ n — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΠ΅ΡΡΠ²Π° Π² ΠΌΠΎΠ»ΡΡ , m — ΠΌΠ°ΡΡΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΡΠ΅ΡΡΠ²Π° Π² Π³ΡΠ°ΠΌΠΌΠ°Ρ , Π — ΠΌΠΎΠ»ΡΡΠ½Π°Ρ ΠΌΠ°ΡΡΠ° Π²Π΅ΡΠ΅ΡΡΠ²Π° Π² Π³/ΠΌΠΎΠ»Ρ (ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΠΌΠΎΠ»ΡΡΠ½ΡΡ ΠΌΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π±Π»ΠΈΡΡ ΠΠ΅Π½Π΄Π΅Π»Π΅Π΅Π²Π°)
ΠΡΡΡΠ΄Π° Π²ΡΡΠ°ΠΆΠ°Π΅ΠΌ m:
m=n*M
2. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
Π ΠΈΡΡΠ½ΠΎΠΊ 1. ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΡΠ°ΡΡΠ΅ΡΠ° Na [Cr (OH) 4]
ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊ ΡΡ Π΅ΠΌΠ΅.
m1-ΠΌΠ°ΡΡΠ° Π‘r (OH) 3 (Π² Π³ΡΠ°ΠΌΠΌΠ°Ρ )
m2_begin — Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠ° NaOH (Π³)
m2_end — ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠ° NaOH (Π³)
m2_step — ΡΠ°Π³
M1 — ΠΌΠΎΠ»ΡΡΠ½Π°Ρ ΠΌΠ°ΡΡΠ° Cr (OH) 3 (Π³/ΠΌΠΎΠ»Ρ)
M2 — ΠΌΠΎΠ»ΡΡΠ½Π°Ρ ΠΌΠ°ΡΡΠ° NaOH (Π³/ΠΌΠΎΠ»Ρ)
M3 — ΠΌΠΎΠ»ΡΡΠ½Π°Ρ ΠΌΠ°ΡΡΠ° Na [Cr (OH) 4] (Π³/ΠΌΠΎΠ»Ρ)
m3_max — ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎΡΡ Na [Cr (OH) 4] (Π³)
m3 — ΠΌΠ°ΡΡΠ° ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎΡΡ Na [Cr (OH) 4] (Π³)
3. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
Π ΠΈΡΡΠ½ΠΎΠΊ 2. ΠΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠ°Π±Π»ΠΈΡΡ
Π ΠΈΡΡΠ½ΠΎΠΊ 3. ΠΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ°ΠΏΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π΄Π²ΡΡ Π²Π΅ΡΠ΅ΡΡΠ² — Π³ΠΈΠ΄ΡΠΎΠΊΡΠΈΠ΄Π° Ρ ΡΠΎΠΌΠ° (III) ΠΈ ΡΠ΅Π»ΠΎΡΠΈ NaOH. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (ΠΌΠ°ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π²Π΅ΡΠ΅ΡΡΠ²) ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ°ΡΡ, Π²ΡΡΠ°ΠΆΠ΅Π½Π½ΡΡ Π² Π³ΡΠ°ΠΌΠΌΠ°Ρ ) ΠΎΠ±ΡΠ°Π·ΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Na [Cr (OH) 4] Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ±ΠΈΡΠΊΠ΅ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΡΠ΅Ρ) ΠΈ ΡΠ΅Π»ΠΎΡΠΈ NaOH Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ±ΠΈΡΠΊΠ΅ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ).
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
// ;
#include
#pragma hdrstop
#include «Unit1.h»
#include «math.h»
// ;
#pragma package (smart_init)
#pragma resource «*.dfm»
TForm1 *Form1;
float m1, m2, m3, m2_begin, m2_end, m2_step, m3_max, a1, m3_end;
constfloat M1 =103;
constfloat M2 =40;
constfloat M3 =143;
// ;
__fastcall TForm1:TForm1 (TComponent* Owner)
:TForm(Owner)
{
}
// ;
void __fastcall TForm1: Button1Click (TObject*Sender)
{
m1 =StrToFloat (Edit1->Text);
m2_begin =StrToFloat (Edit2->Text);
m2_end =StrToFloat (Edit3->Text);
m2_step =StrToFloat (Edit4->Text);
m3_max = m1*M3/M1;
StringGrid1->Cells[0] [0]= «Iannauaei? eNaOH»;
StringGrid1->Cells[1] [0]= «Ianna Na [Cr (OH) 4]»;
StringGrid1->RowCount=1000;
introwsCount=0;
floateps=0.1;
Chart1->Series[0]->Clear();
//Chart1->
for (float m2 = m2_begin; m2<m2_end+eps; m2+=m2_step)
{
m3 = m2*M3/M2;
if (m3>m3_max)
m3 = m3_max;
StringGrid1->Cells[0] [rowsCount+1]=FloatToStr(m2);
StringGrid1->Cells[1] [rowsCount+1]=FloatToStr(m3);
Chart1->Series[0]->Add (m3, ««, clBlue);
rowsCount++;
}
m3_end = m3;
StringGrid1->RowCount= rowsCount+1;
}
// ;
void __fastcall TForm1: Timer1Timer (TObject*Sender)
{
TCanvas* canvas = Image1->Canvas;
canvas->Brush->Color =clWhite;
int width = Image1->Width;
int height = Image1->Height;
canvas->FillRect (TRect(0,0, width, height));
int xc = width/2;
intyc= height/2;
if (a1<1.57)
{
a1 +=0.1;
m2 = m2_end;
} else
{
if (m3<m3_end)
{
m3 +=3;
m2 = m3*M2/M3;
m2 = m2_end-m2;
TPointp1 (xc-10, yc-50);
TPointp2 (xc-10, yc-40);
TPointp3 (xc, yc);
Image1->Canvas->MoveTo (p1.x, p1.y);
Image1->Canvas->LineTo (p2.x, p2.y);
Image1->Canvas->MoveTo (p2.x, p2.y);
Image1->Canvas->LineTo (p3.x, p3.y);
Image1->Canvas->MoveTo (p3.x, p3.y);
Image1->Canvas->LineTo (p1.x, p1.y);
}
}
Probirka (xc, yc, 0, m3/200.0, clYellow);
Probirka (xc-10, yc-50, a1, m2/200.0, clBlue);
}
// ;
void __fastcall TForm1: Button3Click (TObject*Sender)
{
a1 =0;
m3 =0;
Timer1->Enabled =true;
}
TPointrotate (TPoint p1, TPoint p2, float a)
{
TPointV1 (p1.x-p2.x, p1.y-p2.y);
TPoint V2;
V2.x = V1.x*cos(a) — V1.y*sin(a)+ p2.x;
V2.y = V1.x*sin(a)+ V1.y*cos(a)+ p2.y;
return V2;
}
// ;
void __fastcall TForm1: Probirka (int x, int y, float angle, float level, TColor color)
{
int h =90;
inth_d=10;
int w =20;
Image1->Canvas->Pen->Color =clBlack;
Image1->Canvas->Pen->Width =2;
Image1->Canvas->Brush->Color =clWhite;
TPoint p1 (x+w/2, y);
TPoint p2 (x+w/2, y+h);
TPoint p3 (x-w/2, y+h);
TPoint p4 (x-w/2, y);
TPoint p5 (x+w/2, y+(int) (h*(1-level)));
TPoint p6 (x-w/2, y+(int) (h*(1-level)));
TPoint p7 (x, y+h - (int) (level*h/2));
TPoint pc (x, y);
p1 =rotate (p1, pc, angle);
p2 =rotate (p2, pc, angle);
p3 =rotate (p3, pc, angle);
p4 =rotate (p4, pc, angle);
p5 =rotate (p5, pc, angle);
p6 =rotate (p6, pc, angle);
p7 =rotate (p7, pc, angle);
Image1->Canvas->MoveTo (p1.x, p1.y);
Image1->Canvas->LineTo (p2.x, p2.y);
Image1->Canvas->MoveTo (p2.x, p2.y);
Image1->Canvas->LineTo (p3.x, p3.y);
Image1->Canvas->MoveTo (p3.x, p3.y);
Image1->Canvas->LineTo (p4.x, p4.y);
Image1->Canvas->MoveTo (p5.x, p5.y);
Image1->Canvas->LineTo (p6.x, p6.y);
Image1->Canvas->Brush->Color = color;
Image1->Canvas->FloodFill (p7.x, p7.y, clWhite, fsSurface);
}
// ;
void __fastcall TForm1: Button2Click (TObject*Sender)
{
Timer1->Enabled=false;
}
// ;