Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms


***************** Tahlil ***************



Download 59,89 Kb.
bet4/6
Sana04.04.2022
Hajmi59,89 Kb.
#528031
1   2   3   4   5   6
Bog'liq
dastur holati

***************** Tahlil ***************
unit Tahlil;
interface
USES
SysUtils, Dialogs;
TYPE
BinMat = array[0..100,0..100] of integer;
TestersMas = array[1..100] of string[255];
ParMat = array[1..4,1..100]of real;
KorMat = array[1..100,1..100]of real;
VAR
Matrix,Matrix1,Matrix2: BinMat;
NadMat: BinMat;
Matrix3:KorMat;
Testers: TestersMas;
Matrix4: ParMat;
CountOfQuestions, CountOfTesters:integer;
NN, MM, N2, N1, M1, M2: integer;
Sx2:Real;//äèñïåðñèÿ
Sx:Real;// ñòàíäàðòíîå îòêëîíåíèå
rt1,rt2,rt3:real;

Procedure GetBinMat(var Matrix: BinMat; var Testers: TestersMas);


Procedure GetRedBinMat(var Matrix1:BinMat; var Matrix2:BinMat;
var Matrix4: ParMat);
Procedure Disp(var Sx2:real;var Sx :real);
Procedure GetKorMat(var Matrix3:KorMat);
Procedure NadTest(var rt1,rt2,rt3:real; var NadMat: BinMat);
Procedure ShowResults;
implementation
Uses Unit1, Classes;
Procedure NadTest(var rt1,rt2,rt3:real; var NadMat: BinMat);
var
i,j,Chet,Nech,Chet2,Nech2,ChetNech:integer;
R1,pjqj:real;
begin
//NadMat
for i := 0 to NN do
for j := 0 to MM do
NadMat[i,j] := Matrix2[i,j];
for i := 1 to NN do
Begin
Chet := 0;
Nech := 0;
for j := 1 to (MM div 2)+1 do
begin
Chet := Chet + NadMat[i,2*j];
Nech := Nech + NadMat[i,2*j-1];
end;
NadMat[i,MM+1] := Chet;
NadMat[i,MM+2] := Nech;
NadMat[i,MM+3] := sqr(Chet);
NadMat[i,MM+4] := sqr(Nech);
End;
NadMat[NN+1,MM+1] := 0;
NadMat[NN+1,MM+2] := 0;
NadMat[NN+1,MM+3] := 0;
NadMat[NN+1,MM+4] := 0;
for i := 1 to NN do
begin
NadMat[NN+1,MM+1] := NadMat[NN+1,MM+1] + NadMat[i,MM+1];
NadMat[NN+1,MM+2] := NadMat[NN+1,MM+2] + NadMat[i,MM+2];
NadMat[NN+1,MM+3] := NadMat[NN+1,MM+3] + NadMat[i,MM+3];
NadMat[NN+1,MM+4] := NadMat[NN+1,MM+4] + NadMat[i,MM+4];
end;
//rt3
ChetNech := 0;
for i := 1 to NN do ChetNech := ChetNech + NadMat[i,MM+1]*NadMat[i,MM+2];
rt1 := (NN*ChetNech-NadMat[NN+1,MM+1]*NadMat[NN+1,MM+2])/
sqrt((NN*NadMat[NN+1,MM+3]-sqr(NadMat[NN+1,MM+1]))*
(NN*NadMat[NN+1,MM+4]-sqr(NadMat[NN+1,MM+2])));
rt1 := 2*rt1/(1+rt1);
//rt2
R1 := 0;
for j := 1 to MM do R1 := R1 + Matrix3[MM+2,j];
R1 := R1/MM;
rt2 := (MM*R1)/(1+(MM-1)*R1);
//rt3
pjqj := 0;
for j := 1 to MM do pjqj := pjqj + Matrix4[3,j];
rt3 := MM*(1-pjqj/sx2)/(MM-1);
end;
Procedure GetKorMat(var Matrix3:KorMat);
var
i,j,tt,Pij,n1,n0:integer;
SS,rpb,X1,X0 : real;
begin
for i := 1 to MM do
for j := 1 to MM do
begin
Pij := 0;
for tt := 1 to NN do if (Matrix2[tt,i] = 1)and(Matrix2[tt,j] = 1) then inc(Pij);
Matrix3[i,j] := (Pij/NN-Matrix4[1,i]*Matrix4[1,j])
/sqrt(Matrix4[3,i]*Matrix4[3,j]);
end;
//rpb
for j := 1 to MM do
Begin
n1 := 0; n0 := 0; X1 := 0; X0 := 0;
for i := 1 to NN do
if Matrix2[i,j] = 1 then
begin
inc(n1);
X1 := X1 + Matrix2[i,MM+1];
end
else
begin
inc(n0);
X0 := X0 + Matrix2[i,MM+1];
end;
X1 := X1/n1;
X0 := X0/n0;
Matrix3[j,MM+1] := (X1-X0)/sqrt((n1*n0)/((n0+n1)*(n1+n0-1)))/Sx;
End;
for j:=1 to MM+1 do
begin
SS := 0;
for i := 1 to MM do SS := SS + Matrix3[i,j];
Matrix3[MM+1,j] := SS;
Matrix3[MM+2,j] := SS/MM;
end;
end;

