Пояснения к выполнению задания второго уровня

 

Для реализации выхода из программы выполнить проверку длины найденного отрезка ( Если это условие не выполняется, то программа должна запросить границы следующего отрезка, на котором функция имеет разные знаки на концах отрезка. Взять границы отрезка с экрана из результатов табулирования на предыдущем отрезке. Если условие выполняется, то необходимо в программе вычислить корень уравнения и значение функции в корне.

 

Пояснения к выполнению задания третьего уровня

Для поиска в программе нового отрезка табулирования выполнять проверку условия . Для выхода из программы сравнивать длину найденного отрезка с заданной точностью. Перед выходом из программы вычислить корень уравнения и значение функции в корне.

 

 

Таблица 3.1. Варианты заданий к лабораторной работе № 3

№ вар. Уравнение Отрезок [а, b] № вар. Уравнение Отрезок [а,b]
[0;1] [0;1]
[1;2] [3;4]
[0.1;1.1] [-1;0]
[0.1;1.1] [1;2]
[2;3] [0.1;1.1]
[0;1] [0;1]
[-2;-1] [0;1]
[0.1;1.1] [1;2]
[0;1] [1;2]
[-0.5;0.5] [-1;0]
[0.1; 1.1] [2;3]
[0.2;1.2] [0;1]
[0.1; 1,1] [-0.5; 0.5]
[0;1] [2; 3]
[1;2] [0;1]

 

 


 

ЛАБОРАТОРНАЯ РАБОТА №4

 

Тема: Одномерные массивы.

Цель работы: приобретение навыков разработки алгоритмов и программ по преобразованию одномерных массивов.

Варианты заданий лабораторной работы №4 приведены в таблицах 4.1, 4.2.

 

Задание (1 уровень)

1. Составить блок-схему алгоритма вычисления функции Y=f(X). Функцию f(X) взять из таблицы 4.1 в соответствии со своим вариантом.

2. Разработать программу вычисления элементов массива Y на основе элементов массива X, где Y=f(X). Массив X взять из таблицы 4.1 в соответствии со своим вариантом.

3. Выполнить программу, записав полученные результаты в отчёт.

 

Задание (2 уровень)

1. Составить блок-схему алгоритма вычисления наибольшего и наименьшего элементов в массиве Y, их порядковых номеров, а также суммы всех элементов массива Y. Массив Y получить на основе элементов массива X, где: Y=f(X). Функцию f(X) взять из таблицы 4.1 в соответствии со своим вариантом.

2. На основе блок-схемы, составленной в п.1 разработать программу. Массив X взять из таблицы 4.1 в соответствии со своим вариантом.

3. Выполнить программу, записав полученные результаты в отчёт.

 

Задание (3 уровень)

1. Составить блок-схему алгоритма для задания, описанного в таблице 4.2 в соответствии со своим вариантом.

2. На основе блок-схемы, составленной в п.1 разработать программу.

3. Выполнить программу, записав полученные результаты в отчёт.

 

Пример:

 

Вычислить таблицу значений функции

Y=

 


для следующих значений аргумента X:

 

X = {-6.2; -0.8; 0.3; 0.5; -1.3; 4.1}.

Порядок выполнения работы (1 уровень)

1. Составление блок-схемы алгоритма вычисления функции Y=f(X).

1.1. Входные данные:

X – массив из N значений аргумента,

Формула для вычисления функции Y.

Выходные данные:

Таблица из N пар значений (X, Y).

1.2. Блок-схема (рис. 4.1):

Ввод N
Начало
Вычисление значения элемента Y(i) по заданной формуле для значения аргумента, равного X(i)
Конец
Ввод N элементов массива X
Вывод X(i), Y(i)
i= 1, N, 1

 


Рис. 4.1. Блок схема алгоритма

 

2. Разработка программы вычисления элементов массива Y на основе элементов массива X, где Y=f(X).

2.1. Объявить переменные целого типа (Integer): N, i.

2.2. Запросить и ввести с клавиатуры количество элементов (N) массива X.

2.3. Объявить два одномерных массива размером N: X(N), Y(N) типа Single:

Dim X(N) As Single

Dim Y(N) As Single

2.4. Открыть цикл по i от 1 до N.

2.5. Последовательно запросить и ввести все значения элементов массива X.

2.6. Вычислить текущее значение элемента массива Y в соответствии со своим заданием, например, используя условный оператор:

If X(I) < - MATH.PI() Then

Y(I) = X(I) / MATH.PI() + 1

Else

If X(I) <= MATH.PI() Then

Y(I) = Math.Sin(X(I))

Else

Y(I) = -X(I) / MATH.PI() – 1

EndIf

EndIf

2.7. Вывести на экран значения текущих элементов массивов X и Y.

2.8. Закрыть цикл.

3. Запуск программы.

3.1. Построив программу и запустив её, ввести с клавиатуры массив X.

3.2. Выписать результаты в отчёт в виде таблицы:

 

I
X -6,2 -0,8 0,3 0,5 -1,3 4,1
Y -0.9735228 -0.7173561 0.2955202 0.4794255 -0.9635582 -2.305072

 

Порядок выполнения работы (2 уровень)

 

1. Составление блок-схемы алгоритма вычисления наибольшего (YMAX) и наименьшего (YMIN) элементов в массиве Y, их порядковых номеров (NYMAX, NYMIN), а также сумму (SY) всех элементов массива Y.

1.1. Входные данные:

Y – массив из N значений из таблицы 4.1.

Выходные данные:

YMAX, YMIN, NYMAX, NYMIN, SY.

1.2. Блок-схема (рис.4.2):

Ввод N
Начало
Вычисление массива Y(N)
Нет
SY=SY+Y(i)
Y(i)>YMAX
YMAX=Y(i) NYMAX=i
Да
i=1 , N, 1
SY=0
YMAX=Y(1) NYMAX=1 YMIN=Y(1) NYMIN=1
Нет
Y(i)<YMIN
YMIN=Y(i) NYMIN=i
Да
Конец
Вывод: SY, YMAX, NYMAX, YMIN, NYMIN

 

 


Рис. 4.2. Блок – схема алгоритма

2. На основе блок-схемы (рис. 4.2), составленной в п.1, самостоятельно разработать программу, выполнить её и записать полученные результаты в отчёт.

 

Таблица 4.1. Варианты заданий к лабораторной работе № 4

 

 
[1] [2]
 
[3] [4]
 
[5] [6]
 
[7] [8]
[9] [10]
[11] [12]
[13] [14]
[15] [16]
[17] [18]
[19] [20]
[21] [22]
 
[23] [24]
[25] [26]
[27] [28]
 
[29] [30]

 

 

Таблица 4.2. Варианты заданий к лабораторной работе № 4 (3 уровень)

 

№ варианта Задание
Дан массив А из N натуральных чисел. Постройте алгоритм для определения среднего арифметического и среднего геометрического данных чисел. Среднее геометрическое: .
Имеется массив А из N вещественных чисел. Составьте алгоритм решения задачи: заменить все элементы массива, не принадлежащие отрезку [0, 1], на 0.5. Вывести на печать исходный массив и результирующий.
Имеется массив С из Nвещественных чисел. Составьте алгоритм подсчета числа элементов массива, которые принадлежат отрезку [1, 2], иначе сообщить: «таких элементов нет».
Имеется массив K из Nвещественных чисел. Составьте алгоритм такой задачи: если последний элемент массива положителен, то каждый третий элемент массива заменить нулем, иначе выдать сообщение: «все без перемен».
Имеется массив А из Nвещественных чисел. Составьте алгоритм замены всех элементов единицей, если первый элемент массива больше квадрата третьего элемента, иначе выдать сообщение: «все без изменений».
Имеется массив М из N целых чисел. Составьте алгоритм подсчёта среднего арифметического положительных элементов массива.
Имеется массив К из Nцелых чисел. Составьте алгоритм подсчета, сколько раз число 5 встречается среди элементов данного массива, иначе сообщить: «таких нет».
Заполнить массив H из N чисел членами геометрической прогрессии. Первый член прогрессии – вещественное р,знаменатель – вещественное q. Общий член геометрической прогрессии bn = p qn-1
Составить алгоритм замены вещественных чисел массива А из N чисел следующим образом: числа, большие единицы, уменьшить вдвое, а числа, меньшие единицы, увеличить вдвое.
Дан целочисленный массив А, содержащий N элементов. Найти сумму элементов, стоящих на чётных местах и произведение, стоящих на нечётных.
Дан массив К из Nцелых чисел. Составьте алгоритм поиска среднего арифметического отрицательных элементов массива.
Имеется массив Р из N целых чисел. Составьте алгоритм замены всех элементов массива, меньших 30, двойкой, а если хотя бы один элемент массива больше 30, то ничего не менять.
Имеется массив В из N целых чисел. Составьте алгоритм решения задачи: заменить все элементы массива квадратами, если есть хотя бы один отрицательный элемент в массиве, иначе ничего в нем не менять.
Имеется массив М из Nнатуральных числе. Составьте алгоритм замены всех элементов массива, меньших 50, числом 50. Если таких элементов нет, выдать сообщение: «таких элементов нет».
Дан массив В из N целых чисел. Составьте алгоритм подсчета, сколько раз в массиве встречается минимальное число.
Имеется массив С из N целых чисел. Составьте алгоритм вычисления произведения и количества положительных элементов массива.
Имеется массив В из N чисел. Составьте алгоритм решения задачи подсчёта количества элементов, принадлежащих заданному отрезку [а, b]. Если таких элементов нет, то выдать сообщение.
Имеется массив А из N элементов. Составьте алгоритм решения задачи вычисления суммы положительных и количества отрицательных элементов массива.
Имеется массив К из N чисел. Составьте алгоритм решения задачи замены всех элементов массива, меньших 5, на квадраты этих элементов. Если таких элементов нет, то выдать соответствующее сообщение.
Дан массив А из N элементов. Составьте алгоритм подсчета, сколько раз в массиве встречается максимальное число.
Составить алгоритм замены элементов массива В из N чисел следующим образом: числа, попадающие в интервал [а, b], уменьшить вдвое, а остальные – увеличить вдвое. Вывести на печать исходный массив В и результирующий массив.
Имеется массив Р из N целых чисел. Составьте алгоритм вычисления произведения отрицательных и положительных элементов массива.
В массиве К из Nцелых чисел определить сумму всех тех элементов, значения которых превышают среднее значение.
В массиве С из N целых чисел все нулевые элементы заменить максимальным элементом. Вывести на печать исходный массив С и результирующий массив Т.
Имеется массив А из N вещественных чисел. Определить число отрицательных, нулевых и положительных элементов.
В произвольно заданном одномерном массиве определить элемент, сумма которого с первым элементом максимальна.
Имеется массив Р из N целых чисел. Составьте алгоритм замены всех элементов массива, меньших 10, единицей, а если есть элемент массива больше 10, то ничего не менять.
Имеется массив K из Nвещественных чисел. Составьте алгоритм такой задачи: если первый элемент массива положителен, то каждый второй элемент массива заменить числом 50, иначе выдать сообщение: «все без перемен».
Имеется массив Т из Nцелых чисел. Составьте алгоритм подсчета, сколько раз число t встречается среди элементов данного массива, в противном случае вывести сообщение: «элементов t в массиве нет».
В массиве В из Nцелых чисел определить количество всех элементов, значения которых меньше среднего значения всех элементов массива.

 

 


ЛАБОРАТОРНАЯ РАБОТА №5

 

Тема: Двумерные массивы. Подпрограммы: внешние функции и процедуры.

Цель работы: овладеть навыками программирования с использованием двумерных массивов; научиться основам модульного программирования.

 

Задание

I уровень (варианты №№ 1 - 9 из Перечня вариантов)

1. Составить блок-схему выполнения задания (без подпрограмм).

2. Написать программу в соответствии с блок – схемой.

3. Выполнить программу и получить результаты.

 

II уровень (варианты №№ 10 - 26 из Перечня вариантов)

1. Составить блок-схему алгоритма преобразования матрицы двумя модулями: головным модулем и процедурой SUB, или головным модулем и модулем-функцией FUNCTION.

2. Написать программу в соответствии с блок – схемой.

3. Выполнить программу и получить результаты.

 

III уровень (варианты №№ 27 - 30 из Перечня вариантов)

1. Составить блок-схему алгоритма преобразования матрицы тремя модулями: головным модулем, модулем-функцией FUNCTION и процедурой SUB .

2. Написать программу в соответствии с блок – схемой.

3. Выполнить программу и получить результаты.

 

Пример:

Дана матрица A(N,M).

1. Найти наибольший элемент в последней строке матрицы A.

2. Определить массив B(N), элементы которого равны суммам соответствующих строк матрицы A.

3. Определить массив D(M), элементы которого равны суммам соответствующих столбцов матрицы A.

Порядок выполнения работы (I уровень)

1. Входные данные:

(N+1) – количество строк матрицы A, (M+1) – количество столбцов матрицы A,

A(,) – двумерный массив из (N+1)*(M+1) элементов.

Выходные данные:

AMAXN - наибольший элемент в последней строке матрицы A, B() - массив, элементы которого равны суммам соответствующих строк матрицы A, D() - массив, элементы которого равны суммам соответствующих столбцов матрицы A.

2. Блок-схема (рис. 5.1)

 

 

Да
Вывод AMAXN
AMAXN=A(N,i)
AMAXN < A(N,i)
Нет
AMAXN=A(N,0) – присвоить начальное значение переменной AMAXN
Ввод N, M
Начало
Ввод (N+1)*(M+1) элементов матрицы A
i= 0, M, 1

 

 

B(i)=0 – присвоить начальное значение элементу B(i) для накопления суммы i-ой строки матрицы A()
B(i)=B(i) + A(i, j) – увеличить значение элемента B(i) на величину A(i, j) очередного элемента i-ой строки матрицы A()
Вывод B( i )
i= 0, N, 1
j= 0, M, 1

 

D(j)=0 – присвоить начальное значение элементу D(j) для накопления суммы j-го столбца матрицы A()
D(j)=D(j) + A(i, j) – увеличить значение элемента D(j) на величину A(i,j) очередного элемента j-го столбца матрицы A()
Вывод D(j)
Конец
j= 0, M, 1
i= 0, N, 1

 


Рис. 5.1. Блок – схема программы

 

3. Текст программы:

 

Module Module1

‘ Заголовок программной секции, относящейся к категории программных модулей

 

Sub Main()

‘ Заголовок программной секции, относящейся к категории головного модуля программы

Dim N, M, I, J As Integer

Dim A(,) As Single = {{7,-1,2,0},{4,5,-3,1},{-6,11,8,-4}}

‘ Явный способ задания двумерного массива А(,) с вещественными (Single) элементами, значения которым присваиваются после символа = построчно, то есть три строки по 4 элемента в каждой

N = A.GetUpperBound(0)

‘ Параметру N присвоено значение верхней границы 1-ой (0) размерности двумерного массива А(,)

M = A.GetUpperBound(1)

‘ Параметру M присвоено значение верхней границы 2-ой (1) размерности двумерного массива А(,)

Console.WriteLine("N={0} M={1}", N, M)

‘ Вывод значений параметров N и M

Console.WriteLine("Количество строк матрицы A равно N+1={0}", N + 1)

Console.WriteLine("Количество столбцов матрицы A равно M+1={0}", M + 1)

‘Количество строк и столбцов матрицы A равны, соответственно, N+1 и M+1, так как стандартная нумерация элементов ведется для строк с 0 до N-1, для столбцов – с 0 до M-1.

Dim B(N), D(M) As Single

Dim Z As Single

Dim AMAXN As Single

I = 0 : AMAXN = A(N, I)

‘ Параметру AMAXN присваивается начальное значение, равное значению элемента матрицы A(,), расположенному в N-ой строке и 0-ом столбце

For I = 0 To M

If AMAXN < A(N, I) Then AMAXN = A(N, I)

Next I

Console.WriteLine("")

Console.WriteLine("НАИБОЛЬШИЙ ЭЛЕМЕНТ ПОСЛЕДНЕЙ СТРОКИ AMAXN ={0}", AMAXN)

Console.WriteLine("")

Console.WriteLine("МАССИВ ЗНАЧЕНИЙ СУММ СТРОК МАТРИЦЫ A():")

For I = 0 To N

B(I) = 0

For J = 0 To M

B(I) = B(I) + A(I, J)

Next J

Console.WriteLine("B({0})={1}", I, B(I))

Next I

Console.WriteLine("")

Console.WriteLine("МАССИВ ЗНАЧЕНИЙ СУММ СТОЛБЦОВ МАТРИЦЫ A():")

For J = 0 To M

D(J) = 0

For I = 0 To N

D(J) = D(J) + A(I, J)

Next I

Console.WriteLine("D({0})={1}", J, D(J))

Next J

Console.ReadLine()

End Sub

‘ Конец текста программы головного модуля

 

End Module

‘ Конец программной секции, относящейся к категории программных модулей

 

4. Результаты работы программы представлены на рис. 5.2.

 


Рис. 5.2. Скриншот результатов работы программы

 

Порядок выполнения работы (II-III уровни)

 

Задание II – III уровней требует использования в программе функции FUNCTION и/или процедуры SUB. Процедуры и функции применяются для выполнения повторяющихся задач и их можно вызывать из разных частей кода, поэтому их можно использовать в качестве элементарных структурных блоков при создании приложения. Структурирование кода с помощью процедур позволяют разбить программу на отдельные логические блоки. Отлаживать такие отдельные блоки легче, чем всю программу целиком. Кроме того, процедуры, разработанные для одной программы, можно в том же виде (или после внесения незначительных изменений) использовать в другой программе. Это помогает избежать дублирования кода.

Процедура - это некий блок кода, который будет выполняться всякий раз при вызове этой процедуры. Каждая процедура начинается зарезервированным словом Sub и заканчивается End. Вот общий синтаксис процедуры:

 

Sub name [(список_аргументов)]

[здесь некий код]

[Exit Sub]

[здесь тоже может быть некий код]

End Sub

 

Всё, что заключено в квадратные скобки - является необязательным. Процедура возвращает управление вызывающему коду после завершения работы оператором End Sub или Exit Sub (досрочный выход из процедуры).

В большинстве случаев процедуре необходимо работать с различными данными при каждом ее вызове. Можно передать эти сведения в процедуру как часть вызова процедуры. Процедура определяет ноль или более параметров, каждый из которых представляет значение, ожидаемое ею для приема. Каждому параметру в определении процедуры соответствует аргумент в вызове процедуры. Аргумент представляет значение, которое передается соответствующему параметру в вызове данной процедуры. Список аргументов представляет собой набор элементов, каждый из которых имеет следующий вид:

 

[ByVal | ByRef] varname[( )] [As type]

 

Здесь указаны :

- способ передачи значений аргументов (ByVal – передача значения аргумента, ByRef – передача указателя на адрес памяти, по которому размещается значение или массив значений аргумента),

- Varname – имя передаваемого аргумента,

- As type – тип данных, в соответствии с которым можно интерпретировать переданные значения аргументов.

Пример описания процедуры показан ниже:

 

Sub ShowMessage(message As String)

MsgBox message

End Sub

 

Здесь указано имя процедуры ShowMessage, содержащей один параметр с именем message, у которого тип данных String соответствует понятию текстовая строка.

Для вызова процедуры используется оператор Call. Пример вызова процедуры ShowMessage с одним параметром показан ниже:

 

Call ShowMessage ("Первая процедура").

Результатом выполнения такой процедуры будет вывод на экран сообщения: "Первая процедура". Здесь вызывается процедура ShowMessage, которой передаётся строка "Первая процедура". Фактически в процедуре происходит присвоение переменной message значения "Первая процедура". Далее происходит вызов функции MsgBox и вывод сообщения на экран. Если количество параметров, передаваемых при вызове процедуры не совпадёт с количеством параметров в объявлении процедуры, то Visual Basic сгенерирует ошибку.

 

Функция - это некий блок кода, который будет возвращать значение. Этим, и только этим функции отличаются от процедур. Общий синтаксис функции:

 

Function имя функции (список_аргументов)] [As type]

