Контрольная работа по предмету "Информатика, программирование"


Составление программы на алгоритмическом языке, выполняющей указанные преобразования с матрицами

Задание №37


Расположить в матрице A(N,N) элементы в последовательности указанной на рисунке.



Требования к программе:


1. Составить программу на алгоритмическом языке, выполняющую указанные преобразования с матрицами;


2. Вывести вектор, полученный случайно;


3. Вывести преобразованную матрицу с новым содержимым вектора;


4. Программа должна строиться таким образом, чтобы существовала возможность её использования с массивами любой размерности, содержащими произвольные элементы;


5. В программе должна быть предусмотрена выдача на печать исходных и преобразованных матриц;


6. Полученные результаты должны быть занесены в файл последовательного доступа и доступны для просмотра из него.


Изменённые свойства приложения


Begin VB.Form frmMain


BorderStyle = 1 'Fixed Single


Caption = "Задание №37"


ClientHeight = 4365


ClientLeft = 45


ClientTop = 435


ClientWidth = 6180


LinkTopic = "Form1"


MaxButton = 0 'False


ScaleHeight = 4365


ScaleWidth = 6180


StartUpPosition = 2 'CenterScreen


Begin VB.Frame Frame2


Caption = "Управление"


BeginProperty Font


Name = "MS Sans Serif"


Size = 8.25


Charset = 204


Weight = 700


Underline = 0 'False


Italic = 0 'False


Strikethrough = 0 'False


EndProperty


Height = 4125


Left = 4590


TabIndex = 7


Top = 120


Width = 1485


Begin VB.CommandButton cmdSave


Caption = "&Сохранение"


Enabled = 0 'False


Height = 375


Left = 120


TabIndex = 11


Top = 1530


Width = 1245


End


Begin VB.CommandButton cmdPrint


Caption = "&Печать"


Enabled = 0 'False


Height = 375


Left = 120


TabIndex = 10


Top = 930


Width = 1245


End


Begin VB.CommandButton cmdExit


Cancel = -1 'True


Caption = "&Выход"


Height = 375


Left = 120


TabIndex = 9


Top = 3630


Width = 1245


End


Begin VB.CommandButton cmdRun


Caption = "&Решение"


Default = -1 'True


Enabled = 0 'False


Height = 375


Left = 120


TabIndex = 8


Top = 330


Width = 1245


End


End


Begin VB.TextBox txtOriginal


Height = 675


Left = 90


Locked = -1 'True


MultiLine = -1 'True


ScrollBars = 2 'Vertical


TabIndex = 1


Top = 1350


Width = 4485


End


Begin VB.Frame Frame1


Caption = "Управление размерностью матрицы"


BeginProperty Font


Name = "MS Sans Serif"


Size = 8.25


Charset = 204


Weight = 700


Underline = 0 'False


Italic = 0 'False


Strikethrough = 0 'False


EndProperty


Height = 885


Left = 90


TabIndex = 5


Top = 120


Width = 4515


Begin VB.TextBox txtN


Alignment = 2 'Center


Height = 285


Left = 3150


MaxLength = 4


TabIndex = 0


Top = 360


Width = 1215


End


Begin VB.Label Label2


Caption = "Чётная размерность матрицы"


Height = 255


Left = 150


TabIndex = 6


Top = 390


Width = 2895


End


End


Begin VB.TextBox txtResult


Height = 1875


Left = 90


Locked = -1 'True


MultiLine = -1 'True


ScrollBars = 2 'Vertical


TabIndex = 2


Top = 2370


Width = 4485


End


Begin VB.Label Label3


Alignment = 2 'Center


BorderStyle = 1 'Fixed Single


Caption = "Упорядоченная матрица"


BeginProperty Font


Name = "MS Sans Serif"


Size = 8.25


Charset = 204


Weight = 700


Underline = 0 'False


Italic = 0 'False


Strikethrough = 0 'False


EndProperty


Height = 255


Left = 90


TabIndex = 4


Top = 2070


Width = 4485


End


Begin VB.Label Label1


Alignment = 2 'Center


BorderStyle = 1 'Fixed Single


Caption = "Полученный случайный вектор"


BeginProperty Font


Name = "MS Sans Serif"


Size = 8.25


Charset = 204


Weight = 700


Underline = 0 'False


Italic = 0 'False


Strikethrough = 0 'False


EndProperty


Height = 255


Left = 90


TabIndex = 3


Top = 1050


Width = 4485


End


End


Attribute VB_Name = "frmMain"


Attribute VB_GlobalNameSpace = False


Attribute VB_Creatable = False