{------ ôîðìèðóåì áèíàðíóþ ìàòðèöó ðåçóëüòàòîâ òåñòèðîâàíèÿ-------}


{------ è Ô.È. òåñòèðóåìûõ-------}
Procedure GetBinMat(var Matrix: BinMat; var Testers: TestersMas);
var
i,j,i1,j1,j2:integer;
str1, cr : string;
crr : string[1];
begin
if (Form1.CheckBox2.Checked)and(Form1.CheckBox1.Checked = False) then
Begin
AssignFile(output,Form1.Edit3.Text);
reset(output);
readln(output,CountOfTesters,CountOfQuestions);
for i := 1 to CountOfTesters do
begin
for j := 1 to CountofQuestions do
begin
read(output,crr);
Matrix[i,j] := StrToInt(crr);
end;
readln(output);
end;
Close(output);
for i := 1 to CountOfTesters do Matrix[i,0] := i;
for j := 1 to CountOfQuestions do Matrix[0,j] := j;
for i := 1 to CountOfTesters do Testers[i] := IntToStr(i) + '_' + IntToStr(i);
End;
if (Form1.CheckBox1.Checked)and(Form1.CheckBox2.Checked = False) then
Begin
randomize;
CountOfQuestions := StrToInt(Form1.Edit2.text);
CountOfTesters := StrToInt(Form1.Edit1.text);
for i := 1 to CountOfTesters do Matrix[i,0] := i;
for j := 1 to CountOfQuestions do Matrix[0,j] := j;
for i := 1 to CountOfTesters do
for j := 1 to CountOfQuestions do
Matrix[i,j] := random(2);
for i := 1 to CountOfTesters do
Testers[i] := IntToStr(I) + '_' + IntToStr(I);
End;
{ CountOfQuestions := 9;
CountOfTesters := 11;
for i := 1 to CountOfTesters do Matrix[i,0] := i;
for j := 1 to CountOfQuestions do Matrix[0,j] := j;
for i := 1 to CountOfTesters do
for j := 1 to CountOfQuestions do Matrix[i,j] := 0;
Matrix[1,3]:=1;Matrix[1,5]:=1;Matrix[1,7]:=1;Matrix[1,8]:=1;Matrix[1,9]:=1;
Matrix[2,5]:=1;Matrix[2,8]:=1;Matrix[2,9]:=1;
Matrix[3,6]:=1;Matrix[3,8]:=1;
Matrix[4,5]:=1;Matrix[4,7]:=1;Matrix[4,8]:=1;Matrix[4,9]:=1;
Matrix[5,1]:=1;Matrix[5,5]:=1;Matrix[5,8]:=1;
Matrix[6,1]:=1;Matrix[6,2]:=1;Matrix[6,3]:=1;Matrix[6,7]:=1;Matrix[6,8]:=1;Matrix[6,9]:=1;
Matrix[7,1]:=1;Matrix[7,2]:=1;Matrix[7,3]:=1;Matrix[7,4]:=1;Matrix[7,5]:=1;Matrix[7,6]:=1;
Matrix[7,7]:=1;Matrix[7,8]:=1;Matrix[7,9]:=1;
Matrix[8,1]:=1;Matrix[8,3]:=1;Matrix[8,4]:=1;Matrix[8,6]:=1;
Matrix[8,7]:=1;Matrix[8,8]:=1;Matrix[8,9]:=1;
Matrix[9,7]:=1;Matrix[9,8]:=1;
Matrix[10,1]:=1;Matrix[10,3]:=1;Matrix[10,5]:=1;Matrix[10,6]:=1;
Matrix[10,7]:=1;Matrix[10,8]:=1;Matrix[10,9]:=1;
Matrix[11,1]:=1;Matrix[11,2]:=1;Matrix[11,3]:=1;Matrix[11,5]:=1;Matrix[11,6]:=1;
Matrix[11,7]:=1;Matrix[11,8]:=1;Matrix[11,9]:=1;
for i := 1 to CountOfTesters do
Testers[i] := IntToStr(I) + '_' + IntToStr(I);}

