Tyumen sanoat universiteti


Download 1.14 Mb.
bet19/21
Sana16.12.2020
Hajmi1.14 Mb.
#168750
1   ...   13   14   15   16   17   18   19   20   21
Bog'liq
Tarjimasi


159

ILOVA 2


Optimal areal zichligini hisoblash dasturi

oyoq changni yutish vositasi

Dastur algoritmi

// O'zgaruvchilarni e'lon qiling

Analitikning Ma0-massa yutish koeffitsienti

Ca - aniqlangan elementning konsentratsiyasi

Sk - yutilish sakrashi

E0 - nurlanish manbasining energiyasi

Ei - aniqlanadigan elementning nurlanish energiyasi

x1, x2 - plomba moddasining yutilish koeffitsientining chegaralari

fi, ksi - xarakterli va tarqoq nurlanishni tanlash burchaklari

Cn - plomba kontsentratsiyasi

d - qo'shimcha absorberning sirt zichligi

qadam - qurilish paytida plomba moddasining massa koeffitsientini o'zgartirish bosqichi

grafik san'at

natija [M + 4] [N] - natijalarni saqlash jadvali

M - grafik chizilgan nuqta soni

N - diagrammalar soni

i, A, A3, B, B3, n, summ - vaqtinchalik o'zgaruvchilar

Boshlang


Qiymatlarni kiritish

ma0, Ca, Sk, E0, Ei, fi, ksi, x1, x2, M, N











+







+











+





+





+











+











-





=

-



=

-

=



-

=

)



gunoh (

bitta


)

gunoh (


*

0

0



*

)

gunoh (



bitta

bitta


bitta

)

gunoh (



*

0

0



* 0

*

*



)

gunoh (


bitta

)

gunoh (



*

0

0



*

bitta


bitta

0

)



gunoh (

bitta


* 0

*

bitta



2018-04-02 121 2

;

bitta



;

2018-04-02 121 2

bitta

2018-04-02 121 2



0

3

2018-04-02 121 2



2018-04-02 121 2

3

3



2018-04-02 121 2

2018-04-02 121 2

3

ksi

fi

Sk

Ei

E

mn

Cn

ksi

Sk

fi

Sk

Ei

E

mn

ma

Cn

Ca

ksi

fi

Sk

Ei

E

ma

Ca

Sk

Ei

E

fi

ma

Ca

d

M

x

x

qadam

Ca

Cn

x

x

mn



Sahifa 160

160

2-ILOVA (davomi)

x mn0 = x


A = ma0 * (1 / sin (fi) + sin (ksi)) * Ca + mn0 (1 / sin (fi) + sin (ksi)) * Cn

B = ma0 * (1 / sin (fi) + sin (ksi) * (E0 / Ei) ^ 3 * 1 / Sk) * Ca + mn0 * (1 / sin (fi) +

+ sin (ksi) * (E0 / Ei) ^ 3) * Cn

n = A / B

natija [i] [0] = n

r = 1


r B3 = B * (- (ma0 * Ca + mn0 * Cn) * (d + r * (- g)))

natija [M + 2] [i] = d + g

n = A / B3

natija [i] [r] = n

r = r + 1

Ha

i = i + 1



yo'q

j


j = 0

natija [M + 3] [j] = natija [0] [0] / natija [0] [j]

j ++

j


summ = 0

j = 0


koeffitsientlarni topish

me'yorlash

va ularni [M + 3] [i] natijasi uchun yozish

Summ = 0


k = 0

k


summ + = natija [k] [j]

k = k + 1

natija [M] [j] = summ / M

j = j + 1

j j = 0


Summ = 0

k = 0


k summ + = (natija [k] [j] -

natija [M] [j]) * (natija [k] [j]-natija [M] [j])

k = k + 1

natija [M + 1] [j] = sqrt (summ /

(M * (M-1)))

natija [M + 1] [i]

j = 0


min = natija [M + 1] [0]

j


min = natija [M + 1] [i];

dopt = natija [M + 2] [i];

gr = i;

Bir qatorni hisoblash



analitik parametrlar

har xil uchun

sirt tekisliklari d

Topish


matematik

hamma uchun kutishlar

grafikalar va yozuvlardan

uning natijasi [M] [j]

yashash

rms


og'ishlar

minimal standart og'ishni qidirish

r x = x1


i = 0

x


Chart1-> seriya [r] ->

AddXY (x, natija [i] [r])

r = r + 1

r = 0


x = x + qadam

i = i + 1

j = j + 1

Natijalarning natijasi

tamom

Plotirovka





Sahifa 161

161

ILOVA 2 Listing

/ * Asosiy shakl moduli * /

# kiritilgan

#pragma hdrstop

# matematikani qo'shib qo'ying

# "Unit1.h" ni o'z ichiga oladi

# "Unit2.h" ni o'z ichiga oladi

# "Unit3.h" ni kiriting

# "Unit4.h" ni o'z ichiga oladi

# "Unit5.h" ni o'z ichiga oladi

# "Unit6.h" ni o'z ichiga oladi

// ------------------------------------------------ ---------------------------

#pragma to'plami (smart_init)

#pragma manbai "* .dfm"

TForm1 * Form1;

// ------------------------------------------------ ---------------------------

__fastcall TForm1 :: TForm1 (TComponent * egasi)

: TForm (Egasi)

{

}



/ * Global o'zgaruvchilar deklaratsiyasi * /

AnsiString manbai, element;

suzuvchi Eopt;

float E0, E00, Mu, Ei, Sk;

void clearStr (TStringGrid * str); // StringGrid tozalash funktsiyasining prototipi

/ * modda tarkibini tanlash uchun so'rovni shakllantirish * /

bekor __fastcall TForm1 :: DBGrid1CellClick (TColumn * ustun)

{

ADOQuery1-> Active = false;



ADOQuery1-> SQL-> Clear ();

ADOQuery1-> SQL-> Qo'shish ("SELECT elements.Name, koncenracia.Koncentr_min, koncenra-

cia.Koncentr_max, elements.E, elements.Sk ");

ADOQuery1-> SQL-> Qo'shish ("FROM elementlaridan INNER JOIN (materiallar INNER JOIN kon-

cenracia ON materials.ID_material = koncenracia.ID_material) ON elements.ID_element =

koncenracia.ID_element ");

ADOQuery1-> SQL-> Qo'shish ("QAYERDA (materials.Name = '" + DBGrid1-> SelectedField-

> AsString + "')");

