VERSION 5.00 Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX" Begin VB.Form Form1 Caption = "Form1" ClientHeight = 2745 ClientLeft = 60 ClientTop = 345 ClientWidth = 5940 LinkTopic = "Form1" ScaleHeight = 2745 ScaleWidth = 5940 StartUpPosition = 3 'Windows の既定値 Begin VB.TextBox 対になった Height = 375 Left = 240 TabIndex = 2 Text = "1.対になったデータのt−検定" Top = 840 Width = 2655 End Begin MSComDlg.CommonDialog CommonDialog1 Left = 3480 Top = 1800 _ExtentX = 847 _ExtentY = 847 _Version = 393216 End Begin VB.CommandButton Command1 Caption = "0; Student (*.js), Others; Teacher (*.txt) file output" Height = 855 Left = 4080 TabIndex = 1 Top = 480 Width = 1695 End Begin VB.TextBox Text1 Height = 375 Left = 3120 TabIndex = 0 Top = 480 Width = 735 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub command1_click() '対のデータのt検定 0入力は学生用,それ以外は教師用ファイル作成' Dim bango As Integer bango = Val(Text1.Text) CommonDialog1.ShowSave Open CommonDialog1.FileName For Output As #1 Dim iSeito(1 To 11, 1 To 2) As Integer Dim t(6 To 10, 1 To 2) As Single Dim k, cF, hEikin, hEihowa, hEkinheho, hYojun, tValue As Single Dim yr, d, iSa, iSa2, i, j, n, m, p, q As Integer q = 0 t(6, 1) = 2.447 t(6, 2) = 3.707 t(7, 1) = 2.365 t(7, 2) = 3.499 t(8, 1) = 2.306 t(8, 2) = 3.355 t(9, 1) = 2.262 t(9, 2) = 3.25 t(10, 1) = 2.228 t(10, 2) = 3.169 Form1.AutoRedraw = True yr = Val(Mid$(Date$, 3, 4)) Print yr Randomize (yr + 10) If bango = 0 Then GoTo NOBANGO Else For m = 1 To 9 Print #1, ""; m; " "; Next m For m = 10 To 99 Print #1, ""; m; " "; Next m Print #1, "
"
End If
NOBANGO:
For m = 1 To 100    '学生数'
For p = 1 To 3      '繰り返し数'
'以下n番号のサイクル変更'
d = m Mod 3
If p = 1 And d = 1 Then n = 11
If p = 1 And d = 2 Then n = 9
If p = 1 And d = 0 Then n = 7
If p = 2 And d = 1 Then n = 7
If p = 2 And d = 2 Then n = 11
If p = 2 And d = 0 Then n = 9
If p = 3 And d = 1 Then n = 9
If p = 3 And d = 2 Then n = 7
If p = 3 And d = 0 Then n = 11
SEITO:
' Form1.Print m, p, n, tValue, "F" '
  iSa = 0
  iSa2 = 0
  For j = 1 To 2
  For i = 1 To n
    k = 0
    If j = 1 And n = 11 Then k = 8
    If j = 1 And n = 9 Then k = 5
    If j = 1 And n = 7 Then k = 2
    iSeito(i, j) = Rnd * 10 + k      'データ作成'
  Next i
  Next j
  For i = 1 To n
    iSa = iSa + (iSeito(i, 1) - iSeito(i, 2))
    iSa2 = iSa2 + (iSeito(i, 1) - iSeito(i, 2)) ^ 2
  Next i
    If iSa <= 0 Then GoTo SEITO
    cF = iSa ^ 2 / n
    hEikin = iSa / n
    hEihowa = iSa2 - cF
    hEkinheho = hEihowa / (n - 1)
    hYojun = (hEkinheho / n) ^ (1 / 2)
    tValue = hEikin / hYojun
' Form1.Print Len(Str(cF)), cF  '
    If Len(Str(cF)) < 10 Then GoTo SEITO
    'n=10は**'
    If n = 11 And Abs(tValue) < t(n - 1, 2) Then
      ' Form1.Print "Fail" '
       GoTo SEITO
    End If
    'n=7はns'
    If n = 7 And Abs(tValue) > t(n - 1, 1) Then
      ' Form1.Print "Fail" '
       GoTo SEITO
    End If
    'n=9は*'
    If n = 9 And (Abs(tValue) > t(n - 1, 2) Or Abs(tValue) < t(n - 1, 1)) Then
      ' Form1.Print "Fail"  '
       GoTo SEITO
    End If
If bango = 0 Then
   GoTo FILEFORSTUDENT
End If
  If m < 10 And p = 1 Then Print #1, ""
  If m > 9 And p = 1 Then Print #1, ""
  Print #1, m;
  Print #1, "-";
  Print #1, p
  For i = 1 To n
   Print #1, i;
  Next i
  Print #1,
  For j = 1 To 2
  For i = 1 To n
   Print #1, iSeito(i, j);
  Next i
   Print #1,
  Next j
  Print #1, "差の計,平均値,(SS-CF=)平方和,平均平方,標準偏差,t値"
  Print #1, iSa;
  Print #1, Format(hEikin, "###.####");
  Print #1, "  ";
  Print #1, iSa2,
  Print #1, "  ";
  Print #1, Format(cF, "###.####");
  Print #1, "  ";
  Print #1, Format(hEihowa, "###.####");
  Print #1, "  ";
  Print #1, Format(hEkinheho, "####.####");
  Print #1, "  ";
  Print #1, Format(hYojun, "####.####");
  Print #1, "  ";
  Print #1, Format(tValue, "##.####");
  Print #1, "  df=";
  Print #1, Format(n - 1, "##.");
  Print #1, "  ";
  Print #1, Format(t(n - 1, 1), "###.####");
  Print #1, "  ";
  Print #1, Format(t(n - 1, 2), "###.####")
  GoTo TOBASU
FILEFORSTUDENT:
  If p > 1 Then GoTo TOBU3
  Print #1, "jsDB[";
  Print #1, q;
  Print #1, "]='";
TOBU3:
  Print #1, m;
  Print #1, "-";
  Print #1, p, "
"; For j = 1 To 2 For i = 1 To n Print #1, iSeito(i, j); Next i Print #1, "
"; 'Print #1,' Next j If p = 3 Then Print #1, "No answer
'" GoTo TOBASU End If If p = 2 Then GoTo TDAKE End If Print #1, "差の平均値,CF, 平方和,平均平方,標準偏差
"; Print #1, Format(hEikin, "###.####"); Print #1, " "; Print #1, Format(cF, "###.######"); Print #1, " "; Print #1, Format(hEihowa, "###.####"); Print #1, " "; Print #1, Format(hEkinheho, "####.####"); Print #1, " "; Print #1, Format(hYojun, "####.####"); Print #1, "
"; TDAKE: Print #1, "t値 "; Print #1, Format(tValue, "##.####"); Print #1, "
"; TOBASU: Next p q = q + 1 Next m Close #1 Form1.Print "OK" End Sub