[здесь некий код]

[имяфункции = выражение]

[Exit Function]

[здесь тоже может быть некий код]

[имяфункции = выражение]

End Function

 

Пример описания функции показан ниже:

 

Function Square(number As Integer) As Long

Square = number * number

End Function

 

Вызвать функцию можно так:

 

b = Square (5).

 

Здесь функция Square возвращает квадрат переданного ей параметра (значение переменной b будет равно 25).

 

1. Входные данные: двумерный массив A (N,M).

Выходные данные: наибольший элемент (AMAXN) в последней строке матрицы A, массив B(), элементы которого равны суммам соответствующих строк матрицы A, массив D(), элементы которого равны суммам соответствующих столбцов матрицы A.

 

2. Глобальная блок-схема.

Ввод N, M
Начало
Ввод (N+1)*(M+1) элементов матрицы A
Вызов процедуры BSUM(N,M,A,B)
Вывод результирующего значения функции FMAXN
Вызов подпрограммы – функции FMAXN(N,M,A)
Вывод (N+1) значений элементов массива B()
Создание массивов B(N), D(M)
Вызов процедуры DSUM (N,M,A,D)
Вывод (M+1) значений элементов массива D()
Конец

 

 


Рис. 5.3. Блок-схема с использованием функций и процедур

3. Текст программы.

 

