Главная страница
Навигация по странице:

  • КАФЕДРА ИНФОРМАТИКИ ЛАБОРАТОРНАЯ РАБОТА ПО ТЕМЕ 4.8 Программирование алгоритмов формирования и обработки двумерных массивов. Выполнил

  • студент группы МОСКВА 2016 г. Еремин Василий, БИН1551, вариант 11. Реализация задания

  • Тема и название лабораторной работы

  • 2.2) Задание на разработку проекта

  • 2.3) Формализация и уточнение задания

  • 2.4) Схема алгоритмов

  • 2.5) Программный код Проекта 4.8

  • 2.6) Результат выполнения проекта

  • Программирование алгоритмов формирования и обработки двумерных массивов.. Лабораторная работа 4.8. Лабораторная работа по теме 8 Программирование алгоритмов формирования и обработки двумерных массивов


    Скачать 417.27 Kb.
    НазваниеЛабораторная работа по теме 8 Программирование алгоритмов формирования и обработки двумерных массивов
    АнкорПрограммирование алгоритмов формирования и обработки двумерных массивов
    Дата17.11.2021
    Размер417.27 Kb.
    Формат файлаdocx
    Имя файлаЛабораторная работа 4.8.docx
    ТипЛабораторная работа
    #274853

    Федеральное государственное образовательное бюджетное

    учреждение высшего профессионального образования
    Московский технический университет связи и информатики

    КАФЕДРА ИНФОРМАТИКИ

    ЛАБОРАТОРНАЯ РАБОТА ПО ТЕМЕ 4.8


    Программирование алгоритмов формирования и обработки двумерных массивов.


    Выполнил:

    студент группы

    МОСКВА 2016 г.

    1. Еремин Василий, БИН1551, вариант 11.




    1. Реализация задания:




      1. Тема и название лабораторной работы:

    Программирование алгоритмов формирования и обработки двумерных массивов. Заполнение и преобразование двумерного массива.
    2.2) Задание на разработку проекта:

    11)

    Сформируйте произвольный двумерный массив L(7,9). Поменяйте местами левую верхнюю и правую нижнюю четверти матрицы. Выведите полученный массив.



    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) Результат выполнения проекта



    написать администратору сайта