Складання програми на алгоритмічній мові виконує зазначені перетворення з матрицями

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Завдання № 37

Розмістити у матриці A (N, N) елементи в послідовності зазначеної на малюнку.


Вимоги до програми:

  1. Скласти програму на алгоритмічній мові, виконує зазначені перетворення з матрицями;

  2. Вивести вектор, отриманий випадково;

  3. Вивести перетворену матрицю з новим вмістом вектора;

  4. Програма повинна будуватися таким чином, щоб існувала можливість її використання з масивами будь-якої розмірності, що містять довільні елементи;

  5. У програмі повинна бути передбачена видача на друк вихідних і перетворених матриць;

  6. Отримані результати повинні бути занесені у файл послідовного доступу і доступні для перегляду з нього.

Змінені властивості програми

Begin VB. Form frmMain

BorderStyle = 1 'Fixed Single

Caption = "Завдання № 37"

ClientHeight = 4365

ClientLeft = 45

ClientTop = 435

ClientWidth = 6180

LinkTopic = "Form1"

MaxButton = 0 'False

ScaleHeight = 4365

ScaleWidth = 6180

StartUpPosition = 2 'CenterScreen

Begin VB.Frame Frame2

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

Left = 4590

TabIndex = 7

Top = 120

Width = 1485

Begin VB.CommandButton cmdSave

Caption = "& Збереження"

Enabled = 0 'False

Height = 375

Left = 120

TabIndex = 11

Top = 1530

Width = 1245

End

Begin VB.CommandButton cmdPrint

Caption = "& Друк"

Enabled = 0 'False

Height = 375

Left = 120

TabIndex = 10

Top = 930

Width = 1245

End

Begin VB.CommandButton cmdExit

Cancel = -1 'True

Caption = "& Вихід"

Height = 375

Left = 120

TabIndex = 9

Top = 3630

Width = 1245

End

Begin VB.CommandButton cmdRun

Caption = "& Рішення"

Default = -1 'True

Enabled = 0 'False

Height = 375

Left = 120

TabIndex = 8

Top = 330

Width = 1245

End

End

Begin VB.TextBox txtOriginal

Height = 675

Left = 90

Locked = -1 'True

MultiLine = -1 'True

ScrollBars = 2 'Vertical

TabIndex = 1

Top = 1350

Width = 4485

End

Begin VB. Frame Frame 1

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

Top = 120

Width = 4515

Begin VB.TextBox txtN

Alignment = 2 'Center

Height = 285

Left = 3150

MaxLength = 4

TabIndex = 0

Top = 360

Width = 1215

End

Begin VB.Label Label2

Caption = "Парна розмірність матриці"

Height = 255

Left = 150

TabIndex = 6

Top = 390

Width = 2895

End

End

Begin VB.TextBox txtResult

Height = 1875

Left = 90

Locked = -1 'True

MultiLine = -1 'True

ScrollBars = 2 'Vertical

TabIndex = 2

Top = 2370

Width = 4485

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

Top = 2070

Width = 4485

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

Top = 1050

Width = 4485

End

End

Attribute VB_Name = "frmMain"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = False

Текст програми на мовою Microsoft Visual Basic 6.00 Ext

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

Dim MV As Integer

MV = n ^ 2 / 2 + n

ReDim a (n, n) As Integer

ReDim x (MV) As Integer

Randomize Timer

For i = 1 To MV

x (i) = Int (Rnd * 90) + 10

txtOriginal = txtOriginal & Str (x (i)) & ""

Next i

k = 0

For i = n To n / 2 - 1 Step -1

If i / 2 = Int (i / 2) Then

For j = n - i + 1 To i

k = k + 1: a (i, j) = x (k)

Next j

Else

For j = i To n - i + 1 Step -1

k = k + 1: a (i, j) = x (k)

Next j

End If

Next i

For i = n / 2 To 1 Step -1

If i / 2 = Int (i / 2) Then

For j = n - i + 1 To i Step -1

k = k + 1

a (i, j) = x (k)

Next j

Else

For j = i To n - i + 1

k = k + 1

a (i, j) = x (k)

Next j

End If

Next i

For i = 1 To n

For j = 1 To n

txtResult = txtResult & Format (a (i, j), "00") & ""

Next j

txtResult = txtResult & vbCrLf

Next i

cmdPrint.Enabled = True

cmdSave.Enabled = True

End Sub

Private Sub cmdSave_Click ()

On Error GoTo Err_Lbl:

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

Exit Sub

Err _ Lbl:

MsgBox "Сталася помилка запису", vbCritical, "Увага"

End Sub

Private Sub txtN_Change ()

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

Зовнішній вигляд програми:

Результат роботи програми:

Додаток 1

Form1

VERSION 5.00

Begin VB.Form frmMain

BorderStyle = 1 'Fixed Single

Caption = "Завдання № 37"

ClientHeight = 4365

ClientLeft = 45

ClientTop = 435

ClientWidth = 6180

LinkTopic = "Form1"

MaxButton = 0 'False

ScaleHeight = 4365

ScaleWidth = 6180

StartUpPosition = 2 'CenterScreen

Begin VB.Frame Frame2

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

Left = 4590

TabIndex = 7

Top = 120

Width = 1485

Begin VB.CommandButton cmdSave

Caption = "& Збереження"

Enabled = 0 'False

Height = 375

Left = 120

TabIndex = 11

Top = 1530

Width = 1245

End

Begin VB.CommandButton cmdPrint