Module Module1

‘ Заголовок программной секции, относящейся к категории программных модулей

Sub Main()

‘ Заголовок программной секции, относящейся к категории головного модуля программы

Dim N, M, I, J As Integer

Dim A(,) As Single = {{7,-1,2,0}, {4,5,-3,1}, {-6,11,8,-4}}

‘ Явный способ задания двумерного массива А(,) с вещественными (Single) элементами, значения которым присваиваются после символа = построчно, то есть три строки по 4 элемента в каждой

N = A.GetUpperBound(0)

‘ Параметру N присвоено значение верхней границы 1-ой (0) размерности двумерного массива А(,)

M = A.GetUpperBound(1)

‘ Параметру M присвоено значение верхней границы 2-ой (1) размерности двумерного массива А(,)

Console.WriteLine("N={0} M={1}", N, M)

Console.WriteLine("Количество строк матрицы A равно N+1={0}", N + 1)

Console.WriteLine("Количество столбцов матрицы A равно M+1={0}", M + 1)

‘Количество строк (K1) и столбцов (K2) матрицы A равны, соответственно, N+1 и M+1, так как стандартная нумерация элементов ведется для строк с 0 до K1-1, для столбцов – с 0 до K2-1.

Dim B(N), D(M) As Single

Dim Z As Single

Z = AMAXN(N, M, A)

‘ Осуществляется обращение к процедуре – функции AMAXN(N, M, A)

Console.WriteLine("")

Console.WriteLine("НАИБОЛЬШИЙ ЭЛЕМЕНТ ПОСЛЕДНЕЙ СТРОКИ AMAXN ={0}", Z)

Console.WriteLine("")

Console.WriteLine("МАССИВ ЗНАЧЕНИЙ СУММ СТРОК МАТРИЦЫ A():")

Call BSUM(N, M, A, B)

‘ Осуществляется обращение к процедуре BSUM(N, M, A, B)

For I = 0 To N

Console.WriteLine("B({0})={1}", I, B(I))

Next I

Console.WriteLine("")

Console.WriteLine("МАССИВ ЗНАЧЕНИЙ СУММ СТОЛБЦОВ МАТРИЦЫ A():")

Call DSUM(N, M, A, D)

‘ Осуществляется обращение к процедуре DSUM(N, M, A, D)

For J = D.GetLowerBound(0) To M

Console.WriteLine("D({0})={1}", J, D(J))

Next J

Console.ReadLine()

EndSub

 

Function AMAXN(ByRef N As Integer, ByRef M As Integer, _

ByRef A(,) As Single) As Single

‘ Заголовок процедуры – функции AMAXN(N, M, A), при обращении к которой все аргументы (N, M, A) передаются по ссылке (ByRef), а сама функция возвращает в качестве результата вещественное число (Single)