If (Form1.CheckBox1.Checked = False)and(Form1.CheckBox2.Checked = False) then


Begin
CountOfQuestions := Length(Form1.StringGrid1.Cells[9,1]);
CountOfTesters := Form1.StringGrid1.RowCount - 2;
for i := 1 to CountOfTesters do Matrix[i,0] := i;
for j := 1 to CountOfQuestions do Matrix[0,j] := j;
for i := 1 to CountOfTesters do
begin
Testers[i] := Form1.StringGrid1.Cells[1,i] + ' ' +
Form1.StringGrid1.Cells[2,i];
str1 := Form1.StringGrid1.Cells[8,i];
i1 := 1;
j1 := 1;
cr := '';
for j := 1 to CountOfQuestions do
Begin
j1 := 1;
while str1[i1+j1] <> ';' do inc(j1);
cr := copy(str1,i1,j1);
i1 := i1 + j1 + 1;
j2 := StrToInt(cr);
if Form1.StringGrid1.Cells[9,i][j] = Form1.StringGrid1.Cells[10,i][j] then
Matrix[i,j2] := 1 else Matrix[i,j2] := 0;
End;
end;
End;
{
AssignFile(output,ProgramDir + 'Analysis\'+'analysis.html');
rewrite(output);
writeln(output,'');
writeln(output,'');
writeln(output,'
Test natijalarining binar matritsasi
');
writeln(output,'');
for i := 0 to CountOfTesters do
begin
writeln(output,'');
for j := 0 to CountOfQuestions do
write(output,'');
writeln(output,'');
end;

writeln(output,'

',Matrix[i,j],'
');


writeln(output,' ');

{-------- Âûâîä áèíàðíîé ìàòðèöû ðåçóëüòàòîâ òåñòèðîâàíèÿ--------}


writeln(output,'
1–jadval. Test natijalarninig binar matritsasi
');
writeln(output,'');
writeln(output,'');
writeln(output,'');
writeln(output,'');
for j := 1 to CountOfQuestions do writeln(output,'');
writeln(output,'');
for i := 1 to CountOfTesters do
begin
writeln(output,'');
writeln(output,'');
writeln(output,'');
for j := 1 to CountOfQuestions do
write(output,'');
writeln(output,'');
end;
writeln(output,'
¹F.I.',j,'
',i,'.',Testers[i],'',Matrix[i,j],'
');
{------- Áèíàðíàÿ óïîðÿäî÷åííàÿ ìàòðèöà ------------}
writeln(output,'
2-jadval. Xi va Rj bo`yicha tartiblangan binar matritsa Xi ',
'è ïî Rj

');
writeln(output,'');
writeln(output,'');
writeln(output,'');
for j := 1 to CountOfQuestions do
writeln(output,'');
writeln(output,'');
writeln(output,'');
for i := 1 to CountOfTesters do
begin
writeln(output,'');
write(output,'');
for j := 1 to CountOfQuestions do
if Matrix1[i,j] = 0 then
write(output,'')
else write(output,'');
writeln(output,'');
writeln(output,'');
end;
writeln(output,'');
writeln(output,'');
for j := 1 to CountOfQuestions + 1 do
write(output,'');
writeln(output,'');
writeln(output,'
¹',Matrix1[0,j],'Xi
',Matrix1[i,0],'',Matrix1[i,j],'',Matrix1[i,j],'',Matrix1[i,CountOfQuestions+1],'
Rj',Matrix1[CountOfTesters+1,j],'
');
write(output,'BundaÕi - ishtirokchining bali, ');
write(output, ' – formulaga ko`ra hisoblanadi, ');
write(output,'à Rj - j–topshiriqqa berilgan to`g`ri javob,');
write(output, ' – formulaga ko`ra hisoblanadi.
');
//Analiz
writeln(output,'
');
if (M1 > 1)or(M2 < CountOfQuestions) then
Begin
writeln(output,'
3-jadval. Binar matritsaning statistik ma`lumotlari');
if M1 > 1 then
begin
writeln(output,'
Topshiriq [ ');
for j := 1 to M1-1 do write(output,'¹ ',Matrix1[0,j]);
write(output,'] barcha ishtirokchilar 5 bajardilar. Bu topshiriqlar ',
' test topshiriqlaridan olib tashlanishi kerak, chunki ular juda oson.');
end;
if M2 < CountOfQuestions then
begin
writeln(output,'
Íà çàäàíèÿ [');
for j := M2 to CountOfQuestions do write(output,' ¹',Matrix1[0,j]);
write(output,' ] birorta ham ishtirokchi topshiriqqa javob bera olmadi. Bu topshiriqlar ',
' test topshiriqlaridan olib tashlanishi kerak, chunki ular juda qiyin.');
end;
writeln(output,'Binar matritsanning o`chirilgan ustuni juda oson topshiriqlar',
'(barcha ishtirokchilar bu topshiriqlarga javob berishdi) va juda ham qiyin topshiriq (birorta ham ishtirokchi javob bera olmadi).');
End;
if (N1 > 1)or(N2 < CountOfTesters) then
Begin
if N1 > 1 then
begin
write(output,'
Ishtirokchilar [');
for i := 1 to N1-1 do write(output,' ¹',Matrix1[i,0]);
write(output,' ] barcha topshiriqlarga yaxshi javob berishdi. ');
end;
if N2 < CountOfTesters then
begin
writeln(output,'
Ishtirokchilardan [');
for i := N2 to CountOfTesters do write(output,' ¹',Matrix1[i,0]);
write(output,' ] topshriqga birorta ham ishtirokchi javob bera olmadi. ');
end;
writeln(output,'bu qatorlar jadvaldan o`chirib tashlanishi kerak.');
End;
writeln(output,'
');
{------- Ðåäóöèðîâàííàÿ áèíàðíàÿ ìàòðèöà ------------}
writeln(output,'
3-jadval. Binar matrisaning statistik ma`lumotilari
');
writeln(output,'');
writeln(output,'');
writeln(output,'');
for j := 1 to MM do
writeln(output,'');
writeln(output,'');
writeln(output,'');
writeln(output,'');
for i := 1 to NN do
begin
writeln(output,'');
write(output,'');
for j := 1 to MM do
if Matrix2[i,j] = 0 then
write(output,'')
else write(output,'');
writeln(output,'');
writeln(output,'');
writeln(output,'');
end;
writeln(output,'');
writeln(output,'');
for j := 1 to MM + 2 do
write(output,'');
writeln(output,'');
writeln(output,'');
writeln(output,'');
for j := 1 to MM do
write(output,'');
write(output,'');
write(output,'');
writeln(output,'');
writeln(output,'');
writeln(output,'');
for j := 1 to MM do write(output,'');
write(output,'');
write(output,'');
writeln(output,'');
writeln(output,'');
writeln(output,'');
for j := 1 to MM do write(output,'');
write(output,'');
write(output,'');
writeln(output,'');
writeln(output,'');
writeln(output,'');
for j := 1 to MM do write(output,'');
write(output,'');
write(output,'');
writeln(output,'');
writeln(output,'
¹',Matrix2[0,j],'XiXi2
',Matrix2[i,0],'',Matrix2[i,j],'',Matrix2[i,j],'',Matrix2[i,MM+1],'',Matrix2[i,MM+2],'
Rj',Matrix2[NN+1,j],'
Wj',Matrix2[NN+2,j],'
pj',Matrix4[1,j]:3:2,'
qj',Matrix4[2,j]:3:2,'
pj*qj',Matrix4[3,j]:3:2,'
');
writeln(output,'çäåñü Wj - j-topshiriqqa noto`g`ri javoblar soni, ');
writeln(output,'Wj=N-Rj,
');
writeln(output,' pj va qj - mos ravishda to`g`ri va noto`g`ri javoblar salmog`i,, ');
writeln(output,'pj=Rj/N è qj=1-pj .
');
{---------------- Äèñïåðñèÿ òåñòîâûõ áàëëîâ òåñòèðóåìûõ------------------}
writeln(output,'
Sinovdan o`tuvchilarning ballarini dispersiyasi

');
writeln(output,'
Sinovdan utuvchilarning ballarini dispersiyasining qiymati, test topshiriqlarining sinovdan utuvchilarni bilim',
'darajasini farqlay olish darajasini bildiradi. Yani, agar dispersiya qiymati juda kichik miqdor bulsa, ',
'test topshiriqlarining sinovdan utuvchilarni bilim darajasini farqlay olish darajasi pastligini bildiradi.',
'Agar, dispersiya qiymati juda katta miqdor bulasa, sinovdan utuvchilar guruhining bilim darajasi',
'bir-biridan keskin farq qilishini yoki test topshiriqlarining mazmunida yoki matnida',
'xatolik mavjudligini bildiradi. Agar test topshiriqlari optimal tuzilgan bulsa,',
'ularning taqsimoti normal taqsimotga yaqin buladi.
',
'Sinovdan utuvchilarning ballarini dispersiyasi quyidagicha hisoblanadi:
',
'
(1).
',
'
Dispersiya bilan yana bir muhim parametr-standart chetlashish bogliq:
',
'
(2).
',
'
Qaralayotgan binar matrisa uchun (1) va (2),formulalarning qiymati:
',
'

Download 59,89 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish