рефератырефератырефератырефератырефератырефератырефератырефераты

рефераты, скачать реферат, современные рефераты, реферат на тему, рефераты бесплатно, банк рефератов, реферат культура, виды рефератов, бесплатные рефераты, экономический реферат

"САМЫЙ БОЛЬШОЙ БАНК РЕФЕРАТОВ"

Портал Рефератов

рефераты
рефераты
рефераты

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

Задание

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

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

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

рефераты
РЕФЕРАТЫ © 2010