Caption = "& Друк"

Enabled = 0 'False

Height = 375

Left = 120

TabIndex = 10

Top = 930

Width = 1245

End

Begin VB.CommandButton cmdExit

Cancel = -1 'True

Caption = "& Вихід"

Height = 375

Left = 120

TabIndex = 9

Top = 3630

Width = 1245

End

Begin VB.CommandButton cmdRun

Caption = "& Рішення"

Default = -1 'True

Enabled = 0 'False

Height = 375

Left = 120

TabIndex = 8

Top = 330

Width = 1245 End

End

Begin VB.TextBox txtOriginal

Height = 675

Left = 90

Locked = -1 'True

MultiLine = -1 'True

ScrollBars = 2 'Vertical

TabIndex = 1

Top = 1350

Width = 4485

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

Top = 120

Width = 4515

Begin VB.TextBox txtN

Alignment = 2 'Center

Height = 285

Left = 3150

MaxLength = 4

TabIndex = 0

Top = 360

Width = 1215

End

Begin VB.Label Label2

Alignment = 2 'Center

BorderStyle = 1 'Fixed Single

Caption = "Парна розмірність матриці "

Height = 255

Left = 150

TabIndex = 6

Top = 390

Width = 2895

End

End

Begin VB.TextBox txtResult

Height = 1875

Left = 90

Locked = -1 'True

MultiLine = -1 'True

ScrollBars = 2 'Vertical

TabIndex = 2

Top = 2370

Width = 4485

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

Top = 2070

Width = 4485

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

Top = 1050

Width = 4485

End

End

Attribute VB_Name = "frmMain"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = False

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

Dim MV As Integer

MV = n ^ 2 / 2 + n

ReDim a (n, n) As Integer

ReDim x (MV) As Integer

Randomize Timer

For i = 1 To MV

x (i) = Int (Rnd * 90) + 10

txtOriginal = txtOriginal & Str (x (i)) & ""

Next i

k = 0

For i = n To n / 2 - 1 Step -1

If i / 2 = Int (i / 2) Then

For j = n - i + 1 To i

k = k + 1

a (i, j) = x (k)

Next j

Else

For j = i To n - i + 1 Step -1

k = k + 1

a (i, j) = x (k)

Next j

End If

Next i

For i = n / 2 To 1 Step -1

If i / 2 = Int (i / 2) Then

For j = n - i + 1 To i Step -1

k = k + 1

a (i, j) = x (k)

Next j

Else

For j = i To n - i + 1

k = k + 1

a (i, j) = x (k)

Next j

End If

Next i

For i = 1 To n

For j = 1 To n

txtResult = txtResult & Format (a (i, j), "00") & ""

Next j

txtResult = txtResult & vbCrLf

Next i

cmdPrint.Enabled = True

cmdSave.Enabled = True

End Sub

Private Sub cmdSave_Click ()

On Error GoTo Err_Lbl:

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

Exit Sub

Err_Lbl:

MsgBox "Сталася помилка запису", vbCritical, "Увага"

End Sub

Private Sub txtN_Change ()

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

Додаток 2

Завдання № 46

Вихідна матриця:

39 41 16 98 68 47 13 87 94 12 12 69 59 46 52 85 71 38 18 19 77 81 92 26 23 94 66 83 28 23 23 15 39 50 51 78 58 22 73 41

Отримана матриця:

39 50 51 78 58 22 73 41

00 15 23 23 28 83 66 00

00 00 92 26 23 94 00 00

00 00 00 81 77 00 00 00

00 00 00 19 18 00 00 00

00 00 52 85 71 38 00 00

00 46 59 69 12 12 94 00

39 41 16 98 68 47 13 87

  Type = Exe Form = Form1.frm Reference =* \ G {00020430-0000-0000-C000-000000000046} # 2.0 # 0 # .. \ .. \ .. \ WINDOWS \ system32 \ stdole2.tlb # OLE Automation IconForm = "frmMain" Startup = "frmMain" Command32 = "" Name = "prj37" HelpContextID = "0" CompatibleMode = "0" MajorVer = 1 MinorVer = 0 RevisionVer = 0 AutoIncrementVer = 0 ServerSupportFiles = 0 VersionCompanyName = "G-GII Company" CompilationType = 0 OptimizationType = 0 FavorPentiumPro (tm) = 0 CodeViewDebugInfo = 0 NoAliasing = 0 BoundsCheck = 0 OverflowCheck = 0 FlPointCheck = 0 FDIVCheck = 0 UnroundedFP = 0 StartMode = 0 Unattended = 0 Retained = 0 ThreadPerObject = 0 MaxNumberOfThreads = 1 [MS Transaction Server] AutoRefresh = 1 
  frmMain = 17, 12, 750, 513, C, 148, 49, 730, 495, C 
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
79кб. | скачати


Схожі роботи:
Програмування на алгоритмічній мові Бейсік
Проектування устрою виконує задані функції перетворення цифрової інформації
Розробка арифметичного пристрою виконує операцію складання з накопиченням суми
Завдання лінійної алгебри Поняття матриці Види матриць Операції з матрицями Рішення задач на перетворення
Методологія перетворення довільної програми в структуровану
Складання пропозицій в англійській мові робота з текстом
Складання корекційний програми для роботи з агресивним дитиною
Складання програм для вирішення задач на мові програмування Turbo Pascal
Розробка програми генерації тестів з бази даних на мові РНР
© Усі права захищені
написати до нас