Расположение элементов в матрице
Расположение в матрице элементов в порядке их возрастания в указанной последовательности. Составление программы на алгоритмическом языке, выполняющей указанные преобразования с матрицами. Выведение исходных и преобразованных матриц, занесение их в файл.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | практическая работа |
Язык | русский |
Дата добавления | 12.01.2010 |
Размер файла | 153,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Задание
· Расположить в матрице 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
Внешний вид приложения:
Результат работы приложения:
Подобные документы
Вывод преобразованной матрицы с новым содержимым вектора. Выдача на печать преобразованных матриц. Построение программы с массивами любой размерности, содержащими произвольные элементы. Расположение в матрице элементов в определенной последовательности.
контрольная работа [74,9 K], добавлен 12.01.2010Алгоритм решения задачи: расположение значений ветора в порядке возрастания методом "Всплывающих пузырьков". Блок-схема алгоритма решения задачи. Описание блок-схемы, распечатка программы. Операторы: rem, dim, print, input, lprint using, for-next.
курсовая работа [17,4 K], добавлен 27.02.2010Создание программы на языке программирования С#, которая проверяет наличие в матрице хотя бы одного столбца, содержащего положительный элемент, поиск его номера. Упорядочивание его элементов по возрастанию. Листинг программы и инструкция по работе с ней.
курсовая работа [1,9 M], добавлен 28.05.2014Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.
лабораторная работа [1,3 M], добавлен 23.11.2014Свойства и виды алгоритмов. Составление программы, которая бы определила предыдущий и последующий символ для символа 'F' по таблице кодировки. Алгоритм нахождения максимального из двух значений. Программа замены местами в матрице элементов строк.
курсовая работа [133,4 K], добавлен 16.05.2015Исходный текст программы и ее экранная форма. Программа вычисления и выдачи на печать суммы/произведения элементов бесконечного числового ряда, вычисления числового ряда для известного числа членов ряда. Значение максимального элемента в матрице.
контрольная работа [29,0 K], добавлен 07.12.2010Понятие матриц и операции, выполняемые с ними. Разработка программы для вычислений над матрицами в среде MS Visual Studio Express с применением языка программирования C++. Работа с библиотекой математического типа vector. Реализация перегрузки операций.
курсовая работа [107,3 K], добавлен 22.12.2010Описание работы ЭВМ при выполнении программы по указанной блок-схеме и исходным данным. Составление линейной программы на языке Basic в виде подпрограммы-функции для вычисления заданной величины. Разработка в ЭТ Excel макроса для указанной функции.
контрольная работа [765,6 K], добавлен 16.10.2011Основные операции над матрицами. Формирование матрицы из файла. Ввод матрицы с клавиатуры. Заполнение матрицы случайными числами. Способы формирования двухмерных массивов в среде программирования С++. Произведение определенных элементов матрицы.
курсовая работа [537,0 K], добавлен 02.06.2015Понятие двумерного массива целых чисел. Создание динамического массива из элементов, расположенных в четырех столбах данного массива и имеющих нечетное значение. Сохранение результатов в файл и выведение их на экран. Использование ввода с файла.
курсовая работа [44,0 K], добавлен 09.11.2014