ADOQuery1-> SQL-> Qo'shish ("ORDER BY материалы. Name DESC;");

ADOQuery1-> Active = true;

Label2-> Caption = DBGrid1-> SelectedField-> AsString;

}

/ * StringGrid tozalash funktsiyasining tavsifi



void clearStr (TStringGrid * str)

{

int i, j;



uchun (i = 1; i RowCount; i ++)

uchun (j = 0; j ColCount; j ++)





Sahifa 162

162

str-> Hujayralar [j] [i] = "";

}

void __fastcall TForm1 :: N3Click (TObject * Sender)



{

Form2-> Caption = "Kimyoviy moddalar";

Form2-> Show ();

}

void __fastcall TForm1 :: N4Click (TObject * Sender)



{

Form3-> Show ();

}

void __fastcall TForm1 :: N6Click (TObject * Sender)



{

Form4-> Show ();

}

void __fastcall TForm1 :: N5Click (TObject * Sender)



{

Form5-> Show ();

}

/ * diagrammalar yaratish uchun shaklni ochish funktsiyasi * /



void __fastcall TForm1 :: SpeedButton6Click (TObject * Sender)

{

uchun (int i = 0; i Chart1-> SeriesCount (); i ++)



{

Form6-> Chart1-> Series [i] -> Clear ();

}

Form6-> Show ();



Form6-> Edit1-> Text = Label16-> Caption;

Form6-> Edit2-> Text = FloatToStr (StrToFloat (Label18-> Caption) / 100);

Form6-> Edit3-> Text = Label20-> Caption;

Form6-> Edit8-> Text = Label10-> Caption;

Form6-> Edit9-> Text = Label9-> Caption;

Form6-> Edit4-> Text = E00;

Form6-> Edit5-> Text = Ei;

}

void __fastcall TForm1 :: SpeedButton4Click (TObject * Sender)



{

SpeedButton4-> Enabled = false;

DBGrid1-> DataSource = DataSource1;

Label1-> Caption = "";

Label2-> Caption = "";

Label14-> Taglavha = "";

Label16-> Caption = "";

Label18-> Caption = "";

Label20-> Caption = "";

DBGrid1-> Columns-> Elements [0] -> Title-> Caption = "Tahlil qilinadigan mahsulotlar turi";

}



