Главная Рефераты по сексологии Рефераты по информатике программированию Рефераты по биологии Рефераты по экономике Рефераты по москвоведению Рефераты по экологии Краткое содержание произведений Рефераты по физкультуре и спорту Топики по английскому языку Рефераты по математике Рефераты по музыке Остальные рефераты Рефераты по авиации и космонавтике Рефераты по административному праву Рефераты по безопасности жизнедеятельности Рефераты по арбитражному процессу Рефераты по архитектуре Рефераты по астрономии Рефераты по банковскому делу Рефераты по биржевому делу Рефераты по ботанике и сельскому хозяйству Рефераты по бухгалтерскому учету и аудиту Рефераты по валютным отношениям Рефераты по ветеринарии Рефераты для военной кафедры Рефераты по географии Рефераты по геодезии Рефераты по геологии Рефераты по геополитике Рефераты по государству и праву Рефераты по гражданскому праву и процессу Рефераты по делопроизводству Рефераты по кредитованию Рефераты по естествознанию Рефераты по истории техники Рефераты по журналистике Рефераты по зоологии Рефераты по инвестициям Рефераты по информатике Исторические личности Рефераты по кибернетике Рефераты по коммуникации и связи |
Контрольная работа: Составление программы на алгоритмическом языке, выполняющей указанные преобразования с матрицамиКонтрольная работа: Составление программы на алгоритмическом языке, выполняющей указанные преобразования с матрицамиЗадание №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 |
|