Attribute VB_PredeclaredId = True


Attribute VB_Exposed = False


Текст программы на языке Microsoft Visual Basic 6.00 Ext


Option Explicit


Private Sub cmdExit_Click()


Unload Me


End Sub


Private Sub cmdPrint_Click()


Me.PrintForm


End Sub


Private Sub cmdRun_Click()


txtN.Enabled = False


Dim i As Integer, j As Integer


Dim t As Integer, n As Integer


Dim k As Integer, p As Integer


n = Val(txtN.Text)


txtOriginal = Empty


Dim MV As Integer


MV = n ^ 2 / 2 + n


ReDim a(n, n) As Integer


ReDim x(MV) As Integer


Randomize Timer


For i = 1 To MV


x(i) = Int(Rnd * 90) + 10


txtOriginal = txtOriginal & Str(x(i)) & " "


Next i


k = 0


For i = n To n / 2 - 1 Step -1


If i / 2 = Int(i / 2) Then


For j = n - i + 1 To i


k = k + 1: a(i, j) = x(k)


Next j


Else


For j = i To n - i + 1 Step -1


k = k + 1: a(i, j) = x(k)


Next j


End If


Next i


For i = n / 2 To 1 Step -1


If i / 2 = Int(i / 2) Then


For j = n - i + 1 To i Step -1


k = k + 1


a(i, j) = x(k)


Next j


Else


For j = i To n - i + 1


k = k + 1


a(i, j) = x(k)


Next j


End If


Next i


For i = 1 To n


For j = 1 To n


txtResult = txtResult & Format(a(i, j), "00") & " "


Next j


txtResult = txtResult & vbCrLf


Next i


cmdPrint.Enabled = True


cmdSave.Enabled = True


End Sub


Private Sub cmdSave_Click()


On Error GoTo Err_Lbl:


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


Exit Sub


Err_Lbl:


MsgBox "Произошла ошибка записи", vbCritical, "Внимание"


End Sub


Private Sub txtN_Change()


If Val(txtN) > 8 Or Val(txtN) = 0 Or Val(txtN) Mod 2 <> 0 Then


cmdRun.Enabled = False


Else


cmdRun.Enabled = True


End If


End Sub


Private Sub txtN_KeyPress(KeyAscii As Integer)


If KeyAscii < 26 Then Exit Sub


If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0


End Sub


Внешний вид приложения:



Результат работы приложения:



Приложение 1


Form1


VERSION 5.00


Begin VB.Form frmMain


BorderStyle = 1 'Fixed Single


Caption = "Задание №37"


ClientHeight = 4365


ClientLeft = 45


ClientTop = 435


ClientWidth = 6180


LinkTopic = "Form1"


MaxButton = 0 'False


ScaleHeight = 4365


ScaleWidth = 6180


StartUpPosition = 2 'CenterScreen


Begin VB.Frame Frame2


Caption = "Управление"


BeginProperty Font


Name = "MS Sans Serif"


Size = 8.25


Charset = 204


Weight = 700


Underline = 0 'False


Italic = 0 'False


Strikethrough = 0 'False


EndProperty


Height = 4125


Left = 4590


TabIndex = 7


Top = 120


Width = 1485


Begin VB.CommandButton cmdSave


Caption = "&Сохранение"


Enabled = 0 'False


Height = 375


Left = 120


TabIndex = 11


Top = 1530


Width = 1245


End


Begin VB.CommandButton cmdPrint


Caption = "&Печать"


Enabled = 0 'False


Height = 375


Left = 120


TabIndex = 10


Top = 930


Width = 1245


End


Begin VB.CommandButton cmdExit


Cancel = -1 'True


Caption = "&Выход"


Height = 375


Left = 120


TabIndex = 9


Top = 3630


Width = 1245


End


Begin VB.CommandButton cmdRun


Caption = "&Решение"


Default = -1 'True


Enabled = 0 'False


Height = 375


Left = 120


TabIndex = 8


Top = 330


Width = 1245 End


End


Begin VB.TextBox txtOriginal


Height = 675


Left = 90


Locked = -1 'True


MultiLine = -1 'True


ScrollBars = 2 'Vertical


TabIndex = 1


Top = 1350


Width = 4485


End


Begin VB.Frame Frame1


Caption = "Управление размерностью матрицы"


BeginProperty Font


Name = "MS Sans Serif"


Size = 8.25


Charset = 204


Weight = 700


Underline = 0 'False


Italic = 0 'False


Strikethrough = 0 'False


EndProperty


Height = 885


Left = 90


TabIndex = 5


Top = 120


