VERSION 5.00 Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX" Begin VB.Form Form1 Caption = "Form1" ClientHeight = 1830 ClientLeft = 60 ClientTop = 345 ClientWidth = 4785 LinkTopic = "Form1" ScaleHeight = 1830 ScaleWidth = 4785 ShowInTaskbar = 0 'False StartUpPosition = 3 'Windows の既定値 Begin VB.TextBox Text2 Height = 270 Left = 480 TabIndex = 2 Text = "12.カイ平方" Top = 480 Width = 2055 End Begin MSComDlg.CommonDialog CommonDialog1 Left = 3840 Top = 1200 _ExtentX = 847 _ExtentY = 847 _Version = 393216 End Begin VB.CommandButton Command1 Caption = "0入力;学生用ファイル(*.js),その他の値;先生用ファイル(*.txt)作成 " Height = 855 Left = 1320 TabIndex = 1 Top = 960 Width = 2055 End Begin VB.TextBox Text1 Height = 495 Left = 240 TabIndex = 0 Top = 1200 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() '12.カイ平方。入力は学生,それ以外は教師用ファイル作成' Dim bango, REP, HAN, num As Integer bango = Val(Text1.Text) CommonDialog1.ShowSave Open CommonDialog1.FileName For Output As #1 QQ = 0 Form1.AutoRedraw = True YR = Val(Mid$(Date$, 3, 4)) Print YR Randomize (YR + 22) Dim F(10), D(10), FE(10), XS(20), XD(20) XD(1) = 99.5: XD(2) = 99: XD(3) = 97.5: XD(4) = 95: XD(5) = 90: XD(6) = 75: XD(7) = 50: XD(8) = 25: XD(9) = 10: XD(10) = 5: XD(11) = 2.5: XD(12) = 1: XD(13) = 0.5 XS(1) = 0.07: XS(2) = 0.11: XS(3) = 0.22: XS(4) = 0.35: XS(5) = 0.58: XS(6) = 1.21: XS(7) = 2.37: XS(8) = 4.11: XS(9) = 6.25: XS(10) = 7.81: XS(11) = 9.35: XS(12) = 11.34: XS(13) = 12.84 F(1) = 9: F(2) = 3: F(3) = 3: F(4) = 1 NH = 4 ' KURIKAESHI ' If bango = 0 Then GoTo NOBANGO Else For num = 1 To 9 Print #1, ""; num; " "; Next num For num = 10 To 20 Print #1, ""; num; " "; Next num Print #1, "
"
End If
NOBANGO:
 For REP = 1 To 20   'Number of students
 For HAN = 1 To 3    'Number of works per student
START:
 D(1) = Int(Rnd * 40 + 900)
 D(2) = Int(-Rnd * 40 + 300)
 D(3) = Int(Rnd * 40 + 300)
 D(4) = Int(Rnd * 40 + 100)
 FT = 0: DT = 0: XSQ = 0
 For i = 1 To NH: FT = FT + F(i): Next i
 For i = 1 To NH: DT = DT + D(i): Next i
 For i = 1 To NH: FE(i) = DT * F(i) / FT: Next i
 For i = 1 To NH: XSQ = XSQ + (D(i) - FE(i)) ^ 2 / FE(i): Next i
 If HAN = 1 Then GoTo L770 Else GoTo L790
L770:
 If XSQ < XS(10) Then GoTo START
 GoTo L810
L790:
 If HAN > 2 Then GoTo L810
 If XSQ > XS(10) Then GoTo START
L810:
 If bango = 0 Then GoTo FILEFORSTUDENTS
' ---------------------  '
  If REP < 10 And HAN = 1 Then Print #1, ""
  If REP > 9 And HAN = 1 Then Print #1, ""
 Print #1, REP; "-"; HAN; "X-square=";
 For i = 1 To NH: Print #1, "("; D(i); "-"; FE(i); ")^2/"; FE(i); "+";: Next i
 Print #1, "="
 For i = 1 To NH: Print #1, (D(i) - FE(i)) ^ 2 / FE(i); "+";: Next i
 Print #1, "="; Format(XSQ, "###.####")
 For i = 1 To 13
 If XSQ < XS(i) Then Print #1, XS(i - 1); "("; XD(i - 1); "%) <"; Format(XSQ, "###.####"); "<"; XS(i); "("; XD(i); "%)";: GoTo L715
 Next i
 Print #1, XS(i - 1); "("; XD(i - 1); "%) <"; XSQ;
L715:
 If XSQ < 7.81 Then Print #1, "  **TEKIGOU-SURU" Else Print #1, "  **TEKIGOU-SEZU"
 Print #1, "Xa2="; (D(1) - 3 * D(2) + D(3) - 3 * D(4)); "^2/"; (3 * DT); "="; (D(1) - 3 * D(2) + D(3) - 3 * D(4)) ^ 2 / (3 * DT)
 Print #1, "Xb2="; D(1) + D(2) - 3 * D(3) - 3 * D(4); "^2/"; 3 * DT; "="; (D(1) + D(2) - 3 * D(3) - 3 * D(4)) ^ 2 / (3 * DT)
 Print #1, "XL2="; (D(1) - 3 * D(2) - 3 * D(3) + 9 * D(4)); "^2/"; (9 * DT); "="; (D(1) - 3 * D(2) - 3 * D(3) + 9 * D(4)) ^ 2 / (9 * DT)
 Print #1, "Total="; DT; " df=1 5%=3.84 1%=6.63 df=3 5%=7.81 1%=11.34"
 Print #1,
 
GoTo TOBASU
' ====================== '
FILEFORSTUDENTS:
 If HAN > 1 Then GoTo TOBU
 Print #1, "jsDB[";
 Print #1, QQ;
 Print #1, "]='";
TOBU:
 Print #1, "
No. "; HAN; "
"; For i = 1 To NH: Print #1, D(i);: Next i If HAN = 1 Then Print #1, "
X-SQUARE= ", Format(XSQ, "###.####"); TOBASU: Next HAN Print #1, "'" QQ = QQ + 1 Next REP Close #1 Form1.Print Form1.Print "OK" End Sub