Скачиваний:
2
Добавлен:
27.09.2023
Размер:
488.82 Кб
Скачать

Задание 1

  1. Постановка задачи

Заменить t первых элементов вектора P размерности j таким образом, чтобы их значения уменьшились на величину элемента, имеющего максимальное значение.

Входные данные: t – количество заменяемых элементов, целая переменная; j – размерность вектора P, целая переменная; P – исходный вектор, массив вещественных переменных.

Выходные данные: P – пересчитанный вектор, массив вещественных переменных.

  1. Математическая модель задачи

  1. Разработка алгоритма

  2. Разработка визуальной части проекта

  1. Код приложения

Private Sub CommandButton1_Click()

Dim t As Integer, i As Integer, j As Integer, max As Single, P() As Single

t = InputBox("t=")

j = InputBox("Размерность P=")

ReDim P(1 To j)

Print "P(исх)=";

For i = 1 To j

P(i) = InputBox("P(" & i & ")=")

Print P(i),

Next

Print

max = P(1)

i = 2

Do While i <= j

If P(i) > max Then

max = P(i)

End If

i = i + 1

Loop

i = 1

Do While i <= t

P(i) = P(i) - max

i = i + 1

Loop

Print "P(изм)=";

For i = 1 To j

Print P(i),

Next

Print

End Sub

  1. Отладка программы

Ручной расчёт: При P = {5; 6; 12; 11; -2} и t = 3 max = P3 = 12 P1 = 5 – 12 = -7 P2 = 6 – 12 = -6 P3 = 12 – 12 = 0

Задание 2

  1. Постановка задачи

Заменить последние элементы матрицы D размерности m × n, значением индекса строки, в которой найден первый положительный элемент соответствующего столбца

Входные данные: m – количество строк матрицы D, целая переменная; n – количество столбцов матрицы D, целая переменная; D – исходная матрица, массив целых переменных.

Выходные данные: D – пересчитанная матрица, массив целых переменных.

  1. Математическая модель задачи

Если Dij>0, то Dmj=i (до первого положительного i в каждом столбце) где 1≤i≤m с шагом 1; 1≤j≤n с шагом 1

  1. Разработка алгоритма

  1. Разработка визуальной части проекта

  1. Код приложения

Private Sub Command1_Click()

Dim m As Integer, i As Integer, n As Integer, j As Integer, D() As Integer, F As Boolean

m = InputBox("Введите количество строк")

n = InputBox("Введите количество столбцов")

ReDim D(1 To m, 1 To n)

Print "D(исх)="

For i = 1 To m

For j = 1 To n

D(i, j) = InputBox("D(" & i & ", " & j & ")=")

Print D(i, j),

Next

Print

Next

j = 1

Do While j <= n

F = False

i = 1

Do While i <= m

If D(i, j) > 0 Then

D(m, j) = i

F = True

Exit Do

End If

i = i + 1

Loop

If F = False Then

Print "В столбце " & j & " нет положительных эл."

End If

j = j + 1

Loop

Print "D(изм)="

For i = 1 To m

For j = 1 To n

Print D(i, j),

Next

Print

Next

End Sub

  1. Отладка программы

Ручной расчёт: Для матрицы

Соседние файлы в папке Программный элемент поиск