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

5419
знаков
0
таблиц
3
изображения

Задание

·           Расположить в матрице 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


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

 

 

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

 


Информация о работе «Расположение элементов в матрице»
Раздел: Информатика, программирование
Количество знаков с пробелами: 5419
Количество таблиц: 0
Количество изображений: 3

Похожие работы

Скачать
49202
0
15

... равен произведению определителй множителей. Это следует из Теоремы при Заключение В данной работе рассмотрена основная теория матриц и доказательство теоремы Коши-Бине. Также представлено применение данной теоремы при нахождении определителя произведения двух прямоугольных матриц в программе написанной на языке программирования Дельфи с возможностью ввода матриц вручную и подгрузкой из файла. ...

Скачать
249178
21
46

... системам линейных алгебраических уравнений с более чем одной неизвестной; MATLAB решает такие уравнения без вычисле-ния обратной матрицы. Хотя это и не является стандартным математическим обозначением, система MATLAB использует терминологию, связанную с обычным делением в одномерном случае, для описания общего случая решения совместной системы нескольких линейных уравнений. Два символа деления / ...

Скачать
107588
68
16

... 7 0,8 Сверление, зенкерование, развертывание. 34 12 12,5 Растачивание 36,37,46 11 12,5 Сверление Данные методы реализованы при разработке технологического маршрута изготовления матрицы. Разработка технологического маршрута изготовления матрицы При разработке маршрута в среднесерийном производстве придерживались следующих правил: 1.Технологические операции разрабатывали по принципу ...

Скачать
110685
21
24

... и n-1 сегментами. Такой подход задан в светодиодном драйвере Maxim MAX6951 для управления 8-ю цифрами на всего 9-ти ножках. РАЗДЕЛ 2 РАЗРАБОТКА СВЕТОДИОДНОЙ МАТРИЦЫ 2.1 Постановка задачи Требуется разработать светодиодную матрицу, которая будет использоваться в праздничные и торжественные дни, на дискотеках, создавая различные световые эффекты. Разработка устройства будет производиться с ...

0 комментариев


Наверх