Dim J As Integer

Dim MAX As Single

MAX = A(N, 0)

For J = 0 To M

If A(N, J) > MAX Then MAX = A(N, J)

Next J

AMAXN = MAX

‘ Осуществляется формирование результирующего значения функции AMAXN

EndFunction

‘ окончание текста программы для процедуры – функции

 

Sub BSUM(ByRef N As Integer, ByRef M As Integer, _

ByRef A(,) As Single, ByRef B() As Single)

‘ Заголовок процедуры BSUM(N, M, A, B), при обращении к которой все аргументы (N, M, A, B) передаются по ссылке (ByRef)

Dim I, J As Integer

Dim S As Single

For I = 0 To N

S = 0

‘ Переменной S присваивается начальное значение, равное 0.

For J = 0 To M

S = S + A(I, J)

‘ Значение переменной S увеличивается на величину, равную значению элемента A(I, J)

Next J

B(I) = S

‘ Элементу B(I) массива B() присваивается значение переменной S.

Next I

EndSub

‘ окончание текста программы для процедуры BSUM(N, M, A, B)

 

Sub DSUM(ByRef N As Integer, ByRef M As Integer, _

ByRef A(,) As Single, ByRef D() As Single)

‘ Заголовок процедуры DSUM(N, M, A, D), при обращении к которой все аргументы (N, M, A, D) передаются по ссылке (ByRef)

