Задание
· Расположитьв матрице A(N,N) элементы в порядке их возрастания в последовательностиуказанной на рисунке.
/>
Требованияк программе:
· Составитьпрограмму на алгоритмическом языке, выполняющую указанные преобразования сматрицами;
· Вывестиисходную матрицу с индексами её элементов;
· Вывестипреобразованную матрицу с новым содержимым;
· Программадолжна строиться таким образом, чтобы существовала возможность её использованияс массивами любой размерности, содержащими произвольные элементы;
· Впрограмме должна быть предусмотрена выдача на печать исходных и преобразованныхматриц;
· Полученныерезультаты должны быть занесены в файл последовательного доступа и доступны дляпросмотра из него.
Изменённыесвойства приложения
Begin VB.FormForm1
BorderStyle =1 'Fixed Single
Caption = «Задание№46»
ClientHeight =5550
ClientLeft = 45
ClientTop = 435
ClientWidth =7575
LinkTopic = «Form1»
MaxButton = 0'False
ScaleHeight =5550
ScaleWidth = 7575
StartUpPosition= 2 'CenterScreen
BeginVB.TextBox txtOriginal
Height = 1875
Left = 90
Locked = -1 'True
MultiLine = -1'True
ScrollBars = 2'Vertical
TabIndex = 3
Top = 1350
Width = 7365
End
BeginVB.Frame Frame1
Caption = «Управлениеразмерностью матрицы»
BeginPropertyFont
Name = «MSSans Serif»
Size = 8.25
Charset = 204
Weight = 700
Underline = 0'False
Italic = 0 'False
Strikethrough= 0 'False
EndProperty
Height = 885
Left = 90
TabIndex = 7
Top = 120
Width = 7365
BeginVB.TextBox txtN
Alignment = 2'Center
Height = 285
Left = 3150
MaxLength = 4
TabIndex = 0
Top = 390
Width = 1335
End
BeginVB.CommandButton cmdRun
Caption = "&Решение"
Default = -1 'True
Enabled = 0 'False
Height = 375
Left = 4650
TabIndex = 1
Top = 360
Width = 1245
End
BeginVB.CommandButton cmdExit
Cancel = -1 'True
Caption = "&Выход"
Height = 375
Left = 5970
TabIndex = 2
Top = 360
Width = 1245
End
BeginVB.Label Label2
Alignment = 2'Center
BorderStyle =1 'Fixed Single
Caption = «Введитеразмерность матрицы»
Height = 255
Left = 150
TabIndex = 8
Top = 390
Width = 2895
End
End
BeginVB.TextBox txtResult
Height = 1875
Left = 90
Locked = -1 'True
MultiLine = -1'True
ScrollBars = 2'Vertical
TabIndex = 4
Top = 3570
Width = 7365
End
BeginVB.Label Label3
Alignment = 2'Center
BorderStyle =1 'Fixed Single
Caption = «Полученнаяматрица»
BeginPropertyFont
Name = «MSSans Serif»
Size = 8.25
Charset = 204
Weight = 700
Underline = 0'False
Italic = 0 'False
Strikethrough= 0 'False
EndProperty
Height = 255
Left = 90
TabIndex = 6
Top = 3270
Width = 7365
End
BeginVB.Label Label1
Alignment = 2'Center
BorderStyle =1 'Fixed Single
Caption = «Оригинальнаяматрица»
BeginPropertyFont
Name = «MSSans Serif»
Size = 8.25
Charset = 204
Weight = 700
Underline = 0'False
Italic = 0 'False
Strikethrough= 0 'False
EndProperty
Height = 255
Left = 90
TabIndex = 5
Top = 1050
Width = 7365
End
End
AttributeVB_Name = «Form1»
AttributeVB_GlobalNameSpace = False
AttributeVB_Creatable = False
AttributeVB_PredeclaredId = True
AttributeVB_Exposed = False
Текстпрограммы на языке Microsoft Visual Basic 6.00
OptionExplicit
Private SubcmdExit_Click()
Unload Me
End Sub
Private SubcmdPrint_Click()
Me.PrintForm
End Sub
Private SubcmdRun_Click()
txtN.Enabled= False
Dim pi AsInteger, pj As Integer
Dim i AsInteger, j As Integer
Dim t AsInteger, n As Integer
Dim k AsInteger, p As Integer
n =Val(txtN.Text)
txtOriginal.Text= Empty
ReDim a(n, n)As Integer
For i = 1 Ton
For j = 1 Ton
a(i, j) =Int(Rnd * 90) + 10
txtOriginal.Text= txtOriginal.Text & Str(a(i, j)) & " "
Next j
txtOriginal.Text= txtOriginal.Text & vbCrLf
Next i
ReDim x(n ^ 2)As Integer
k = 0
p = n / 2 *11
pi = Int(p /10)
pj = p — pi *10
k = k + 1
x(k) = a(pi,pj)
For i = 1 Ton — 1
For t = 1 To10 Step 9
For j = 1 Toi
p = p + (-1)^ (i + 1) * t
pi = Int(p /10)
pj = p — pi *10
k = k + 1
x(k) = a(pi,pj)
Next j
Next t
Next i
For i = 1 Ton — 1
p = p — 1
pi = Int(p /10)
pj = p — pi *10
k = k + 1
x(k) = a(pi,pj)
Next i
For t = 1 Ton ^ 2
For i = 1 Ton ^ 2 — 1
If x(i) >x(i + 1) Then
k = x(i)
x(i) = x(i +1)
x(i + 1) = k
End If
Next i
Next t
k = 0
p = n / 2 *11
pi = Int(p /10)
pj = p — pi *10
k = k + 1
a(pi, pj) =x(k)
For i = 1 Ton — 1
For t = 1 To10 Step 9
For j = 1 Toi
p = p + (-1)^ (i + 1) * t
pi = Int(p /10)
pj = p — pi *10
k = k + 1
a(pi, pj) =x(k)
Next j
Next t
Next i
For i = 1 Ton — 1
p = p — 1
pi = Int(p /10)
pj = p — pi *10
k = k + 1
a(pi, pj) =x(k)
Next i
txtResult.Text= Empty
For i = 1 Ton
For j = 1 Ton
txtResult.Text= txtResult.Text & Str(a(i, j)) & " "
Next j
txtResult.Text= txtResult.Text & vbCrLf
Next i
cmdPrint.Enabled= True
cmdSave.Enabled= True
End Sub
Private SubcmdSave_Click()
Open App.Path& "\Result.txt" For Output As #1
Print #1,«Задание №46» & vbCrLf & vbCrLf
Print #1,«Исходная матрица:» & vbCrLf
Print #1,txtOriginal.Text & vbCrLf
Print #1,«Полученная матрица:» & vbCrLf
Print #1,txtResult.Text
Close #1
End Sub
Private SubtxtN_Change()
IfVal(txtN.Text) > 8 Or Val(txtN.Text) = 0 Or Val(txtN.Text) Mod 2 0Then
cmdRun.Enabled= False
Else
cmdRun.Enabled= True
End If
End Sub
Private SubtxtN_KeyPress(KeyAscii As Integer)
If KeyAscii
If NotIsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
End Sub
Внешнийвид приложения:
/>
Результатработы приложения:
/>