Width = 4515


Begin VB.TextBox txtN


Alignment = 2 'Center


Height = 285


Left = 3150


MaxLength = 4


TabIndex = 0


Top = 360


Width = 1215


End


Begin VB.Label Label2


Alignment = 2 'Center


BorderStyle = 1 'Fixed Single


Caption = "Чётная размерность матрицы"


Height = 255


Left = 150


TabIndex = 6


Top = 390


Width = 2895


End


End


Begin VB.TextBox txtResult


Height = 1875


Left = 90


Locked = -1 'True


MultiLine = -1 'True


ScrollBars = 2 'Vertical


TabIndex = 2


Top = 2370


Width = 4485


End


Begin VB.Label Label3


Alignment = 2 'Center


BorderStyle = 1 'Fixed Single


Caption = "Упорядоченная матрица"


BeginProperty Font


Name = "MS Sans Serif"


Size = 8.25


Charset = 204


Weight = 700


Underline = 0 'False


Italic = 0 'False


Strikethrough = 0 'False


EndProperty


Height = 255


Left = 90


TabIndex = 4


Top = 2070


Width = 4485


End


Begin VB.Label Label1


Alignment = 2 'Center


BorderStyle = 1 'Fixed Single


Caption = "Полученный случайный вектор"


BeginProperty Font


Name = "MS Sans Serif"


Size = 8.25


Charset = 204


Weight = 700


Underline = 0 'False


Italic = 0 'False


Strikethrough = 0 'False


EndProperty


Height = 255


Left = 90


TabIndex = 3


Top = 1050


Width = 4485


End


End


Attribute VB_Name = "frmMain"


Attribute VB_GlobalNameSpace = False


Attribute VB_Creatable = False


Attribute VB_PredeclaredId = True


Attribute VB_Exposed = False


Option Explicit


Private Sub cmdExit_Click()


Unload Me


End Sub


Private Sub cmdPrint_Click()


Me.PrintForm


End Sub


Private Sub cmdRun_Click()


txtN.Enabled = False


Dim i As Integer, j As Integer


Dim t As Integer, n As Integer


Dim k As Integer, p As Integer


n = Val(txtN.Text)


txtOriginal = Empty


Dim MV As Integer


MV = n ^ 2 / 2 + n


ReDim a(n, n) As Integer


ReDim x(MV) As Integer


Randomize Timer


For i = 1 To MV


x(i) = Int(Rnd * 90) + 10


txtOriginal = txtOriginal & Str(x(i)) & " "


Next i


k = 0


For i = n To n / 2 - 1 Step -1


If i / 2 = Int(i / 2) Then


For j = n - i + 1 To i


k = k + 1


a(i, j) = x(k)


Next j


Else


For j = i To n - i + 1 Step -1


k = k + 1


a(i, j) = x(k)


Next j


End If


Next i


For i = n / 2 To 1 Step -1


If i / 2 = Int(i / 2) Then


For j = n - i + 1 To i Step -1


k = k + 1


a(i, j) = x(k)


Next j


Else


For j = i To n - i + 1


k = k + 1


a(i, j) = x(k)


Next j


End If


Next i


For i = 1 To n


For j = 1 To n


txtResult = txtResult & Format(a(i, j), "00") & " "


Next j


txtResult = txtResult & vbCrLf


Next i


cmdPrint.Enabled = True


cmdSave.Enabled = True


End Sub


Private Sub cmdSave_Click()


On Error GoTo Err_Lbl:


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


Exit Sub


Err_Lbl:


MsgBox "Произошла ошибка записи", vbCritical, "Внимание"


End Sub


Private Sub txtN_Change()


If Val(txtN) > 8 Or Val(txtN) = 0 Or Val(txtN) Mod 2 <> 0 Then


cmdRun.Enabled = False


Else


cmdRun.Enabled = True


End If


End Sub


Private Sub txtN_KeyPress(KeyAscii As Integer)


If KeyAscii < 26 Then Exit Sub


If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0


End Sub


Приложение 2


Задание №46


Исходная матрица:


39 41 16 98 68 47 13 87 94 12 12 69 59 46 52 85 71 38 18 19 77 81 92 26 23 94 66 83 28 23 23 15 39 50 51 78 58 22 73 41


Полученная матрица:


39 50 51 78 58 22 73 41


00 15 23 23 28 83 66 00


00 00 92 26 23 94 00 00


00 00 00 81 77 00 00 00


00 00 00 19 18 00 00 00


00 00 52 85 71 38 00 00


00 46 59 69 12 12 94 00


39 41 16 98 68 47 13 87



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :