РефератыИнформатика, программированиеРаРасположение элементов в матрице

Расположение элементов в матрице

Задание


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



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


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


· Вывести исходную матрицу с индексами её элементов;


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


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


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


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


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


Begin VB.Form Form1


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


Begin VB.TextBox txtOriginal


Height = 1875


Left = 90


Locked = -1 'True


MultiLine = -1 'True


ScrollBars = 2 'Vertical


TabIndex = 3


Top = 1350


Width = 7365


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 = 7


Top = 120


Width = 7365


Begin VB.TextBox txtN


Alignment = 2 'Center


Height = 285


Left = 3150


MaxLength = 4


TabIndex = 0


Top = 390


Width = 1335


End


Begin VB.CommandButton cmdRun


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


Default = -1 'True


Enabled = 0 'False


Height = 375


Left = 4650


TabIndex = 1


Top = 360


Width = 1245


End


Begin VB.CommandButton cmdExit


Cancel = -1 'True


Caption = "&Выход"


Height = 375


Left = 5970


TabIndex = 2


Top = 360


Width = 1245


End


Begin VB.Label Label2


Alignment = 2 'Center


BorderStyle = 1 'Fixed Single


Caption = "Введите размерность матрицы"


Height = 255


Left = 150


TabIndex = 8


Top = 390


Width = 2895


End


End


Begin VB.TextBox txtResult


Height = 1875


Left = 90


Locked = -1 'True


MultiLine = -1 'True


ScrollBars = 2 'Vertical


TabIndex = 4


Top = 3570


Width = 7365


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 = 6


Top = 3270


Width = 7365


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 = 5


Top = 1050


Width = 7365


End


End


Attribute VB_Name = "Form1"


Attribute VB_GlobalNameSpace = False


Attribute VB_Creatable = False


Attribute VB_PredeclaredId = True


Attribute VB_Exposed = False


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


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 pi As Integer, pj As Integer


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.Text = Empty


ReDim a(n, n) As Integer


For i = 1 To n


For j = 1 To n


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 To n - 1


For t = 1 To 10 Step 9


For j = 1 To i


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 To n - 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 To n ^ 2


For i = 1 To n ^ 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 To n - 1


For t = 1 To 10 Step 9


For j = 1 To i


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 To n - 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 To n


For j = 1 To n


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 Sub cmdSave_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 Sub txtN_Change()


If Val(txtN.Text) > 8 Or Val(txtN.Text) = 0 Or Val(txtN.Text) 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


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






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




Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Расположение элементов в матрице

Слов:1090
Символов:9044
Размер:17.66 Кб.