Етап 3
unknown
plain_text
10 months ago
4.0 kB
5
Indexable
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
FileReader(D, M, N)
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 FileReader(ByRef D(,) As Single, ByRef M As Integer, ByRef N As Integer)
'Входни данни
Dim F1 As Short
Dim Fname As String
Dim I%, J%
Console.WriteLine("Vuvedete direktoriata na faila:")
Fname = Console.ReadLine()
F1 = FreeFile()
'Изчислителна част
FileOpen(F1, Fname, OpenMode.Input)
Input(F1, M) : Input(F1, N)
ReDim D(M - 1, N - 1)
For I = 0 To M - 1
For J = 0 To N - 1
Input(F1, D(I, J))
Next J
Next I
FileClose(F1)
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 ModuleEditor is loading...
Leave a Comment