![]() |
|
|
Ðåôåðàò: Àâòîìàòèçèðîâàííàÿ ñèñòåìà ðàñïðåäåëåíèÿ ìåñò è îöåíîê êà÷åñòâà îëèìïèàäíûõ çàäàíèéLabel2.Caption:='Êîëè÷åñòâî áëîêîâ çàäà÷ - '+Bcon; MCon:=ReadString('MARK_CONFIG','MARKS_TYPE',Default); SortType:=ReadString('SORT_CONFIG','SORT_TYPE',Default); if MCon='ONE_IN_ONE' then begin NumMarks:=StrToFloat(ReadString('MARK_CONFIG','MARKS_VALUE',Default)); Label3.Caption:='Îáùèé áàëë äëÿ âñåõ çàäà÷ ðàâåí '+FloatToStr(NumMarks); end; if SortType='1' then Label4.Caption:='Ñëàáûé êîëëåêòèâ (1,2,3)'; if SortType='2' then Label4.Caption:='Ñèëüíûé êîëëåêòèâ (1,3,2)'; if SortType='3' then Label4.Caption:='Ñìåøàííûé êîëëåêòèâ'; end; Conf1.Free; except Application.MessageBox('Îøèáêà ÷òåíèÿ èç INI-ôàéëà. Ïðîâåðüòå êîíôèãóðàöèþ.','Îøèáêà',mb_Ok+mb_IconHand); Exit; end; try with Query1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from "'+Form1.Table1.TableName+'"'); ExecSQL; end; Query1.Active:=True; Chart1.Enabled:=True; DBGrid1.Enabled:=True; RadioGroup1.Enabled:=True; except Application.MessageBox('Îøèáêà èíèöèàëèçàöèè ÁÄ. Âîçìîæíî íå óñòàíîâëåí BDE, èëè áàçà íå îòêðûòà.','Îøèáêà',mb_Ok+MB_ICONHAND); Chart1.Enabled:=False; DBGrid1.Enabled:=False; RadioGroup1.Enabled:=False; Exit; end; if Query1.RecordCount=0 then begin Application.MessageBox(' ÁÄ íåò íè îäíîé çàïèñè.','Ñîîáùåíèå',mb_Ok+MB_ICONASTERISK); RadioGroup1.Enabled:=False; Exit; end; try with Query1 do begin First; for i:=1 to RecordCount do begin if BCon='3' then begin blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2']; blocks[2]:=FieldValues['MARK3']+FieldValues['MARK4']; blocks[3]:=FieldValues['MARK5']+FieldValues['MARK6']; param[1]:=(blocks[1]+blocks[2]+blocks[3])-3*NumMarks; param[2]:=2*(blocks[2]-0.5*(blocks[1]+blocks[3])); param[3]:=(blocks[3]-blocks[1])+NumMarks; end; if Bcon='2' then begin blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2']+FieldValues['MARK3']; blocks[2]:=FieldValues['MARK4']+FieldValues['MARK5']+FieldValues['MARK6']; blocks[3]:=0; param[1]:=(blocks[1]+blocks[2])-3*NumMarks; param[2]:=(blocks[2]-blocks[1])+NumMarks; param[3]:=0; end; if Bcon='1' then begin blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2']+FieldValues['MARK3']+FieldValues['MARK4']+FieldValues['MARK5']+FieldValues['MARK6']; blocks[2]:=0; blocks[3]:=0; param[1]:=blocks[1]-NumMarks; param[2]:=0; param[3]:=0; end; Edit; FieldValues['PARAM1']:=param[1]; FieldValues['PARAM2']:=param[2]; FieldValues['PARAM3']:=param[3]; Next; end; end; except Application.MessageBox('Íåèçâåñòíàÿ îøèáêà!','Îøèáêà',mb_Ok+MB_ICONHAND); Exit; end; try with Query1 do begin Active:=False; SQL.Clear; SQL.Add('select * from "'+Form1.Table1.TableName+'"'); SQL.Add('order by PARAM1 desc, PARAM2 desc, PARAM3 desc'); ExecSQL; end; DataSource1.DataSet:=Query1; DataSource1.Enabled:=True; DBGrid1.DataSource:=DataSource1; DBGrid1.Enabled:=True; Query1.Active:=True; except Application.MessageBox('Îøèáêà âûïîëíåíèÿ ñîðòèðîâêè ó÷àñòíèêîâ. Ïðîâåðüòå êîíôèãóðàöèþ.','Îøèáêà',mb_Ok+MB_ICONHAND); Exit; end; end; procedure TForm5.BitBtn1Click(Sender: TObject); begin ModalResult:=mrOk; end; procedure TForm5.RadioGroup1Click(Sender: TObject); var SortStr:string; begin case RadioGroup1.ItemIndex of 0: SortStr:='order by PARAM1 desc'; 1: SortStr:='order by PARAM2 desc'; 2: SortStr:='order by PARAM3 desc'; 3: SortStr:='order by PARAM1 desc,PARAM2 desc,PARAM3 desc'; end; if (SortType='1') and (RadioGroup1.ItemIndex=3) then SortStr:='order by PARAM1 desc, PARAM3 desc, PARAM3 desc'; with Query1 do begin Active:=False; SQL.Clear; SQL.Add('select * from "'+Form1.Table1.TableName+'"'); SQL.Add(SortStr); ExecSQL; Active:=True; end; end; procedure TForm5.N11Click(Sender: TObject); var i,j,NumI:integer; ind,per:double; GrPar, GrPercent, parm:array[1..200] of double; begin
NumI:=StrToInt(FloatToStr(NumMarks)); for i:=0 to 200 do begin GrPar[i]:=0; GrPercent[i]:=0; parm[i]:=0; end; per:=0; ind:=0; Query1.First; if Sender=N11 then begin
for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['PARAM1']; Query1.Next; end; ind:=-3*NumMarks; for i:=1 to 6*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Ïàðàìåòð 1'; Chart1.BottomAxis.Minimum:=-3*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 6*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; end; if Sender=N21 then begin for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['PARAM2']; Query1.Next; end; ind:=-2*NumMarks; for i:=1 to 4*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Ïàðàìåòð 2'; Chart1.BottomAxis.Minimum:=-2*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 4*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; end; if Sender=N31 then begin for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['PARAM3']; Query1.Next; end; ind:=-1*NumMarks; for i:=1 to 2*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Ïàðàìåòð 3'; Chart1.BottomAxis.Minimum:=-1*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 2*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; end; if Sender=N1 then begin for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['SUMMARK']; Query1.Next; end; ind:=0; for i:=1 to 6*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Ñóììàðíûé áàëë'; Chart1.BottomAxis.Minimum:=0*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 6*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; end; Query1.First; end; procedure TForm5.N3Click(Sender: TObject); begin if ColorDialog1.Execute then begin Series1.SeriesColor:=ColorDialog1.Color; end; end; procedure TForm5.N4Click(Sender: TObject); begin if ColorDialog1.Execute then begin Chart1.Gradient.EndColor:=ColorDialog1.Color; Chart1.Gradient.StartColor:=clWhite; end; end; end. Ìîäóëü 6. Êîä ýòîãî ìîäóëÿ îòâå÷àåò çà îêíî è ñàì ïðîöåññ ñîçäàíèÿ ëîêàëüíîé áàçû äàííûõ. unit Unit6; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, DB, DBTables; type TForm6 = class(TForm) Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form6: TForm6; implementation uses Unit1; {$R *.dfm} procedure TForm6.BitBtn1Click(Sender: TObject); begin ModalResult:=mrNo; end; procedure TForm6.BitBtn2Click(Sender: TObject); var Comm:TStringList;
begin try with Form1.Table1 do begin Active := False; DatabaseName := 'Olymp'; TableType := ttParadox; TableName := Edit1.Text; if not Form1.Table1.Exists then begin with FieldDefs do begin Clear; with AddFieldDef do begin Name := 'Counter'; DataType := ftInteger; Required := True; end; with AddFieldDef do begin Name := 'FIO'; DataType := ftString; Size := 25; end; with AddFieldDef do begin Name := 'MARK1'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK2'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK3'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK4'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK5'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK6'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'SUMMARK'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'SCHOOL'; DataType := ftString; Size := 35; end; with AddFieldDef do begin Name := 'PARAM1'; DataType := ftFloat; Required:=False; end; with AddFieldDef do begin Name := 'PARAM2'; DataType := ftFloat; Required:=False; end; with AddFieldDef do begin Name := 'PARAM3'; DataType := ftFloat; Required:=False; end; with AddFieldDef do begin Name := 'PLACE'; DataType := ftInteger; Required:=False; end; end; with IndexDefs do begin Clear; with AddIndexDef do begin Name := ''; Fields := 'COUNTER'; Options := [ixPrimary]; end; with AddIndexDef do begin Name := 'VAL1'; Fields := 'PARAM1'; Options := [ixDescending]; end; with AddIndexDef do begin Name := 'VAL2'; Fields := 'PARAM2'; Options := [ixDescending]; end; with AddIndexDef do begin Name := 'VAL3'; Fields := 'PARAM3'; Options := [ixDescending]; end; end; CreateTable; Application.MessageBox('Ëîêàëüíàÿ áàçà äàííûõ óñïåøíî ñîçäàíà!','Ñîîáùåíèå',mb_OK+mb_IconAsterisk); end else Application.MessageBox('Ëîêàëüíàÿ áàçà äàííûõ óæå ñóùåñòâóåò è îòêðûòà!','Ñîîáùåíèå',mb_OK+mb_IconAsterisk); end; except Application.MessageBox('Îøèáêà ñîçäàíèÿ áàçû äàííûõ!','Âíèìàíèå',mb_OK+mb_IconHand); Exit; end; Form1.Table1.Active:=True; Form1.dsOlymp.DataSet:=Form1.Table1; Form1.DBGrid1.DataSource:=Form1.dsOlymp; Comm:=TStringList.Create; Comm.Clear; Comm.Add(Edit2.Text); Comm.SaveToFile('Bases\'+Edit1.Text+'.olp'); Comm.Free; Form1.Label1.Caption:='Îïèñàíèå ÁÄ: '+Edit2.Text; ModalResult:=mrNo; end; end. Ìîäóëü 6. Ýòîò ìîäóëü îòâå÷àåò çà âåñü ïðîöåññ îöåíêè êà÷åñòâà çàäàíèé.  íåì ðàññ÷èòûâàþòñÿ âñå ïàðàìåòðû, è ñòðîÿòñÿ íåîáõîäèìûå äèàãðàììû. unit Unit7; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, TeEngine, Series, TeeProcs, Chart, DB, DBTables, INIFiles; type TForm7 = class(TForm) Panel1: TPanel; BitBtn1: TBitBtn; Chart1: TChart; Series1: TBarSeries; DataSource1: TDataSource; Query1: TQuery; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; Label4: TLabel; Label5: TLabel; Chart2: TChart; Series2: TBarSeries; Chart3: TChart; Series3: TLineSeries; Series4: TBarSeries; Series5: TBarSeries; Label3: TLabel; Series6: TLineSeries; procedure BitBtn1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form7: TForm7; Cf1:TIniFile; implementation uses Unit1, Unit5, foxsoft; {$R *.dfm} procedure TForm7.BitBtn1Click(Sender: TObject); begin ModalResult:=mrOk; end; procedure TForm7.FormShow(Sender: TObject); var i,j,NumI,kl,kz,nz,gr:integer; ind,per,block1,block2,block3,coun,coun1,coun2,coun3,n1,n2,n3,k:double; p1,p2,p3:array [1..50] of double; GrPar, GrPercent, parm:array[1..200] of double; MCon, Default,maxb:string; sbl1,sbl2,sbl3:double; kn, kp:array[1..3] of double; srbl1,srbl2,srbl3,sdxq1,sdxq2,sdxq3:double; dx1,dx2,dx3,sigm1,sigm2,sigm3,m:double; begin try with Query1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from "'+Form1.Table1.TableName+'"'); ExecSQL; end; Query1.Active:=True;
Chart1.Enabled:=True;
except Application.MessageBox('Îøèáêà èíèöèàëèçàöèè ÁÄ. Âîçìîæíî íå óñòàíîâëåí BDE, èëè áàçà íå îòêðûòà.','Îøèáêà',mb_Ok+MB_ICONHAND); Chart1.Enabled:=False; Exit; end; if Query1.RecordCount=0 then begin Application.MessageBox(' ÁÄ íåò íè îäíîé çàïèñè.','Ñîîáùåíèå',mb_Ok+MB_ICONASTERISK); Exit; end; Cf1:=TIniFile.Create(GetCurrentDir+'\Config.ini'); try with Cf1 do begin MCon:=ReadString('MARK_CONFIG','MARKS_TYPE',Default); if MCon='ONE_IN_ONE' then begin maxb:=ReadString('MARK_CONFIG','MARKS_VALUE',Default); end; MCon:=ReadString('BLOCK_CONFIG','NUM_BLOCKS',Default); end; NumI:=StrToInt(maxb); Cf1.Free; except Application.MessageBox('Îøèáêà ÷òåíèÿ èç INI-ôàéëà. Ïðîâåðüòå êîíôèãóðàöèþ.','Îøèáêà',mb_Ok+mb_IconHand); Exit; end; for i:=0 to 200 do begin GrPar[i]:=0; GrPercent[i]:=0; parm[i]:=0; end; per:=0; ind:=0; Query1.First; for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['SUMMARK']; Query1.Next; end; ind:=0; for i:=1 to 6*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Ñóììàðíûé áàëë'; Chart1.BottomAxis.Minimum:=0*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 6*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; if MCon='2' then begin with Query1 do begin Series2.Clear; Chart2.BottomAxis.Maximum:=RecordCount; Chart2.BottomAxis.Minimum:=0; n1:=0; k:=1; coun:=0; First; for i:=1 to RecordCount do begin block1:=FieldValues['MARK1']+FieldValues['MARK2']+FieldValues['MARK3']; block2:=FieldValues['MARK4']+FieldValues['MARK5']+FieldValues['MARK6']; Series2.AddXY(k,block1-block2); if block1-block2>=0 then coun:=coun+1; Next; k:=k+1; end; end; n1:=coun/Query1.RecordCount; Label1.Caption:='Íàäåæíîñòü ðåàëèçàöèè - '+FloatToStr(n1*100)+'%.'; end; if MCon='3' then begin with Query1 do begin Series2.Clear; Series4.Clear; Series5.Clear; Chart2.BottomAxis.Maximum:=RecordCount+10; Chart2.BottomAxis.Minimum:=0; n1:=0; n2:=0; n3:=0; k:=1; coun:=0; coun2:=0; coun3:=0; First; for i:=1 to RecordCount do begin block1:=FieldValues['MARK1']+FieldValues['MARK2']; block2:=FieldValues['MARK3']+FieldValues['MARK4']; block3:=FieldValues['MARK5']+FieldValues['MARK6']; Series2.AddXY(k,block1-block2); Series4.AddXY(k,block2-block3); Series5.AddXY(k,block1-block3); if block1-block2>=0 then coun1:=coun1+1; if block2-block3>=0 then coun2:=coun2+1; if block1-block3>=0 then coun3:=coun3+1; Next; k:=k+1; end; end; n1:=coun1/Query1.RecordCount; n2:=coun2/Query1.RecordCount; n3:=coun3/Query1.RecordCount; Label1.Caption:='Íàäåæíîñòü ðåàëèçàöèè - '+FloatToStr(Okrugl(n1*100,2))+'%, '+FloatToStr(Okrugl(n2*100,2))+'%, '+FloatToStr(Okrugl(n3*100,2))+'%.'; end; if MCon='1' then begin Series2.Clear; Series4.Clear; Series5.Clear; Label1.Caption:='Ïàðàìåòð íå èìååò ñìûñëà ñ 1 áëîêîì.'; end; Label3.Caption:='Êîëè÷åñòâî áëîêîâ çàäà÷ - '+Mcon; Label5.Caption:='Îáøåå êîëè÷åñòâî ó÷àñòíèêîâ '+IntToStr(Query1.RecordCount)+'.'; Label4.Caption:='Ìàêñèìàëüíûé áàëë ðàâåí '+IntToStr(NumI)+'.'; if MCon<>'1' then begin Query1.First; for i:=1 to Query1.RecordCount do begin p1[i]:=Query1.FieldValues['PARAM1']; p2[i]:=Query1.FieldValues['PARAM2']; p3[i]:=Query1.FieldValues['PARAM3']; Query1.Next; end; kl:=0; j:=1; kz:=Query1.RecordCount; nz:=0; gr:=0; for i:=1 to kz do begin with Query1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from "'+Form1.Table1.TableName+'"'); SQL.Add('where (PARAM1='+FloatToStr(p1[j])+') and (PARAM2='+FloatToStr(p2[j])+') and (PARAM3='+FloatToStr(p3[j])+')'); ExecSQL; Active:=True; kl:=Query1.RecordCount; if kl=1 then j:=j+1; if kl>1 then begin j:=j+kl; nz:=nz+kl; gr:=gr+1; end; end; end; Label2.Caption:='Êîýôôèöèåíò ìåñò - '+FloatToStr(Okrugl((kz-nz+gr)/kz,2))+'.'; end else Label2.Caption:='Äëÿ îäíîãî áëîêà íå ðàññ÷èòûâàåòñÿ.'; //This is a demo-code for KN & KP try with Query1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from "'+Form1.Table1.TableName+'"'); ExecSQL; end; Query1.Active:=True; Chart1.Enabled:=True; except Application.MessageBox('Îøèáêà èíèöèàëèçàöèè ÁÄ. Âîçìîæíî íå óñòàíîâëåí BDE, èëè áàçà íå îòêðûòà.','Îøèáêà',mb_Ok+MB_ICONHAND); Chart1.Enabled:=False; Exit; end; sbl1:=0; srbl1:=0; sbl2:=0; srbl2:=0; sbl3:=0; srbl3:=0; dx1:=0; dx2:=0; dx3:=0; sdxq1:=0; sdxq2:=0; sdxq3:=0; sigm1:=0; sigm2:=0; sigm3:=0; Query1.First; if MCon='2' then begin for i:=1 to Query1.RecordCount do begin block1:=Query1.FieldValues['MARK1']+Query1.FieldValues['MARK2']+Query1.FieldValues['MARK3']; block2:=Query1.FieldValues['MARK4']+Query1.FieldValues['MARK5']+Query1.FieldValues['MARK6']; sbl1:=sbl1+block1; sbl2:=sbl2+block2; Query1.Next; end; srbl1:=sbl1/Query1.RecordCount; srbl2:=sbl2/Query1.RecordCount; Query1.First; for i:=1 to Query1.RecordCount do begin block1:=Query1.FieldValues['MARK1']+Query1.FieldValues['MARK2']+Query1.FieldValues['MARK3']; block2:=Query1.FieldValues['MARK4']+Query1.FieldValues['MARK5']+Query1.FieldValues['MARK6']; dx1:=dx1+sqr(block1-srbl1); dx2:=dx2+sqr(block2-srbl2); Query1.Next; end; sdxq1:=dx1/Query1.RecordCount; sdxq2:=dx2/Query1.RecordCount; sigm1:=sqrt(sdxq1); sigm2:=sqrt(sdxq2); m:=StrToFloat(maxb); kn[1]:=((m-srbl1)*((m-srbl1)*srbl1-sqr(sigm1))/(m*sqr(sigm1)-(m-srbl1)*srbl1))-1; kp[1]:=1-((srbl1*((m-srbl1)*srbl1-sqr(sigm1)))/(m*sqr(sigm1)-(m-srbl1)*srbl1)); kn[2]:=((m-srbl2)*((m-srbl2)*srbl2-sqr(sigm2))/(m*sqr(sigm2)-(m-srbl2)*srbl2))-1; kp[2]:=1-((srbl2*((m-srbl2)*srbl2-sqr(sigm2)))/(m*sqr(sigm2)-(m-srbl2)*srbl2)); Series3.Clear; for i:=1 to 2 do Series3.AddXY(kn[i],kp[i]); end; if MCon='1' then begin for i:=1 to Query1.RecordCount do begin block1:=Query1.FieldValues['SUMMARK']; sbl1:=sbl1+block1; Query1.Next; end; srbl1:=sbl1/Query1.RecordCount; Query1.First; for i:=1 to Query1.RecordCount do begin block1:=Query1.FieldValues['SUMMARK']; dx1:=dx1+sqr(block1-srbl1); Query1.Next; end; sdxq1:=dx1/Query1.RecordCount; sigm1:=sqrt(sdxq1); m:=StrToFloat(maxb); kn[1]:=((m-srbl1)*((m-srbl1)*srbl1-sqr(sigm1))/(m*sqr(sigm1)-(m-srbl1)*srbl1))-1; kp[1]:=1-((srbl1*((m-srbl1)*srbl1-sqr(sigm1)))/(m*sqr(sigm1)-(m-srbl1)*srbl1)); Series3.AddXY(kn[1],kp[1]); end; if MCon='3' then begin for i:=1 to Query1.RecordCount do begin block1:=Query1.FieldValues['MARK1']+Query1.FieldValues['MARK2']; block2:=Query1.FieldValues['MARK3']+Query1.FieldValues['MARK4']; block3:=Query1.FieldValues['MARK5']+Query1.FieldValues['MARK6']; sbl1:=sbl1+block1; sbl2:=sbl2+block2; sbl3:=sbl3+block3; Query1.Next; end; srbl1:=sbl1/Query1.RecordCount; srbl2:=sbl2/Query1.RecordCount; srbl3:=sbl3/Query1.RecordCount; Query1.First; for i:=1 to Query1.RecordCount do begin block1:=Query1.FieldValues['MARK1']+Query1.FieldValues['MARK2']; block2:=Query1.FieldValues['MARK3']+Query1.FieldValues['MARK4']; block3:=Query1.FieldValues['MARK5']+Query1.FieldValues['MARK6']; dx1:=dx1+sqr(block1-srbl1); dx2:=dx2+sqr(block2-srbl2); dx3:=dx3+sqr(block3-srbl3); Query1.Next; end; sdxq1:=dx1/Query1.RecordCount; sdxq2:=dx2/Query1.RecordCount; sdxq3:=dx3/Query1.RecordCount; sigm1:=sqrt(sdxq1); sigm2:=sqrt(sdxq2); sigm3:=sqrt(sdxq3); m:=StrToFloat(maxb); kn[1]:=((m-srbl1)*((m-srbl1)*srbl1-sqr(sigm1))/(m*sqr(sigm1)-(m-srbl1)*srbl1))-1; kp[1]:=1-((srbl1*((m-srbl1)*srbl1-sqr(sigm1)))/(m*sqr(sigm1)-(m-srbl1)*srbl1)); kn[2]:=((m-srbl2)*((m-srbl2)*srbl2-sqr(sigm2))/(m*sqr(sigm2)-(m-srbl2)*srbl2))-1; kp[2]:=1-((srbl2*((m-srbl2)*srbl2-sqr(sigm2)))/(m*sqr(sigm2)-(m-srbl2)*srbl2)); kn[3]:=((m-srbl3)*((m-srbl3)*srbl3-sqr(sigm3))/(m*sqr(sigm3)-(m-srbl3)*srbl3))-1; kp[3]:=1-((srbl3*((m-srbl3)*srbl3-sqr(sigm3)))/(m*sqr(sigm3)-(m-srbl3)*srbl3)); Series3.Clear; for i:=1 to 3 do Series3.AddXY(kn[i],kp[i]); end; m:=0; Series6.Clear; for i:=0 to 20 do begin Series6.AddXY(m,-1*m); m:=m+2; end; end; end. Ìîäóëü 7. Ýòîò ìîäóëü íîñèò âñïîìîãàòåëüíûé õàðàêòåð. Îí íåîáõîäèì äëÿ ïðàâèëüíîãî îêðóãëåíèÿ äåñÿòè÷íûõ ÷èñåë ñ óêàçàííîé ñòåïåíüþ òî÷íîñòè. unit foxsoft; interface uses SysUtils; function Okrugl(cs:double;numb:integer):double; implementation function Okrugl(cs:Double;numb:integer):double; var db,db1,db2:double; i:int64; ii,ink,i1:integer; st:string; begin db:=db-int(cs); ink:=1; for ii:=1 to numb do ink:=ink*10; db1:=db*ink; db2:=cs*ink*100; i:=trunc(int(db2)/100); i1:=Trunc(db2-i*100); if i1>49 then inc(i); Result:=i/ink; end; end. Ëèòåðàòóðà. 1. Êèðüÿêîâ Á. Ñ. Ïåäàãîãè÷åñêàÿ ìîäåëü èíòåëëåêòóàëüíîãî èñïûòàíèÿ øêîëüíèêîâ. – Ðÿçàíü: Èçä-âî «Ðóññêîå ñëîâî», 2002. 2. Êèðüÿêîâ Á. Ñ. Ïåäàãîãè÷åñêàÿ ìîäåëü èíòåëëåêòóàëüíîãî èñïûòàíèÿ ó÷àùèõñÿ/Âåñòíèê Ðÿçàíñêîãî ãîñóäàðñòâåííîãî ïåäàãîãè÷åñêîãî óíèâåðñèòåòà. Ðÿçàíü: ÐÃÏÓ, 2001. 3. Øàðàïêîâ À. Í., Êèðüÿêîâ Á. Ñ. Èññëåäîâàíèå ãóìàííîñòè ðåæèìà ñîðåâíîâàíèÿ íà îëèìïèàäàõ øêîëüíèêîâ. // Ðÿçàíñêèå ôèçè÷åñêèå îëèìïèàäû // Ðÿçàíü: «ÐÈÍÔλ, 2000. Âûïóñê 8. 4. Êèðüÿêîâ Á. Ñ. Ïðîáëåìû ïðîâåäåíèÿ îëèìïèàä â óñëîâèÿõ äèôôåðåíöèàöèè óðîâíÿ ïîäãîòîâêè øêîëüíèêîâ // Ðÿçàíñêèå ôèçè÷åñêèå îëèìïèàäû// Âûïóñê 8, – Ðÿçàíü: Èçä-âî «ÐÈÍÔλ, 2000. 5. Êèðüÿêîâ Á. Ñ. Ïàðàìåòðû èíòåëëåêòóàëüíîãî èñïûòàíèÿ ó÷àùèõñÿ íà îëèìïèàäå// Ðÿçàíñêèå ôèçè÷åñêèå îëèìïèàäû// Âûïóñê 9, – Ðÿçàíü, 2001. 6. Ëèøåð Ð. Delphi. Ñïðàâî÷íèê. – Ïåð. ñ àíãë. – ÑÏá.: «Ñèìâîë-Ïëþñ», 2001. 7. Ôàðîíîâ Â. Â. Delphi 5. Ðóêîâîäñòâî ïðîãðàììèñòà. – Ì.: «Íîëèäæ», 2001. 8. Îçåðîâ Â. Delphi. Ñîâåòû ïðîãðàììèñòîâ. – ÑÏá.: «Ñèìâîë-Ïëþñ», 2003. |
![]() |
||
ÍÎÂÎÑÒÈ | ![]() |
![]() |
||
ÂÕÎÄ | ![]() |
|
Ðåôåðàòû áåñïëàòíî, ðåôåðàò áåñïëàòíî, êóðñîâûå ðàáîòû, ðåôåðàò, äîêëàäû, ðåôåðàòû, ðåôåðàòû ñêà÷àòü, ðåôåðàòû íà òåìó, ñî÷èíåíèÿ, êóðñîâûå, äèïëîìû, íàó÷íûå ðàáîòû è ìíîãîå äðóãîå. |
||
Ïðè èñïîëüçîâàíèè ìàòåðèàëîâ - ññûëêà íà ñàéò îáÿçàòåëüíà. |