Sahifa 163

163

void __fastcall TForm1 :: ToolButton1Click (TObject * Sender)

{

StatusBar1-> SimpleText = GetLongHint (ToolButton1-> Hint);



Panel2-> Visible = true;

}

// ------------------------------------------------ ---------------------------



void __fastcall TForm1 :: ToolButton3Click (TObject * Sender)

{

Form2-> Caption = "Kimyoviy moddalar";



Form2-> Show ();

void __fastcall TForm1 :: ToolButton4Click (TObject * Sender)

{

Form3-> Show ();



}

// ------------------------------------------------ ---------------------------

void __fastcall TForm1 :: ToolButton5Click (TObject * Sender)

{

Form5-> Show ();



}

// ------------------------------------------------ ---------------------------

void __fastcall TForm1 :: SpeedButton3Click (TObject * Sender)

{

Panel1-> Visible = true;



Panel3-> Visible = false;

}

// ------------------------------------------------ ---------------------------



/ * konsentratsiyani kiritish uchun so'rov * /

void __fastcall TForm1 :: SpeedButton8Click (TObject * Sender)

{

agar (DBGrid1-> DataSource == DataSource2)



{AnsiString kontseptsiyasi;

InputQuery ("Tekshirilgan element konsentratsiyasini kiriting", "dan qiymatini kiriting

"+ ADOQuery1-> FieldByName (" koncentr_min ") -> AsString +" oldin "+ ADOQuery1-

> FieldByName ("koncentr_max") -> AsString + "%", konce);

esa (1)

{harakat qilib ko'ring



{

agar ((StrToFloat (konce)> = ADOQuery1-> FieldByName ("koncentr_min") -)

-> AsFloat) && (StrToFloat (konce) <= ADOQuery1-)

-> FieldByName ("koncentr_max") -> AsFloat))

tanaffus;

boshqa


{ShowMessage ("Belgilangan chegaralar ichida raqamni kiriting");

InputQuery ("Tekshirilgan element konsentratsiyasini kiriting", "Qiymatni kiriting

"+ ADOQuery1-> FieldByName (" koncentr_min ") -> AsString +" dan "+ ADOQuery1- ga

> FieldByName ("koncentr_max") -> AsString + "%", konce);

}

}

tutmoq [...]





Sahifa 164

164

{

ShowMessage ("Iltimos, to'g'ri raqamni kiriting");



InputQuery ("Tekshirilgan element konsentratsiyasini kiriting", "dan qiymatini kiriting

"+ ADOQuery1-> FieldByName (" koncentr_min ") -> AsString +" oldin "+ ADOQuery1-

> FieldByName ("koncentr_max") -> AsString + "%", konce);

}

}



Form1-> ClientHeight = 750;

Form1-> ClientWidth = 730;

Panel2-> Visible = false;

Panel3-> Visible = true;

element = DBGrid1-> SelectedField-> AsString;

Label18-> Taglavha = konce;

Label22-> Taglavha = "%";

Label20-> Caption = FloatToStr (SimpleRoundTo (ADOQuery1-> FieldByName ("Sk")) -

> AsFloat, -5));

ADOQuery2-> Active = false;

/ * tekshirilayotgan nurlanish manbalari va ularning energiyalari ro'yxatini olishni so'rash

element * /

ADOQuery2-> SQL-> Clear ();

ADOQuery2-> SQL-> Qo'shish ("SELECT source.Name, source.E0, mu.mu, elements.E, ele-

ments.Sk ");

ADOQuery2-> SQL-> Add ("INFER JOIN manbasidan FROM (elementlar INNER JOIN mu ON el-

ements.ID_element = mu.ID_element) ON source.ID_source = mu.ID_source ");

ADOQuery2-> SQL-> Qo'shish ("QAYERDA (elements.Name = '" + element + "')");

ADOQuery2-> Active = true;

int i = 1;

ikki min, m;

agar (ADOQuery2-> IsEmpty ())

{

ShowMessage ("Xato");



}

boshqa


{

/ * Rd mezoniga muvofiq optimal nurlanish manbasini topish / *

Sk = ADOQuery1-> FieldByName ("Sk") -> AsFloat;

Ei = ADOQuery1-> FieldByName ("E") -> AsFloat;

Label1-> Caption = element + "(" + FloatToStr (Ei) + "eV)";

ADOQuery2-> Birinchi ();

Mu = ADOQuery2-> FieldByName ("Mu") -> AsFloat;

E0 = ADOQuery2-> FieldByName ("E0") -> AsFloat;

source = ADOQuery2-> FieldByName ("Ism") -> AsString;

E00 = ADOQuery2-> FieldByName ("E0") -> AsFloat;

min = 1 / Mu * E0 * E0 * E0 / Ei / Ei / Ei * (1-1 / Sk);

uchun (ADOQuery2-> First () ;! ADOQuery2-> Eof; ADOQuery2-> Keyingi ())





Sahifa 165

165

{

E0 = ADOQuery2-> FieldByName ("E0") -> AsFloat;



Mu = ADOQuery2-> FieldByName ("Mu") -> AsFloat;

m = 1 / Mu * E0 * E0 * E0 / Ei / Ei / Ei * (1-1 / Sk);

agar (min <1)

{

agar (m> min)



{

min = m;


source = ADOQuery2-> FieldByName ("Ism") -> AsString;

E00 = ADOQuery2-> FieldByName ("E0") -> AsFloat;

}

boshqa bo'lsa ((abs (m) -1) <(abs (min) -1))



{

min = m;


source = ADOQuery2-> FieldByName ("Ism") -> AsString;

E00 = ADOQuery2-> FieldByName ("E0") -> AsFloat;

}

}

boshqa



{

agar ((m 1))

{

min = m;


source = ADOQuery2-> FieldByName ("Ism") -> AsString;

E00 = ADOQuery2-> FieldByName ("E0") -> AsFloat;

}

}

i ++;



}

Eopt = min;

Label14-> Caption = manba; / * optimal nurlanish manbai

Label21-> Caption = "(" + FloatToStr (SimpleRoundTo (E00, -5)) + "eV)";

}

/ * Analitikning massa yutish koeffitsientini olish to'g'risida so'rov



* /

ADOQuery3-> Active = false;

ADOQuery3-> SQL-> Clear ();

ADOQuery3-> SQL-> Qo'shish ("SELECT mu.mu");

ADOQuery3-> SQL-> Add ("INNER JOIN manbasidan" (INNER JOIN elementlari (materiallar

INCER JOIN koncenracia ON materiallari.ID_material = koncenracia.ID_material) ON ele-

ments.ID_element = koncenracia.ID_element) INNER JOIN mu ON ON elements.ID_element =

mu.ID_element) ON source.ID_source = mu.ID_source ");

ADOQuery3-> SQL-> Qo'shish ("QAYERDA (elements.name = '" + element + "');");

ADOQuery3-> Active = true;

ADOQuery3-> Birinchi ();

Label16-> Caption = ADOQuery3-> FieldByName ("mu") -> AsString;

// ------------------------------------------------ -----------------------------------



Sahifa 166

166

/ * optimal uchun plomba moddasining massa koeffitsientlari qiymatlari asosidan ajratib olish

nurlanish manbai * /

ADOQuery3-> Active = false;

ADOQuery3-> SQL-> Clear ();

ADOQuery3-> SQL-> Add ("SELECT elements.Name, koncenracia.Koncentr_min, koncenra-

cia.Koncentr_max, source.Name, mu.mu ");

ADOQuery3-> SQL-> Add ("INNER JOIN manbasidan" (INNER JOIN elementlari (materiallar

INCER JOIN koncenracia ON materiallari.ID_material = koncenracia.ID_material) ON ele-

ments.ID_element = koncenracia.ID_element) INNER JOIN mu ON ON elements.ID_element =

mu.ID_element) ON source.ID_source = mu.ID_source ");

ADOQuery3-> SQL-> Qo'shish ("QAYERDA (source.Name = '" + source + "') VA (materi-

als.Name = '"+ Label2-> Taglavha +"') "+" VA (elementlar. NOM YOQMAYDI '"+ Label1-

> Taglavha + "')");

ADOQuery3-> SQL-> Qo'shish ("ORDER BY mu.mu DESC;");

ADOQuery3-> Active = true;

i = 1;

clearStr (StringGrid1);



StringGrid1-> Hujayralar [0] [0] = "Modda";

StringGrid1-> Hujayralar [1] [0] = "Min. Konsentratsiya";

StringGrid1-> Hujayralar [2] [0] = "Maksimal konsentratsiya";

StringGrid1-> Hujayralar [3] [0] = "Absorbsiya koeffitsienti";

StringGrid1-> RowCount = ADOQuery3-> RecordCount + 1;

uchun (ADOQuery3-> First () ;! ADOQuery3-> Eof; ADOQuery3-> Keyingi ())

{StringGrid1-> Hujayralar [0] [i] = ADOQuery3-> FieldByName ("elements.Name") -> AsString;

StringGrid1-> Hujayralar [1] [i] = FloatToStr (SimpleRoundTo (ADOQuery3-)

> FieldByName ("Koncentr_min") -> AsFloat, -4));

StringGrid1-> Hujayralar [2] [i] = FloatToStr (SimpleRoundTo (ADOQuery3-)

> FieldByName ("Koncentr_max") -> AsFloat, -4));

StringGrid1-> Hujayralar [3] [i] = FloatToStr (SimpleRoundTo (ADOQuery3-> FieldByName ("mu")) -

> AsFloat, -4));

i ++;


}

// to'lov

// eng kam

// va maksimal massa

// plomba koeffitsienti

ikkilangan u = 100-StrToFloat (Label18-> Taglavha), maksimal;

min = 0;

max = 0;


uchun (int i = 1; i RowCount; i ++)

{if (StrToFloat (StringGrid1-> Hujayralar [2] [i])

{

u = u-StrToFloat (StringGrid1-> Hujayralar [2] [i]);



max + = StrToFloat (StringGrid1-> Cells [2] [i]) / 100 * StrToFloat (StringGrid1-> Cells [3] [i]);

}

boshqa



{max + = u / 100 * StrToFloat (StringGrid1-> Hujayralar [3] [i]);

tanaffus;

}



Sahifa 167

167

}

Label9-> Caption = FloatToStr (max);



u = 100-StrToFloat (Label18-> Taglavha);

uchun (int i = StringGrid1-> RowCount-1; i> 1; i--)

{if (StrToFloat (StringGrid1-> Hujayralar [2] [i])

{

u = u-StrToFloat (StringGrid1-> Hujayralar [2] [i]);



min + = StrToFloat (StringGrid1-> Cells [2] [i]) / 100 * StrToFloat (StringGrid1-> Cells [3] [i]);

}

boshqa



{min + = u / 100 * StrToFloat (StringGrid1-> Hujayralar [3] [i]);

tanaffus;

}

}

Label10-> Caption = FloatToStr (min);



}

agar (DBGrid1-> DataSource == DataSource1)

{

SpeedButton4-> Enabled = true;



Label11-> Caption = "Tekshiriladigan moddani tanlang";

ADOQuery1-> SQL-> Clear ();

ADOQuery1-> SQL-> Qo'shish ("SELECT elements.Name, koncenracia.Koncentr_min, koncenra-

cia.Koncentr_max, elements.E, elements.Sk ");

ADOQuery1-> SQL-> Qo'shish ("FROM elementlaridan INNER JOIN (materiallar INNER JOIN kon-

cenracia ON materials.ID_material = koncenracia.ID_material) ON elements.ID_element =

koncenracia.ID_element ");

ADOQuery1-> SQL-> Qo'shish ("QAYERDA (materials.Name = '" + DBGrid1-> SelectedField-

> AsString + "')");

ADOQuery1-> SQL-> Qo'shish ("ORDER BY материалы. Name DESC;");

ADOQuery1-> SQL-> SaveToFile ("test.txt");

ADOQuery1-> Active = true;

Label2-> Caption = DBGrid1-> SelectedField-> AsString;

DBGrid1-> DataSource = DataSource2;

DBGrid1-> Ustunlar-> Mahsulotlar [0] -> Sarlavha-> Sarlavha = "Kimyoviy elementlar";

}

}



void __fastcall TForm1 :: SpeedButton7Click (TObject * Sender)

{

Panel1-> Visible = false;



Panel3-> Visible = true;

}

// ------------------------------------------------ ---------------------------



void __fastcall TForm1 :: SpeedButton5Click (TObject * Sender)

{

Panel3-> Visible = false;



Panel2-> Visible = true;

}



Sahifa 168

Download 1.14 Mb.

Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling