Программный элемент заполнение / 10
.docxЗадание №1
Постановка задачи
Заполнить в памяти ЭВМ матрицу:
Входные данные: m – количество строк матрицы, целая переменная;
n – количество столбцов матрицы, целая переменная.
Выходные данные: D – матрица заданного вида, массив целых переменных.
Математическая модель
где 1≤i≤m с шагом 1; 1≤j≤n с шагом 1.
Разработка алгоритма
Разработка визуальной части проекта
Код приложения
Private Sub Command1_Click()
Dim m As Integer, n As Integer, i As Integer, j As Integer, D() As Integer
m = InputBox("Введите количество строк")
n = InputBox("Введите количество столбцов")
ReDim D(1 To m, 1 To n)
Print "D="
For i = 1 To m
For j = 1 To n
If i = j Then
D(i, j) = i
Else
D(i, j) = i + 1
End If
Print D(i, j) & " ";
Next
Next
End Sub
Отладка программы
Ручной расчёт
D2 3=2+1=3
D6 6=6
Задание №2
Постановка задачи
Пересчитать элементы вектора M размерности n по правилу: Mk=(Mk+2)/(Mk-2), при Mk≠2.
Проанализировать выполнение программы на примере:
M={2; 0; 3; 10; -1; 6; 1; 2}
Входные данные: n – размерность вектора, целая переменная;
M – исходный вектор, массив вещественных переменных.
Выходные данные: M – пересчитанный вектор, массив вещественных переменных.
Математическая модель
где 1≤k≤n с шагом 1.
Разработка алгоритма
Разработка визуальной части проекта
Код приложения
Private Sub Command1_Click()
Dim M() As Single, n As Integer, k As Integer
n = InputBox("Введите размерность вектора")
ReDim M(1 To n)
Print "Исходный M={ ";
For k = 1 To n
M(k) = InputBox("M(" & k & ")=")
Print M(k) & " ";
Next
Print "}"
Print "Пересчитанный M={ ";
For k = 1 To n
If M(k) <> 2 Then
M(k) = (M(k) + 2) / (M(k) - 2)
End If
Print M(k) & " ";
Next
Print "}"
End Sub
Отладка программы
Ручной расчёт
Mk=3 => Mk=(3+2)/(3-2)=5
Mk=10 => Mk=(10+2)/(10-2)=1,5