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

2016-07-28СтудИзба

Описание файла

Документ из архива "Расположение элементов в матрице", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48723"

Текст из документа "48723"

Задание

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

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

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

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее