Программирование алгоритмов формирования и обработки двумерных массивов.. Лабораторная работа 4.8. Лабораторная работа по теме 8 Программирование алгоритмов формирования и обработки двумерных массивов
Скачать 417.27 Kb.
|
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования Московский технический университет связи и информатики КАФЕДРА ИНФОРМАТИКИ ЛАБОРАТОРНАЯ РАБОТА ПО ТЕМЕ 4.8 Программирование алгоритмов формирования и обработки двумерных массивов. Выполнил: студент группы МОСКВА 2016 г. Еремин Василий, БИН1551, вариант 11. Реализация задания: Тема и название лабораторной работы: Программирование алгоритмов формирования и обработки двумерных массивов. Заполнение и преобразование двумерного массива. 2.2) Задание на разработку проекта:
2.3) Формализация и уточнение задания: В разрабатываемом приложении ввод исходного массива может осуществляться одним из следующих способов: вводом с клавиатуры; с помощью датчика случайных чисел; Обработка исходного массива осуществляться следующими способами: если число строк (m) (столбцов(n)) четное – меняется m/2 (n/2) строк (столбцов); если число строк (m) (столбцов(n)) нечетное – меняется m/2-1 (n/2-1) строк (столбцов) средняя строка (столбец) не меняется; 2.4) Схема алгоритмов: 2.5) Программный код Проекта 4.8: Option Strict On Option Explicit On Imports System.Math Public Class Form1 'Функция ввода данных (кол. строк и столбцов) из TextBox Function vvod(ByVal T As TextBox) As Integer Return CInt(T.Text) End Function 'Процедура форматированного вывода матрицы в ListBox Sub vivod_mas(ByRef x(,) As Single, ByRef LB As ListBox) Dim i As Integer Dim j As Integer Dim m As Integer Dim n As Integer Dim z As String Dim z1 As String Dim z2 As String 'Присвоение начальных значений z2 = "|" m = x.GetLength(0) - 1 n = x.GetLength(1) - 1 LB.Items.Clear() For i = 0 To m z = "" For j = 0 To n z1 = Format(x(i, j), "000.00") If x(i, j) < 0 Then z1 = z2 + Space(1) + z1 + Space(1) + z2 Else z1 = z2 + Space(2) + z1 + Space(1) + z2 End If z = z + z1 Next j LB.Items.Add(z) Next i End Sub 'Процедура ввода матрицы (по индексу выбранной 'строки из ComboBox1) Sub vvod_mas(ByRef a(,) As Single, ByVal index As Integer) Dim i As Integer Dim j As Integer Dim m As Integer Dim n As Integer Dim r1 As String Dim r2 As String Dim y As String m = a.GetLength(0) - 1 n = a.GetLength(1) - 1 Select Case index Case 0 'Ввод элементов массива с клавиатуры For i = 0 To m For j = 0 To n r1 = Str(i) : r2 = Str(j) y = InputBox("Элемент массива a(" + r1 + "," + r2 + ") =", , "Ввод эначений элементов массива A()") a(i, j) = CInt(y) Next j Next i Case 1 'Формирование массива с помощью случайных чисел For i = 0 To m For j = 0 To n a(i, j) = CSng(Rnd(0) * 100 - 50) Next j Next End Select ListBox2.Items.Clear() End Sub 'замена местами четверти матрицы Public Sub perestanovka(ByVal a(,) As Single, ByVal m As Integer, ByVal n As Integer) Dim i As Integer Dim j As Integer Dim b(,) As Single ReDim b(0 To m, 0 To n) For i = 0 To m For j = 0 To n b(I,j) = a(i,j) If i < (m / 2) And j < (n / 2) Then b(i, j) = a(i + m \ 2 + 1, j + n \ 2 + 1) If i > (m / 2) And j > (n / 2) Then b(i, j) = a(i - m \ 2 - 1, j - n \ 2 - 1) Next j Next i vivod_mas(b, ListBox2) 'печать новой матрицы End Sub 'Процедура нажатия кнопки "Сформировать новый массив" Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim m As Integer 'строки Dim n As Integer 'столбцы End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectedIndexChanged Dim index As Integer 'индекс выбранного элемента из ComboBox1 (выбор способа ввода матрицы) m = vvod(TextBox1) 'кол-во строк массива n = vvod(TextBox2) 'кол-во столбцов массива Dim a(,) As Single index = ComboBox1.SelectedIndex 'индекс выбранного элемента из ComboBox1 ' (выбор способа ввода матрицы) vvod_mas(a, index) 'ввод матрицы vivod_mas(a, ListBox1) 'печать матрицы perestanovka(a, m, n) 'процедура замена местами четверти матрицы End Sub 'Процедура очистки текстовых полей (Кнопка ПОВТОРИТЬ) Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 'очищаем текстовые поля TextBox1.Clear() 'очищаем текстовые поля TextBox2.Clear() ListBox1.Items.Clear() ListBox2.Items.Clear() End Sub 'Процедура выхода из программы (Кнопка ВЫХОД) Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click End End Sub End Class 2.6) Результат выполнения проекта |