Втори вариянт
Imports System Imports System.Runtime Module Program Sub Main(args As String()) ' Променливи Dim D(,) As Single Dim M, N As Integer Dim Min, Max As Single Dim negativElem As Single Dim average, holder As Single InputMatrixLimits(M, N, D) MatrixMinMax(D, M, N, Min, Max) AverageMatrixN(D, M, N, average, holder) ChangeMatrix(D, M, N, average, holder) ' Изважда резултатите Console.WriteLine($"Minimalnata stoinost v matricata e: {Min}") Console.WriteLine($"Maximalnata stoinost v matricata e: {Max}") Console.WriteLine($"Proizvedenieto na otricatelnite elementi e: {negativElem}") End Sub ' Процедура за въвеждане на размери на матрицата Sub InputMatrixLimits(ByRef M As Integer, ByRef N As Integer, ByRef D(,) As Single) Dim I%, J% Do Console.Write("Vuvedete broi redove [1-7]: ") M = Console.ReadLine() Loop Until M >= 1 And M <= 7 Do Console.Write("Vuvedete broi coloni [1-9]: ") N = Console.ReadLine() Loop Until N >= 1 And N <= 9 ReDim D(M - 1, N - 1) Console.WriteLine("Vuvedete chisla za matricata:") For I = 0 To M - 1 For J = 0 To N - 1 Console.Write($"D({I + 1},{J + 1}) = ") D(I, J) = Console.ReadLine() Next Next End Sub ' Процедура за намиране на минимум и максимум Sub MatrixMinMax(ByVal D(,) As Single, ByVal M As Integer, ByVal N As Integer, ByRef Min As Single, ByRef Max As Single) Dim I%, J% Min = D(0, 0) Max = D(0, 0) For I = 0 To M - 1 For J = 0 To N - 1 If D(I, J) < Min Then Min = D(I, J) If D(I, J) > Max Then Max = D(I, J) Next Next End Sub ' Функция за произведението на отрицателните елементи Function MatrixNegativeElem(ByVal D(,) As Single, ByVal M As Integer, ByVal N As Integer) As Double Dim I%, J% Dim negativElem As Double For I = 0 To M - 1 For J = 0 To N - 1 If D(I, J) < 0 Then negativElem *= D(I, J) End If Next Next Return negativElem End Function ' Процедура за намиране дали има четен брой редове и средното аритметично Sub AverageMatrixN(ByVal D(,) As Single, ByVal M As Integer, ByVal N As Integer, ByRef average As Single, ByRef holder As Single) Dim I%, J% Dim sum As Single If M Mod 2 = 0 Then For I = 0 To M - 1 For J = 0 To N - 1 sum += D(I, J) Next Next average = sum / (M * N) holder = M \ 2 End If Console.WriteLine($"Srednoto aritmetichno e {average}") End Sub 'Процедура за промяна на матрицата Sub ChangeMatrix(ByVal D(,) As Single, ByVal M As Integer, ByVal N As Integer, ByRef average As Single, ByRef holder As Single) Dim I%, J% If M Mod 2 = 0 Then For I = 0 To M - 1 For J = 0 To N - 1 If I < holder Then D(I, J) += average End If If I > holder Then D(I, J) -= average End If Next Next Console.WriteLine($"Matricata ima cheten broi redove.") For I = 0 To M - 1 For J = 0 To N - 1 Console.Write(D(I, J) & " ") Next Console.WriteLine() Next End If End Sub End Module
Leave a Comment