Dim I, J As Integer

Dim S As Single

For J = A.GetLowerBound(1) To M

S = 0

‘ Переменной S присваивается начальное значение, равное 0.

For I = A.GetLowerBound(0) To N

S = S + A(I, J)

‘ Значение переменной S увеличивается на величину, равную значению элемента A(I, J)

Next I

D(J) = S

‘ Элементу D(I) массива D() присваивается значение переменной S.

Next J

EndSub

‘ окончание текста программы для процедуры DSUM(N, M, A, D)

 

 

EndModule

‘ Конец программной секции, относящейся к категории программных модулей

 

4. Результаты работы программы аналогичны представленным на рис. 5.2.

 

Перечень вариантов заданий к лабораторной работе № 5

Вариант № 1

Дана матрица

А=

Определить количество отрицательных и положительных элементов.

Вариант № 2

Дана матрица. Определить сумму элементов, стоящих на главной и побочной диагоналях.

В=

Вариант № 3

Дана квадратная матрица М. Найти сумму и произведение элементов, попадающих в заданный интервал [a, b].

М=

Вариант № 4

Дана матрица. Найти сумму элементов первой строки и первого столбца.

Z=

Вариант № 5

Дана матрица В.Найти сумму элементов j-го столбца.

В=

Вариант № 6

Найти максимальный элемент матрицы и индексы максимального элемента.

Z=

Вариант № 7

Дана матрица

А=

Определить среднее арифметическое отрицательных и положительных элементов.

Вариант № 8

Дана матрица С. Найти сумму отрицательных элементов и количество положительных.

С=

Вариант № 9

Найти минимальный элемент матрицы и его индексы.

Z=

Вариант № 10

Дана матрица A. Получить новую матрицу В, элементы которой определяются по формуле bij= А=

Вариант № 11

Дана квадратная матрица

Z=

Транспонировать матрицу, т. е. получить новую матрицу A, где столбцы матрицы Z является строками, а строки – столбцами.

Вариант № 12

Даны матрицы

X= Y=

Получить матрицу Z, элементы которой равны .

Вариант № 13

Дана единичная матрица E

E=

Найти элементы новой матрицы B, каждый из которых определяется условием:

bij=

Вариант № 14

Дана единичная матрица

Е=

Получить новую матрицу Z, каждый элемент которой определяется заданным условием:

zij=

Вариант № 15

Даны квадратные матрицы А, В, С второго порядка. Получить матрицу D, элементы которой равны dij = (aij+bij)*cij

A= B= C=

Вариант № 16

Дана квадратная матрица

Z=

Выбрать максимальный элемент в третьей строке, составить новую матрицу, каждый элемент которой равен соответствующему элементу матрицы Z, деленному на полученный максимальный элемент.

Вариант № 17

Дана матрица А =

Найти вектор В, каждая компонента которого совпадает с произведением элементов соответствующей строки матрицы А. Вектор B вывести на экран в строку.

Вариант № 18

Даны две матрицы

X = Y =

Найти наибольший элемент среди элементов матриц X и Y.

Вариант № 19

Дана квадратная матрица А.

Получить матрицу В, элементы которой определяются как bij = aij2 – i*j.

В матрице B найти минимальный элемент.

Вариант № 20

Дана квадратная матрица A =

Найти минимальный элемент, стоящий на главной диагонали (amin); получить новую матрицу В, каждый элемент которой равен bij = aij + аmin.

Вариант № 21

Дана матрица С =

Найти вектор К, каждая компонента которого равна количеству положительных элементов соответствующей строки матрицы С.

Вариант № 22

Дана квадратная матрица Z

Найти максимальный элемент первой строки (zmax) и получить новую матрицу Y, каждый элемент которой равен yij = zij - zmax.

Вариант № 23

Дана квадратная матрица X =

Найти вектор Y, каждая компонента которого равна количеству отрицательных элементов соответствующего столбца матрицы X.

Вариант № 24

Даны две матрицы X и Y

Выбрать из них наименьший элемент.

Вариант № 25

Дана матрица

Выбрать наибольший элемент (max) и получить новую матрицу В, каждый элемент которой равен bij = max - aij

Вариант № 26

Дана матрица Найти наименьший элемент матрицы (min) и получить новую матрицу D, каждый элемент которой равен .

Вариант № 27

Дана квадратная матрица М. Найти сумму элементов S, расположенных в заштрихованной части. Получить новую матрицу С, каждый элемент которой

Вариант № 28

Дана квадратная матрица С. Найти произведение элементов, расположенных в заштрихованной части матрицы. Подсчитать сколько элементов больше 5 в заштрихованной части матрицы.

С =

Вариант № 29

Дана матрица А. Получить матрицу В, элемент bij которой равен результату деления суммы элементов матрицы A, расположенных в заштрихованной области, на aij.

    aij  

Вариант № 30

Дана квадратная матрица Z. Найти сумму элементов, расположенных в заштрихованной части матрицы.

Получить новую матрицуY, каждый элемент которой равен разности между найденной суммой и элементом матрицы Z.